This schema defines EFI and Framework Attribute and Data Types. Only simpleType and attributeGroups are specified in this file.
FIRMWARE: Define a block name to be BLOCK[A-F0-9]{2}
This describes what boot modes can be set (produced) or what boot modes can be supported, as defined in the Module Surface Area Specification
BOOT_WITH_FULL_CONFIGURATION
BOOT_WITH_MINIMAL_CONFIGURATION
BOOT_ASSUMING_NO_CONFIGURATION_CHANGES
BOOT_WITH_FULL_CONFIGURATION_PLUS_DIAGNOSTICS
BOOT_WITH_DEFAULT_SETTINGS
BOOT_ON_S2_RESUME
BOOT_ON_S3_RESUME
BOOT_ON_S4_RESUME
BOOT_ON_S5_RESUME
BOOT_ON_FLASH_UPDATE
BOOT_IN_RECOVERY_MODE
This describes the Boot Mode Usage Attributes, as defined in the Module Surface Area Specification
Supports the Boot Mode
Supports the Boot Mode on some execution path
Always changes the Boot Mode
Sometimes changes the Boot Mode
These are the supported EFI/Framework Execution Phases
Conditional Targets are Other FeatureFlag Identifiers
This describes the Data Hub Usage Attributes, as defined in the Module Surface Area Specification
The module always consumes a data hub entry via registering a filter driver.
The module will use a data hub entry if it exists via registering a filter driver.
The module always logs data into the data hub.
The module will log data into the data hub under certain circumstances
DataHub is produced and consumed only by this module
Date Format is YYYY-MM-DD HH:MM (24hr time format)
The DefaultValue is a union of a string and an integer.
This describes the Supported Event Groups, as defined in the Module Surface Area Specification
This describes the Event Usage Attributes, as defined in the Module Surface Area Specification
A module registers a notification function and requires it to be executed for the module to fully function.
A module registers a notification function and utilizes it if it's signaled.
A module will always signal the event.
A module will sometimes signal the event.
Event is produced and consumed only by this module
This defines the output types: Relocatable (REL,) Non-Relocatable (NREL,) Execute in Place (XIP) or Position Independent Code (PIC)
C Identifier Name for the Extern data as defined in the Module Surface Area Specification
This describes the Extern Usage Attributes, as defined in the Module Surface Area Specification
The EXTERN is always imported by the module
The EXTERN is always exported by the module
This describes the FileName Usage Attributes, as defined in the Module Surface Area Specification
Module requires a file named GUID in an FV
Module will use a file named GUID in an FV if it is present
Module Always produces a file named GUID in an FV
Module sometimes produces a file named GUID in an FV
Filename is produced and consumed only by this module
This describes the Formset Usage Attributes, as defined in the Module Surface Area Specification
The Formset is always registered into HII by the module
Some execution paths through the modules register forms into HII
Formset is produced and consumed only by this module
These are the EFI/Framework Component Types defined in the EFI Development Kit (EDK) Getting Started Guide
FIRMWARE: Pre-defined Firmware Volume Region Types
This describes the Guid Usage Attributes, as defined in the Module Surface Area Specification
Module always consumes the GUID
Module will consume the GUID only if the GUID is present
Module will always produce the GUID
Module sometimes produces the GUID
The default is the GUID that specifies the instance of the package
Guid is produced and consumed only by this module
Type of HOB that is being produced or consumed, as specified in the Module Surface Area Specification.
EFI_HOB_TYPE_HANDOFF
EFI_HOB_TYPE_MEMORY_ALLOCATION Note: The BaseName of the GUID is also required
EFI_HOB_TYPE_RESOURCE_DESCRIPTOR
EFI_HOB_TYPE_GUID_EXTENSION Note: The BaseName of the GUID is also required.
EFI_HOB_TYPE_FV
EFI_HOB_TYPE_CPU
EFI_HOB_TYPE_PEI_MEMORY_POOL
EFI_HOB_TYPE_CV
This describes the Hob Usage Attributes, as defined in the Module Surface Area Specification
The HOB must be present in the system
The HOB will be used if it's present in the system
The HOB is always produced by the module
The HOB will sometimes be produced by the module.
HOB is produced and consumed only by this module
This describes the Library Usage Attributes, as defined in the Module Surface Area Specification
A module always consumes the library. This Guid represents the class of the library.
The default is the GUID that specifies the instance of the library.
Library is produced and consumed only by this module
These are the supported Framework Module Types
Module only depends on things in the MDE package and is environment neutral
Module is the Security Section and depends on catching the reset vectory
Module is the PEI Core
Module is a PEIM and depends on the PEI Services Table
Module is the DXE Core
Module is a DXE Driver and depends on the EFI Boot Services, EFI Runtime Services and the DXE Service Table
Module is a DXE Driver and depends on the EFI Boot Services, EFI Runtime Services and the DXE Service Table. The module runs after ExitBootServices and produces CreateEvent EventGroupExitBootServices and EventGroupVirtualAddressChange. Code written in this module can run in physical or virtual mode.
Module is a DXE Driver and depends on the EFI Boot Services, EFI Runtime Services and the DXE Service Table. The module runs after ExitBootServices and produces CreateEvent EventGroupExitBootServices and EventGroupVirtualAddressChange. Code written in this module can run in physical AND in virtual mode.
Module is a DXE Driver and depends on the EFI Boot Services, EFI Runtime Services and the DXE Service Table. The module also runs in SMM mode and depends on the SMM Service Table.
The TOOLS ModuleType is to be used for Tiano Tools modules
Module is a UEFI Driver and depends on the EFI and Service Tables.
Module is a UEFI Applciation and depens on the EFI and Service Tables.
Module does not fit into other classifications. The user must have an apriori knowledge of its Usage, and must provide that information to others using this module.
Define a flag to determine whether to put intermediate build files into a directory under the Module, or into a unified tree under the package or platform build trees
Packages are either source, binary or mixed packages.
This describes the Package Usage Attributes, as defined in the Module Surface Area Specification
A module always consumes a package. This GUID represents the class of the package.
This is the Package we are creating. This GUID represents the class of the package.
The default is the GUID that specifies the instance of the package.
PCD Item is only a build time option and cannot be Dyanmic or Binary patched into the module.
PCD Item is set to a default value at build time and a binary of the module can be patched to update the value.
PCD Item is found via a PCD PPI in PEI or a PCD Protocol in DXE. The token that matches the PCD entry is either generated by the build (and is only unique to that build) or is from the default database. This form also implies a build option will be produced for this module that allows the user to pick FixedAtBuild, PatchableInModule or Dynamic. If no Type is specified, it defaults to Dynamic
PCD Item is found via a PCD PPI in PEI or a PCD Protocol in DXE. The token that matches the PCD entry is either generated by the build (and is only unique to that build) or is from the default database. This form also implies a build option will be produced for this module that allows the user to pick FixedAtBuild, PatchableInModule or Dynamic. If no Type is specified, it defaults to Dynamic
This describes the PCD FEATURE_FLAG Usage Attributes, as defined in the Module Surface Area Specification
Item is Always produced
Item is tagged as the default
The PCD Item represents a feature flag for the module. Features can only be selected at build time. Items of type FeatureFlag are used to conditionally construct module surface area that is produced as a result of a buld.
PCD Item is only a build time option and cannot be Dyanmic or Binary patched into the module.
PCD Item is set to a default value at build time and a binary of the module can be patched to update the value.
PCD Item is found via a PCD PPI in PEI or a PCD Protocol in DXE. The token that matches the PCD entry is either generated by the build (and is only unique to that build) or is from the default database. This form also implies a build option will be produced for this module that allows the user to pick FixedAtBuild, PatchableInModule or Dynamic. If no Type is specified, it defaults to Dynamic
PCD Item is found via a PCD PPI in PEI or a PCD Protocol in DXE. Any PCD token database is supported
The PCD Usage is only relevant to Items tagged with FeatureFlag, as defined in the Module Surface Area Specification
The PCD entry must always be provide as the build will include the code and the associated Surface Area.
If the FEATURE_FLAG is TRUE the build will include the code and the associated Surface Area. If the FEATURE_FLAG is FALSE, the code and the associated surface area is not included.
The PCD Entry is Always included in the build code
If the FEATURE_FLAG is TRUE the build will include the code and the associated Surface Area. If the FEATURE_FLAG is FALSE, the code and the associated surface area is not included.
"true" or "false". Indicates the default value for the PCD entry. This is used by the platform wizard to suggest values for a given platform build.
This describes the PPI Notify Usage Attributes, as defined in the Module Surface Area Specification
Module will consume the PPI if it's produced. Consumption is defined by executing the PPI notify function.
This describes the PPI Usage Attributes, as defined in the Module Surface Area Specification
Item is Required for the driver to function. This is part of the dependency expression of a module if the item represents a PPI or Protocol
Item is Consumed by the driver if the Item exists
Item is Always produced
Item is Conditionally produced
Ppi is produced and consumed only by this module
This describes the PROTOCOL Notify Usage Attributes, as defined in the Module Surface Area Specification
Module will Consume protocol if it's produced. Consumption is defined by executing the protocol notify function.
This describes the PROTOCOL Usage Attributes, as defined in the Module Surface Area Specification
Item is Required for the driver to function. This is part of the dependency expression of a module if the item represents a PPI or Protocol
Item is Consumed by the driver if the Item exists
Item is Always produced
Item is Conditionally produced
Protocol Only - Protocol is required by driver binding Start() function to make Start() succeed
Protocol Only - Protocol is produced by driver binding Start() function if and only if Start() succeeds
Protocol is produced and consumed only by this module
These are the currently Supportted Architectures type codes
This describes the System Table Usage Attributes, as defined in the Module Surface Area Specification
Module requires a GUIDed entry in the system table
Module will use the GUIDed entry in the system table only if the GUID is present
Module Always produces a GUIDed entry in the system table
Module sometimes produces a GUIDed entry in the system table for some of its execution flow
SystemTable is produced and consumed only by this module
The Token data is union of HexDoubleWordDataType, GuidNaming Convetion and GuidArrayType.
Supported Tool Chains are MSFT, INTEL, GCC and CYGWIN
Describes which way the directory separator is leaning, either \ for WINDOWS or / for UNIX
Define how we specify unicode strings
This describes the Generic Usage Attributes, as defined in the Module Surface Area Specification
Item is Required for the driver to function. This is part of the dependency expression of a module if the item represents a PPI or Protocol
Item is Consumed by the driver if the Item exists
Item is Always produced
Item is Conditionally produced
Protocol Only - Protocol is required by driver binding Start() function to make Start() succeed
Protocol Only - Protocol is produced by driver binding Start() function if and only if Start() succeeds
Item is Private to the module and cannot be used by other modules
This is the default value for an Item
Describes the available Variable Offset data types, Bytes:Bits or BitSize
This describes the Variable Usage Attributes, as defined in the Module Surface Area Specification
Module requires the variable entry to be set
Module will use the variable entry if it's set
Module Always will write the variable
Module sometimes writes the variable
Variable is produced and consumed only by this module
This type is to permit adding specific tools and tool arguments for User Defined tools, into the Module Build Description file.
These attributes are for the Pcds listed in PcdData, PcdEntry and/or PcdBuildData entries.
PcdUsage is only valid for PcdItemTypes = FEATURE_FLAG
Attributes are either compressable and/or sequence order binding
Attributes for Sections, EncapsulationTag, EncapsulationType and OverrideID