This schema defines EFI and Framework Data Elements
Abstract is valid for all Description Files
This section is required. This is a single sentence to describe the module and will be used in sample files as the abstract data in the header comment section.
This is a sub-element of AntTask
This is an ant command that will be inserted into a biuld sequence. Since ant commands are valid XML statements, special care must be taken to use the correct tokens for reserved words and escape quote characters.
This is a sub-element of UserDefinedAntTasks
Define a file that contains one or more ant tasks that are to be added into or replacing of sequences of build steps. These files will be called using the ant-call task on a file name. These files must be valid apache-ant formatted task files.
BaseName is valid for all Description Files
We need to be able to permit different attributes for every basename
BootModes is valid for all Description Files
This is a list of BootModes Supported by the Module
BuildOptions is valid for MBD and FPD files.
Specific Build Options, by Tool Chain, than should be applied, overriding any global options
C_Name is valid for all Description Files
ComponentName is valid for all Description Files
Describe the valid Framework Component Type
A conditional expression that must be evaluated to determine whether a feature is implemented or not. The expression must be either numeric, string or boolean.
This is a list of DataHubRecord elements.
The Name of the Database, "FrameworkDatabase"
The default setting of a PCD entry.
This section is required for new modules and libraries and must contain more information than the Abstract.
This is a list of MSA Events
Module has an event that is waiting to be signaled. Event is named by GUID.
This is a child of MSA files.
Driver Module
Library Module
Allow multiple entries for DriverBinding, ComponentName, DriverConfig and DriverDiag elements. For ComponentName, DriverConfig and/or DriverDiag - you must have a 1:1 mapping to DriverBinding if the element is defined.
Permit User Defined Extern Tags
Module Call Backs
Driver Module
Library Module
Allow multiple entries for DriverBinding, ComponentName, DriverConfig and DriverDiag elements. For ComponentName, DriverConfig and/or DriverDiag - you must have a 1:1 mapping to DriverBinding if the element is defined.
Permit User Defined Extern Tags
Module Call Backs
Define the FFS File attributes within a sections and containing sections information
Describe the valid content of a filename This should extend PathAndFilename - Variable names not allowed here!
This is a list of Filenames
Describe the list of a Formset elements
Describe the valid content of a Formset
Describe the valid content of a GUID
This is a child of PackageSurfaceArea (SPD)
Describe the valid content of a GUID element in and MSA file.
Describe the valid content of a PCD GUID element
Describe the list of a HiiPackage elements
One or More Package Names or Arch sections is required. Includes are not files, but paths to where header files are located.
Different (Module) Instances of Libraries used ONLY in FPD Files.
Used in MSA files. This defines what class of library is being supported = produced (library module) or consumed by a module.
This element defines a class of library, along with the path to the Include Header for this library
This section defines what Classes of Library that this library supports. A Library may belong to multiple different library classes.
This is record format for a Module entry in the Framework Database file.
This describes the fields in an Module record in the Framework Database. The Path field is relative to the workspace to Module Surface Area (MSA) files.
This tag is used in the Framework Package Database File to track package installation
This is the valid content of a Module Name
Describe the valid EFI Phase that the Module is designed to execute under.
Surface Area Package Description (SPD) list of Module Surface Area files
Describe the valid content of a Surface Area Package Description (SPD) file
Surface Area Package Description (SPD) list of Module Surface Area files
Define where we want our output to go. The Attribute, IntermediateDirectories, default MODULE, says that intermediate files will be local to the module, versus a unified directory structure.
Child of Module Surface Area documents, MSA and MBD files, Library Modules and Other Modules
One or more PcdData or PcdBuildData Elements Only one type is permitted
This is a child of PCDs and can occur in the MSA and MBD files.
This is date element is used in the Module Surface Area (MSA) file and contains references to be used by a Platform Build
There is ONE required Attribute, ItemType
This tag is used in the Package Surface Area Description File (SPD) to track package dependencies for a module
This is a child of PackageSurfaceArea (SPD)
This tag is used in the Framework Package Database File to track all packages installed in a workspace. (Database)
This tag is used in the Framework Package Database File to track individual package information. The Path is a relative path to the SPD File.
This tag is used in the Package Surface Area Description File to track package dependencies for a module (SPD)
Describe the valid content of a filename
NEW: Will become a child of ModuleSA in the FPD
Child of PcdBuildDeclarations
This is date element is used in the platform build description file and contains valid data for a Platform Build
There is ONE required Attribute, ItemType
This as a unique identifier defined for either this name space.
The Target Attribute may be used to define a Target name space, such as PCI.
This specifies the size of the Pcd Datum. It is either 8, 16, 32 or 64 bits for values, 1 bit for BOOLEAN and variable length for elements defined as VOID*
This Bit means that the Variable data is associated with HII
This bit enables the Vital Product Data area within flash for maintaining PCD information
This is only applicable to ItemType DYNAMIC_EX
This element is a list of two entries per line, the first should be an integer, while the second entry should be a string value
This section is for a list of SkuData Elements, ID and Value
This value comes from a production line database, and has nothing to do with the number of SkuData IDs that have been defined.
This is the specific Sku ID for this build.
Max Number of Bytes of the data.
This is the Variable's GUID if and only if HII is enabled.
This is the C Name for the Variable, and is valid if and only HII is enabled.
If HII is enabled, This is the offset into the variable data entry, If Vpd is enabled, then it's the Offset into the VPD area of the image defined by platform manufacturer, if neither HII nor Vpd are enabled, it's the offset into the PCD Data Area. HII and VPD can never be enabled at the same time (as of the date of this document.)
FIELD IS NOT USED! REMOVE in FINAL!
This is an enumerated data type that will be used for DYNAMIC_EX, PEIM or DXE only
Child of Framework Platform Description (FPD)
We permit the FPD to use an external XML file for PCD information or else the information must be contained within the XML data element, PcdBuildData.
Child of PcdBuildDeclarations
This is date element is used in the platform build description file and contains valid data for a Platform Build
There is ONE required Attribute, ItemType
This as a unique identifier defined for either this name space.
The Target Attribute may be used to define a Target name space, such as PCI.
This element is a list of two entries per line, the first should be an integer, while the second entry should be a string value
This section is for a list of SkuData Elements, ID and Value
This value comes from a production line database, and has nothing to do with the number of SkuData IDs that have been defined.
This is an enumerated data type that will be used for DYNAMIC_EX, PEIM or DXE only
Child of Framework Platform Description (FPD)
FPD uses this PCD information for Dynamic PCDs Only
Child of FPD ModuleSA element for FIXED_AT_BUILD, PATCHABLE_IN_MODULE, and FEATURE_FLAG PCDS Only!
If HiiEnable group is specified, then HiiEnable is default true
If VpdEnable group is specified, then VpdEnable is default true
Child of Module Surface Area Description (MSA)
This is the valid content of the PCD table of a Module. The contents may not be wired at build time, and these only refer to Platform Build values, not modules.
This element is valid for PcdInfo.xml and FPD files.
Child of Package Surface Area Description (SPD)
This section is for entering information about a package's PCDs
Child of Package Surface Area Description (SPD)
This permits entering information about a package's PCD information
This is the valid content of the PCD table of a Module. The contents may not be wired at build time, and these only refer to Platform Build values, not modules.
This element is valid for PcdInfo.xml and FPD files.
There is ONE required Attribute, ItemType
Max Number of Bytes of the data.
Database Entry to locate the Platform Build Tips - path to FPD file.
Define the Name of a Platform
This is a child of PackageSurfaceArea (SPD)
Provide for one or more Ppi or PpiNotify sections.
This is a child of PackageSurfaceArea (SPD)
If either Protocol or ProtocolNotify sections are needed, one or more of them should be specified within this section
Sections refers to the Firmware Filesystem sections, PE32, UI, VER, DXS, etc. and how they are made
Multiple Filenames may be specified, and they may also be scoped to a specific Architecture.
This string is used to provide the name and version of the Specification that the component conforms to.
This is list of System Table elements.
This is a sub-element of BuildOptions
Permit Users to define their own custom ANT tasks.
An MSA FILE list of EFI Variables described by string pair.
This is an EFI Variable Entry
This entry represents the Hex Byte Offset {0x0, 0xn} to where the data starts.
This entry represents the Location of the Starting Bit {0,8} of the start of Data. A value of zero or 1 indicates that there is no BitOffset into the byte.
This number represents the number of bits to use {0, 7} starting at the BitOffset. A value of 0 indicates that the entire Byte should be used.
This is an EFI Variable Entry
This entry represents the Hex Byte Offset {0x0, 0xn} to where the data starts.
This entry represents the Location of the Starting Bit {0,8} of the start of Data. A value of zero or 1 indicates that there is no BitOffset into the byte.
This number represents the number of bits to use {0, 7} starting at the BitOffset. A value of 0 indicates that the entire Byte should be used.