On Apr 11, 2013, at 12:20 PM, Duane Voth <[email protected]> wrote:

> So what are Ffs files?

The Flash Device (FD) is made up of a set of regions and some of these regions 
contain Firmware Volumes (FVs). An FV has a header and a series of FFS file. 
FFS files are made up of Sections. It is all documented in the PI 
specifications located here: http://www.uefi.org/specs/ UEFI Platform 
Initialization Specification 1.2.1 

>  Two *unnamed* Ffs entries in edk2/Build/OvmfX64/DEBUG_GCC46/FV/Ffs appear to 
> have Cirrus content ... -

So if you look in the *.FDF file for a project you normally see an .inf file 
listed as the contests of an FV (these get mapped into the FFS files):
INF  IntelFrameworkModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2keyboardDxe.inf
 And the FDF file contains generic rules on how to package up a driver into an 
FFS file. So the binary output of Ps2keyboardDxe.inf build, and some other bits 
get packaged up into a set of sections and an FFS is created for inclusion in 
the FV. The file name would be the FILE_GUID from the INF file.
[Rule.Common.UEFI_DRIVER.BINARY]
  FILE DRIVER = $(NAMED_GUID) {
    DXE_DEPEX DXE_DEPEX Optional      |.depex
    PE32      PE32                    |.efi
    UI        STRING="$(MODULE_NAME)" Optional
    VERSION   STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER)
  }
It is also possible to to just place binary images into the FV. So for example 
here is the Intel NIC binary getting placed in the FV, and the 2nd example is 
the logo stored as data in a file. 

  FILE DRIVER = 5D695E11-9B3F-4b83-B25F-4A8D5D69BE07 {
    SECTION PE32 = Intel3.5/EFIX64/E3507X2.EFI
  }

FILE FREEFORM = PCD(gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdLogoFile) {
  SECTION RAW = MdeModulePkg/Logo/Logo.bmp
}
So if you were using a binary you would expect to see a FILE statement for it 
in the FDF file.....

Thanks,

Andrew Fish


> -----------------------------------------------------------------------------
> Precog is a next-generation analytics platform capable of advanced
> analytics on semi-structured data. The platform includes APIs for building
> apps and a phenomenal toolset for data science. Developers can use
> our toolset for easy data analysis & visualization. Get a free account!
> http://www2.precog.com/precogplatform/slashdotnewsletter_______________________________________________
> edk2-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/edk2-devel

------------------------------------------------------------------------------
Precog is a next-generation analytics platform capable of advanced
analytics on semi-structured data. The platform includes APIs for building
apps and a phenomenal toolset for data science. Developers can use
our toolset for easy data analysis & visualization. Get a free account!
http://www2.precog.com/precogplatform/slashdotnewsletter
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to