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