Home

EDK II Package Declaration (DEC) File Format Specification

image

Contents

1. Indicates if BiosVideo driver will check for VGA service support NOTE If both PcdBiosVideoCheckVbeEnable and PcdBiosVideoCheckVgaEnable are set to FALSE March 2015 Version 1 24B EDK II FDF File Spec that means Graphics Output protocol will not be installed the VGA miniport protocol will be installed instead lt BR gt lt BR gt TRUE Check for VGA service lt BR gt FALSE Does not check for VGA service lt BR gt Prompt Enable Check for VGA Service gEfiIntelFrameworkModulePkgTokenSpaceGuid PcdBiosVideoCheckVgaEnable TRUE BOOLEAN 0x30000003 Indicates if memory space for legacy region will be set as cacheable lt BR gt lt BR gt TRUE Set cachebility for legacy region lt BR gt FALSE Does not set cachebility for legacy region lt BR gt Prompt Enable Cachebility for Legacy Region gEfiIntelFrameworkModulePkgTokenSpaceGuid PcdLegacyBiosCacheLegacyRegion TRUE BOOLEAN 0x00000004 Specify memory size with bytes to reserve EBDA below 640K for OPROM The value should be a multiple of 4KB Prompt Reserved EBDA Memory Size Expression 0x80000001 gEfiIntelFrameworkModulePkgTokenSpaceGuid PcdEbdaReservedMemorySize lt 0xA0000 AND gEfiIntelFrameworkModulePkgTokenSpaceGuid PcdEbdaReservedMemorySize S amp 0x1000 0 gEfilntelFrameworkModulePkgTokenSpaceGuid Pcd
2. Indicates if Legacy support is needed for ACPI S3 Save lt BR gt lt BR gt TRUE Support Legacy OS with S3 boot lt BR gt FALSE Does not support Legacy OS with S3 boot lt BR gt Prompt Turn on Legacy Support in S3 Boot EfilntelFrameworkModulePkgTokenSpaceGuid PcdPlatformCsmSupport TRUE BOOLEAN 0x00010044 Extended verification will take some performance It can be FALSE for boot performance lt BR gt lt BR gt T TRUE Turn on PS2 keyboard extended verification lt BR gt T FALSE Turn off PS2 keyboard extended verification lt BR gt Prompt Turn on PS2 Keyboard Extended Verification Version 1 24B March 2015 Kf Indicates if PS2 keyboard does a extended verification during start set to 63 64 EDK Il FDF File Spec gEfilntelFrameworkModulePkgTokenSpaceGuid PcdPs2KbdExtendedVerification TRUE BOOLEAN 0x00010045 Indicates if Framework Acpi Support protocol is installed lt BR gt lt BR gt TRUE Install Framework Acpi Support protocol lt BR gt FALSE Doesn t install Framework Acpi Support protocol lt BR gt Prompt Enable Framework Acpi Support gEfilntelFrameworkModulePkgTokenSpaceGuid PcdinstallAcpiSupportProtocol TRUE BOOLEAN 0x00010046 Indicates if PS2 mouse does a extended verification during start Extended verification will take some pe
3. UefiCpuLib Include Library UefiCpuLib h LibraryClasses IA32 LibraryClasses X64 libraryclass Provides functions to manage MTRR settings on IA32 E and X64 CPUs MtrrLib Include Library MtrrLib h Glibraryclass Provides functions to manage the Local APIC on IA32 i and X64 CPUs LocalApicLib Include Library LocalApicLib h Guids gUefiCpuPkgTokenSpaceGuid 0xac05bf33 0x995a 0x4ed4 Oxaa 0xb8 Oxef 0x7a 0xe8 Oxf 0x5c 0xb0 Error gUefiCpuPkgTokenSpaceGuid 0x80000001 Invalid value provided de db dk PcdsFixedAtBuild PcdsPatchableInModule This value is the CPU Local Apic base address which aligns the address on a 4 KByte boundary Prompt Configure base address of CPU Local Apic Expression 0x80000001 gUefiCpuPkgTokenSpaceGuid PcdCpuLocalApicBaseAddress amp Oxfff 0 gUefiCpuPkgTokenSpaceGuid PcdCpuLocalApicBaseAddress 0xfee00000 UINT32 0x00000001 March 2015 Version 1 24B EDK II FDF File Spec Appendix B EDK II Module Types Table 2 EDK II Module Types MODULE_TYPE Supported Description Architecture Types BASE Any Modules or Libraries can be ported to any execution environment This module type is intended to be used by silicon module developers to produce source code that is not tied to any specific execution environment SEC Any Modules of this type are designed to start execution at the reset vector of a CPU They are responsible
4. lt AsciiString gt lt EOL gt lt TS gt lt TS gt lt ModuleTypeList gt lt Comment gt lt EOL gt lt ValidRange gt lt RangeExpress gt lt TS gt AND and OR or lt TS gt mpm ValidRng wy it RngOp UE ValidRng wat NOT lt TS gt mer lt ValidRng gt wu March 2015 Version 1 24B EDK II FDF File Spec EDK II DEC File Format lt ValidRng gt NOT lt TS gt lt ValidRangeIn gt ValidRangeIn NOT lt TS gt lt Integer gt TS TS lt Integer gt lt HexValue gt TS TS lt HexValue gt LT TS Integer lt HexValue gt GT TS Integer lt HexValue gt LE TS Integer lt HexValue gt GE TS Integer lt HexValue gt XOR TS Integer lt HexValue gt EQ TS Integer lt HexValue gt ValidValueList Number TS lt Number gt Parameters Expression The expression in the Expression entry must evaluate to True in order for the value to be valid RangeExpressions This is required to be an in fix logical expression evaluated left to right for a range of values using Relational Equality and Logical Operators LT LE GT GE The forms PcdCName and or PcdTokenS paceGuidCName PcdCName are permitted Parentheses are recommended for clarity Since there may be different error numbers associated with valid range
5. 1 3 Terms BaseTools The BaseTools are the tools required for an EDK II build BDS Framework Boot Device Selection phase BNF BNF is an acronym for Backus Naur Form John Backus and Peter Naur introduced for the first time a formal notation to describe the syntax of a given language Component An executable image Components defined in this specification support one of the defined module types DEC EDK II Package Declaration File This file declares information about what is provided in the package An EDK Il package is a collection of like content DEPEX Module dependency expressions that describe runtime process restrictions Dist This refers to a distribution package that conforms to the UEFI Platform Initialization Distribution Package Specification DSC EDK II Platform Description File This file describes what and how modules libraries and components are to be built as well as defining library instances which will be used when linking EDK II modules DXE Framework Driver Execution Environment phase DXE SAL A special class of DXE module that produces SAL Runtime Services DXE SAL modules differ from DXE Runtime modules in that the DXE Runtime modules support Virtual mode OS calls at OS runtime and DXE SAL modules support intermixing Virtual or Physical mode OS calls DXE SMM A special class of DXE module that is loaded into the System Management Mode memory DXE Runtime Special class of DXE module that
6. 0x2E3044AC 0x879F 0x490F 0x97 0x60 0xBB OxDF OxAF 0x69 0x5F 0x50 Include Guid LegacyDevOrder h gEfiLegacyDevOrderVariableGuid 0xab6074db 0x65fe 0x45 7 X Oxbd 0x21 0x2d 0x2b Oxdd 0x9Se 0x96 0x52 F Include Guid CapsuleDataFile h gEfiUpdateDataFileGuid 0x283fa2ee 0x532c 0x484d 0x93 0x83 Ox9f 0x93 Oxb3 Ox6f 0xb Ox7e 4 Include Guid BlockIoVendor h gBlockIoVendorGuid 0xcf3lfac5 0xc24e 0x11d2 10x85 0xf3 0x0 Oxa0 069 0x36 0269 Ux3b 4 Include Guid BdsHii h gFrontPageFormSetGuid 0x9e0c30bc 0x3 06 0x4ba6 0x82 0x88 0x9 0x17 Ox9b 0x85 0x5d Uxbe gBootManagerFormSetGuid 0x847bc3fe 0xb974 0x446d 0x94 0x49 O0x5a 0xd5 0x41 0x26 0x99 Ob gDeviceManagerFormSetGuid 0x3ebfa8e6 0x511d 0x4b5b Oxa9 0x5f Oxfb 0x38 0x26 Oxf Oxic 0x27 gDriverHealthFormSetGuid Oxf76e0a70 Oxb5ed 0x4c38 Oxac 0x9a Oxe5 Oxf5 Ox4b Oxfl Ox6e 0x34 Version 1 24B March 2015 61 EDK Il FDF File Spec gBootMaintFormSetGuid 0x642237c7 0x35d4 0x472d 0x83 0x65 0x12 0xe0 Oxcc 0xf2 0x7a 0x22 gFileExploreFormSetGuid 0x1 2d63e1 Oxfebd Ox4dc7 X 10 98 0xc5b Oxba Ox2b Oxlc Oxef Ox9c 0x5b p Include Guid BdsLibHii h gBdsLibStringPackageGuid 0x3b4d9b23 0x95ac 0x44f6 10x9 Oxcd Oxe 0x95 0x94 0x58 0x6c 0x72 Include Guid LastEnumLang h gLastEnumLangGuid
7. 0xe8c545b 0xa2ee 0x470d 0x8e 0x26 0xbd Oxal Oxal 0x36 Oxa 0xa3 4 Include Guid HdBootVariable h gHdBootDevicePathVariablGuid Oxfab7e9el 0x39dd Ox4f2b 0x84 0x8 Oxe2 Oxe 0x90 Ox6c Oxb6 Oxde Protocols Vga Mini port binding for a VGA controller Include Protocol VgaMiniPort h gEfiVgaMiniPortProtocolGuid 0xe7735a2f 0x88 5 0x4882 Oxae 0x63 Oxta Oxac 0x86 0x8b 0x86 0xb3 ISA I O Protocol is used to perform ISA device Io Mem operations Include Protocol IsaIlo h gEfilsaloProtocolGuid 0x7ee2bd44 0x3da0 0x11d4 0x93 0x38 OO 0x90 0x27 Ox3f Oxcl Osx4d y ISA Acpi Protocol is used to operate and communicate with ISA device Include Protocol IsaAcpi h gEfilsaAcpiProtocolGuid 0x64a892dc 0x5561 0x4536 0x92 Oxc7 0x79 0x9b Oxfc Ox18 0x33 0x55 4 PS 2 policy protocol abstracts the specific platform initialization and setting Include Protocol Ps2Policy h gEfiPs2PolicyProtocolGuid 0x4DF19259 OxDC71 0x4D46 OBE OxEL 0x35 OX 7B UxB5 0x78 0x64 0x18 OEM Badging Protocol defines the interface to get the OEM badging image with the dispaly attribute Include Protocol OEMBadging h gEfiOEMBadgingProtocolGuid Ox170E13CO 0xBF1B 0x4218 t 0x87 OxID 0OX2A OxBD 0xC6 0xFS8 0x87 OxBC March 2015 Version 1 24B Se de de dE e EDK II FDF File Spec
8. THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN AS IS BASIS WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND EITHER EXPRESS OR IMPLIED Defines DEC_SPECIFICATION 0x00010005 PACKAGE_NAME ShellBinPkg PACKAGE_GUID 4B34AD9D 1324 41e5 8B1D 359AA7BCA62C PACKAGE_VERSION 0 1 A 4 UefiCpuPkg dec file UefiCpuPkg dec This Package provides U Copyright e 2007 201 2 EFI compatible CPU modules and libraries Intel Corporation All rights reserved lt BR gt This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution http opensource org licenses bsd license php THE PROGRAM IS DISTRIBUT WITHOUT WARRANTIES OR R IMPLIED Defines Version 1 24B T ED UNDER THE BSD LICENSE ON AN EPR ES AS IS BASIS ENTATIONS OF ANY KIND EITH The full text of the license may be found at ER EXPRESS OR March 2015 73 EDK Il FDF File Spec DEC_SPECIFICATION 0x00010018 PACKAGE_NAME UefiCpuPkg PACKAGE_UNI_FILE UefiCpuPkg uni PACKAGE_GUID 2171d 9b 0439 45aa ac37 2de190010d23 PACKAGE_VERSION 0 2 Includes Include LibraryClasses HH libraryclass Defines some routines that are generic for IA32 family CPU to be UEFI specification compliant 4
9. The PCD is used to define potential values that a module might be coded against and if a module uses the access methods for PedsDynamic then the platform can define the final usage PCDs listed as PedsDynamic Or PcdsDynamicEx will only have one value in the final binary image the PEI and DXE PCD Drivers that maintain these values use a single database for all architectures with a unique value for a PCD identified by the Token Space GUID value and the Token Number If a PCD is only listed under a PedsFixedAtBuild Or PcdsPatchableInModule then modules are restricted and cannot be coded to use either of the dynamic PCD access methods Using the common architectural modifier is exactly the same as specifying a PCD section type without an architectural modifier A PCD listed in an INF or DSC file which uses an architectural modifier may be listed in the common section in the DEC file it is not required to list PCDs in architectural sections in the DEC If a PCD is only listed under a section with an architectural modifier that is not common then it may only be used by modules build for that specific architecture Each PCD entry must be listed only once per section If a PCD is listed more than once within one section the last entry takes precedence The PCD values in this file are the default values Default values listed in architectural sections override default values specified in a common architectural section The EDK II bui
10. Copyright 2007 No Such LTD All rights reserved The line extension character 1 cannot be used to extend a comment Like the comment character stops processing of a line comments are always terminated by the end of line Doxygen tags are permitted in comment blocks preceding individual GUI D Protocol PPI and PCD entries These tags are used as containers for content required by the UEFI Packaging specification and may also be used by tools Each section will define the valid Doxygen tags which apply If a hash character is required in a value field the value field must be encapsulated by double quotation marks lt CommentBlock gt Entries Various elements in the DEC file have a recommended format for comment information regarding the header files module types an item supports and other information These special comment blocks are processed by tools used to create a distribution package of the code that conforms to the UEFI Distribution Package UDP Specification Tools Version 1 24B March 2015 11 DEC File Overview EDK II FDF File Spec used to install a distribution package that conforms to the UDP must add appropriate type information in these comment blocks The comment block formats are specified in chapter 3 of this document The general format of these comment blocks in the Guids Protocols and Ppis sections is Path To HeaderFile h GUID_C_Name lt GUID gt lt ModuleTypeList
11. followed by a comma and a number m indicates that the number of occurrences can be from n to m occurrences of the item inclusive 8 March 2015 Version 1 24B EDK II FDF File Spec 2 DEC File Overview This document describes the format of EDK II package declaration DEC files The DEC files are used by the EDK II utilities that parse EDK II DSC and EDK II INF files to generate AutoGen c and AutoGen h files for the EDK II build infrastructure A DEC file describes content for a collection of like modules located in a directory tree in the EDK II WORKSPACE This development workspace is a directory identified by the system environment variable WORKSPACE Each collection of modules must be in a unique directory tree in the WORKSPACE and must contain only one DEC file EDK II modules are located in subdirectories below the directory containing this file If a module is a Library the module directory must be created in the Library subdirectory An Include subdirectory is also required with the header file for the Library class placed in the sub directory nclude Library and be called LibraryClassName h Additional content for the Include directory may include header files and potentially another Industry Standard directory Note Path and Filename elements within the DEC are case sensitive in order to support building on UNIX style operating systems Names that are used in C code are case sensitive
12. 0x21 0x23 Ox5B 0x5D Ox7E lt EscapeSequence gt 0x22 nyn n te E xr b 0 LUN lt DblQuote gt March 2015 25 EDK Il DEC File Format EDK Il FDF File Spec 26 lt TabSpace gt lt Tab gt lt Space gt lt TS gt lt TabSpace gt lt MTS gt lt TabSpace gt lt Tab gt 0x09 lt Space gt 0x20 lt CR gt 0x0D lt LF gt Ox0A lt CRLF gt lt CR gt lt LF gt lt WhiteSpace gt lt TS gt lt CR gt lt LF gt lt CRLF gt WS lt whiteSpace gt lt Eq gt lt TS gt lt TS gt lt FieldSeparator gt mjn lt FS gt lt TS gt lt FieldSeparator gt lt TS gt lt Wildcard gt wen lt CommaSpace gt lt Space gt lt Cs gt lt Space gt lt AsciiString gt lt TS gt lt AsciiChars gt lt EmptyString gt lt DblQuote gt lt DblQuote gt lt CFlags gt lt AsciiString gt lt PrintChars gt lt TS gt lt CChars gt lt QuotedString gt lt DblQuote gt lt PrintChars gt lt DblQuote gt lt CString gt L lt QuotedString gt lt NormalizedString gt lt GlobalComment gt lt Comment gt lt DblQuote gt lt Word gt lt Space gt lt DblQuote gt lt WS gt lt TS gt lt AsciiString gt lt EOL gt TS lt AsciiString gt lt EOL gt March 2015 Version 1 24B EDK Il FDF File Spec lt UnicodeString gt lt HexDigit gt lt HexByte gt lt HexNumber gt lt HexVersion gt lt
13. 9 IA32 X64 IPF EBC OA When using the characters or in an expression the expression must be encapsulated in open and close parenthesis Comments may appear anywhere within a DEC file provided they follow the rules that a comment may not be enclosed within Section headers and that in line comments must appear at the end of a statement Parameters Version 1 24B March 2015 29 EDK Il DEC File Format EDK II FDF File Spec Expression Expression syntax is defined the EDK Il Expression Syntax Specification ExpressionVal An expression that evaluates to a number that fits the datum types of the other elements For example if one of the other elements is a UINT8 then the expression must evaluate to a value that is byte It is recommended that all parameters be typecast to UINT64 values before any operation performed then the result can be tested to ensure that the datum size of the result is correct PCD names can be used as parameters and the value of the PCD is used for evaluation purposes Any result that exceeds the size of the datum type must break the build Note Circular references self references are tight circular references must cause a build break 30 UnicodeString When the lt UnicodeString gt element these characters are string literals as defined by the C99 specification L string not actual Unicode characters is included in a value the build tools may be
14. File Spec EDK II DEC File Format lt Filename gt lt Word gt lt Extension gt lt BinaryAbstract gt lt TS gt lt AsciiString gt lt EOL gt lt BinDescription gt lt TS gt lt AsciiString gt lt EOL gt lt Copyright gt i MTS lt CopyName gt Date lt CompInfo gt CopyName Portions lt MTS gt Copyright c MTS Date Year lt TS gt lt DateList gt lt DateRange gt lt Year gt 2 0 9 0 9 0 9 lt DateList gt lt CommaSpace gt lt Year gt lt CommaSpace gt lt Year gt lt DateRange gt TS Year CompInfo 0x20 Ox7e MTS Arr Arr All rights reserved lt TS gt lt BR gt lt EOL gt lt BinaryLicense gt lt TS gt lt AsciiString gt lt EOL gt Parameters Abstract A brief one line description of what the package provides BinaryAbstract A brief one line description of what the packages provides that may be different from a source abstract Description A detailed description of what the package provides BinaryDescription A detailed description of what the package provides that may be different from a source description Copyright The copyright date should be modified if there is a functional change to the source code Since binaries are constructed from source the binary file uses the same copyright date as the source DEC however tools are not required to ensure that the dates are identical Lic
15. HH Include Protocol ExitPmAuth h Oxba 0x55 0x9 amp 0x30 0 b6 Q0x5G 0x41 083 Error gEfilntelFrameworkModulePkgTokenSpaceGuid 0x80000001 Invalid value provided 0x80000002 Reserved bits must be set to zero PcdsFeatureFlag gExitPmAuthProtocolGuid 0xd088a413 0xa70 0x4217 Indicates if OEM device is enabled as StatusCode report device It is only used in Framework StatusCode implementation lt BR gt lt BR gt TRUE Enable OEM device lt BR gt FALSE Disable OEM device lt BR gt Prompt Report StatusCode via OEM Device gEfilntelFrameworkModulePkgTokenSpaceGuid PcdStatusCodeUseOEM FALSE BOOLEAN 0x00010024 Indicates if StatusCode report is loged into DataHub lt BR gt lt BR gt TRUE Log StatusCode report into DataHub lt BR gt FALSE Does not log StatusCode report into DataHub lt BR gt Prompt Log StatusCode into DataHub gEfilntelFrameworkModulePkgTokenSpaceGuid PcdStatusCodeUseDataHub FALSE BOOLEAN 0x00010029 Indicates if Serial device uses half hand shake lt BR gt lt BR gt TRUE Serial device uses half hand shake lt BR gt FALSE Serial device doesn t use half hand shake lt BR gt Prompt Enable Serial device Half Hand Shake gEfiIntelFrameworkModulePkgTokenSpaceGuid PcdIsaBusSerialUseHalfHandshake FALSE BOOLEAN 0x00010043 El
16. Not all of the definitions below pertain to entries in the DEC file for example lt Expression gt statements are not permitted 24 March 2015 Version 1 24B EDK Il FDF File Spec Prototype lt Word gt lt SimpleWord gt lt ToolWord gt lt FileSep gt lt Extension gt lt File gt lt PATH gt lt RelativePath gt lt DirName gt lt FullFilename gt lt Filename gt lt Chars gt lt Digit gt lt NonDigit gt lt Identifier gt lt CName gt lt AsciiChars gt lt CChars gt lt DblQuote gt lt EscapeSequence gt Version 1 24B EDK Il DEC File Format a zA Z0 9_ a zA Z0 9 Alphanumeric characters with optional period dash and or underscore _ characters A period character may not be followed by another period character No white space characters are permitted a zA Z0 9 a zA Z0 9 A word that cannot contain a period character A Z a zA 20 9 Alphanumeric characters white space characters are not permitted wm a zA Z0 9 One or more alphanumeric characters Word lt Extension gt lt MACROVAL gt lt FileSep gt lt RelativePath gt lt DirName gt lt FileSep gt lt DirName gt lt Word gt lt MACROVAL gt lt PATH gt lt FileSep gt lt File gt lt PATH gt lt FileSep gt lt File gt a zA Z0 9 0 9 a zA Z_ lt NonDigit gt lt Chars gt lt Identifier gt A valid C variable name 0x21 Ox7E
17. PcdsFixedAtBuild IPF This flag is used to control the printout of DebugLib gEfiMdePkgTokenSpaceGuid PcdIoBlockBaseAddressForIpf Version 1 24B March 2015 53 EDK Il DEC File Format EDK II FDF File Spec OxOffffc00000 UINT64 0x0000000c PcdsFixedAtBuild PcdsPatchableInModule PcdsDynamic PcdsDynamicEx This value is used to set the base address of pci express hierarchy gEfiMdePkgTokenSpaceGuid PcdPciExpressBaseAddress 0xE0000000 UINT64 0x0000000a Default current ISO 639 2 language English amp French gEfiMdePkgTokenSpaceGuid PcdUefiVariableDefaultLangCodes engfraengfra VOID 0x0000001c Default current ISO 639 2 language English gEfiMdePkgTokenSpaceGuid PcdUefiVariableDefaultLang eng VOID 0x0000001d Note In the above example the backslash character is used to show a line continuation for readability Use of a backslash character in the actual DEC file is not permitted 3 11 UserExtensions Sections These sections are optional Summary Defines the optional EDK II DEC file UserExtensions tag The build tools must have an a priori knowledge of how to process any items in this section EDK II build tools ignore this section Each UserExtensions section must have a unique set of UserId and IdString values This means that the same userid can be used in more than one section provided the IdString values are different The same IdString values can be used if the u
18. add the file to the package distribution using the UEFI Distribution Package Distribution The section header must be UserExtensions TianoCore ExtraFiles Having data elements under the section header is not required The following is an example of a UserExtensions TianoCore ExtraFiles section UserExtensions TianoCore Readme t xt UserManual pdf Version 1 24B ExtraFiles March 2015 21 DEC File Overview 22 March 2015 EDK Il FDF File Spec Version 1 24B EDK II FDF File Spec 3 EDK II DEC File Format This section of the document describes the EDK II DEC sections using an Extended Backus Naur Form 3 1 General Rules The general rules for EDK II INI style documents follow Note Path and Filename elements within the DEC are case sensitive in order to support building on UNIX style operating systems Additionally names that are C variables or used as a macro are case sensitive Other elements such as section tags or hex digits in the DEC file are not case sensitive The use of and in paths and filenames is strictly prohibited Only one DEC file is permitted per directory e Text in section tags text within square brackets is not case sensitive Asection terminates with either another section definition or the end of the file Entries terminate with either a comment or the end of line character sequence To append comment information to any item the comment must
19. architectural sections are not permitted to be listed in the common architectural section The common architecture modifier in a section tag must not be combined with other architecture type modifiers doing so will result in a build break The use of a lt MACROVAL gt element in this section is prohibited Each PPI entry must be listed only once per section Version 1 24B March 2015 43 EDK II DEC File Format 44 Prototype lt Ppis gt lt com_attribs gt lt attribs gt lt attrs gt lt PpiEntries gt lt PpiComment gt lt Description gt lt PpiHeaderFile gt lt CommentBlock gt Parameters PpiHeaderFile EDK Il FDF File Spec Ppis lt com_attribs gt lt EOL gt lt PpiEntries gt common lt attribs gt lt attrs gt lt TS gt Ppis lt attrs gt lt arch gt lt PpiComment gt lt TS gt lt CName gt lt Eq gt lt CFormatGUID gt lt CommentBlock gt lt EOL gt lt Description gt lt TS gt lt TS gt lt PpiHeaderFile gt lt EOL gt TS TS lt AsciiString gt lt EOL gt lt TS gt lt TS gt lt AsciiString gt lt EOL gt lt PATH gt lt Word gt h lt TS gt lt TS gt lt ModuleTypeList gt lt Comment gt lt EOL gt Path to the PPI header file statement listed in comments in this section must be relative to the directory that contains the DEC file Use of or in the directory p
20. as well as MACRO names used as short cuts within the DEC file Use of and in path and filename elements is prohibited Note GUID values are used during runtime to uniquely map the C names of PROTOCOLS PPIS PCDS and other variable names Note The examples in this document use a backslash character when the example line does not fit in between the margins This character is not permitted in the actual DEC file as all valid entries must appear on the same line Note The the total path and file name length is limited by the operating system and third party tools It is recommended that for EDK Il builds that the WORKSPACE directory be either a directory under a subst drive in Windows s build as an example or be located in either the opt directory or in the user s home username directory for Linux and OS X 2 1 Usage Overview The DEC file supports EDK II module builds The file is used to define specific information that will be shared between different EDK II Modules There are eight possible major section types in the DEC file Defines Includes LibraryClasses Guids Protocols Ppis PCD and UserExtensions Within a DEC file comments are encouraged with the hash character identifying a comment All text after a comment character must be ignored by any parsing tool Comment characters can be at the start of a line or after a data element there must be one or more white space characters between
21. data arrays used in PCD value fields must be byte arrays The C format GUID style is a special case that is permitted in some fields that use the lt CArray gt nomenclature The DOS End Of Line OxOD 0x0A character sequence must be used for all EDK II meta data files All Nix based tools can properly process the DOS EOL characters Microsoft based tools cannot process the Nix style EOL characters March 2015 Version 1 24B EDK II FDF File Spec EDK II DEC File Format 3 2 2 MACROs Use of MACRO statements is optional Summary Macro statements are characterize by a DEFINE line Macro statements in DEC files are only permitted to describe a path shortcut name If the Macro statement is within the Defines section then the Macro is common to the entire file with local definitions taking precedence if the same MACRO name is used in subsequent sections then the MACRO value is local to only that section Macro statements in comments must also be ignored by parsing tools Macros may not be referenced before they are defined A previously defined macro is permitted to be used as MACRO in the right side of a different Macro in the value statement Macro names must not use the name of the tokens defined in this file such as PACKAGE_GUID is defined as a token in the Defines section of this document and therefore cannot be used as the lt MACRO gt name in a lt MacroDefinition gt statements lt MACRO gt variable If the too
22. files in the Includes section 2 6 Guids Usage This is an optional section This section is used to define the GUID Value for Guid C Names This section uses one of the following section definitions Guids Guids IA32 Guids X64 Guids IPF Guids EBC Guids common Guids IA32 Guids X64 Guids X64 Guids IPF Format for the entries in this section is two fields with an equal character separating the fields as shown below GuidCName C Format Guid Value Comment The Comment section can be used to identify the list of supported module types 2 7 Protocols Usage This is an optional section This section is used to define the GUID Value for Protocol C Names This section use ones of the following section definitions Protocols Protocols 1A32 Protocols X64 Protocols IPF Protocols EBC Protocols common Format for the entries in this section is two fields with an equal character separating the fields as shown below ProtocolCName C Format Guid Value Comment The Comment section can be used to identify the list of supported module types Version 1 24B March 2015 17 DEC File Overview EDK II FDF File Spec 2 8 Ppis Usage This is an optional section This section is used to define the GUID Value for PPI C Names This section use ones of the following section definitions Ppis Ppis IA32 Ppis X64 Ppis IPF Ppis EBC Ppis common Format for the entries in this section is two
23. for preparing the platform for the PEI phase PEI CORE Any This module type is used by PEI Core implementations that are compliant with the Pl Specification PEIM Any This module type is used by PEIMs that are compliant with PI Specification DXE_CORE Any This module type is used by DXE Core implementations that are compliant with the PI Specification DXE_DRIVER Any This module type is used by DXE Drivers that are compliant with the Pl Specification DXE_RUNTIME_DRIVER Any This module type is used by DXE Drivers that are compliant to the Pl Specification These modules execute in both boot services and runtime services environments DXE_SAL_ DRIVER IPF This module type is used by DXE Drivers that can be called in physical mode before SetVirtualAddressMap is called and either physical mode or virtual mode after SetVirtualAddressMap has been called This module type is only available for IPF processor types DXE SMM DRIVER 1A32 X64 This module type is used by DXE Drivers that are loaded into SMRAM SMM CORE Any This is the SMM core UEFI DRIVER Any This module type is used by UEFI Drivers that are compliant with the EFI 1 10 and UEFI specifications These modules provide services in the boot services execution environment UEFI Drivers that return EFI SUCCESS are not unloaded from memory UEFI Drivers that return an error are unloaded from memory UEFI_ APPLICATION Any This module type is used by UEFI Applicatio
24. gt lt HelpText gt Example Include Guid GlobalVariable h gEfiGlobalVariableGuid 0x8BE4DF61 0x93CA 0x11D2 OxAA 0x0D 0x00 0xEQ 0x98 0x03 0x2B 0x8C Include Protocol DebugPort h gEfiDebugPortDevicePathGuid 0xEBA4E8D2 0x3858 Ox41EC 0xA2 0x81 0x26 0x47 OxBA 0x96 0x60 OxDO UEFI DRIVER Guid for EFI DISK INFO PROTOCOL Interface to specify Ide interface Include Protocol DiskInfo h gEfiDiskInfoIdeInterfaceGuid 0x5E948FE3 0x26D3 0x42B5 OxAF Ox17 0x61 0x02 0x87 0x18 0x8D OxEC DXE DRIVER UEFI DRIVER Include Guid SmmCommunicate h gSmmCommunicateHeaderGuid 0xf328e36c 0x23b6 0x4a95 0x85 Ox4b 0x32 Oxel 0x95 0x34 Oxcd 0x75 44 SMM CORE DXE SMM DRIVER Note In the above example the line has been extended so that the field is continued to the last line the Y character so that the comment at the end of the line can be processed correctly by the Intel r UEFI Packaging Tool Additional informational help text is also defined in the CommentBlock tag The format defined for comment blocks that are at the end of lines listed in all of the examples must not continue on following lines If the lt commentBlock gt information is long the information is allowed to be split into multiple comment lines that immediately precede the element For example Include Guid DebugAgentGuid h PEIM
25. hand off system information in the early pre boot stages Version 1 24B March 2015 3 Introduction EDK II FDF File Spec IFR Internal Forms Representation This is the binary encoding that is used for the representation of user interface pages INF EDK II Module Information File This file describes how the module is coded For EDK this file describes how the component or library is coded as well as providing some basic build information Library Class Alibrary class defines the API or interface set for a library The consumer of the library is coded to the library class definition Library classes are defined via a library class h file that is published by a package Library Instance An implementation of one or more library classes Module A module is either an executable image or a library instance Module Type All libraries and components belong to one of the following module types BASE SEC PEI_CORE PEIM DXE_CORE DXE_DRIVER DXE_RUNTIME_DRIVER DXE_SMM_DRIVER DXE_SAL_DRIVER UEFI_DRIVER or UEFI_APPLICATION These definitions provide a framework that is consistent with a similar set of requirements A module that is of module type BASE depends only on headers and libraries provided in the MDE while a module that is of module type DXE_DRIVER depends on common DXE components The EDK II build system also permits modules of type USER_DEFINED These modules will not be processed by the EDK II Build system See Table 2 Pac
26. identify the standard location include directories provide by this EDK II package The Includes contains a list of package relative directory names These directories contain sub directories or header files If the March 2015 Version 1 24B EDK II FDF File Spec DEC File Overview Package directory contains the directories and the Include Include Ppis Include Protocol and Include Guid and header files exist in each of these directories then all four directories will be listed in this section This list of directories is used by the build tools to create the list of standard directory locations required by compilers Also included in this section are the directories containing headers that may be required for individual EDK II module types Refer to Appendix EDK II Module Types for a list of the valid types Refer to the Includes definition later in this document for a complete description of this section and its contents The Includes section uses one of the following section definitions Includes common Includes IA32 Includes X64 Includes IPF includes EBC Includes The format for entries in this section is one field with an optional comment field as shown below Package_Relative path Comment such as Keyword List The relative path is relative to the directory the DEC file is in Use of and in the directory path is not permitted Caution Do not list individual
27. in the common section The included path must not end with the lt FileSep gt character All paths must be relative to the directory that contains the DEC file Use of absolute paths or WORKSPACE relative paths is prohibited It is permissible to use a lt MACROVAL gt entry in this section provided the above rules are followed The common architecture modifier in a section tag must not be combined with other architecture type modifiers doing so will result in a build break Prototype lt Include gt Includes com attribs lt EOL gt lt IncEntries gt lt com_attribs gt common lt attribs gt lt attribs gt lt attrs gt TS Includes lt attrs gt lt attrs gt arch IncEntries lt MacroDefinition gt lt HdrFile gt lt HdrFile gt lt CommentBlock gt lt TS gt lt PATH gt lt CommentBlock gt lt EOL gt lt CommentBlock gt lt TS gt lt TS gt lt ModuleTypeList gt lt CmtOrEol gt lt CmtOrEol gt lt Comment gt lt EOL gt Parameters PATH Path statements listed in this section must be relative to the directory that contains the DEC file Use of or in the directory path is prohibited Restrictions It is NOT permissible to list an include directory under common and under a specific architecture It is permissible to specify include directory entries under all architectures except common if different i
28. platform does not support feature of hardware error record This PCD should be set as HII type PCD by platform integrator mapped to UEFI global variable L HwErrRecSupport Prompt Error Level For Hardware Recorder gEfiIntelFrameworkModulePkgTokenSpaceGuid PcdHardwareErrorRecordLevel 0 UINT16 0x40000002 PcdsPatchableInModule PcdsDynamic PcdsDynamicEx The 4 PCDs below are used to specify the video resolution and text mode of text setup To make text setup work in this resolution PcdVideoHorizontalResolution PcdVideoVerticalResolution PcdConOutColumn and PcdConOutRow in MdeModulePkg dec should be created as PcdsDynamic or PcdsDynamicEx in platform DSC file Then BDS setup will update these PCDs defined in MdeModulePkg dec and reconnect console drivers GraphicsConsole t Terminal Consplitter to make the video resolution and text mode work for text setup Version 1 24B March 2015 65 EDK Il FDF File Spec Specify the video horizontal resolution of text setup Prompt Video Horizontal Resolution of Text Setup gEfilntelFrameworkModulePkgTokenSpaceGuid A PcdSetupVideoHorizontalResolution 800 UINT32 0x50000001 Specify the video vertical resolution of text setup Prompt Video Vertical Resolution of Text Setup gEfiIntelFrameworkModulePkgTokenSpaceGuid PcdSetupVideoVerticalResolution 600 UINT32 0x50000002 Specif
29. start with a hash character All comments terminate with the end of line character sequence Any comment not associated with a defined comment format is considered a global comment e Global comments must be separated from formatted comments with a blank line Comment lines cannot be extended using the line extension character Field separators for lines that contain more than one field are pipe characters This character was selected to reduce the possibility of having the field separator character appear in a string such as a filename or text string Note The only notable exception is the PcdName which is a combination of the PcdTokenSpaceGuidCName and the PcdCName that are separated by the period character This notation for a PCD name is used to uniquely identify the PCD When processing numeric values either integer or hex leading zeros specified in the entry may be ignored For example 0x00000000000000000000001 can bea valid value for a UINT8 data type as the actual value is 1 3 1 1 Backslash The backslash A character is used in this document when an example entry cannot fit between the margins of this file It must not be used in the DEC file to extend an entry 3 1 2 White space characters Whitespace space and tab characters are permitted between token and field Version 1 24B March 2015 23 EDK Il DEC File Format EDK II FDF File Spec separator elements for all entries Whitespace chara
30. the data structure Prototype An EBNF type declaration for the data structure Example Sample data structure using the prototype 1 5 2 Pseudo Code Conventions Pseudo code is presented to describe algorithms in a more concise form None of the algorithms in this document are intended to be compiled directly The code is presented at a level corresponding to the surrounding text In describing variables a list is an unordered collection of homogeneous objects A queue is an ordered list of homogeneous objects Unless otherwise noted the ordering is assumed to be FIFO Pseudo code is presented in a C like format using C conventions where appropriate The coding style particularly the indentation style is used for readability and does not necessarily comply with an implementation of the Extensible Firmware Specification 1 5 3 Typographic Conventions This document uses the typographic and illustrative conventions described below Typographic Typographic convention description Convention Plain text The normal text typeface is used for the vast majority of the descriptive text in a specification 6 March 2015 Version 1 24B EDK Il FDF File Spec Typographic Convention Plain text blue Introduction Typographic convention description Any plain text that is underlined and in blue indicates an active link to the cross reference Click on the word to follow the hyperlink BOLD Monospace Bold In text a
31. 2 architectural specific recommended values over recommended values listed in the common sections This technique is permitted to allow unique recommendations for individual architectures It is not permissible to list command modifier and an architectural modifier in a section header The following example is not permitted PcdsPatchableInModule IA32 PcdPatchableInModule common It is permissible to specify multiple architectures for like PcdType items in the same section header For example PcdsFeatureFlag IA32 PcdsFeatureFlag X64 It is permissible to mix PcdsPatchablel nModule PcdsFixed PcdsDynamic and PcdsDynamicEx PcdType elements within an architecture section For example PcdsPatchableInModule IA32 PcdsFixedAtBuild IA32 The PcdsFeatureFlag PcdType may not be mixed with any other PcdType elements in the section header The following example is NOT VALID PcdsFeatureFlag IA32 PcdsFixedAtBuild IA32 While allowed by this specification it is not recommended to mix different PcdType architecture values in a single section The following example is valid but not recommended PcdsDynamicEx IA32 PcdsFixedAtBuild X64 PcdPatchableInModule IPF Refer to the PI Specification for more information March 2015 Version 1 24B EDK Il FDF File Spec EDK Il DEC File Format Example 4 TEHE E TE FE TE FE HE TE FE E FE FE HE FE E TE EE EE HE HE TE FE E TE FE HE TE FE EE ARA EHH PCD Declarations section list of all
32. 3 Appendix B EDK Il Module Types 22a sn 75 8 March 2015 Version 1 24B EDK Il FDF File Spec Tables Table T MACRO 183985 aa ee Table 2 EDK II Module Types Version 1 24B March 2015 EDK Il FDF File Spec March 2015 Version 1 24B EDK II FDF File Spec 1 Introduction This document describes the EDK II Declaration DEC file format This format was designed to support building packaging and distribution of EDK II modules as well as for building platforms and modules using the EDK II build infrastructure EDK II declaration files may be created during installation of a distribution that follows the UEFI Platform Initialization Distribution Package Specification They may also be created manually The EDK II Build Infrastructure supports generation of UEFI 2 4 and PI 1 3 Unified EFI Inc compliant binary images 1 1 Overview This document describes the format for DEC files with the following goals Compatible The DEC Format must maintain backward compatibility with any existing DEC file formats This means that the changes made to this specification must not require changes to existing DEC files Simplified platform build and configuration One goal of this format is to simplify the build setup and configuration for a given platform It was also designed to simplify the process of developing EDK II firmware components 1 2 Related Information The following publications and sources of information may be
33. 32 0x00001013 Number of Application Processors Uniprocessor mode 70 APs in th March 2015 system 0 means Version 1 24B EDK II FDF File Spec gEmulatorPkgTokenSpaceGuid PcdEmuApCount L 0 VOID 0x00001019 Magic page to implement PEI Services Table Pointer Lib gEmulatorPkgTokenSpaceGuid PcdPeiServicesTablePage 0x1003000000 UINT64 0x0000101b Size of the packet filter gEmulatorPkgTokenSpaceGuid PcdNetworkPacketFilterSize 524288 UINT32 0x0000101c PcdsFixedAtBuild PcdsPatchableInModule gEmulatorPkgTokenSpaceGuid PcdEmuBootMode 1 UINT32 0x00001006 gEmulatorPkgTokenSpaceGuid PcdEmuFirmwareVolume A L Fv Fv_Recovery fd VOID 0x00001009 gEmulatorPkgTokenSpaceGuid PcdEmuMemorySize L 64 64 VOID 0x0000100c filename R F O W BlockSize filename can be a device node like dev diskl R Removable Media F Fixed Media O Write protected W Writable Default is Fixed Media Writable For a file the default BlockSize is 512 and can be overridden via He our BlockSize for example 2048 for an ISO CD image The block size for a device comes from the device and is not configurable Se dk Device Size comes from file or device On Mac OS X you can use Disk Utility to create dmg files and mount them like disks gEmulatorPkgTokenSpaceGuid PcdEmuVirtualDisk L disk dmg FW VOID 0x00001001 gEmulatorPkgTokenSp
34. 45 0x1D91 0x40a6 OxAS xlF 0x61 0xE6 0x98 0x2B 0x32 0xB4 3 7 Protocols Sections These sections are optional Summary Defines the Protocols section tag This is a list of the global PROTOCOL C Names and their C Guid values that are declared in the EDK II package DEC file Protocol entries listed in architectural sections are not permitted to be listed in the Version 1 24B March 2015 41 EDK II DEC File Format common architectural section EDK Il FDF File Spec The common architecture modifier in a section tag must not be combined with other architecture type modifiers doing so will result in a build break The use of a lt MACROVAL gt element in this section is prohibited Each Protocol entry must be listed only once per section Prototype lt Protocols gt lt com_attribs gt lt attribs gt lt attrs gt lt ProtocolEntries gt lt ProtocolComment gt lt ProtoHdrFile gt lt Description gt lt CommentBlock gt Parameters ProtocolHeaderFile Protocols lt com_attribs gt lt EOL gt lt ProtocolEntries gt common lt attribs gt lt attrs gt lt TS gt Protocols lt attrs gt 8 lt arch gt lt ProtocolComment gt lt TS gt lt CName gt lt Eq gt lt CFormatGUID gt lt CommentBlock gt lt EOL gt lt Description gt lt ProtoHdrFile gt lt TS gt lt
35. 6 Macro Statements Zee enle 14 22g RC O ea dU cts iR Eee ee 16 2 2 8 Conditional Directive Statements Iif 44440444nHHnnnnnnnnnnnnnnnnnnnnnnnnnnn 16 2 2 9 Error Comment Block Usage 16 23 EDT DEC OMA Ri 16 A DEINES USAS is ARS 16 2 5 Includes SAGE cia aaa 17 2 5 GUIS USAS nai LR Ia Feds A pe s aa Rahs 17 2 2 Protocols Usage 2 ae ia 18 2 9 PPS A ee ET EET 18 2 9 LibraryClasses Usage a 18 2 10 na CA DA USOS nun elek E 18 2 11 UserExtensions Usage econo ae ae a 20 3 EDK II DEC File Format a ni 23 3 General Rules a io 23 A O A A TEE AAE S AE 23 3 1 2 White space characters u ee 23 3 1 3 Paths for fileriames eden mb ica 24 3 2 Package Declaration DEC DEfiniti0NS ii 24 93 2 T Common DENMINONSS su essen 24 3 2 2 MACROS c lee 32 Version 1 24B March 2015 7 EDK Il FDF File Spec 3 2 3 Conditional Statements na ae ee 33 324 Include Statement ass ee ah 33 3 2 5 Error Comment Section I A ne 34 3 3 Header Comment Section nee re 34 3 4 Defines Section acc I E 38 3 5 11n6lud88 Sections ss dnd 39 A E 41 Si Protocols Sections sra io ee 43 DS IPR IS SECCION EM Em 45 3 9 LibraryClasses Sections cui 47 Edere 50 3A T4 Us rExtansions Sections de aid 57 Appendix A DEG Examplese 22 LE 59 AA EDK II IntelFrameworkPkg Example 60 AZ EDK IlI EmulatorPkg Example ana tenda che eere laica 69 A 3 SNSUBINPR AECA RM C 72 AA VeliGpupkg dee 2 7
36. 8 and new versions of this specification must increment the minor 0018 portion of the specification code This value may also be specified as a decimal value 1 24 Existing DEC files are not required to update the DEC_SPECIFICATION version value This value may be used by tools to identify any new functionality introduced by this specification version Tools are allowed to use the PACKAGE_GUID and PACKAGE_VERSION values for testing dependencies This is particularly import for creating UEFI Distribution Packages as they are required fields in the distribution package description file Note that comments may be appended to define statements as well as located anywhere within the Defines section 36 March 2015 Version 1 24B EDK II FDF File Spec EDK II DEC File Format Prototype lt defines gt Defines lt EOL gt lt TS gt DEC_SPECIFICATION lt Eq gt lt SpecVer gt lt EOL gt lt TS gt PACKAGE NAME lt Eq gt lt UiNameType gt lt EOL gt lt TS gt PACKAGE GUID lt Eq gt lt RegistryFormatGUID gt lt EOL gt lt TS gt PACKAGE VERSION lt Eq gt lt DecimalVersion gt lt EOL gt lt TS gt PACKAGE UNI_FILE lt Eq gt lt Filename gt lt EOL gt lt MacroDefinition gt lt UiNameType gt Word SpecVer lt HexVersion gt 0 9 0 9 Parameters UiNameType The PACKAGE NAME value may be used for creating directories DecimalVersion This is a decimal numbe
37. Bold typeface identifies a processor register name In other instances a Bold typeface can be used as a running head within a paragraph Italic In text an Italic typeface can be used as emphasis to introduce a new term or to indicate a manual or specification name Computer code example code segments and all prototype code segments use a BOLD Monospace typeface with a dark red color These code listings normally appear in one or more separate paragraphs though words or segments can also be embedded in a normal text paragraph Bold Monospace Words inaBold Monospace typeface that is underlined and in blue indicate an active hyper link to the code definition for that function or type definition Click on the word to follow the hyper link VAR Italic Monospace This symbol VAR defined by the utility or input files In code or in text words in Italic Monospace indicate placeholder names for variable information that must be supplied i e arguments Note Due to management and file size considerations only the first occurrence of the reference on each page is an active link Subsequent references on the same page will not be actively linked to the definition and will use the standard non underlined BOLD Monospace typeface Find the first instance of the name in the underlined BOLD_Monospace typeface on the page and click on the word to jump to the function or type definition The following typographic convention
38. C File Format lt PcdSections gt lt PcdFeature gt lt PcdOther gt lt FFSectionTag gt lt FFEntries gt lt TS gt lt PcdDescription gt lt TS gt lt Prompt gt lt List gt lt Express gt lt TS gt lt PcdBool gt PcdsFeatureFlag lt com_FFattribs gt lt EOL gt common lt FFattribs gt lt attrs gt lt TS gt PcdsFeatureFlag lt attrs gt lt PcdType gt lt com_or_attribs gt lt EOL gt lt PcdEntries gt PcdsPatchableInModule PcdsFixedAtBuild PcdsDynamic PcdsDynamicEx lt com_attribs gt lt attribs gt common lt TS gt lt PcdType gt common lt attrs gt lt TS gt lt PcdType gt lt attrs gt arch TS lt PcdDescription gt lt TS gt lt Prompt gt lt DoxComment gt lt PcdEntry gt lt TS gt lt PcdBool gt lt PcdNumEntry gt lt PcdPtr gt lt Pcd8 gt lt Pcd16 gt lt Pcd32 gt lt Pcd64 gt lt PcdName gt lt FS gt lt BoolPcd gt lt FS gt lt Token gt lt CbOrEol gt lt BoolType gt lt FS gt BOOLEAN lt CommentBlock gt lt EOL gt lt PcdName gt lt FS gt lt PcdUint8 gt lt FS gt lt Token gt lt CbOrEol gt lt NumValUint8 gt FS UINT8 March 2015 49 EDK Il DEC File Format 50 lt Pcd16 gt lt PcdUint16 gt lt Pcd32 gt lt PcdUint32 gt lt Pcd64 gt lt PcdUint64 gt lt PcdPtr gt lt PcdPtrVal gt lt Ptr
39. DK II build tools must not process any files listed in this section Summary This section is used by the Intel UEFI Packaging Tool that is distributed as part of the EDK II BaseTools to locate files listed under this section header and add them to the UEFI distribution package When installing a UEFI distribution package these files will be installed in the package s directory tree Version 1 24B March 2015 55 EDK II DEC File Format EDK Il FDF File Spec Prototype lt UserExtensions gt UserExtensions lt TcEf gt lt EOL gt lt FileNames gt lt TcEf gt TianoCore DblQuote ExtraFiles DblQuote FileNames TS RelativePath File lt EOL gt Parameters FileNames Paths listed in the filename elements of the this section must be relative to the directory the DEC file resides in Use of and in the directory path is not permitted Example UserExtensions TianoCore ExtraFiles Readme txt 56 March 2015 Version 1 24B EDK II FDF File Spec Appendix A DEC Examples The following are examples of EDK II package declaration DEC files Line extension characters are not permitted in the DEC file they are used here for readability The first example shows a DEC file for a package that provides only library class definitions and library instances The second example shows a DEC file that provide library class definitions library instances and drivers The third example show
40. DXE_DRIVER DXE_SMM_DRIVER MdeModule Debug Agent GUID gEfiDebugAgentGuid 0x865a5a9b 0xb85d 0x474c 0x84 0x55 0x65 0xd1 Oxbe 0x84 0x4b 0xe2 Unlike GUIDs Protocols and PPIs the PCD entries are not associated with a header file so the general format is 12 March 2015 Version 1 24B EDK II FDF File Spec DEC File Overview CommentBlock CommentBlockCont Entry lt ShortSingleCommentBlock gt Example DXE_DRIVER DXE_SMM_DRIVER S3 support The PCD is used to specify memory size with page number for a pre allocated ACPI NVS memory to be used by PEI in S3 phase The default size 32K When changing the value of this PCD the platform developer should make sure the memory size is large enough to meet PEI requirement in S3 phase gEfiTModPkgTokenSpaceGuid PcdS3AcpiReservedMemorySize 0x8000 UINT32 0x30000007 2 2 3 Valid Entries Processing of the line is terminated if a comment is encountered or by the end of the line Entries in this file not comments are not allowed to span multiple lines Items in quotation marks are treated as a single token and have the highest precedence All expressions must be written using in fix notation operators are written between the operands Parenthesis surrounding groups of operands and operators are recommended to determine the order in which operations are to be performed to remove ambiguity All other proce
41. E EE HE EE HE E E E E E EH E Global Guid Definition section list of Global Guid C Name Data Structures that are provided by this package AAA Guids common gPcdHobGuid 0x582E7CA1 Ox68CD 0x4D44 0xB4 0x3B 0xF2 0x98 OXED 0x58 0x7B OxAO gEfiWinNtPassThroughGuid OxCC664EB8 0x3C24 0x4086 OxB6 OxF6 0x34 0UxE8 0x56 OxBC OxE3 0x6E gEfiWinNtCPUSpeedGuid 0xD4F29055 OxElFB 0x11D4 X OxBD 0x0D 0200 0x80 OxCT7 0x3C 0x58 OxSl kj gEfiWinNtCPUModelGuid OxBEE9B6CE Ox2F8A 0x11D4 OxBD QsxOD 0x00 0x90 O0xC7 Ox3G 0x88 0x8l gEfiWinNtMemoryGuid 0299042912 0x122A 0x11D4 OxBD 0x0D 0x00 0x30 OxC7 0x30 0x88 0x81 F gEfiWinNtConsoleGuid 0xBA73672C OxA5D3 0x11D4 OxBD 0x00 0x00 0x80 OxC7 0x3C 0x88 0x81 gEfiWinNtUgaGuid OxAB248E99 OxABEl 0x11D4 OXBD O0x0D 0200 08280 OxCT 0x30 0x98 0x81 7 gEfiWinNtGopGuid 0x4elle955 Oxccca 0x11d4 Oxbd 0Ux0a 0x00 0x80 O0xc7 0x30 0x88 0x81 gEfiWinNtSerialPortGuid 0x0C95A93D OxA006 0x11D4 OXBC OXFA 0X00 0x80 0x C7 0x3C 0x88 0x81 gEfiWinNtFileSystemGuid 0x0C95A935 OxA006 0x11D4 OxBC OxFA 0x00 Ox80 0xC7 0x3C 0x88 0x81 gEfiWinNtPhysicalDisksGuid 0x0C95A92F OxA006 Ox11DA X OxBC OxFA 0x00 0x80 OxC7 0x3C 0x88 Ux8l gEfiWinNtVirtualDisksGuid 0x0C95A928 OxA006 Ox11DA OxBC OxFA 0x00 0x80 0xC7 Ox3C 0x88 0x81 gEfiEdkNt32PkgTokenSpaceGuid 0x0D79A6
42. EDK II Package Declaration DEC File Format Specification March 2015 Revision 1 24 w Errata B EDK Il FDF File Spec Acknowledgements THIS SPECIFICATION IS PROVIDED AS IS WITH NO WARRANTIES WHATSOEVER INCLUDING ANY WARRANTY OF MERCHANTABILITY NONINFRINGEMENT FITNESS FOR ANY PARTICULAR PURPOSE OR ANY WARRANTY OTHERWISE ARISING OUT OF ANY PROPOSAL SPECIFICATION OR SAMPLE Intel products are not intended for use in medical life saving or life sustaining applications Intel may make changes to specifications and product descriptions at any time without notice Designers must not rely on the absence or characteristics of any features or instructions marked reserved or undefined Intel reserves these for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them A license is hereby granted to copy and reproduce this specification for internal use only No other license express or implied by estoppel or otherwise to any other intellectual property rights is granted herein Intel disclaims all liability including liability for infringement of any proprietary rights relating to use of information in this specification No license express or implied by estoppel or otherwise to any intellectual property rights is granted herein This specification is an intermediate draft for comment only and is subject to change without notice Readers should not des
43. EbdaReservedMemorySize 0x8000 UINT32 0x30000005 Specify memory size with page number for a pre allocated ACPI NVS memory to be used by PEI in S3 phase The default size 32K When changing the value of this PCD the platform developer should make sure the memory size is large enough to meet PEI requiremnt in S3 phase Prompt Reserved S3 Boot ACPI Memory Size gEfilntelFrameworkModulePkgTokenSpaceGuid PcdS3AcpiReservedMemorySize 0x8000 UINT32 0x30000006 Specify memory size for boot script executor stack usage in S3 phase The default size 32K When changing the value of this PCD the platform developer should make sure the memory size is large enough to meet boot script executor requiremnt in S3 phase Prompt Reserved S3 Boot Script Stack ACPI Memory Size gEfilntelFrameworkModulePkgTokenSpaceGuid PcdS3BootScriptStackSize X 0x8000 UINT32 0x30000007 Specify the end of address below 1MB for the OPROM Version 1 24B March 2015 67 68 EDK Il FDF File Spec The last shadowed OpROM should not exceed this address Prompt Top Address of Shadowed Legacy OpROM Expression 0x80000001 gEfilntelFrameworkModulePkgTokenSpaceGuid PcdEndOpromShadowAddress lt 0x100000 gEfilntelFrameworkModulePkgTokenSpaceGuid PcdEndOpromShadowAddress Oxdffff UINT32 0x30000008 Specify the low PMM Post Memory Manager size with bytes below 1MB The valu
44. IS WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND EITHER EXPRESS OR IMPLIED Defines DEC_SPECIFICATION 0x00010018 PACKAGE_NAME EmulatorPkg PACKAGE_GUID 36E48BD7 7D92 5A47 A2CD 513F072E3300 PACKAGE_VERSION 0 1 Includes Include LibraryClasses ThunkPpiList Include Library ThunkPpiList h ThunkProtocolList Include Library ThunkProtocolList h EmuThunkLib Include Library EmuThunkLib h KeyMap Include Library KeyMapLib h PpiListLib Include Library PpiListLib h SmbiosLib Include Library SmbiosLib h Protocols gEmuThunkProtocolGuid 0x5CF32E0B 0x8EDF 0x2E44 x9C OxDA 0x93 0x20 0x5E 0x99 OxRE OxiC gEmuloThunkProtocolGuid 0x453368F6 0x7C85 0x434A OXAS 0Ox8A Ox 72 OxD1 0xB7 OxFF 0X49 0x26 gEmuGraphicsWindowProtocolGuid 0x30FD316A 0x6728 0x2E41 0xA6 0x90 0x0D 0x13 0x33 0xD8 OxCA 0xCl gEmuThreadThunkProtocolGuid 0x3B1E4B7C 0x09D8 0x944F OxA4 0x08 0x13 0x09 OxEB Ox8B 0x44 0x27 Version 1 24B March 2015 69 EDK Il FDF File Spec gEmuBlockIoProtocolGuid 0x6888A4AE OxAFCE 0xE84B 0x91 0x02 0xF7 0xB9 0xDA OxEO OxAO 0x30 gEmuSnpProtocolGuid 0xFD5FBE54 0x8035 OxB345 X Ox8A Ox F 0x7A 0xC8 0xA5 OxFD 0x05 0x21 Ppis gEmuThunkPpiGuid OxEII3F896 0x75CF OxF640 0x31 Ox7F 0xC8 0x5A 0x79 OxES OxAE 0x67 Guids gE
45. Major gt lt Minor gt lt DecimalVersion gt lt VersionVal gt lt GUID gt lt RegistryFormatGUID gt lt RHex4 gt lt RHex8 gt lt RHex12 gt lt RawH2 gt lt RawH4 gt lt OptRawH4 gt lt Hex2 gt lt Hex4 gt lt Hex8 gt lt Hex12 gt lt Hex16 gt lt CFormatGUID gt Version 1 24B EDK II DEC File Format L lt QuotedString gt a A F0 9 0x 0X lt HexDigit gt lt HexDigit gt Ox OX lt HexDigit gt Ox 0 lt Major gt lt Minor gt lt HexDigit gt lt HexDigit gt lt HexDigit gt lt HexDigit gt lt HexDigit gt lt HexDigit gt lt HexDigit gt lt HexDigit gt 0 1 9 0 9 0 9 lt HexVersion gt 0 9 0 99 lt RegistryFormatGUID gt lt CFormatGUID gt lt RHex8 gt lt RHex4 gt lt RHex4 gt lt RHex4 gt lt RHex12 gt lt HexDigit gt lt HexDigit gt lt HexDigit gt lt HexDigit gt lt RHex4 gt lt RHex4 gt lt RHex4 gt lt RHex4 gt lt RHex4 gt lt HexDigit gt lt HexDigit gt lt HexDigit gt lt HexDigit gt lt HexDigit gt lt HexDigit gt lt HexDigit gt lt HexDigit gt lt HexDigit gt lt HexDigit gt Ox 0X lt RawH2 gt Ox OX lt RawH4 gt Ox OX OptRawH4 lt RawH4 gt Ox OX lt OptRawH4 gt lt OptRawH4 gt lt RawH4 gt Ox OX lt OptRawH4 gt lt OptRawH4 gt lt OptRawH4 gt lt RawH4 gt lt Hex8 gt
46. PCDs Declared by this package Only this package should be providing the declaration other packages should not FEFE TEHE E TE FE TE FE HE TE AE HE FE FE HE FE HE TE FE HE TE FE HE FE HE TE FE E TE FE HE TE HE TE FE HE TE FE E TE FE HE TE FE TE FE E TE FE HE TE FE E TE AE E E E E E EE E EE EH E E PcdsFeatureFlag common If TRUE the component name protocol will not be installed gEfiMdePkgTokenSpaceGuid PcdComponentNameDisable FALSE BOOLEAN 0x0000000d If TRUE the driver diagnostics protocol will not be installed gEfiMdePkgTokenSpaceGuid PcdDriverDiagnosticsDisable FALSE BOOLEAN 0x0000000e PcdsFixedAtBuild common Indicates the maximum length of unicode string gEfiMdePkgTokenSpaceGuid PcdMaximumUnicodeStringLength 1000000 UINT32 0x00000001 Indicates the maximum length of ascii string gEfiMdePkgTokenSpaceGuid PcdMaximumAsciiStringLength 1000000 UINT32 0x00000002 Indicates the maximum node number of linked list gEfiMdePkgTokenSpaceGuid PcdMaximumLinkedListLength 1000000 UINT32 0x00000003 PcdsFixedAtBuild common PcdsPatchableInModule common This flag is used to control the printout of DebugLib gEfiMdePkgTokenSpaceGuid PcdDebugPrintErrorLevel 0x80000000 UINT32 0x00000006 Indicates the allowable maximum number in extract handler table gEfiMdePkgTokenSpaceGuid PcdMaximumGuidedExtractHandler 0x10 UINT32 0x00000025
47. Prototype lt Header gt lt SourceHeader gt lt Filename gt lt Abstract gt lt Description gt lt Copyright gt lt CopyName gt lt Date gt lt Year gt lt DateList gt lt DateRange gt lt CompInfo gt lt Arr gt lt License gt lt BinaryHeader gt EDK Il FDF File Spec lt SourceHeader gt lt BinaryHeader gt lt Comment gt lt Space gt Space file lt TS gt lt File gt lt EOL gt lt Abstract gt lt Description gt lt Copyright gt H lt EOL gt lt License gt lt EOL gt lt Word gt lt Extension gt lt AsciiString gt lt EOL gt lt EOL gt lt AsciiString gt lt EOL gt i lt EOL gt lt TabSpace gt lt CopyName gt lt Date gt lt CompInfo gt Portions lt MTS gt Copyright c lt MTS gt Year lt TS gt lt DateList gt lt DateRange gt 2 0 9 0 9 0 9 lt CommaSpace gt lt Year gt lt CommaSpace gt lt Year gt TS Year 0x20 Ox7e MTS Arr All rights reserved lt TS gt BR lt EOL gt TS AsciiString lt EOL gt lt EOL gt Space Space BinaryHeader lt EOL gt lt BinaryAbstract gt d lt EOL gt lt BinDescription gt lt EOL gt lt Copyright gt lt EOL gt lt BinaryLicense gt lt EOL gt lt EOL gt March 2015 Version 1 24B EDK Il FDF
48. TS gt lt PATH gt lt Word gt h lt TS gt lt TS gt lt AsciiString gt lt EOL gt lt TS gt lt TS gt lt AsciiString gt lt EOL gt lt TS gt lt TS gt lt ModuleTypeList gt lt Comment gt lt EOL gt Path to the Protocol header file statement listed in comments in this section must be relative to the directory that contains the DEC file Use of or inthe directory path is prohibited Restrictions It is NOT permissible to list a Protocol entry under common and under a specific architecture It is permissible to specify Protocol entries under all architectures except common if different Guid values may be required for different architectures 42 March 2015 Version 1 24B EDK II FDF File Spec EDK II DEC File Format Example 4 TE FE E TE AAA Global Protocols Definition section list of Global Protocols C Name Data Structures that are provided by this package AAA Protocols common gEfiWinNtThunkProtocolGuid 0x58C518B1 0x76F3 0x11D4 1 OxBC OXEA 0x00 0x80 OxC7 O0x3C 0x88 0x81 gEfiWinNtloProtocolGuid Ox96EB4AD6 0xA32A 0x11D4 OxBC OxFD 0X00 0x80 0xC7 0x3C 0x88 0x81 3 8 PPIs Sections These sections are optional Summary Defines the optional Ppis section tag This is a list of the global PPI C Names that are referenced in the EDK II package s module C code PPI entries listed in
49. Val gt lt Token gt lt DoxComment gt lt Prompt gt lt Range gt lt ERangeValues gt lt List gt lt EValidValueList gt lt Express gt lt EExpression gt lt ErrorCode gt lt PcdDescription gt lt CommentBlock gt lt RangeValues gt lt RngOp gt lt RangeExpress gt lt PcdName gt lt FS gt lt NumValUint16 gt lt PcdName gt lt FS gt lt NumValUint32 gt EDK Il FDF File Spec lt PcdUint16 gt lt FS gt lt Token gt lt CbOrEol gt lt FS gt UINT16 lt PcdUint32 gt lt FS gt lt Token gt lt CbOrEol gt lt FS gt UINT32 lt PcdName gt lt FS gt lt PcdUint64 gt lt FS gt lt Token gt lt CbOrEol gt lt NumValUint64 gt lt FS gt UINT64 lt PcdName gt lt FS gt lt PcdPtrVal gt lt FS gt lt Token gt lt CbOrEol gt lt PtrVal gt lt FS gt VOID lt CString gt lt CArray gt lt NumValUint32 gt lt TS gt lt Range gt lt List gt lt Express gt d TS Prompt MTS lt AsciiString gt lt EOL gt d TS QValidRange TS lt ERangeValues gt lt EOL gt lt ErrorCode gt lt TS gt lt RangeValues gt d TS QValidList TS lt EValidValueList gt lt EOL gt lt ErrorCode gt lt TS gt lt ValidValueList gt d TS QExpression TS lt EExpression gt lt EOL gt lt ErrorCode gt TS Expression NumValUint32 FS lt AsciiString gt lt EOL gt lt TS gt
50. Version 1 24B EDK II FDF File Spec DEC File Overview content from common sections if specified with the architectural section appended to the first into an architectural section For example given the following Includes Includes Includes IA32 Includes la32 Includes X64 Includes X64 After the first pass of the tools when building the module for IA32 the source files will logically be Includes IA32 Includes Includes la32 When building the module for X64 the source files will logically be Includes X64 Includes Includes X64 The Defines section tag prohibits use of architectural modifiers All other sections can specify architectural modifiers 2 2 2 Comments The hash character indicates comments in the Declaration DEC file In line comments terminate the processing of a line In line comments must be placed at the end of the line and may not be placed within the section 1 tags Only gPkgTSGuid PcdFoo TRUE BOOLEAN 0x00000015 in the following example is processed by tools the remainder of the line is ignored gPkgTSGuid PcdFoo TRUE BOOLEAN 0x00000015 EFI_COMPUTING_UNIT_MEMORY Note Blank lines and lines that start with the hash character must be ignored by tools Hash characters appearing within a quoted string are permitted with the string being processed as a single token The following example must handle the quoted string as single element by tools UI
51. aceGuid PcdEmuGop L GOP Window VOID 0x00001018 gEmulatorPkgTokenSpaceGuid PcdEmuFileSystem L 1 EdkShellBinPkg bin ia32 Apps VOID 0x00001004 gEmulatorPkgTokenSpaceGuid PcdEmuSerialPort L dev ttySO VOID 0x00001002 gEmulatorPkgTokenSpaceGuid PcdEmuNetworkInterface L enO VOID N 0x0000100d gEmulatorPkgTokenSpaceGuid PcdEmuCpuModel L Intel R Processor Model VOID 0x00001007 gEmulatorPkgTokenSpaceGuid PcdEmuCpuSpeed L 3000 VOID 0x00001008 gEmulatorPkgTokenSpaceGuid PcdEmuMpServicesPollingInterval 0x100 UINT64 0x0000101a Version 1 24B March 2015 71 EDK Il FDF File Spec A 3 ShellBinPkg dec The following is an example of a DEC file where only binary modules are provided no libraries or source code is present in the package s directory tree 72 March 2015 Version 1 24B EDK II FDF File Spec file UEFI 2 0 Shell Binary Package This package contains binary shell application that follows UEFI specification and UEFI Shell 2 0 specification f Copyright c 2011 Intel Corporation All rights reserved lt BR gt 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
52. additional information regarding PCDs Only the DynamicEx access methods are defined in the PI Specification the remaining types are specific to this EDK II Build System Generally the fixed and patchable PCDs are used to set static configuration elements that can be determined at build time or modified prior to inserting a module into a flash image Dynamic and DynamicEx PCDs are used for configuration knobs that may be manipulated by setup screens or other methods during the boot process Information in this section is used to create entries in the AutoGen c and AutoGen h files for EDK II modules The PCD is used for configuration when the PCD value is produced and consumed by drivers during execution the value may be user configurable from setup or the value is March 2015 Version 1 24B EDK II FDF File Spec DEC File Overview produced by the platform in a specified area It is associated with modules that are released in source code The Patchablel nModule and DynamicEx PCD access methods are associated with modules that are released as binary only modules The FeatureFlag PCD is used to enable some code paths PCDs are usually defined by a specification that defines the name token number token space guid datum type A default value and valid usages may also be given in the industry specification If a developer needs to create a new PCD they can following the conventions listed in the Pl specification Only PCDs that will be share
53. age e An image that is loaded into an Option ROM device on an add in card e A bootable image that is installed on removable bootable media such as a Floppy CD ROM or USB storage device e An image that is contains update information that will be processed by OS Runtime services to interact with EFI Runtime services to update a traditional ROM image e A UEFI application that can be accessed during boot at an EFI Shell Prompt prior to hand off to the OS Loader Foundation The set of code and interfaces that glue implementations of EFI together Framework Intel Platform Innovation Framework for EFI consists of the Foundation plus other modular components that characterize the portability surface for modular components designed to work on any implementation of the EFI architecture GUID Globally Unique Identifier A 128 bit value used to name entities uniquely A unique GUID can be generated by an individual without the help of a centralized authority This allows the generation of names that will never conflict even among multiple unrelated parties GUID values can be registry format 8 4 4 4 12 or C data structure format GUID also refers to an API named by a GUID HII Human Interface Infrastructure This generally refers to the database that contains string font and IFR information along with other pieces that use one of the database components HOB Hand off blocks are key architectural mechanisms that are used to
54. arch 2015 EDK Il FDF File Spec 1 22 w Errata B cont 1 22 w Errata C Updates June 2012 Updated UEFI PI Spec version in chapter 1 3 to include Errata letters In Section 3 10 modified the optional error number in DoxComment definitions for PCDs from lt HexDigit gt to lt ErrorCode gt and defined lt ErrorCode gt to be of type lt NumValUint32 gt also added a after the value to separate the error code from numeric values Added AsBuilt entries for Abstract and Description Clarified that the file must use the DOS end of line character sequence OxOD 0x0A Updates August 2013 Updated UEFI PI Specification version support in chapter 1 Modified examples to correct previous errors Removed errors from text Updated examples Modified EBNF to prevent using the architectural modifier of common with any other architecture Ensure that wording specifically states that the architecture modifiers are not case sensitive Add description of PCD processing rules in section 3 10 Allow registry format GUID values in GUIDs Protocols PPIs sections instead of requiring C format GUID values which will continue to be allowed The error codes are scoped to the TokenSpaceGUID not to the PCD Added reference to the EDK II Build Specification for PCD processing rules 1 24 1 24 w Errata A 1 24 w Errata B Updates August 2014 Change revision number of this specification from 1 22 to 1 24 Up
55. ary PerformanceLib h PeiServicesTablePointerLib Include Library PeiServicesTablePointerLib h PeimEntryPoint Include Library PeimEntryPoint h PeiServicesLib Include Library PeiServicesLib h PeiCoreEntryPoint Include Library PeiCoreEntryPoint h PeCoffLib Include Library PeCoffLib h BaseLib Include Library BaseLib h LibraryClasses IA32 UefiApplicationEntryPoint Include Library UefiApplicationEntryPoint h UEFI_APPLICATION LibraryClasses X64 UefiApplicationEntryPoint Include Library UefiApplicationEntryPoint h UEFI_APPLICATION LibraryClasses IPF UefiApplicationEntryPoint Include Library UefiApplicationEntryPoint h UEFI_APPLICATION LibraryClasses EBC UefiApplicationEntryPoint Include Library UefiApplicationEntryPoint h UEFI_APPLICATION Version 1 24B March 2015 47 EDK Il DEC File Format EDK II FDF File Spec 3 10 PCD Sections 48 These are optional sections However if modules in this package s directory tree use a PCD that is not declared in other DEC files then the package creator must list the PCD in this file Summary Defines the PCDs section tags in the DEC files There are five defined PCD access method types Do not confuse these access types with the data types of the PCDs The five access method types are PcdsFeatureFlag PcdsFixedAtBuild PcdsPatchableInModule PcdsDynamic and PcdsDynamicEx
56. ath is prohibited Restrictions It is NOT permissible to list a PPI entry under common and under a specific architecture It is permissible to specify PPI entries under all architectures except common if different Guid values may be required for different architectures March 2015 Version 1 24B EDK II FDF File Spec EDK II DEC File Format Example FEFE TE FE E TE FE TE FE HE TE FE E FE FE HE HH EE TE FE HE FE HE TE FE E FE HE EH EE HE FE FE E TE FE HE TE FE TE FE EEE EE EE HE TE HEHEHE EEE EEE Global Ppis Definition section list of Global Ppis C Name Data Structures that are provided by this package AAA Ppis common gPeiNtThunkPpiGuid 0x98C281E5 OxF906 0x43DD QxA9 0x2B 0x0 0x03 0xBF 0x27 0x65 OXDA gNtPeiLoadFilePpiGuid OxFDOC65EB 0x0405 0x4CD2 Ox8A OxEE OxF4 0x00 OxEF 0x13 OxBA OxC2 gNtFwhPpiGuid 0x4E76928F Ox50AD 0x4334 0xB0O 0x6B OxAS 0x42 0x13 0x10 OxSA Ox57 gPeiNtAutoScanPpiGuid 0x0DCE384D 0x007C Ox4BA5 0x94 OxBD OxOF 0x6E OxB6 Ox4D Ox2A OxA9 3 9 LibraryClasses Sections These sections are optional Summary Defines the LibraryClasses tag in the DEC files The LibraryClasses section maps the location relative to the DEC file of library ClassName to the header file for the library class specified by the ClassName ClassName entries listed in architectural sections are not permitted
57. cters are not permitted between the PcdTokenSpaceGuidCName and the dot nor are they permitted between the dot and the PcdCName 3 1 3 Paths for filenames Note that for specifying the path for a file name if the path value starts with a dollar sign character a local MACRO is being specified White space characters are not permitted in path names Caution The use of and in a path element is prohibited For all EDK II DEC files the directory path must use the forward slash character for separating directories For example MdePkg Include is Valid Unless otherwise noted all file names and paths must be relative to the directory where the DEC file is located 3 2 Package Declaration DEC Definitions This section defines content and format of a package declaration file The Defines section must appear before any other section except the lt Header gt comment block The header when specified is always the first section of a DEC file The remaining sections may be specified in any order within the DEC file Summary The EDK Il Package Declaration DEC file has the following format using the EBNF lt EDK_II_DEC gt Header Defines lt Includes gt lt LibraryClass gt lt Guids gt lt Protocols gt lt Ppis gt lt Pcd gt lt UserExtensions gt 3 2 1 Common Definitions Summary The following are common definitions used by multiple section types in EDK II meta data documents
58. d between multiple users need to be defined in published architectural specs If a PCD is only going to be used by a single organization then a new PCD can be created within the organization keeping all modules that use the PCD internal to the organization Every PCD PcdName is identified by a two part definition the PCD s Token Space Guid CName and the PCD CName These two parts are separated by a period character Together these two parts make up the first field in a PCD Entry Refer to the PCD Sections definition later in this document for a complete description of this section and its contents This section resembles one of the following section definitions PcdsFeatureFlag PcdsFeatureFlag common PcdsFixedAtBuild IA32 PcdsPatchableInModule X64 PcdsDynamic IPF PcdsDynamicEx EBC The EDK II build system supports five PCD types Feature Flag Fixed At Build Patchable In Module Dynamic and DynamicEx These types indicate access methods for get set operations The PcdsDynamicEx method is defined by the Pl specification A PCD may be listed under multiple PCD type sections except Feature Flag PCDs Listing a PCD in multiple sections indicates that modules have been coded to use in any one of the non feature flag types It recommended that modules use either the FeatureFlag PCD or use the flexible INF file s Pcd section for access If a module is coded for only one type of access such as FixedAtBuild then it ca
59. dated DEC_SPECIFICATION to 0x00010017 Added additional parameter definitions for clarification of the comment content for PCDs Added the PACKAGE UNI FILE entry to the Defines section Added reserved TianoCore user extension for ExtraFiles Added PCD comment type for Error which is used to map an error code for a given token space to a specific string Updates December 2014 Changed DEC_SPECIFICATION to 0x00010018 and allow specifying it as a decimal i e 1 24 Updated specification dates and added two new specifications in section 1 2 Removed expression EBNF as it has been replaced by the EDK II Expression Syntax Specification Updates March 2015 Update link to the EDK Il Specifications fixed the name of the Multi String UNI File Format Specification March 2015 Version 1 24B EDK II FDF File Spec Contents 1 A MES 1 REG DI MER ETE RE 1 1 2 Related Information seele aaa 1 ORC ERRO Re RR A A E E 2 1 4 Target Audiente is une era a 5 1 5 Conventions Used inthis D cument n sende daa 5 1 5 1 Data Strueture Desenptions naeh eek 5 1 5 2 Pseudo Code CONVENTIONS ern ee 6 1 5 3 Typographic Conventions cnc ea a 6 2 DEC Flle Overview ee ea ei 9 2 AV USAGE Overview EE 9 2 2 Declaration File Format nun bin 10 2 2 1 SOCOM ENIES nadaa 10 22 2 COMMONS clear 11 2 2 3 Valld Entres urea ash heine 13 2 2 4 Naming Conventio NS sse ee 13 2 2 5 linclude Statements E 14 2 2
60. e identical error types an error number with an associated error message may be shared The syntax described here can be used by tools to map these error numbers by a token space GUID C name These comment blocks must appear before content might be used in later sections of the DEC file Prototype ErrNoBlock TS j lt EOL gt TS MTS Error TSpaceGuidCName lt EOL gt TS 4 MTS UINT32 FS AsciiString lt EOL gt TS lt EOL gt Example Error gEfilntelFrameworkModulePkgTokenSpaceGuid 0x80000001 Invalid value provided 0x80000002 Reserved bits must be set to zero HE 3 3 Header Comment Section This is an optional section for EDK II packages that will not be distributed using tools that create UEFI Distribution Packages It is required for EDK II packages that will be distributed using tools that create UEFI Distribution Packages 32 March 2015 Version 1 24B EDK II FDF File Spec EDK II DEC File Format Summary The Copyright and License notices for the DEC file are in the comments that start the file The format for the comment section is file Abstract Description Copyright License gg This information can be derived from an XML Distribution package file UEFI Packaging Specification or from a developer creating a new package declaration DEC document Version 1 24B March 2015 33 EDK II DEC File Format
61. e Spec All EDK II directories that are architecturally dependent must use a name with only the first character capitalized followed by lower case characters or numeric characters la32 Ipf X64 and Ebc are valid architectural directory names 1A32 IPF and EBC are not acceptable directory names and may cause build breaks From a build tools perspective an 1A32 directory name is not equivalent to la32 or a32 e When an architecture is used in a directory name the directory content must be listed in a section that uses the matching architecture modifier If acommon section contains filenames that have directories with architecture modifiers the file will be processed for all architectures not just the architecture specified in the directory name e Absolute paths are not permitted in EDK Il DEC files All paths specified are relative to the WORKSPACE system environment variable relative to the EDK II package directory containing the DEC file Space Characters in filenames The build tools must be able to process the tool definitions file tools_def txt describing the location and flags for compiler and user defined tools which may contain space characters in paths on Windows systems The EDK II Coding Style specification covers naming conventions for use within C Code files and as well as specifying the rules for directory and file names This section is meant to highlight those rules as they apply to the content of the DEC files Arc
62. e should be a multiple of 4KB Prompt Low PMM Post Memory Manager Size Expression 0x80000001 gEfilntelFrameworkModulePkgTokenSpaceGuid PcdLowPmmMemorySize lt 0x100000 AND gEfilntelFrameworkModulePkgTokenSpaceGuid PcdLowPmmMemorySize amp 0x1000 0 gEfilntelFrameworkModulePkgTokenSpaceGuid PcdLowPmmMemorySize 0x10000 UINT32 0x30000009 Specify the high PMM Post Memory Manager size with bytes above 1MB The value should be a multiple of 4KB Prompt High PMM Post Memory Manager Size Expression 0x80000001 A gEfilntelFrameworkModulePkgTokenSpaceGuid PcdHighPmmMemorySize amp 0x1000 gEfilntelFrameworkModulePkgTokenSpaceGuid PcdHighPmmMemorySize 0x400000 UINT32 0x3000000a March 2015 Version 1 24B EDK II FDF File Spec A 2 EDK II EmulatorPkg Example Qfile This is the Emu Emulation Environment Platform Copyright c 2008 2011 Intel Corporation All rights reserved lt BR gt Portions copyright c 2011 Apple Inc 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 BAS
63. ename Path portion of the header file statements in this section must be relative to the directory that contains the DEC file Use of or in the directory path is prohibited Restrictions It is NOT permissible to list a Library Class entry under common and under a specific architecture It is permissible to specify Library Class entries under all architectures except common if different header filename values are required for different architectures 46 March 2015 Version 1 24B EDK Il FDF File Spec EDK Il DEC File Format Example REE EEE HEH AE FE HE FE FE EEE EE FE AE FE AAA FE AE FE FE FE E FE TE FE E E E E E H Library Class Header section list of Library Class header files that are provided by this package AAA LibraryClasses common UefiRuntimeServicesTableLib A Include Library UefiRuntimeServicesTableLib h UefiLib Include Library UefiLib h UefiDriverModelLib Include Library UefiDriverModelLib h UefiDriverEntryPoint Include Library UefiDriverEntryPoint h UefiDecompressLib Include Library UefiDecompressLib h UefiBootServicesTableLib Include Library UefiBootServicesTableLib h TimerLib Include Library TimerLib h SmbusLib Include Library SmbusLib h ResourcePublicationLib Include Library ResourcePublicationLib h PostCodeLib Include Library PostCodeLib h ReportStatusCodeLib Include Library ReportStatusCodeLib h PrintLib Include Library PrintLib h PerformanceLib Include Libr
64. ense One or more licenses that the package with source code is released under BinaryLicense One or more licenses that the binary package is released under that may be different from the licenses used for distributing the package with source code Version 1 24B March 2015 35 EDK Il DEC File Format EDK II FDF File Spec Example HH file Framework Module Development Environment Industry Standards This Package provides headers and libraries that conform to EFI Framework Industry standards Copyright c 2006 2007 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 tt 3 4 Defines Section This section is required Summary This describes the Defines section which is required in all DEC files This file is created during installation of a UEFI distribution package or by the developer and is an input to the EDK II build tool parsing utilities Elements may appear in any order within this section The code for this specification is 0001001
65. f the reset vector SKU Stock Keeping Unit SMM System Management Mode A generic term for the execution mode entered when a CPU detects an SMI The firmware in response to the interrupt type will gain control in physical mode For this document SMM describes the operational regime for IA32 and x64 processors that share the OS transparent characteristics UEFI Application An application that follows the UEFI specification The only difference between a UEFI application and a UEFI driver is that an application is unloaded from memory when it exits regardless of return status while a driver that returns a successful return status is not unloaded when its entry point exits UEFI Driver A driver that follows the UEFI specification UEFI Specification Version 2 4 Current UEFI version UEFI Platform Initialization Distribution Package Specification Version 1 0 The current version of this specification includes Errata B UEFI Platform Initialization Specification 1 3 Current version of the Pl specification Unified EFI Forum A non profit collaborative trade organization formed to promote and manage the UEFI standard For more information see www uefi org VFR Visual Forms Representation VPD Vital Product Data that is read only binary configuration data typically located within a region of a flash part This data would typically be updated as part of the firmware build post firmware build via patching tools through automati
66. fically state that MACROVAL entries are expanded where they are used clarify that MACROS are only expanded not evaluated during initial parsing of the DEC file Added table that shows that every part of a path name can be replaced by a MACROVAL Clarify that C data arrays must be byte arrays for PCD value fields prohibit C format and Registry Format GUID structures in VOID PCD value fields Update non zero number is True only 0 is consideered False Prohibit specifying items as architecturally specific and also common Changed RegistryGuid to lt RegistryFormatGUID gt in 3 4 Defined GuidValue as a lt CFormatGUID gt for this release need to allow registry format in a future release Update the Includes Guids Protocols PPls LibraryClasses and PCD sections to allow an empty section Updated the format for lt QuotedString gt lt CString gt and lt UnicodeString gt Update PATH related EBNF Add lt MacroDefinition gt to Defines Includes and LibraryClasses sections Provide rules in 2 2 6 for how macros can be shared between different subsections 1 22 w Updates June 2012 Errata B Added a after Express in the DoxComment definition of PCDs as more than one expression can be specified in the UEFI PI Distribution Package Specification Added text describing the use of lt HexDigit gt for error numbers as well as how they are scoped Version 1 24B M
67. fields with an equal character separating the fields as shown below PpiCName C Format Guid Value Comment PpiCnamel RegistryFormatGUID Comment The Comment section can be used to identify the list of supported module types 2 9 LibraryClasses Usage This is an optional section This section is used to define the headers associated with the new EDK II library classes A library class is declared and its associated header file specified in this section The module library instances that satisfy a Library Class must use the Library Class Header file without modification Refer to the LibraryClasses definition later in this document for a complete description of this section and its contents This section uses one of the following section definitions LibraryClasses common LibraryClasses 1A32 LibraryClasses X64 LibraryClasses IPF LibraryClasses EBC LibraryClasses Format for the entries in this section is two fields with a pipe character as the field separator as shown below LibraryClassName Relative path and header filename h The relative path is relative to the directory the DEC file is in Use of or in the directory path is prohibited 2 10 PCD Usage These are optional sections These sections are used to declare basic information about PCDs Refer to the PI Specification as well as the EDK II Platform Configuration Database Infrastructure Descriptions document for
68. git lt HexDigit gt lt HexDigit gt Ox OX lt HexDigit gt lt HexDigit gt lt HexDigit gt lt HexDigit gt lt HexDigit gt lt HexDigit gt lt HexDigit gt lt HexDigit gt March 2015 Version 1 24B EDK Il FDF File Spec Note Note lt UINT64z gt lt ShortNum gt lt IntNum gt lt LongNum gt lt LongLongNum gt lt NumValUint8 gt lt NumValUint16 gt lt NumValUint32 gt lt NumValUint 64 gt lt ModuleType gt lt ModuleTypeList gt lt IdentifierName gt lt Boolean gt lt EOL gt lt OA gt lt arch gt EDK Il DEC File Format Ox OX lt HexDigit gt lt HexDigit gt lt HexDigit gt lt HexDigit gt lt HexDigit gt lt HexDigit gt lt HexDigit gt lt HexDigit gt lt HexDigit gt lt HexDigit gt lt HexDigit gt lt HexDigit gt lt HexDigit gt lt HexDigit gt lt HexDigit gt lt HexDigit gt 0 255 0 65535 0 4294967295 0 18446744073709551615 lt ShortNum gt lt UINT8 gt lt IntNum gt lt UINT16 gt lt LongNum gt lt UINT32 gt lt LongLongNum gt lt UINT64 gt BASE SEC PEI_CORE PEIM DXE CORE DXE_DRIVER SMM CORE DXE RUNTIME DRIVER DXE SAL DRIVER DXE SMM DRIVER UEFI DRIVER UEFI APPLICATION USER DEFINED lt ModuleType gt lt ModuleType gt TS lt MACROVAL gt lt PcdName gt TS lt BoolType gt Expression TS OxOD Ox0A a zA Z a zA 20
69. hat have a value associated with them be listed in PcdsFixedAtBuild PcdsPatchablel nModule PcdsDynamic and PcdsDynamicEx sections Module developers need to check what sections a specific PCD is listed in in order to Version 1 24B March 2015 19 DEC File Overview EDK II FDF File Spec code the module using the correct access type Also PCDs may have different default values for different architectures The format for entries in the PCDs sections is four fields with a pipe character as the field separator as shown below Comment TokenSpaceGuidCname PcdCnanme DefaultValue DatumType Token The Comment section can be used to identify the list of supported module types as well as to contain conditional test statements for acceptable values Default values listed in this file can be overridden by the default values specified in INF files provided all INF files use the same value for a PCD or by values specified in the DSC or FDF files of a platform The Token value is used programmatically in code The two PCD drivers use the token number to locate a PCD s value Feature Flag PCDs Feature Flag PCDs can only be listed in Feature Flag sections Only Feature Flag PCDs can be listed in Feature Flag sections VOI D PCD DatumType The declarations in this file do not include a maximum datum size for the vorzp PCDs It is recommended that the platform integrator allocate space for the content rather than depend on lett
70. hitecture keywords 1A32 IPF X64 and EBC are used by build tools and in meta data files for describing alternate threads for processing of files These keywords must not be used for describing directory paths Additionally directory names with architectural names 1a32 pf X64 and Ebc do not automatically cause the build tools or meta data files to follow these alternate paths Directories and Architectural Keywords are similar in name only For clarity this specification will use all upper case letters when describing architectural keywords and the directory names with only the first letter in upper case All directory paths within EDK II DEC files must use the forward slash character to separate directories as well as directories from filenames Example C Work Edk2 edksetup bat File names must also follow the same naming convention required for directories No white space characters are permitted The special characters permitted in directory names are the only special characters permitted in file names Absolute paths or relative paths outside of the directory the DEC file resides must not be used when specifying directories or filenames in any section of the DEC file 2 2 5 include Statements The include statement is NOT permitted in DEC files 2 2 6 Macro Statements Macro statements are permitted in the EDK II DEC files Macro statements assign a Value to a Variable Name and are only valid during the processing
71. ign products based on this document Other names and brands may be claimed as the property of others Copyright 2007 2015 Intel Corporation All rights reserved Revision History Revision Revision History Date 1 0 Initial release December 2007 1 1 Updated based on errata August 2008 1 2 Updated based on enhancement requests June 2009 1 21 Updated based on errata and for enhancement requests January 2010 Standardized the format for common content Added support for Keyword Doxygen tag Added support for ModuleType Doxygen tags Added support for ValidList DefaultValue and ValidRange Doxygen tags for PCDs Added PKG_UNI_FILE element to defines section 1 22 Errata and grammatical editing April 2010 2 March 2015 Version 1 24B EDK II FDF File Spec 1 22 w Updates December 2011 Errata A Updated to support UEFI version 2 3 1 and updated spec release dates in Introduction e Clarify UEFI s PI Distribution Package Specification Standardize Common data definitions for all specifications Grammatical formatting and spelling changes Replaced should with wording saying that it is recommended Added EBNF for Extension Added scoping rules for Macros clarified MACRO summary Added an example of a binary only DEC file Removed references to system environment variables in the Macros section Specifically state where lt MACROVAL gt can be used and where it is prohibited speci
72. ing tools compute the maximum value based on the greater of the lengths from the values in the DEC DSC and INF files However if the platform integrator does not specify a size in the DSC file the data size is calculated by the tools to be the greatest length of all values specified for this PCD listed in the DEC INF FDF and DSC files 2 11 UserExtensions Usage This is an optional section The EDK II user extensions section allows for extending the DEC files with custom processing The format for a user extension is UserExtensions UserID Identifier Data elements under the section header are not required this is an optional section Content of in this section is free form The EDK II build tools do not use this section and will ignore all content within a UserExtensions section The following is an example of a User Extensions section userextensions NoSuchCorp Script_1 0 NoSuch bat 2 11 1 UserExtensions TianoCore ExtraFiles Section 20 The EDK Il UserExtensions TianoCore ExtraFiles section allow for distributing extraneous files that are associated with a package Files listed in this section are not processed by EDK II build tools These files must exist in the directory or sub directories of the directory containing the DEC file March 2015 Version 1 24B EDK Il FDF File Spec DEC File Overview Note The Intel UEFI Packaging Tool will parse this section and for all files listed in this file
73. itted in EDK II DEC files 2 3 EDK II DEC Format EDK II DEC files can be created by package installation tools using the UEFI Distribution Package description files that accompany a distribution package They may also be created manually All content except section tag names within the EDK II DEC file is case sensitive 2 4 Defines Usage This is a required section The Defines section is used to track the package s GUID and version which allows multiple copies of the same package with different versions to exist within a single workspace Architectural modifiers are not permitted in the De ines section If major changes to a package occur the GUID value of the package must also change Additionally the package s version major number may change Minor changes require incrementing the package s version minor number The PACKAGE UNI FILE entry points to a UCS 2LE encoded file containing localization strings The file path if present is relative to the directory containing the INF file This section will use only one section header Defines The format for entries in this section is Name Value The following is an example of this section Defines DEC SPECIFICATION 0x00010018 PACKAGE NAME MdePkg PACKAGE GUID 1E73767F 8F52 4603 AEB4 F29B510B6766 PACKAGE_VERSION 1 02 PACKAGE_UNI_FILE MdePkg uni 2 5 Includes Usage This is an optional section The Includes section is used to
74. kage A package is a container It can hold a collection of files for any given set of modules Packages may be described as one of the following types of modules source modules containing all source files and descriptions of a module binary modules containing EFI Sections or a Framework File System and a description file specific to linking and binary editing of features and attributes specified in a Platform Configuration Database PCD mixed modules with both binary and source modules Multiple modules can be combined into a package and multiple packages can be combined into a single package PCD Platform Configuration Database PEI Pre EFI Initialization Phase PEI M An API named by a GUID PPI A PEIM to PEIM Interface that is named by a GUID Protocol An API named by a GUID 4 March 2015 Version 1 24B EDK II FDF File Spec Introduction Runtime Services Interfaces that provide access to underlying platform specific hardware that might be useful during OS runtime such as time and date services These services become active during the boot process but also persist after the OS loader terminates boot services SAL System Abstraction Layer A firmware interface specification used on Intel taniumO Processor based systems SEC Security Phase is the code in the Framework that contains the processor reset vector and launches PEI This phase is separate from PEI because some security schemes require ownership o
75. ld system allows these values may be overridden by default values in the I NF files provided all INF files use the same default value for PCDs that are used by multiple modules and by values specified in the DSC or FDF file A PCD s Datum type cannot be changed for different access methods only one datum type is permitted PCD entries may be put into any or all PCD section types except PcdsFeatureFlag sections The use of a lt MACROVAL gt element in this section is prohibited The Token number specified in a PCD entry is used in code auto generated files by the EDK II build system along with the Token Space GUID value to uniquely identify a given PCD The Token number must be identical for every entry of a PCD in this file using a different token number for a PCD listed in PcdsDynamic and PcdsDynamicEx sections for example will result in a build break PCDs listed in PedsFeatureFlag sections must only be listed in PedsFeatureFlag sections March 2015 Version 1 24B EDK Il FDF File Spec Prototype lt PCDs gt lt PcdSections gt lt PcdFeature gt lt FFEntries gt lt FFSectionTag gt lt com_FFattribs gt lt FFattribs gt lt PcdOther gt lt PcdType gt lt com_or_attribs gt lt com_attribs gt lt attribs gt lt attrs gt lt PcdEntries gt lt PcdEntry gt lt PcdNumEntry gt lt PcdBool gt lt BoolPcd gt lt CbOrEol gt lt Pcd8 gt lt PcdUint 8 gt Version 1 24B EDK II DE
76. ls encounters a macroval as in MACRO that is not defined the build tools must break Prototype lt MacroDefinition gt 1 TS DEFINE TS MACRO Eq lt Value gt lt EOL gt Value 2 PATH Filename Examples DEFINE GEN SKU DIR MyPlatformPkg GenPei DEFINE SKU1 Dir MyPlatformPkg Skul Pei DEFINE LIB Include Library DEFINE PROTO HDRS LIB Protocol Parameters lt PATH gt Any part of the path line can be replaced by a MACRO as shown in the following table Version 1 24B March 2015 31 EDK Il DEC File Format EDK II FDF File Spec Table 1 MACRO Usages MACRO DEFINITION MACRO USAGE DEFINE MY MACRO test1 MY_MACRO test2 test3 inf DEFINE MY_MACRO test1 MY_MACRO test2 test3 inf DEFINE MY_MACRO test3 inf test1 test2 MY_MACRO DEFINE MY_MACRO test3 test1 test2 MY_MACRO inf DEFINE MY MACRO test1 test2 test3 inf MY MACRO 3 2 3 Conditional Statements The conditional statements are not permitted anywhere within the DEC file 3 2 4 include Statement The include statement is not permitted in an EDK II DEC file 3 2 5 Special Comment Blocks This section defines special format comment blocks that contain information about this package These command blocks are not required The UEFI Distribution Package Specification states the for a given PCD Token Space Error numbers must be unique Since there may be multiple PCD that may hav
77. lt BR gt BITI indicates if only slave DMA is supported lt BR gt BIT2 indicates if ISA memory is supported lt BR gt Other BITs are reseved and must be zero March 2015 Version 1 24B EDK II FDF File Spec If more than one features are supported the different BIT will be enabled at the same time Prompt ISA Bus Features Expression 0x80000002 gEfilntelFrameworkModulePkgTokenSpaceGuid PcdIsaBusSupportedFeatures 0xF8 gEfiIntelFrameworkModulePkgTokenSpaceGuid PcdIsaBusSupportedFeatures 0x05 UINT8 0x00010040 PcdsDynamic PcdsDynamicEx Indicates if the machine has completed one boot cycle before After the complete boot BootState will be set to FALSE lt BR gt lt BR gt TRUE The complete boot cycle has not happened before lt BR gt FALSE The complete boot cycle has happened before lt BR gt Prompt Boot State Flag gEfiIntelFrameworkModulePkgTokenSpaceGuid PcdBootState TRUE A BOOLEAN 0x0001002f E Timeout value for displaying progressing bar in before boot OS According to UEFI 2 0 spec the default TimeOut should be Oxffff This PCD should be set as HII type PCD by platform integrator mapped to UEFI global variable L TimeOut Prompt Boot Timeout s gEfilntelFrameworkModulePkgTokenSpaceGuid PcdPlatformBootTimeOut V Oxffff UINT16 0x40000001 Error level for hardware recorder If value 0
78. lt CommaSpace gt lt Hex4 gt lt CommaSpace gt lt Hex4 gt lt CommaSpace gt March 2015 27 EDK Il DEC File Format 28 lt CArray gt lt NList gt lt RawData gt lt Integer gt lt Number gt lt TRUE gt lt FALSE gt lt BoolType gt lt MACRO gt lt MACROVAL gt lt PcdName gt lt PcdCName gt lt TokenSpaceGuidCName gt lt UINT8 gt lt UINT16 gt lt UINT32 gt lt UINT64 gt lt UINT8z gt lt UINT16z gt lt UINT32z gt EDK Il FDF File Spec lt Hex2 gt lt CommaSpace gt lt Hex2 gt lt CommaSpace gt lt Hex2 gt lt CommaSpace gt lt Hex2 gt lt CommaSpace gt lt Hex2 gt lt CommaSpace gt lt Hex2 gt lt CommaSpace gt lt Hex2 gt CommaSpace lt Hex2 gt lt NList gt lt CArray gt lt HexByte gt lt CommaSpace gt lt HexByte gt lt TS gt lt Number gt lt Cs gt lt Number gt lt EOL gt lt TS gt 0 9 1 9 0 9 lt Integer gt lt HexNumber gt TRUE true True Ox1 T OxO1 UL FALSE false False 0x0 0x00 0 TRUE FALSE A Z A Z0 9 MACRO lt TokenSpaceGuidCName gt lt PcdCName gt lt CName gt lt CName gt Ox OX x0 xFF Ox OX x0 xFFFF Ox OX x0 xFFFFFFFF Ox OX x0 xFFFFFFFFFFFFFFFF Ox OX HexDigit HexDigit Ox OX HexDigit HexDi
79. mulatorPkgTokenSpaceGuid 0x4F792E68 0xE8C8 0x794E OxBl 0xD8 0x37 0x03 OxF3 OxF2 0xD5 OxA5 gEmuSystemConfigGuid 0xF8626165 Ox6CEB 0x924A OxBA OXPC OXEL 0x3A OxB9 OxXD6 03 57 0228 J gEmuVirtualDisksGuid Oxf2ba331a 0x8985 Oxlldb 1 Oxa4 A 0x06 0x00 0x40 Oxd0 0x2b 0x18 0x35 gEmuPhysicalDisksGuid 4 Qxfzbdoo95 0x8985 Oxlldb 0x87 X 0x19 0x00 0x40 Oxd0 Ox2b 0218 0x35 J PcdsFeatureFlag If TRUE if symbols only load on breakpoints and gdb entry gEmulatorPkgTokenSpaceGuid PcdEmulatorLazyLoadSymbols TRUE BOOLEAN 0x00020000 PcdsFixedAtBuild gEmulatorPkgTokenSpaceGuid Pcd UINT64 0x00001014 gEmulatorPkgTokenSpaceGuid Pcd UINT64 0x00001015 EmuFlashNvStorageVariableBase 0x0 VN EmuFlashNvStorageFtwSpareBase 0x0 VN gEmulatorPkgTokenSpaceGuid PcdEmuFlashNvStorageFtwWorkingBase 0x0 N UINT64 0x00001016 gEmulatorPkgTokenSpaceGuid PcdEmuFdBaseAddress 0x0 UINT64 0x00001017 gEmulatorPkgTokenSpaceGuid PcdEmuFlashNvStorageEventLogBase 0x0 UINT64 0x0000100e gEmulatorPkgTokenSpaceGuid PcdEmuFlashNvStorageEventLogSize 0x0 A UINT32 0x0000100f gEmulatorPkgTokenSpaceGuid PcdEmuFlashFvRecoveryBase 0x0 UINT64 0x00001010 gEmulatorPkgTokenSpaceGuid PcdEmuFlashFvRecoverySize 0x0 UINT32 A 0x00001011 gEmulatorPkgTokenSpaceGuid PcdEmuFirmwareFdSize 0x0 UINT32 A 0x00001012 gEmulatorPkgTokenSpaceGuid PcdEmuFirmwareBlockSize 0 UINT
80. n only be used as a Fixed At Build in a platform and therefore it must not be listed in any other section types in this file Likewise if the module is coded as a DynamicEx form then it can only be listed in the DynamicEx section If a module is coded for the Dynamic access method then the platform integrator would be able to choose how they want to use the PCD It can then be specified as Fixed Patchable Dynamic or DynamicEx in the platform description DSC file The EDK II build tools will automatically generate a const definition for the Feature Flag and Fixed At Build PCDs while the Patchable In Module and both Dynamic forms will have a volatile definition generated The two recommended types that are commonly used in modules are FeaturePcd and the dynamic PCD form For modules that will be distributed as binary modules PCDs in those modules that will be exposed by the binary must be of type Patchable In Module or DynamicEx The PCD is used for configuration when the PCD value is produced and consumed by drivers during execution the value may be user configurable from setup or the value is produced by the platform in a specified area It is associated with modules that are released in source code The dynamic form is the most flexible method as platform integrators may chose a to use a different type such as fixed for a given platform without modifying the module s INF file or the code for the module It is recommended that PCDs t
81. nclude directories are required for different architectures 38 March 2015 Version 1 24B EDK II FDF File Spec EDK II DEC File Format Example HEHEHE HEE HEH RARA EH EE HE EE HE HE E E E E E E E E E E E E Include section list of Include Paths relative to the DEC file that are provided by this package Comments are used for Keywords and Module Types FEFE TE AE E TE FE TE ARA EE EE FE FE HE EHH EEE EE TE FE HE FE HE TE FE HE FE FE AAA E H Includes common Include Includes for all processor architectures Includes IA32 Include Ia32 Includes specific to IA32 Includes X64 Include X64 Includes specific to X64 Includes IPF Include Ipf Includes specific to IA64 Includes EBC Include Ebc Includes specific to EBC Includes ARM Include Arm Includes specific to ARM 3 6 Guids Sections These sections are optional Summary Defines the Guids section tag of the DEC files GUID entries listed in architectural sections are not permitted to be listed in the common architectural section The common architecture modifier in a section tag must not be combined with other architecture type modifiers doing so will result in a build break The use of a lt MACROVAL gt element in this section is prohibited Each GUID entry must be listed only once per section Version 1 24B March 2015 39 EDK II DEC File Format Prototype lt Guids gt lt com_attribs gt lt attribs g
82. ns that are compliant with the EFI 1 10 and EFI 2 0 specifications UEFI Applications are always unloaded when they exit Version 1 24B March 2015 75 76 March 2015 EDK Il FDF File Spec Version 1 24B
83. of the DEC specifying the value Macro statements are local to the file global macro values are not permitted Use of system environment variables is also prohibited in value fields 14 March 2015 Version 1 24B EDK II FDF File Spec DEC File Overview they may appear in comments however during the build comment content is ignored This decision was made in order to support UEFI s PI Distribution Package Specification requirements Macro Definition statements that appear within a section of the file other than the Defines section are scoped to the section they are defined in If the Macro statement is within the Defines section then the Macro is common to the entire file with local definitions taking precedence if the same MACRO name is redefined in subsequent sections then the MACRO value is local to only that section Any defined MACRO definitions will be expanded by tools when they encounter the entry in the section All macros are local to the DEC file this is a requirement for UEFI distribution of source and binary content The macro statements are positional in that only statements following a macro definition are permitted to use the macro a macro cannot be used before it has been defined Macros defined the Defines section are common to all sections Macros defined in a common architectural section may be used in the architecturally modified sections of the same section type Macros defined in architectural section
84. on on a manufacturing line as the FLASH parts are programmed or through special tools 1 4 Target Audience This document is intended for persons doing EFl development and support for different Version 1 24B March 2015 5 Introduction EDK II FDF File Spec platforms as well as development and support for distributable modules It is most likely only of interest in the event that there is a problem with a build or if a developer needs to perform special customizations of a build for a platform 1 5 Conventions Used in this Document This document uses typographic and illustrative conventions described below 1 5 1 Data Structure Descriptions Intel processors based on 32 bit Intel architecture IA 32 are little endian machines This distinction means that the low order byte of a multi byte data item in memory is at the lowest address while the high order byte is at the highest address Processors of the Intel Itanium processor family may be configured for both little endian and big endian operation All implementations designed to conform to this specification will use little endian operation In some memory layout descriptions certain fields are marked reserved Software must initialize such fields to zero and ignore them when read On an update operation software must preserve any reserved field The data structures described in this document generally have the following format Summary A brief description of
85. provides Runtime Services EBNF Extended Backus Naur Form meta syntax notation with the following additional constructs square brackets surround optional items suffix for a sequence of zero or more of an item suffix for one or more of an item suffix for zero or one of an 2 March 2015 Version 1 24B EDK II FDF File Spec Introduction item curly braces enclosing a list of alternatives and super subscripts indicating between n and m occurrences EDK Extensible Firmware Interface Development Kit the original implementation of the Intel Platform Innovation Framework for EFI Specifications developed in 2007 EDK II EFI Development Kit version II that provides updated firmware module layouts and custom tools superseding the original EDK EDK Compatibility Package ECP The EDK Compatibility Package ECP provides libraries that will permit using most existing EDK drivers with the EDK II build environment and EDK II platforms EFI Generic term that refers to one of the versions of the EFI specification EFI 1 02 EFI 1 10 or any version of the UEFI specification FDF EDK II Flash definition file This file is used to define the content and binary image layouts for firmware images update capsules and PCI option ROMs FLASH This term is used throughout this document to describe one of the following e An image that is loaded into a hardware device on a platform traditional ROM im
86. r and if not specified is assumed to be 0 Alpha characters are not permitted SpecVer For new DEC files the version value must be set to 0x00010018 Tools that process this version of the DEC file can successfully process earlier versions of the DEC file this is a backward compatible update There is no requirement to change the value in existing DEC files if no other content changes This may also be specified as decimal value 1 24 Filename Filenames listed in the Defines section must be relative to the directory the DEC file is in Use of and in the directory path is not permitted Use of an absolute path is not permitted The file name specified in the PACKAGE_UNI_FILE entry must be a UCS 2LE encoded file with an extension of uni UNI or Uni Example DEFINES DEC_SPECIFICATION 0x00010018 PACKAGE_NAME MdePkg PACKAGE_GUID 5e0e9358 46b6 4ae2 8218 4ab8bI9bbdcec PACKAGE_VERSION 0 3 PACKAGE_UNI_FILE MdePkg uni 3 5 Includes Sections These sections are optional Summary Defines the Includes section tag in the DEC files This section lists the standard Version 1 24B March 2015 37 EDK Il DEC File Format EDK II FDF File Spec include locations not file names provided in the package Each include lt PATH gt entry listed in a section must be unique to the section duplicate entries within a section are not permitted A path entry listed in an architectural section must not be listed
87. required to expand the ASCII string between the quotation marks into a valid UCS 2LE format string The build tools parser must treat all content between the field separators excluding white space characters around the field separators as ASCII literal content when generating the AutoGen c and AutoGen h files Comments CFlags OA Strings that appear in comments may be ignored by the build tools An ASCII string matching the format of the ASCII string defined by lt UnicodeString gt L Foo for example that appears in a comment must never be expanded by any tool CFlags refers to a string of valid arguments appended to the command line of any third party or provided tool It is not limited to just a compiler executable tool MACRO values that appear in quoted strings in CFlags content must not be expanded by parsing tools Other Architecture One or more user defined target architectures such as ARM or PPC The architectures listed here must have a corresponding entry in the EDK II meta data file Conf tools_def txt FileSep FileSep refers to either the back slash or forward slash characters that are used to separate directory names All EDK II DEC files must use the forward slash character when specifying the directory portion of a filename Microsoft operating systems that normally use a back slash character for separating directory names will interpret the forward slash character correctly CArray EOL All C
88. rformance It can be set to FALSE for boot performance lt BR gt lt BR gt TRUE Turn on PS2 mous xtended verification lt BR gt FALSE Turn off PS2 mouse extended verification lt BR gt Prompt Turn on PS2 Mouse Extended Verification gEfiIntelFrameworkModulePkgTokenSpaceGuid PcdPs2MouseExtendedVerification TRUE BOOLEAN 0x00010047 Indicates if only Boot logo is showed and all message output is disabled in BDS lt BR gt lt BR gt TRUE Only Boot Logo is showed in boot lt BR gt FALSE All messages and Boot Logo are showed in boot lt BR gt Prompt Enable Boot Logo only gEfilntelFrameworkModulePkgTokenSpaceGuid PcdBootlogoOnlyEnable N FALSE BOOLEAN 0x00010048 PcdsFixedAtBuild PcdsPatchableInModule FFS filename to find the default BMP Logo file Prompt FFS Name of Boot Logo File gEfilntelFrameworkModulePkgTokenSpaceGuid PcdLogoFile 0x99 0x8b 0xB2 0x7B OxBB 0x61 0xD5 0x11 0x9A 0x5D 0x00 0x90 0x27 Ox3F 0xC1 0x4D VOID 0x40000003 FFS filename to find the shell application Prompt FFS Name of Shell Application gEfilntelFrameworkModulePkgTokenSpaceGuid PcdShellFile OxB7 OxD6 Ox7A 0xC5 0x15 0x05 0xA8 0x40 0x9D 0x21 0x55 0x16 0x52 0x85 0x4E 0x37 VOID 0x40000004 ISA Bus features to support DMA SlaveDMA and ISA Memory lt BR gt lt BR gt BITO indicates if DMA is supported
89. rm BDS library definition about platform specific behavior PlatformBdsLib Include Library PlatformBdsLib h libraryclass Generic BDS library definition include the data structure and function GenericBdsLib Include Library GenericBdsLib h Guids 60 IntelFrameworkModule package token space guid Include Guid IntelFrameworkModulePkgTokenSpace h gEfilntelFrameworkModulePkgTokenSpaceGuid 0xD3705011 OxBC19 Ox4afT7 OxBE 0x16 OxF6 0x80 0x30 0x37 0x8C 0x15 March 2015 Version 1 24B EDK II FDF File Spec GUID identifies Data Hub records logged by Status Code Runtime Protocol Include Guid DataHubStatusCodeRecord h gEfiDataHubStatusCodeRecordGuid 0xD083E94C 0x6560 0x42E4 OxB6 OxD4 Ox2D OxF7 Ox5A OxDF Ox6A Ox2A GUID indicates the tiano custom compress decompress algorithm Include Guid TianoDecompress h gTianoCustomDecompressGuid 0xA31280AD 0x481 0x95 0xE8 0x12 Ox7E 0x4C 0x98 0x47 0x79 F E 0x41B6 GUID indicates the LZMA custom compress decompress algorithm Include Guid LzmaDecompress h gLzmaCustomDecompressGuid 0xEE4E5898 0x3914 0x4259 0x9D Ox6E OxDC 0x7B OxDT7 0x94 0x03 OxCF Include Guid AcpiVariable h gEfiAcpiVariableCompatiblityGuid 0xc020489e 0x6db2 0x4ef2 xa Oxadb Oxcap 0x6 Oxtc 0x11 Oxd3 0x6a Include Guid LegacyBios h gEfiLegacyBiosGuid
90. s cannot be used in other architectural sections nor can they be used in the common section Macro expansion is done at the time the macro is used Example LibraryClasses common Can use MDE Cannot use either SMM or SAL D B EFINE MDE Include Library aseLib S MDE BaseLib inf LibraryClasses X64 LibraryClasses IA32 Can use MDE and local SMM Cannot use SAL D S EFINE SMM Include Library mmLib SMM SmmLib h LibraryClasses IPF Can use MDE from the common section and local SAL Cannot use SMM DEFINE SAL Include Library S P alLib SAL SalLib h alLib MDE PalLib h In the previous example the directory and filename for a library instance is the header file that can be used for all modules that provide the library implementations that conform to the definitions in the file 2 2 7 PCD Names Unique PCD names are defined as PCD Token Space Guid C name and the PCD C name Version 1 24B March 2015 15 DEC File Overview EDK II FDF File Spec separated by a period character PcdTokenSpaceGuidCName PcdCName The PCD s Name PcdName is defined as PCD Token Space Guid C name and the PCD C name separated by a period character PCD C names are used in C code and must follow the C variable name rule 2 2 8 Conditional Directive Statements lif Conditional statements are NOT perm
91. s one for less than another for greater than more than one ValidRange entry is permitted HexDigit This value if specified corresponds to the ErrorNumber of an Error Message defined in a UEFI PI Distribution Package Each error number is related to a single error message translations of message text are not considered as separate error messages with the text of error messages included in the Unicode file specified in the PACKAGE UNI FILE element in the Defines section TokenNumber Each PCD declared within a token space defined by the Token Space GUID must be assigned a unique 32 bit value This token number and an optional token space GUID are used in code for accessing a PCD s value ErrorCode This value if specified corresponds to the ErrorNumber of an Error Message defined in a UEFI PI Distribution Package Each error number is related to a single error message Token Each PCD declared within a token space defined by the Token Space GUID must be assigned a unique 32 bit value This token number and an optional token space GUID are used in code for accessing a PCD s value Restrictions It is permissible to list a PCD entry under common and under a specific architecture It is permissible to specify PCD entries under all architectures except common if different default values may be required for different architectures The tools must use Version 1 24B March 2015 51 EDK Il DEC File Format EDK II FDF File Spec 5
92. s are used in this document to illustrate the Extended Backus Naur Form item Square brackets denote the enclosed item is optional item Curly braces denote a choice or selection item only one of which may occur on a given line lt item gt Angle brackets denote a name for an item range range Parenthesis with characters and dash characters denote ranges of values for example a zA Z0 9 indicates a single alphanumeric character while 0 9 indicates a single digit Version 1 24B item Characters within quotation marks are the exact content of an item as they must appear in the output text file The question mark denotes zero or one occurrences of an item The star character denotes zero or more occurrences of an item The plus character denotes one or more occurrences of an item item A superscript number n is the number occurrences of the item that must be used Example 0 9 8 indicates that there must be exactly eight digits so 01234567 is valid while 1234567 is not valid item n A superscript number n within curly braces followed by a comma indicates the minimum number of occurrences of the item with no maximum number of occurrences March 2015 Introduction EDK II FDF File Spec item n A superscript number n within curly braces preceded by a comma indicates a maximum number of occurrences of the item item n m A super script number n
93. s the format of a DEC file for binary only content within the directory structure Note In the all of the following examples the backslash 1 character at the end of a line is used to show a line continuation for readability Use of a backslash character in the actual DEC file is not permitted Version 1 24B March 2015 59 EDK Il FDF File Spec A 1 EDKII IntelFrameworkPkg Example Qfile Intel Framework Module Package This package contains the definitions and module implementation which follows Intel EFI Framework Specification Copyright c 2007 2012 Intel Corporation All rights reserved lt BR gt 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 Defines DEC_SPECIFICATION 0x00010018 PACKAGE_NAME IntelFrameworkModulePkg PACKAGE_UNI_FILE IntelFrameworkModulePkg uni PACKAGE_GUID 88894582 7553 4822 B484 624E24B6DECE PACKAGE_VERSION 0 92 Includes Include Root include for the package LibraryClasses libraryclass Platfo
94. separating the section names with a comma For example Includes X64 includes IPF The content below each section heading is processed by the parsing utilities in the order that they occur in the file The precedence for processing these architecture section tags is from right to left with sections defining an architecture having a higher precedence than a section which uses common or no architecture extension as the architecture It is not permissible to have an architectural modifier in the same section tag as an entry with the common architectural modifier Specifying entries as only for IA32 and also valid for all other architectures Includes common Includes IA32 is not valid Note Content such as filenames directory names MACROs and C variable names within a section IS case sensitive IA32 la32 and ia32 within a section are processed as separate items IA32 la32 and ia32 within a section in a directory or file name are processed as separate items Refer to Naming Conventions below for more information on directory and or file naming Sections are terminated by the start of another section or the end of the file Comments are not permitted between square brackets of a section specifier Duplicate sections two sections with identical section tags will be merged by tools with the second section appended to the first If architectural modifiers are used in the section tag the section is merged by tools with 10 March 2015
95. serid values are different The same IdString and Userid values can be used if specifying architecture specific content The use of a lt MACROVAL gt element in this section is prohibited The common architecture modifier in a section tag must not be combined with other architecture type modifiers doing so may result in a build break 54 March 2015 Version 1 24B EDK II FDF File Spec EDK II DEC File Format Prototype lt UserExtensions gt 2 UserExtensions lt com_attribs gt lt EOL gt lt statements gt lt com_attribs gt lt UserId gt lt IdString gt common lt atttribs gt lt attribs gt lt attrs gt TS UserExtensions lt attrs gt lt attrs gt lt UserId gt lt IdString gt lt arch gt lt UserId gt 2 a zA Z a zA Z0 9 lt IdString gt lt NormalizedString gt lt SimpleWord gt lt statements gt Content is build tool chain specific Parameters UserId Words that contain period must be encapsulated in double quotation marks IdString Normalized strings that contain period or space characters must be encapsulated in double quotation marks It is recommended that the IdString start with a letter Example UserExtensions NoSuchCorp MyScript_1 MyBatch bat 3 11 1 UserExtensions TianoCore ExtraFiles Section This is an optional section Defines the optional EDK II DEC file UserExtensions TianoCore ExtraFiles section tag The E
96. ssing occurs from left to right In the following example B C is processed first then result is added to A followed by adding 2 finally 3 is added to the result A B C 2 3 In the next example A B is processed first then C D is processed and finally the two results are added A B C D Space and tab characters are permitted around field separators 2 2 4 Naming Conventions The EDK II build infrastructure is supported under Microsoft Windows Linux and MAC OS X operating systems As a result of multiple environment support all directory and file names must be treated as case sensitive The use of special characters in directory names and file names is restricted to the dash underscore and period characters respectively and e Period characters must not be followed by another period character File and Directory names must not start with or a Directory names and file names must not contain space or tab characters e Directory Names must only contain alphanumeric underscore dash and period characters period characters must not be sequential and it is recommended that they start with an alpha character e All files must reside in the directory containing the DEC file or in sub directories of the directory containing the DEC file Itis recommended that filenames start with an alpha character Version 1 24B March 2015 13 DEC File Overview EDK II FDF Fil
97. t lt attrs gt lt GuidEntries gt lt GuidComment gt lt GuidValue gt lt GuidHeaderFile gt lt Description gt lt CommentBlock gt Parameters GuidHeaderFile EDK Il FDF File Spec Guids lt com_attribs gt lt EOL gt lt GuidEntries gt common lt attribs gt lt attrs gt lt TS gt Guids lt attrs gt lt arch gt lt GuidComment gt lt TS gt lt CName gt lt Eq gt lt CFormatGUID gt lt CommentBlock gt lt EOL gt lt Description gt lt TS gt lt TS gt lt GuidHeaderFile gt lt EOL gt lt CFormatGUID gt lt PATH gt lt Word gt h lt TS gt lt TS gt lt AsciiString gt lt EOL gt lt TS gt lt TS gt lt AsciiString gt lt EOL gt lt TS gt lt TS gt lt ModuleTypeList gt lt Comment gt lt EOL gt Path to the GUID header file statement listed in comments in this section must be relative to the directory that contains the DEC file Use of or in the directory path is prohibited Restrictions It is not permissible to list a GUID entry under common and under a specific architecture It is permissible to specify GUID entries under all architectures except common if different GUID values may be required for different architectures 40 March 2015 Version 1 24B EDK Il FDF File Spec EDK Il DEC File Format Example HEHEHE HEE HEE HE HEHE HEE HEH HE HEH EE HE EE E TE FE ERE EE HP EE
98. the data element and the comment character Examples Version 1 24B March 2015 9 DEC File Overview EDK II FDF File Spec this is a comment line includes common This is also a valid comment includes common This is not valid The last example is not valid as the section header data element format is text with the square brackets included as part of the data element Note All EDK Il DEC files MUST use the forward slash character for all directory paths specified The remainder of this chapter discusses the different section content usage 2 2 Declaration File Format This section covers the content for the EDK II DEC files 2 2 1 Section Entries To simplify parsing the EDK II meta data files continue using the INI format This style was introduced for EDK meta data files when only the Windows tool chains were supported It was decided that for compatibility purposes that INI format would continue to be used EDK II formats differ from the defacto format in that the semi colon character cannot be used to indicate a comment Leading and trailing space tab characters must be ignored Duplicate section names must be merged by tools This declaration file consists of sections delineated by section tags enclosed within square brackets Section tag entries are case insensitive The different sections and their usage are described below The text of a given section can be used for multiple section names by
99. to be listed in the common architectural section The common architecture modifier in a section tag must not be combined with other architecture type modifiers doing so will result in a build break All paths must be relative to the directory that contains the DEC file Use of absolute paths Or WORKSPACE relative paths is prohibited It is permissible to use a lt MACROVAL gt entry in this section provided the above rules are followed Each ClassName entry must be listed only once per section Version 1 24B March 2015 45 EDK II DEC File Format Prototype lt LibraryClasses gt lt com_attribs gt EDK Il FDF File Spec LibraryClasses lt com_attribs gt lt EOL gt lt LcEntries gt common lt attribs gt lt attribs gt lt attrs gt lt TS gt LibraryClasses lt attrs gt lt attrs gt arch LcEntries lt LcEntry gt lt MacroDefinition gt lt LcEntry gt lt LcDoxygenHelp gt lt TS gt lt ClassName gt lt FS gt lt Filename gt lt CommentBlock gt lt EOL gt lt LcDoxygenHelp gt TS TS QLibraryClasses TS lt AsciiString gt lt EOL gt lt ClassName gt lt ToolWord gt A User Defined Keyword consisting of alphanumeric characters No special characters are permitted lt Filename gt PATH File h lt CommentBlock gt TS TS lt ModuleTypeList gt lt Comment gt lt EOL gt Parameters Fil
100. useful to you or are referred to by this specification Unified Extensible Firmware Interface Specification Version 2 4 Unified EFI Inc 2014 http www uefi org Platform Initialization Specification Version 1 3 Unified EFI Inc 2013 http www uefi org e UEFI Platform Initialization Distribution Package Specification Version 1 0 with Errata B Unified EFI Inc 2014 http www uefi org e Intel Platform Innovation Framework for EFI Specifications Intel 2007 http www intel com technology framework e https github com tianocore tianocore github io wiki EDK II Specifications EDK II Module Writers Guide Intel 2010 EDK II User Manual Intel 2010 EDK II C Coding Standard Intel 2014 EDK II DSC Specification Intel 2015 EDK II INF File Specification Intel 2015 EDK II FDF Specification Intel 2015 EDK II Build Specification Intel 2015 Multi String UNI File Format Specification Intel 2014 EDK II Expression Syntax Specification Intel 2014 Version 1 24B March 2015 1 Introduction EDK II FDF File Spec VFR Programming Language Intel 2012 _ EDKII Platform Configuration Database Infrastructure Descriptions Intel 2009 e INI file Wikipedia http en wikipedia org wiki INI_ file CNow C Programming Information Langston University Tulsa Oklahoma J H Young 1999 2011 http c comsci us syntax expression ebnf html
101. y the console output column of text setup Prompt Console Output Column of Text Setup gEfilntelFrameworkModulePkgTokenSpaceGuid PcdSetupCon0utColumn A 80 UINT32 0x50000003 Specify the console output row of text setup Prompt Console Output Row of Text Setup gEfiIntelFrameworkModulePkgTokenSpaceGuid PcdSetupConOutRow 25 UINT32 0x50000004 PcdsFixedAtBuild PcdsDynamic PcdsDynamicEx PcdsPatchableInModule I O Base address of floppy device controller 4 Prompt I O Base Address of Floppy Device Controller gEfilntelFrameworkModulePkgTokenSpaceGuid PcdFdcBaseAddress 0x3f0 UINT16 0x30000000 ff Indicates if BiosVideo driver will switch to 80x25 Text VGA Mode when exiting boot service lt BR gt lt BR gt TRUE Switch to Text VGA Mode lt BR gt FALSE Does not switch to Text VGA Mode lt BR gt Prompt Switch to Text VGA Mode on UEFI Boot gEfiIntelFrameworkModulePkgTokenSpaceGuid PcdBiosVideoSetTextVgaModeEnable FALSE BOOLEAN 0x30000001 rj Indicates if BiosVideo driver will check for VESA BIOS Extension service support lt BR gt lt BR gt TRUE Check for VESA BIOS Extension service lt BR gt FALSE Does not check for VESA BIOS Extension service lt BR gt Prompt Enable Check for VESA BIOS Extension Service gEfiIntelFrameworkModulePkgTokenSpaceGuid PcdBiosVideoCheckVbeEnable TRUE BOOLEAN 0x30000002

Download Pdf Manuals

image

Related Search

Related Contents

Procesador de alimentos FP100 (ESP).  山梨県立北病院医師宿舎新築工事  Chapter 1 General Information  LED CONTROLLER TOUCH RGB  BajaPPC-750 User`s Manual, #0002M621-15  取扱説明書 12mm ルータ  

Copyright © All rights reserved.
Failed to retrieve file