Name
GenFfs.exe – build one PI firmware file.
Synopsis
GenFfs.exe [options]
Description
GenFfs is used to generate FFS files for inclusion in a firmware volume. FFS file is the file system file for the firmware storage defined in the Volume 3 of the PI 1.0 specification. This utility is responsible for aggregating all of the file components into a single, correctly formed FFS file
Options
-o FileName, --outputfile FileName
The PI firmware file is created. This option is required.
-t Type, --filetype Type
Type is one FV file type defined in PI spec, which is one type of EFI_FV_FILETYPE_RAW, EFI_FV_FILETYPE_FREEFORM, EFI_FV_FILETYPE_SECURITY_CORE, EFI_FV_FILETYPE_PEIM, EFI_FV_FILETYPE_PEI_CORE, EFI_FV_FILETYPE_DXE_CORE, EFI_FV_FILETYPE_DRIVER, EFI_FV_FILETYPE_APPLICATION, EFI_FV_FILETYPE_COMBINED_PEIM_DRIVER, EFI_FV_FILETYPE_FIRMWARE_VOLUME_IMAGE. This option is required.
-g FileGuid, --fileguid FileGuid
FileGuid is the unique identifier for this FFS file. Its format is 00000000-0000-0000-0000-000000000000. This option is required.
-x, --fixed
Set fixed attribute in FFS file header to indicate that the file may not be moved from its present location.
-s, --checksum
Set checksum attribute in FFS file header to calculate the whole file checksum.
-a FileAlign, --align FileAlign
FileAlign specifies FFS file alignment, which only support the following alignment: 8,16,128,512,1K,4K,32K,64K.
-i SectionFile, --sectionfile SectionFile
Section file will be read into this FFS file. This option is required.
-n SectionAlign, --sectionalign SectionAlign
SectionAlign specifies this section file alignment in the FFS file, which support the alignment scope 1~64K. It is specified together with sectionfile parameter. 
-v, --verbose
Turn on verbose output with informational messages.
--version
Show program's version number and exit
-h, --help
Show this help message and exit
Example
1. Generate PeiCore FFS file with the input sections, fileguid, and the output file name.
GenFfs -t EFI_FV_FILETYPE_PEI_CORE -g 52C05B14-0B98-496c-BC3B-04B50211D680 -i PeiMain.pe32 -i PeiMain.ui -i PeiMain.ver -o 52C05B14-0B98-496c-BC3B-04B50211D680-PeiMain.ffs
2. Generate PeiCore FFS file with the fixed, checksum attributes, the input sections with 16 byte alignment, the fileguid, and the output file name.
GenFfs -t EFI_FV_FILETYPE_PEI_CORE -g 52C05B14-0B98-496c-BC3B-04B50211D680 –x –s -i PeiMain.pe32 –n 16 -i PeiMain.ui -i PeiMain.ver -o 52C05B14-0B98-496c-BC3B-04B50211D680-PeiMain.ffs
3. Generate RAW type FFS file with the input raw files, checksum attribute, fileguid, and the output file name. The RAW type FFS file doesn’t care whether the input files are the formed section files or not.
GenFfs –t EFI_FV_FILETYPE_RAW –g E8B33A4F-4C07-4e3f-A746-4A1E4036C5EC –s –i vendor.raw –o E8B33A4F-4C07-4e3f-A746-4A1E4036C5EC-vendor.raw
4. Generate FV type FFS file with the input FV section file, checksum attribute, fileguid, and the output filename.
GenFfs –t EFI_FV_FILETYPE_FIRMWARE_VOLUME_IMAGE –g 47C70572-CA18-455d-ABB9-B37FBA402AB2 –s –i fvmain.fvsec –o 47C70572-CA18-455d-ABB9-B37FBA402AB2-fvmain.ffs
Bugs
No known bugs.
Report bugs to edk2-buildtools-devel@lists.sourceforge.net
Files
None
See also
None
License
Copyright (c) 2007 - 2009, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available 
under the terms and conditions of the BSD License which accompanies this 
distribution.  The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.