-->\r
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"\r
targetNamespace="http://www.uefi.org/2012/1.0" xmlns="http://www.uefi.org/2012/1.0">\r
- <xs:element name="DistributionPackage">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This schema defines the UEFI/PI Distribution Package description (PKG)\r
- file. It describes the content of:</xs:documentation>\r
- <xs:documentation xml:lang="en-us"> 1) Package descriptions with definitions and headers.</xs:documentation>\r
- <xs:documentation xml:lang="en-us"> 2) Modules in either source or binary format. (Note that Binary format\r
- is for FFS leaf section file types only, complete FFS files cannot be distributed using this\r
- distribution format.) </xs:documentation>\r
- <xs:documentation xml:lang="en-us"> 3) The distribution of custom tools used to modify the binary images to\r
- create UEFI/PI compliant images. </xs:documentation>\r
- <xs:documentation xml:lang="en-us"> 4) Finally, it can be used to distribute other miscellaneous content\r
- that is not specific to UEFI/PI images. </xs:documentation>\r
- <xs:documentation xml:lang="en-us"> The Package Surface Area describes the content of packages, while the\r
- Module Surface Area provides information relevant to source and/or binary distributions.\r
+ <xs:element name="DistributionPackage">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This schema defines the UEFI/PI Distribution Package description (PKG)\r
+ file. It describes the content of:\r
+ </xs:documentation>\r
+ <xs:documentation xml:lang="en-us"> 1) Package descriptions with definitions and headers.</xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ 2) Modules in either source or binary format. (Note that Binary format\r
+ is for FFS leaf section file types only, complete FFS files cannot be distributed using this\r
+ distribution format.)\r
+ </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ 3) The distribution of custom tools used to modify the binary images to\r
+ create UEFI/PI compliant images.\r
+ </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ 4) Finally, it can be used to distribute other miscellaneous content\r
+ that is not specific to UEFI/PI images.\r
+ </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The Package Surface Area describes the content of packages, while the\r
+ Module Surface Area provides information relevant to source and/or binary distributions.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element ref="DistributionHeader" minOccurs="1" maxOccurs="1">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This header contains (legal) information usually required\r
+ for distributing both binary and/or source code.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:element>\r
+ <xs:element ref="PackageSurfaceArea" minOccurs="0" maxOccurs="unbounded">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us"> The list of packages in this distribution. </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ Packages are groups of files and/or modules that are similar\r
+ in nature.\r
+ </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ Packages are uniquely identified by a package GUID and a\r
+ package version.\r
+ </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ A package can declare public mappings of C names to GUID\r
+ values.\r
+ </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ A package can provide header files for library classes\r
+ and/or other industry standard definitions.\r
+ </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ A package can also declare public mappings of platform\r
+ configuration database (PCD) "knobs" to control features and operation of modules\r
+ within a platform.\r
+ </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ Finally, a package lists the library instances and/or\r
+ modules that are provided in a distribution package.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:element>\r
+ <xs:element ref="ModuleSurfaceArea" minOccurs="0" maxOccurs="unbounded">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The listing of UEFI/PI compliant modules in this\r
+ distribution that are NOT part of a Package. Every module that is provided as part of a\r
+ package needs to be described in a PackageSurfaceArea.Modules section.\r
+ </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The ModuleSurfaceArea section describes how each module in a\r
+ distribution is coded, or, in the case of a binary module distribution, how it was built.\r
+ </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ UEFI/PI compliant libraries and modules are uniquely\r
+ identified by the Module's GUID and version number.\r
+ </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This section will typically be used for modules that don't\r
+ require any additional files that would be included in a package. For example, the Enhanced\r
+ FAT driver binary does not need to have a package description, as no additional files are\r
+ provided.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:element>\r
+ <xs:element ref="Tools" minOccurs="0" maxOccurs="unbounded">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This section is for distributing vendor specific executable\r
+ tools, tool source code and/or configuration files. These tools are primarily for\r
+ manipulating code and/or binary images.\r
+ </xs:documentation>\r
+ <xs:documentation xml:lang="en-us"> Tools in this section can:</xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ 1) Parse build meta-data files to create source code files\r
+ and build scripts.\r
+ </xs:documentation>\r
+ <xs:documentation xml:lang="en-us"> 2) Modify image files to conform to UEFI/PI specifications. </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ 3) Generate binary files from certain types of text/unicode\r
+ files.\r
+ </xs:documentation>\r
+ <xs:documentation xml:lang="en-us"> 4) Generate PCI Option Roms or Firmware Device images. </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ 5) Implement external encoding/decoding/signature/GUIDed\r
+ tools.\r
+ </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ 6) Distribution Package create/install/remove tools.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:element>\r
+ <xs:element ref="MiscellaneousFiles" minOccurs="0" maxOccurs="unbounded">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The list of miscellaneous files in this distribution. Any\r
+ files that are not listed in either the Package, Module or Tools sections can be listed\r
+ here. This section can be used to distribute specifications for packages and modules that\r
+ are not "industry standards" such as a specification for a chipset or a video\r
+ device.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:element>\r
+ <xs:element ref="UserExtensions" minOccurs="0" maxOccurs="unbounded">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The UserExtensions section is used to disseminate processing\r
+ instructions that may be custom to the content provided by the distribution. This section\r
+ contains information that is common to all aspects of this disribution.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:element>\r
+ </xs:sequence>\r
+\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <!-- End of the DistributionPackage Description -->\r
+\r
+ <xs:element name="DistributionHeader">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This section defines the content of the UEIF/PI compliant Distribution\r
+ Package Header. This is the only required element of a UEFI/PI compliant distribution package.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="Name">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This is the User Interface Name for this Distribution\r
+ Package.\r
+ </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ Each Distribution Package is uniquely identified by it's\r
+ GUID and Version number.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:simpleContent>\r
+ <xs:extension base="xs:normalizedString">\r
+ <xs:attribute name="BaseName" type="xs:NMTOKEN" use="optional">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The reference name of the Distribution\r
+ Package file. This single word name can be used by tools as a keyword or for\r
+ directory and/or file creation.\r
+ </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ White space and special characters (dash and\r
+ underscore characters may be used) are not permitted in this name.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:attribute>\r
+ </xs:extension>\r
+ </xs:simpleContent>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="GUID">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This 128-bit GUID and the Version attribute uniquely\r
+ identify this Distribution Package.\r
+ </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ Backward compatible releases of a distribution package need\r
+ only change the version number, while non-backward compatible changes require the GUID to\r
+ change (resetting the version number to 1.0 is optional.)\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:simpleContent>\r
+ <xs:extension base="RegistryFormatGuid">\r
+ <xs:attribute name="Version" type="xs:decimal" use="required">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This value, along with the GUID, is used to\r
+ uniquely identify this object. The higher the number, the more recent the\r
+ content.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:attribute>\r
+ </xs:extension>\r
+ </xs:simpleContent>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="Vendor" type="xs:normalizedString">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ A string identifying who created this distribution package.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:element>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="Date" type="xs:dateTime">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The date and time this distribution was created. The format\r
+ is: YYYY-MM-DDThh:mm:ss, for example: 2001-01-31T13:30:00 (note the T character separator\r
+ between the calendar date and the time.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:element>\r
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="Copyright">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The copyright for this file that is generated by the creator\r
+ of the distribution. If a derivative work is generated from an existing distribution, then\r
+ the existing copyright must be maintained, and additional copyrights may be appended to the\r
+ end of this element. It may also be the primary copyright for all code provided in the\r
+ Distribution Package.\r
</xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:simpleContent>\r
+ <xs:extension base="xs:string">\r
+ <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"/>\r
+ </xs:extension>\r
+ </xs:simpleContent>\r
+ </xs:complexType>\r
+\r
+ </xs:element>\r
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="License">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ A license that describes any restrictions on the use of this\r
+ distribution. If a derivative work is allowed by the original license and a derivative work\r
+ is generated from an existing distribution, then the existing license must be maintained,\r
+ and additional licenses may be appended to the end of this element. It may also be the\r
+ primary license for all code provided in the distribution file. Alternatively, this may\r
+ point to a filename that contains the License. The file (included in the content zip file)\r
+ will be stored in the same location as the distribution package's .pkg file.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:simpleContent>\r
+ <xs:extension base="xs:string">\r
+ <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"/>\r
+ </xs:extension>\r
+ </xs:simpleContent>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="Abstract">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ A one line description of the Distribution Package.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:simpleContent>\r
+ <xs:extension base="xs:normalizedString">\r
+ <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"/>\r
+ </xs:extension>\r
+ </xs:simpleContent>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="Description">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ A complete description of the Distribution Package. This\r
+ description may include the release name of the file, the version of the file, and a\r
+ complete description of the file contents and/or features including a description of the\r
+ updates since the previous file release.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:simpleContent>\r
+ <xs:extension base="xs:string">\r
+ <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"/>\r
+ </xs:extension>\r
+ </xs:simpleContent>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <xs:element minOccurs="0" maxOccurs="1" name="Signature" type="Md5Sum">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The packaging utilities will use this MD5 sum value of the\r
+ included ZIP file containing files and/or code. If this element is not present, then\r
+ installation tools should assume that the content is correct, or that other methods may be\r
+ needed to verify content.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:element>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="XmlSpecification" type="xs:decimal" default="1.1">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us"> This version of this XML Schema is 1.1 </xs:documentation>\r
+ <xs:documentation xml:lang="en-us"> Changes to 1.1 from 1.0 </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ #1 Updated to present date and new version which is\r
+ important to reflect the present state of the matter\r
+ </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ #2 Added definition/enumeration of UNDEFIND type 2 is\r
+ important since there is a large body of legacy code for which the GUID’s and other\r
+ code/data objects were not decorated with their usage. This document will allow for\r
+ importing today’s source artifacts and producing decorations using the ‘Undefined’ versus\r
+ having an error\r
+ </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ #3 Allow for inclusion of ARM and future architecture\r
+ types\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:element>\r
+ </xs:sequence>\r
+ <xs:attribute name="ReadOnly" type="xs:boolean" default="false" use="optional">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ If set to true, all content within this Distribution Package\r
+ should NOT be modified. The default permits modification of all content.\r
+ </xs:documentation>\r
</xs:annotation>\r
- <xs:complexType>\r
+ </xs:attribute>\r
+ <xs:attribute name="RePackage" type="xs:boolean" default="false" use="optional">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ If set to true, then the content can be repackaged into another\r
+ distribution package. The default prohibits repackaging the Distribution content.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:attribute>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <!-- End of the DistributionHeader element. -->\r
+\r
+ <xs:element name="PackageSurfaceArea">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ A package is a collection of related objects - Includes, Libraries and\r
+ Modules.\r
+ </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ Each package is uniquely identified by it's GUID and Version number.\r
+ Backward compatible releases of a package need only change the version number, while non-backward\r
+ compatible changes require the GUID to change (resetting the version number to 1.0 is optional.)\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+\r
+ <xs:element minOccurs="1" maxOccurs="1" name="Header">\r
+ <xs:complexType>\r
<xs:sequence>\r
- <xs:element ref="DistributionHeader" minOccurs="1" maxOccurs="1">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This header contains (legal) information usually required\r
- for distributing both binary and/or source code. </xs:documentation>\r
- </xs:annotation>\r
- </xs:element>\r
- <xs:element ref="PackageSurfaceArea" minOccurs="0" maxOccurs="unbounded">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> The list of packages in this distribution. </xs:documentation>\r
- <xs:documentation xml:lang="en-us"> Packages are groups of files and/or modules that are similar\r
- in nature.</xs:documentation>\r
- <xs:documentation xml:lang="en-us"> Packages are uniquely identified by a package GUID and a\r
- package version. </xs:documentation>\r
- <xs:documentation xml:lang="en-us"> A package can declare public mappings of C names to GUID\r
- values. </xs:documentation>\r
- <xs:documentation xml:lang="en-us"> A package can provide header files for library classes\r
- and/or other industry standard definitions. </xs:documentation>\r
- <xs:documentation xml:lang="en-us"> A package can also declare public mappings of platform\r
- configuration database (PCD) "knobs" to control features and operation of modules\r
- within a platform. </xs:documentation>\r
- <xs:documentation xml:lang="en-us"> Finally, a package lists the library instances and/or\r
- modules that are provided in a distribution package. </xs:documentation>\r
- </xs:annotation>\r
- </xs:element>\r
- <xs:element ref="ModuleSurfaceArea" minOccurs="0" maxOccurs="unbounded">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> The listing of UEFI/PI compliant modules in this\r
- distribution that are NOT part of a Package. Every module that is provided as part of a\r
- package needs to be described in a PackageSurfaceArea.Modules section. </xs:documentation>\r
- <xs:documentation xml:lang="en-us"> The ModuleSurfaceArea section describes how each module in a\r
- distribution is coded, or, in the case of a binary module distribution, how it was built. </xs:documentation>\r
- <xs:documentation xml:lang="en-us"> UEFI/PI compliant libraries and modules are uniquely\r
- identified by the Module's GUID and version number. </xs:documentation>\r
- <xs:documentation xml:lang="en-us"> This section will typically be used for modules that don't\r
- require any additional files that would be included in a package. For example, the Enhanced\r
- FAT driver binary does not need to have a package description, as no additional files are\r
- provided. </xs:documentation>\r
- </xs:annotation>\r
- </xs:element>\r
- <xs:element ref="Tools" minOccurs="0" maxOccurs="unbounded">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This section is for distributing vendor specific executable\r
- tools, tool source code and/or configuration files. These tools are primarily for\r
- manipulating code and/or binary images. </xs:documentation>\r
- <xs:documentation xml:lang="en-us"> Tools in this section can:</xs:documentation>\r
- <xs:documentation xml:lang="en-us"> 1) Parse build meta-data files to create source code files\r
- and build scripts. </xs:documentation>\r
- <xs:documentation xml:lang="en-us"> 2) Modify image files to conform to UEFI/PI specifications. </xs:documentation>\r
- <xs:documentation xml:lang="en-us"> 3) Generate binary files from certain types of text/unicode\r
- files. </xs:documentation>\r
- <xs:documentation xml:lang="en-us"> 4) Generate PCI Option Roms or Firmware Device images. </xs:documentation>\r
- <xs:documentation xml:lang="en-us"> 5) Implement external encoding/decoding/signature/GUIDed\r
- tools. </xs:documentation>\r
- <xs:documentation xml:lang="en-us"> 6) Distribution Package create/install/remove tools.\r
- </xs:documentation>\r
- </xs:annotation>\r
- </xs:element>\r
- <xs:element ref="MiscellaneousFiles" minOccurs="0" maxOccurs="unbounded">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> The list of miscellaneous files in this distribution. Any\r
- files that are not listed in either the Package, Module or Tools sections can be listed\r
- here. This section can be used to distribute specifications for packages and modules that\r
- are not "industry standards" such as a specification for a chipset or a video\r
- device. </xs:documentation>\r
- </xs:annotation>\r
- </xs:element>\r
- <xs:element ref="UserExtensions" minOccurs="0" maxOccurs="unbounded">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> The UserExtensions section is used to disseminate processing\r
- instructions that may be custom to the content provided by the distribution. This section\r
- contains information that is common to all aspects of this disribution. </xs:documentation>\r
- </xs:annotation>\r
- </xs:element>\r
- </xs:sequence>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="Name">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This is the User Interface Name for this\r
+ package.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:simpleContent>\r
+ <xs:extension base="xs:normalizedString">\r
+ <xs:attribute name="BaseName" type="xs:NMTOKEN" use="required">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This is a single word BaseName\r
+ of the package. This BaseName can be used by tools as a keyword\r
+ and for directory/file creation.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:attribute>\r
+ </xs:extension>\r
+ </xs:simpleContent>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="GUID">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This GUID and the Version attribute uniquely\r
+ identify a given package.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:simpleContent>\r
+ <xs:extension base="RegistryFormatGuid">\r
+ <xs:attribute name="Version" type="xs:decimal" use="required">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This value, along with the GUID,\r
+ is used to uniquely identify this object.\r
+ </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ Backward compatible changes must\r
+ make sure this number is incremented from the most recent\r
+ version. Non-backward compatible changes require a new GUID, and\r
+ the version can be reset.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:attribute>\r
+ </xs:extension>\r
+ </xs:simpleContent>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="Copyright">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ If the package requires a different copyright\r
+ than the distribution package, this element can list one or more copyright\r
+ lines.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:simpleContent>\r
+ <xs:extension base="xs:string">\r
+ <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"\r
+ />\r
+ </xs:extension>\r
+ </xs:simpleContent>\r
+ </xs:complexType>\r
\r
- </xs:complexType>\r
- </xs:element>\r
- <!-- End of the DistributionPackage Description -->\r
+ </xs:element>\r
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="License">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ If the package requires licenses that are\r
+ different from the distribution package license, this element can contain one or\r
+ more license text paragraphs (or license filenames.)\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:simpleContent>\r
+ <xs:extension base="xs:string">\r
+ <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"\r
+ />\r
+ </xs:extension>\r
+ </xs:simpleContent>\r
+ </xs:complexType>\r
\r
- <xs:element name="DistributionHeader">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This section defines the content of the UEIF/PI compliant Distribution\r
- Package Header. This is the only required element of a UEFI/PI compliant distribution package.\r
+ </xs:element>\r
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="Abstract">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ A one line description of this package.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:simpleContent>\r
+ <xs:extension base="xs:normalizedString">\r
+ <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"\r
+ />\r
+ </xs:extension>\r
+ </xs:simpleContent>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="Description">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ A complete description of a package. This\r
+ description may include the release name of the package, the version of the\r
+ package, and a complete description of the package contents and/or features\r
+ including a description of the updates since the previous package’s release.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:simpleContent>\r
+ <xs:extension base="xs:string">\r
+ <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"\r
+ />\r
+ </xs:extension>\r
+ </xs:simpleContent>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="PackagePath" type="xs:anyURI">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This element is the location (in the ZIP file)\r
+ for the root directory of a package.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:element>\r
+ </xs:sequence>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <!-- End of PackageSurfaceArea Header element. -->\r
+\r
+ <xs:element minOccurs="0" maxOccurs="1" name="ClonedFrom">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The term cloned is used here to indicate that this package\r
+ as been copied and modified to a completely different package. An example might be for a new\r
+ generation of chipsets that have few or no elements in common with the original.\r
</xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
<xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="1" name="Name">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This is the User Interface Name for this Distribution\r
- Package. </xs:documentation>\r
- <xs:documentation xml:lang="en-us"> Each Distribution Package is uniquely identified by it's\r
- GUID and Version number. </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="xs:normalizedString">\r
- <xs:attribute name="BaseName" type="xs:NMTOKEN" use="optional">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> The reference name of the Distribution\r
- Package file. This single word name can be used by tools as a keyword or for\r
- directory and/or file creation. </xs:documentation>\r
- <xs:documentation xml:lang="en-us"> White space and special characters (dash and\r
- underscore characters may be used) are not permitted in this name.\r
- </xs:documentation>\r
- </xs:annotation>\r
- </xs:attribute>\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
- </xs:element>\r
- <xs:element minOccurs="1" maxOccurs="1" name="GUID">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This 128-bit GUID and the Version attribute uniquely\r
- identify this Distribution Package. </xs:documentation>\r
- <xs:documentation xml:lang="en-us"> Backward compatible releases of a distribution package need\r
- only change the version number, while non-backward compatible changes require the GUID to\r
- change (resetting the version number to 1.0 is optional.) </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="RegistryFormatGuid">\r
- <xs:attribute name="Version" type="xs:decimal" use="required">\r
+ <xs:element minOccurs="1" maxOccurs="1" name="GUID">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This GUID and the Version attribute uniquely\r
+ identify the Package that this Package was copied from.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:simpleContent>\r
+ <xs:extension base="RegistryFormatGuid">\r
+ <xs:attribute name="Version" type="xs:decimal" use="required">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This value, along with the GUID,\r
+ is used to uniquely identify the package that this package was\r
+ cloned from.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:attribute>\r
+ </xs:extension>\r
+ </xs:simpleContent>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ </xs:sequence>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <!-- End of PackageSurfaceArea ClonedFrom element. -->\r
+\r
+ <xs:element minOccurs="0" maxOccurs="1" name="LibraryClassDeclarations">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ Library Classes are public interfaces that can be used by\r
+ modules. One or more library instances can implement a library class, however only one\r
+ library instance can be linked to an individual module. This provides the platform\r
+ integrator with the flexibility of choosing one library instance's implementation over a\r
+ different library instance.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="LibraryClass">\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="HeaderFile" type="xs:anyURI">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The header file provides definitions\r
+ and function prototypes for a library class. Modules can be coded\r
+ against these functions, using the definitions in this header,\r
+ without concerning themselves about the libraries' implementation\r
+ details. This is a PackagePath relative path and filename for the\r
+ include file.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:element>\r
+ <xs:element minOccurs="0" maxOccurs="1" name="RecommendedInstance">\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="GUID">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This GUID and the\r
+ Version attribute uniquely identify the Recommended Library\r
+ Instance.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:simpleContent>\r
+ <xs:extension base="RegistryFormatGuid">\r
+ <xs:attribute name="Version" type="xs:decimal"\r
+ use="optional">\r
<xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This value, along with the GUID, is used to\r
- uniquely identify this object. The higher the number, the more recent the\r
- content. </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This value, along with\r
+ the GUID, is used to uniquely identify this object. If this\r
+ value is not specified, then any version of the library\r
+ instance is recommended.\r
+ </xs:documentation>\r
</xs:annotation>\r
- </xs:attribute>\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
- </xs:element>\r
- <xs:element minOccurs="1" maxOccurs="1" name="Vendor" type="xs:normalizedString">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> A string identifying who created this distribution package.\r
- </xs:documentation>\r
- </xs:annotation>\r
- </xs:element>\r
- <xs:element minOccurs="1" maxOccurs="1" name="Date" type="xs:dateTime">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> The date and time this distribution was created. The format\r
- is: YYYY-MM-DDThh:mm:ss, for example: 2001-01-31T13:30:00 (note the T character separator\r
- between the calendar date and the time. </xs:documentation>\r
- </xs:annotation>\r
- </xs:element>\r
- <xs:element minOccurs="1" maxOccurs="unbounded" name="Copyright">\r
+ </xs:attribute>\r
+ </xs:extension>\r
+ </xs:simpleContent>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ </xs:sequence>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>\r
+ </xs:sequence>\r
+ <xs:attribute name="Keyword" type="xs:NCName" use="required">\r
<xs:annotation>\r
- <xs:documentation xml:lang="en-us"> The copyright for this file that is generated by the creator\r
- of the distribution. If a derivative work is generated from an existing distribution, then\r
- the existing copyright must be maintained, and additional copyrights may be appended to the\r
- end of this element. It may also be the primary copyright for all code provided in the\r
- Distribution Package. </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The single word name of the Library\r
+ Class that module developers will use to identify a library class\r
+ dependency.\r
+ </xs:documentation>\r
</xs:annotation>\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="xs:string">\r
- <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"/>\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
- \r
- </xs:element>\r
- <xs:element minOccurs="1" maxOccurs="unbounded" name="License">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> A license that describes any restrictions on the use of this\r
- distribution. If a derivative work is allowed by the original license and a derivative work\r
- is generated from an existing distribution, then the existing license must be maintained,\r
- and additional licenses may be appended to the end of this element. It may also be the\r
- primary license for all code provided in the distribution file. Alternatively, this may\r
- point to a filename that contains the License. The file (included in the content zip file)\r
- will be stored in the same location as the distribution package's .pkg file.\r
+ </xs:attribute>\r
+ <xs:attributeGroup ref="SupportedArchMod"/>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ </xs:sequence>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <!-- End of PackageSurfaceArea LibraryClassDeclarations element. -->\r
+\r
+ <xs:element minOccurs="0" maxOccurs="1" name="IndustryStandardIncludes">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This section is used to list header files for industry\r
+ standards not under the auspices of UEFI.org. For example, headers that contain definitions\r
+ and data structures for the USB specifications.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="IndustryStandardHeader">\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="HeaderFile" type="xs:anyURI">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The package relative path and\r
+ filename (in the content zip file) of the industry standard include\r
+ file.\r
</xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="xs:string">\r
- <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"/>\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
- </xs:element>\r
- <xs:element minOccurs="1" maxOccurs="unbounded" name="Abstract">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> A one line description of the Distribution Package.\r
+ </xs:annotation>\r
+ </xs:element>\r
+ <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>\r
+ </xs:sequence>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ </xs:sequence>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <!-- End of PackageSurfaceArea IndustryStdIncludes element. -->\r
+\r
+ <xs:element minOccurs="0" maxOccurs="1" name="PackageIncludes">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ All top level header files that are included by a package\r
+ that are not listed above. They cannot be:\r
+ </xs:documentation>\r
+ <xs:documentation xml:lang="en-us"> 1) Local to a module (module specific.) </xs:documentation>\r
+ <xs:documentation xml:lang="en-us"> 2) An industry standard header. </xs:documentation>\r
+ <xs:documentation xml:lang="en-us"> 3) A library class header. </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="PackageHeader">\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="HeaderFile">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This is the Package relative path\r
+ and filename location within the content ZIP file.\r
</xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="xs:normalizedString">\r
- <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"/>\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
- </xs:element>\r
- <xs:element minOccurs="0" maxOccurs="unbounded" name="Description">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> A complete description of the Distribution Package. This\r
- description may include the release name of the file, the version of the file, and a\r
- complete description of the file contents and/or features including a description of the\r
- updates since the previous file release. </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
<xs:simpleContent>\r
- <xs:extension base="xs:string">\r
- <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"/>\r
- </xs:extension>\r
+ <xs:extension base="xs:anyURI">\r
+ <xs:attributeGroup ref="SupportedArchMod"/>\r
+ </xs:extension>\r
</xs:simpleContent>\r
- </xs:complexType>\r
- </xs:element>\r
- <xs:element minOccurs="0" maxOccurs="1" name="Signature" type="Md5Sum">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> The packaging utilities will use this MD5 sum value of the\r
- included ZIP file containing files and/or code. If this element is not present, then\r
- installation tools should assume that the content is correct, or that other methods may be\r
- needed to verify content. </xs:documentation>\r
- </xs:annotation>\r
- </xs:element>\r
- <xs:element minOccurs="1" maxOccurs="1" name="XmlSpecification" type="xs:decimal" default="1.1">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This version of this XML Schema is 1.1 </xs:documentation>\r
- <xs:documentation xml:lang="en-us"> Changes to 1.1 from 1.0 </xs:documentation>\r
- <xs:documentation xml:lang="en-us"> #1 Updated to present date and new version which is\r
- important to reflect the present state of the matter</xs:documentation>\r
- <xs:documentation xml:lang="en-us"> #2 Added definition/enumeration of UNDEFIND type 2 is\r
- important since there is a large body of legacy code for which the GUID’s and other\r
- code/data objects were not decorated with their usage. This document will allow for\r
- importing today’s source artifacts and producing decorations using the ‘Undefined’ versus\r
- having an error</xs:documentation>\r
- <xs:documentation xml:lang="en-us">#3 Allow for inclusion of ARM and future architecture\r
- types</xs:documentation>\r
- </xs:annotation>\r
- </xs:element>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>\r
+ </xs:sequence>\r
+ </xs:complexType>\r
+ </xs:element>\r
</xs:sequence>\r
- <xs:attribute name="ReadOnly" type="xs:boolean" default="false" use="optional">\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <!-- End of PackageSurfaceArea PackageIncluces element. -->\r
+\r
+ <xs:element minOccurs="0" maxOccurs="1" name="Modules">\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element ref="ModuleSurfaceArea" minOccurs="1" maxOccurs="unbounded">\r
<xs:annotation>\r
- <xs:documentation xml:lang="en-us"> If set to true, all content within this Distribution Package\r
- should NOT be modified. The default permits modification of all content. </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This section lists the Module Surface Area for\r
+ all modules provided with this package.\r
+ </xs:documentation>\r
</xs:annotation>\r
- </xs:attribute>\r
- <xs:attribute name="RePackage" type="xs:boolean" default="false" use="optional">\r
+ </xs:element>\r
+ </xs:sequence>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <!-- End of PackageSurfaceArea Modules element. -->\r
+\r
+ <xs:element minOccurs="0" maxOccurs="1" name="GuidDeclarations">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This section defines the mapping of GUID C names to GUID\r
+ values as a Registry Format GUID.\r
+ </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ Modules that use these GUIDs must specify their dependency\r
+ on this package.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">\r
<xs:annotation>\r
- <xs:documentation xml:lang="en-us"> If set to true, then the content can be repackaged into another\r
- distribution package. The default prohibits repackaging the Distribution content.\r
- </xs:documentation>\r
+ <xs:documentation xml:lang="en-us"> Individual GUID Declarations </xs:documentation>\r
</xs:annotation>\r
- </xs:attribute>\r
- </xs:complexType>\r
- </xs:element>\r
- <!-- End of the DistributionHeader element. -->\r
-\r
- <xs:element name="PackageSurfaceArea">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> A package is a collection of related objects - Includes, Libraries and\r
- Modules. </xs:documentation>\r
- <xs:documentation xml:lang="en-us"> Each package is uniquely identified by it's GUID and Version number.\r
- Backward compatible releases of a package need only change the version number, while non-backward\r
- compatible changes require the GUID to change (resetting the version number to 1.0 is optional.)\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="CName" type="xs:NCName"/>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="GuidValue"\r
+ type="RegistryFormatGuid"/>\r
+ <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>\r
+ </xs:sequence>\r
+ <xs:attribute name="UiName" type="xs:normalizedString" use="optional"/>\r
+ <xs:attribute name="GuidTypes" type="GuidListType" use="optional"/>\r
+ <xs:attributeGroup ref="SupportedArchMod"/>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ </xs:sequence>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <!-- End of PackageSurfaceArea GuidDeclarations element. -->\r
+\r
+ <xs:element minOccurs="0" maxOccurs="1" name="ProtocolDeclarations">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This section defines the mapping of Protocol C names to GUID\r
+ values as a Registry Format GUID.\r
</xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
+ <xs:documentation xml:lang="en-us">\r
+ Modules that use these Protocols must specify their\r
+ dependency on this package.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
<xs:sequence>\r
-\r
- <xs:element minOccurs="1" maxOccurs="1" name="Header">\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="1" name="Name">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This is the User Interface Name for this\r
- package. </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="xs:normalizedString">\r
- <xs:attribute name="BaseName" type="xs:NMTOKEN" use="required">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This is a single word BaseName\r
- of the package. This BaseName can be used by tools as a keyword\r
- and for directory/file creation. </xs:documentation>\r
- </xs:annotation>\r
- </xs:attribute>\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
- </xs:element>\r
- <xs:element minOccurs="1" maxOccurs="1" name="GUID">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This GUID and the Version attribute uniquely\r
- identify a given package. </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="RegistryFormatGuid">\r
- <xs:attribute name="Version" type="xs:decimal" use="required">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This value, along with the GUID,\r
- is used to uniquely identify this object. </xs:documentation>\r
- <xs:documentation xml:lang="en-us"> Backward compatible changes must\r
- make sure this number is incremented from the most recent\r
- version. Non-backward compatible changes require a new GUID, and\r
- the version can be reset. </xs:documentation>\r
- </xs:annotation>\r
- </xs:attribute>\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
- </xs:element>\r
- <xs:element minOccurs="0" maxOccurs="unbounded" name="Copyright">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> If the package requires a different copyright\r
- than the distribution package, this element can list one or more copyright\r
- lines. </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="xs:string">\r
- <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"\r
- />\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
-\r
- </xs:element>\r
- <xs:element minOccurs="0" maxOccurs="unbounded" name="License">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> If the package requires licenses that are\r
- different from the distribution package license, this element can contain one or\r
- more license text paragraphs (or license filenames.) </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="xs:string">\r
- <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"\r
- />\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
-\r
- </xs:element>\r
- <xs:element minOccurs="0" maxOccurs="unbounded" name="Abstract">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> A one line description of this package.\r
- </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="xs:normalizedString">\r
- <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"\r
- />\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
- </xs:element>\r
- <xs:element minOccurs="0" maxOccurs="unbounded" name="Description">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> A complete description of a package. This\r
- description may include the release name of the package, the version of the\r
- package, and a complete description of the package contents and/or features\r
- including a description of the updates since the previous package’s release.\r
- </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="xs:string">\r
- <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"\r
- />\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
- </xs:element>\r
- <xs:element minOccurs="1" maxOccurs="1" name="PackagePath" type="xs:anyURI">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This element is the location (in the ZIP file)\r
- for the root directory of a package. </xs:documentation>\r
- </xs:annotation>\r
- </xs:element>\r
- </xs:sequence>\r
- </xs:complexType>\r
- </xs:element>\r
- <!-- End of PackageSurfaceArea Header element. -->\r
-\r
- <xs:element minOccurs="0" maxOccurs="1" name="ClonedFrom">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> The term cloned is used here to indicate that this package\r
- as been copied and modified to a completely different package. An example might be for a new\r
- generation of chipsets that have few or no elements in common with the original.\r
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ Individual Protocol Declarations\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="CName" type="xs:NCName"/>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="GuidValue"\r
+ type="RegistryFormatGuid"/>\r
+ <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>\r
+ </xs:sequence>\r
+ <xs:attribute name="UiName" type="xs:normalizedString" use="optional"/>\r
+ <xs:attributeGroup ref="SupportedArchMod"/>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ </xs:sequence>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <!-- End of PackageSurfaceArea ProtocolDeclarations element. -->\r
+\r
+ <xs:element minOccurs="0" maxOccurs="1" name="PpiDeclarations">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This section defines the mapping of Ppi C names to GUID\r
+ values as a Registry Format GUID.\r
+ </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ Modules that use these Ppis must specify their dependency on\r
+ this package.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us"> Individual PPI Declarations </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="CName" type="xs:NCName"/>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="GuidValue"\r
+ type="RegistryFormatGuid"/>\r
+ <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>\r
+ </xs:sequence>\r
+ <xs:attribute name="UiName" type="xs:normalizedString" use="optional"/>\r
+ <xs:attributeGroup ref="SupportedArchMod"/>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ </xs:sequence>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <!-- End of PackageSurfaceArea PpiDeclarations element. -->\r
+\r
+ <xs:element minOccurs="0" maxOccurs="1" name="PcdDeclarations">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This section is used to declare platform configuration knobs\r
+ that are defined by this package.\r
+ </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ Modules that use these PCD values must specify their\r
+ dependency on this package.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="PcdEntry">\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="TokenSpaceGuidCname"\r
+ type="xs:NCName">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ Specifies the C name of the Token\r
+ Space GUID of which this PCD Entry is a member. This C name should\r
+ also be listed in the GUIDs section, (specified above,) where the C\r
+ name is assigned to a GUID value.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:element>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="Token">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ Specifies the 32-bit token value for\r
+ this PCD Entry. The Token number must be unique to the Token Space\r
+ that declares the PCD.\r
+ </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The minLength of 3 is required to\r
+ handle the "0x" prefix to the hex number.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:simpleType>\r
+ <xs:restriction base="HexNumber">\r
+ <xs:minLength value="3"/>\r
+ <xs:maxLength value="10"/>\r
+ </xs:restriction>\r
+ </xs:simpleType>\r
+ </xs:element>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="CName" type="xs:NCName"/>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="DatumType" type="PcdDatumTypes">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ A string that contains the data type\r
+ of this PCD Entry. PCD data types are restricted to the following\r
+ set:UINT8, UINT16, UINT32, UINT64, VOID*, BOOLEAN.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:element>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="ValidUsage" type="PcdItemListType">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ A string that contains one or more\r
+ PCD Item types separated by spaces. The PCD Item types are\r
+ restricted to FeaturePcd, FixedPcd, PatchPcd, Pcd and/or PcdEx.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:element>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="DefaultValue"\r
+ type="xs:normalizedString"/>\r
+ <xs:element minOccurs="0" maxOccurs="1" name="MaxDatumSize">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This is a recommended maximum data\r
+ size for VOID* data types, the actual value should be defined by the\r
+ Platform Integrator. It is not required for the other data types.\r
+ </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The minLength of 3 is required to\r
+ handle the "0x" prefix to the hex number.\r
</xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="1" name="GUID">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This GUID and the Version attribute uniquely\r
- identify the Package that this Package was copied from. </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="RegistryFormatGuid">\r
- <xs:attribute name="Version" type="xs:decimal" use="required">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This value, along with the GUID,\r
- is used to uniquely identify the package that this package was\r
- cloned from. </xs:documentation>\r
- </xs:annotation>\r
- </xs:attribute>\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
- </xs:element>\r
- </xs:sequence>\r
- </xs:complexType>\r
- </xs:element>\r
- <!-- End of PackageSurfaceArea ClonedFrom element. -->\r
\r
- <xs:element minOccurs="0" maxOccurs="1" name="LibraryClassDeclarations">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> Library Classes are public interfaces that can be used by\r
- modules. One or more library instances can implement a library class, however only one\r
- library instance can be linked to an individual module. This provides the platform\r
- integrator with the flexibility of choosing one library instance's implementation over a\r
- different library instance. </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
+ </xs:annotation>\r
+ <xs:simpleType>\r
+ <xs:restriction base="HexNumber">\r
+ <xs:minLength value="3"/>\r
+ </xs:restriction>\r
+ </xs:simpleType>\r
+ </xs:element>\r
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="Prompt">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-US">\r
+ This entry contains prompt\r
+ information, that may used by tools to assist platform integrators\r
+ with choosing the correct values\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:simpleContent>\r
+ <xs:extension base="xs:string">\r
+ <xs:attribute name="Lang" type="xs:language" default="en-us"\r
+ use="optional"/>\r
+ </xs:extension>\r
+ </xs:simpleContent>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>\r
+\r
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="PcdError">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ Valid Error messages that may be\r
+ implemented in a module for the PCD Entry. Only One Error Number per\r
+ PcdError, (multiple ErrorMessage entries are permitted) and multiple\r
+ PcdError elements are permitted.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
<xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="unbounded" name="LibraryClass">\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="1" name="HeaderFile" type="xs:anyURI">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> The header file provides definitions\r
- and function prototypes for a library class. Modules can be coded\r
- against these functions, using the definitions in this header,\r
- without concerning themselves about the libraries' implementation\r
- details. This is a PackagePath relative path and filename for the\r
- include file. </xs:documentation>\r
- </xs:annotation>\r
- </xs:element>\r
- <xs:element minOccurs="0" maxOccurs="1" name="RecommendedInstance">\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="1" name="GUID">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This GUID and the\r
- Version attribute uniquely identify the Recommended Library\r
- Instance. </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="RegistryFormatGuid">\r
- <xs:attribute name="Version" type="xs:decimal"\r
- use="optional">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This value, along with\r
- the GUID, is used to uniquely identify this object. If this\r
- value is not specified, then any version of the library\r
- instance is recommended. </xs:documentation>\r
- </xs:annotation>\r
- </xs:attribute>\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
- </xs:element>\r
- </xs:sequence>\r
- </xs:complexType>\r
- </xs:element>\r
- <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>\r
- </xs:sequence>\r
- <xs:attribute name="Keyword" type="xs:NCName" use="required">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> The single word name of the Library\r
- Class that module developers will use to identify a library class\r
- dependency. </xs:documentation>\r
- </xs:annotation>\r
- </xs:attribute>\r
- <xs:attributeGroup ref="SupportedArchMod"/>\r
- </xs:complexType>\r
+ <xs:choice minOccurs="1" maxOccurs="1">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ One of the following\r
+ types of comparisons, which must be able to evaluate to\r
+ either true or false.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:element minOccurs="0" maxOccurs="1" name="ValidValueList">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The PCD Value must be\r
+ space separated list of values. Values are restricted to the\r
+ data type of this PCD.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:simpleContent>\r
+ <xs:extension base="xs:normalizedString">\r
+ <xs:attribute name="Lang" type="xs:language" use="optional"\r
+ />\r
+ </xs:extension>\r
+ </xs:simpleContent>\r
+ </xs:complexType>\r
</xs:element>\r
- </xs:sequence>\r
- </xs:complexType>\r
- </xs:element>\r
- <!-- End of PackageSurfaceArea LibraryClassDeclarations element. -->\r
-\r
- <xs:element minOccurs="0" maxOccurs="1" name="IndustryStandardIncludes">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This section is used to list header files for industry\r
- standards not under the auspices of UEFI.org. For example, headers that contain definitions\r
- and data structures for the USB specifications. </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="unbounded" name="IndustryStandardHeader">\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="1" name="HeaderFile" type="xs:anyURI">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> The package relative path and\r
- filename (in the content zip file) of the industry standard include\r
- file. </xs:documentation>\r
- </xs:annotation>\r
- </xs:element>\r
- <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>\r
- </xs:sequence>\r
- </xs:complexType>\r
+ <xs:element minOccurs="0" maxOccurs="1" name="ValidValueRange"\r
+ type="xs:normalizedString">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The PCD must be within a\r
+ specifed range of numeric values. Restricted to C style\r
+ Relational, Equality and Logicial Operators and parenthesis\r
+ are valid. Only the CName for this PCD is permitted in the\r
+ ValidValueRange expression. All other values must be\r
+ numeric.\r
+ </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ LValue (op RValue)+\r
+ </xs:documentation>\r
+ </xs:annotation>\r
</xs:element>\r
- </xs:sequence>\r
- </xs:complexType>\r
- </xs:element>\r
- <!-- End of PackageSurfaceArea IndustryStdIncludes element. -->\r
-\r
- <xs:element minOccurs="0" maxOccurs="1" name="PackageIncludes">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> All top level header files that are included by a package\r
- that are not listed above. They cannot be:</xs:documentation>\r
- <xs:documentation xml:lang="en-us"> 1) Local to a module (module specific.) </xs:documentation>\r
- <xs:documentation xml:lang="en-us"> 2) An industry standard header. </xs:documentation>\r
- <xs:documentation xml:lang="en-us"> 3) A library class header. </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="unbounded" name="PackageHeader">\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="1" name="HeaderFile">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This is the Package relative path\r
- and filename location within the content ZIP file.\r
- </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="xs:anyURI">\r
- <xs:attributeGroup ref="SupportedArchMod"/>\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
- </xs:element>\r
- <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>\r
- </xs:sequence>\r
- </xs:complexType>\r
+ <xs:element minOccurs="0" maxOccurs="1" name="Expression"\r
+ type="xs:normalizedString">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ A in-fix logical\r
+ expression using C style logical operators.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
</xs:element>\r
- </xs:sequence>\r
- </xs:complexType>\r
- </xs:element>\r
- <!-- End of PackageSurfaceArea PackageIncluces element. -->\r
-\r
- <xs:element minOccurs="0" maxOccurs="1" name="Modules">\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element ref="ModuleSurfaceArea" minOccurs="1" maxOccurs="unbounded">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This section lists the Module Surface Area for\r
- all modules provided with this package. </xs:documentation>\r
- </xs:annotation>\r
- </xs:element>\r
- </xs:sequence>\r
- </xs:complexType>\r
- </xs:element>\r
- <!-- End of PackageSurfaceArea Modules element. -->\r
-\r
- <xs:element minOccurs="0" maxOccurs="1" name="GuidDeclarations">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This section defines the mapping of GUID C names to GUID\r
- values as a Registry Format GUID. </xs:documentation>\r
- <xs:documentation xml:lang="en-us"> Modules that use these GUIDs must specify their dependency\r
- on this package. </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> Individual GUID Declarations </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="1" name="CName" type="xs:NCName"/>\r
- <xs:element minOccurs="1" maxOccurs="1" name="GuidValue"\r
- type="RegistryFormatGuid"/>\r
- <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>\r
- </xs:sequence>\r
- <xs:attribute name="UiName" type="xs:normalizedString" use="optional"/>\r
- <xs:attribute name="GuidTypes" type="GuidListType" use="optional"/>\r
- <xs:attributeGroup ref="SupportedArchMod"/>\r
- </xs:complexType>\r
- </xs:element>\r
- </xs:sequence>\r
- </xs:complexType>\r
- </xs:element>\r
- <!-- End of PackageSurfaceArea GuidDeclarations element. -->\r
-\r
- <xs:element minOccurs="0" maxOccurs="1" name="ProtocolDeclarations">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This section defines the mapping of Protocol C names to GUID\r
- values as a Registry Format GUID. </xs:documentation>\r
- <xs:documentation xml:lang="en-us"> Modules that use these Protocols must specify their\r
- dependency on this package. </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> Individual Protocol Declarations\r
- </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="1" name="CName" type="xs:NCName"/>\r
- <xs:element minOccurs="1" maxOccurs="1" name="GuidValue"\r
- type="RegistryFormatGuid"/>\r
- <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>\r
- </xs:sequence>\r
- <xs:attribute name="UiName" type="xs:normalizedString" use="optional"/>\r
- <xs:attributeGroup ref="SupportedArchMod"/>\r
- </xs:complexType>\r
- </xs:element>\r
- </xs:sequence>\r
- </xs:complexType>\r
- </xs:element>\r
- <!-- End of PackageSurfaceArea ProtocolDeclarations element. -->\r
-\r
- <xs:element minOccurs="0" maxOccurs="1" name="PpiDeclarations">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This section defines the mapping of Ppi C names to GUID\r
- values as a Registry Format GUID. </xs:documentation>\r
- <xs:documentation xml:lang="en-us"> Modules that use these Ppis must specify their dependency on\r
- this package. </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> Individual PPI Declarations </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="1" name="CName" type="xs:NCName"/>\r
- <xs:element minOccurs="1" maxOccurs="1" name="GuidValue"\r
- type="RegistryFormatGuid"/>\r
- <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>\r
- </xs:sequence>\r
- <xs:attribute name="UiName" type="xs:normalizedString" use="optional"/>\r
- <xs:attributeGroup ref="SupportedArchMod"/>\r
- </xs:complexType>\r
- </xs:element>\r
- </xs:sequence>\r
- </xs:complexType>\r
- </xs:element>\r
- <!-- End of PackageSurfaceArea PpiDeclarations element. -->\r
-\r
- <xs:element minOccurs="0" maxOccurs="1" name="PcdDeclarations">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This section is used to declare platform configuration knobs\r
- that are defined by this package. </xs:documentation>\r
- <xs:documentation xml:lang="en-us"> Modules that use these PCD values must specify their\r
- dependency on this package. </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="unbounded" name="PcdEntry">\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="1" name="TokenSpaceGuidCname"\r
- type="xs:NCName">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> Specifies the C name of the Token\r
- Space GUID of which this PCD Entry is a member. This C name should\r
- also be listed in the GUIDs section, (specified above,) where the C\r
- name is assigned to a GUID value. </xs:documentation>\r
- </xs:annotation>\r
- </xs:element>\r
- <xs:element minOccurs="1" maxOccurs="1" name="Token">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> Specifies the 32-bit token value for\r
- this PCD Entry. The Token number must be unique to the Token Space\r
- that declares the PCD. </xs:documentation>\r
- <xs:documentation xml:lang="en-us"> The minLength of 3 is required to\r
- handle the "0x" prefix to the hex number. </xs:documentation>\r
- </xs:annotation>\r
- <xs:simpleType>\r
- <xs:restriction base="HexNumber">\r
- <xs:minLength value="3"/>\r
- <xs:maxLength value="10"/>\r
- </xs:restriction>\r
- </xs:simpleType>\r
- </xs:element>\r
- <xs:element minOccurs="1" maxOccurs="1" name="CName" type="xs:NCName"/>\r
- <xs:element minOccurs="1" maxOccurs="1" name="DatumType" type="PcdDatumTypes">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> A string that contains the data type\r
- of this PCD Entry. PCD data types are restricted to the following\r
- set:UINT8, UINT16, UINT32, UINT64, VOID*, BOOLEAN.\r
- </xs:documentation>\r
- </xs:annotation>\r
- </xs:element>\r
- <xs:element minOccurs="1" maxOccurs="1" name="ValidUsage" type="PcdItemListType">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> A string that contains one or more\r
- PCD Item types separated by spaces. The PCD Item types are\r
- restricted to FeaturePcd, FixedPcd, PatchPcd, Pcd and/or PcdEx.\r
- </xs:documentation>\r
- </xs:annotation>\r
- </xs:element>\r
- <xs:element minOccurs="1" maxOccurs="1" name="DefaultValue"\r
- type="xs:normalizedString"/>\r
- <xs:element minOccurs="0" maxOccurs="1" name="MaxDatumSize">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This is a recommended maximum data\r
- size for VOID* data types, the actual value should be defined by the\r
- Platform Integrator. It is not required for the other data types. </xs:documentation>\r
- <xs:documentation xml:lang="en-us"> The minLength of 3 is required to\r
- handle the "0x" prefix to the hex number. </xs:documentation>\r
-\r
- </xs:annotation>\r
- <xs:simpleType>\r
- <xs:restriction base="HexNumber">\r
- <xs:minLength value="3"/>\r
- </xs:restriction>\r
- </xs:simpleType>\r
- </xs:element>\r
- <xs:element minOccurs="0" maxOccurs="unbounded" name="Prompt">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-US"> This entry contains prompt\r
- information, that may used by tools to assist platform integrators\r
- with choosing the correct values </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="xs:string">\r
- <xs:attribute name="Lang" type="xs:language" default="en-us"\r
- use="optional"/>\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
- </xs:element>\r
- <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>\r
-\r
- <xs:element minOccurs="0" maxOccurs="unbounded" name="PcdError">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> Valid Error messages that may be\r
- implemented in a module for the PCD Entry. Only One Error Number per\r
- PcdError, (multiple ErrorMessage entries are permitted) and multiple\r
- PcdError elements are permitted. </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:choice minOccurs="1" maxOccurs="1">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> One of the following\r
- types of comparisons, which must be able to evaluate to\r
- either true or false. </xs:documentation>\r
- </xs:annotation>\r
- <xs:element minOccurs="0" maxOccurs="1" name="ValidValueList">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> The PCD Value must be\r
- space separated list of values. Values are restricted to the\r
- data type of this PCD. </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="xs:normalizedString">\r
- <xs:attribute name="Lang" type="xs:language" use="optional"\r
- />\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
- </xs:element>\r
- <xs:element minOccurs="0" maxOccurs="1" name="ValidValueRange"\r
- type="xs:normalizedString">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> The PCD must be within a\r
- specifed range of numeric values. Restricted to C style\r
- Relational, Equality and Logicial Operators and parenthesis\r
- are valid. Only the CName for this PCD is permitted in the\r
- ValidValueRange expression. All other values must be\r
- numeric.</xs:documentation>\r
- <xs:documentation xml:lang="en-us"> LValue (op RValue)+\r
- </xs:documentation>\r
- </xs:annotation>\r
- </xs:element>\r
- <xs:element minOccurs="0" maxOccurs="1" name="Expression"\r
- type="xs:normalizedString">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> A in-fix logical\r
- expression using C style logical operators.\r
- </xs:documentation>\r
- </xs:annotation>\r
- </xs:element>\r
- </xs:choice>\r
- <xs:element minOccurs="1" maxOccurs="1" name="ErrorNumber">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> A hexadecimal value for\r
- the error message as defined by specifications. </xs:documentation>\r
- <xs:documentation xml:lang="en-us"> The minLength of 3 is\r
- required to handle the "0x" prefix to the hex number. </xs:documentation>\r
-\r
- </xs:annotation>\r
- <xs:simpleType>\r
- <xs:restriction base="HexNumber">\r
- <xs:minLength value="3"/>\r
- </xs:restriction>\r
- </xs:simpleType>\r
- </xs:element>\r
- <xs:element minOccurs="1" maxOccurs="unbounded" name="ErrorMessage">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This string should be\r
- defined by specifications. There are pre-defined error\r
- number ranges in the UEFI/PI specificaiton.\r
- </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="xs:string">\r
- <xs:attribute name="Lang" type="xs:language" default="en-us"\r
- use="optional"/>\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
- </xs:element>\r
- </xs:sequence>\r
- </xs:complexType>\r
- </xs:element>\r
- </xs:sequence>\r
- <xs:attributeGroup ref="SupportedArchMod"/>\r
- </xs:complexType>\r
- </xs:element>\r
- </xs:sequence>\r
- </xs:complexType>\r
- </xs:element>\r
- <!-- End of PackageSurfaceArea PcdDeclarations element. -->\r
-\r
- <xs:element minOccurs="0" maxOccurs="1" name="PcdRelationshipChecks">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This section is used to describe any PCD interdependencies\r
- or relationships. </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="unbounded" name="PcdCheck" type="xs:normalizedString">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This entry must used\r
- TokenSpaceGuidCName.PcdCname for every named PCD. Restricted to Relational,\r
- Equality and Logical Operators (NOT, AND, OR, GT, GE, EQ, LE, LT and XOR) and\r
- parenthesis are valid. Only the TokenSpaceGuidCName.PcdCname us permitted to\r
- name PCDs in the expression. All other values must be numeric. </xs:documentation>\r
- <xs:documentation xml:lang="en-us"> LValue (op RValue)+ </xs:documentation>\r
- </xs:annotation>\r
- </xs:element>\r
- </xs:sequence>\r
- </xs:complexType>\r
- </xs:element>\r
-\r
- <xs:element minOccurs="0" maxOccurs="unbounded" name="MiscellaneousFiles">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This section contains files that are not part of the code\r
- distributed with this package. </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="0" maxOccurs="1" name="Copyright" type="xs:string">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> Only required if different from the Package\r
- Copyright. </xs:documentation>\r
- </xs:annotation>\r
- </xs:element>\r
- <xs:element minOccurs="0" maxOccurs="1" name="License" type="xs:string">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> Only required if different from the Package\r
- License. </xs:documentation>\r
- </xs:annotation>\r
- </xs:element>\r
- <xs:element minOccurs="0" maxOccurs="1" name="Abstract" type="xs:string">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> A one line description of this section's\r
- content. </xs:documentation>\r
- </xs:annotation>\r
- </xs:element>\r
- <xs:element minOccurs="0" maxOccurs="unbounded" name="Description" type="xs:string">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> A complete description of the files in this\r
- section. </xs:documentation>\r
- </xs:annotation>\r
- </xs:element>\r
- <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This is the PackagePath relative path and\r
- filename location within the ZIP file. </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="xs:anyURI">\r
- <xs:attribute name="Executable" type="xs:boolean" default="false"\r
- use="optional">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> If true, used by installation\r
- tools to ensure that a file that must be executable has the\r
- correct properties to permit execution. </xs:documentation>\r
- </xs:annotation>\r
- </xs:attribute>\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
- </xs:element>\r
-\r
- </xs:sequence>\r
- </xs:complexType>\r
- </xs:element>\r
- <!-- End of PackageSurfaceArea Misc element. -->\r
-\r
- <xs:element minOccurs="0" maxOccurs="unbounded" name="UserExtensions">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This section is used for any processing instructions that\r
- may be custom to the content provided by this package that are common to this package.\r
- </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType mixed="true">\r
- <xs:sequence>\r
- <xs:any processContents="lax" minOccurs="0" maxOccurs="1"/>\r
- </xs:sequence>\r
- <xs:attribute name="UserId" type="xs:NCName" use="required">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This is a single word identifier for grouping\r
- similar content that does not fit into previously defined sections or other sections\r
- of the Distribution. </xs:documentation>\r
- </xs:annotation>\r
- </xs:attribute>\r
- <xs:attribute name="Identifier" type="xs:string" use="required">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This can be used to differentiate multiple sections\r
- with a grouping. </xs:documentation>\r
- <xs:documentation xml:lang="en-us"> For example, a PRE_PROCESS Identifier might indicate\r
- specific steps and tools required before processing module content, while a\r
- different UserExtensions section with a POST_PROCESS Identifier might describe steps\r
- that need to be executed after operations on the modules in this package.\r
- </xs:documentation>\r
- </xs:annotation>\r
- </xs:attribute>\r
- <xs:anyAttribute processContents="lax"/>\r
- </xs:complexType>\r
- </xs:element>\r
- <!-- End of PackageSurfaceArea UserExtensions element. -->\r
-\r
- </xs:sequence>\r
- </xs:complexType>\r
- </xs:element>\r
- <!-- End of the PackageSurfaceArea element. -->\r
-\r
- <xs:element name="ModuleSurfaceArea">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> Each module is uniquely identified by it's GUID and Version number.\r
- Backward compatible releases of a module need only change the version number, while non-backward\r
- compatible changes require the GUID to change (resetting the version number to 1.0 is optional.)\r
- </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:sequence>\r
-\r
- <xs:element minOccurs="1" maxOccurs="1" name="Header">\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="1" name="Name">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This is the User Interface Name for this Module.\r
- </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="xs:normalizedString">\r
- <xs:attribute name="BaseName" type="xs:NMTOKEN" use="required">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This is a single word BaseName\r
- that will be used to create a module meta-data file. </xs:documentation>\r
- <xs:documentation xml:lang="en-us"> This name should also be used to\r
- create output file names and directories. </xs:documentation>\r
- </xs:annotation>\r
- </xs:attribute>\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
- </xs:element>\r
- <xs:element minOccurs="1" maxOccurs="1" name="GUID">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This GUID and the Version attribute uniquely\r
- identify a given Module. </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="RegistryFormatGuid">\r
- <xs:attribute name="Version" type="xs:decimal" use="required">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This value, along with the GUID,\r
- is used to uniquely identify this object. </xs:documentation>\r
- <xs:documentation xml:lang="en-us"> Backward compatible changes must\r
- make sure this number is incremented from the most recent\r
- version. Non-backward compatible changes require a new GUID, and\r
- the version can be reset. </xs:documentation>\r
- </xs:annotation>\r
- </xs:attribute>\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
- </xs:element>\r
- <xs:element minOccurs="0" maxOccurs="unbounded" name="Copyright">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This is only required if the Copyright is\r
- different from either the Package or Distribution copyright. Multiple copyright\r
- lines are permitted within this section. </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="xs:string">\r
- <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"\r
- />\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
- </xs:element>\r
- <xs:element minOccurs="0" maxOccurs="unbounded" name="License">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This is only required if the license is\r
- different from either the Package or Distribution license. Multiple licenses are\r
- permitted within this section. </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="xs:string">\r
- <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"\r
- />\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
- </xs:element>\r
- <xs:element minOccurs="0" maxOccurs="unbounded" name="Abstract">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> A brief text description of the module.\r
- </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="xs:normalizedString">\r
- <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"\r
- />\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
- </xs:element>\r
- <xs:element minOccurs="0" maxOccurs="unbounded" name="Description">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> A complete description of the module contents\r
- and/or features including a description of the updates since the previous module\r
- release. </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="xs:string">\r
- <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"\r
- />\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
- </xs:element>\r
- </xs:sequence>\r
- </xs:complexType>\r
- </xs:element>\r
- <!-- End of Module Surface Area Header Section -->\r
-\r
- <xs:element minOccurs="0" maxOccurs="1" name="ModuleProperties">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> List general information about a module, including the\r
- Supported Architectures, this module's type, specifications the module is coded against, and\r
- other informational content. </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="1" name="ModuleType" type="ModuleTypes">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> One of the Enumerated module types that limit\r
- the use of a module. </xs:documentation>\r
- </xs:annotation>\r
- </xs:element>\r
- <xs:element minOccurs="1" maxOccurs="1" name="Path" type="xs:anyURI">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> For stand-alone modules that are NOT part of any\r
- package, this is the path to the root of the module as listed in the ZIP file.\r
- For modules included in a package, this is the location, relative to the root of\r
- the package (PackagePath) this module belongs to. </xs:documentation>\r
- </xs:annotation>\r
- </xs:element>\r
- <xs:element minOccurs="0" maxOccurs="1" name="PcdIsDriver">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This element is only required for the PEIM that\r
- produces the PCD PPI or the DXE Driver that produces the PCD Protocol.\r
- </xs:documentation>\r
- </xs:annotation>\r
- <xs:simpleType>\r
- <xs:restriction base="xs:NCName">\r
- <xs:enumeration value="PEI_PCD_DRIVER"/>\r
- <xs:enumeration value="DXE_PCD_DRIVER"/>\r
- </xs:restriction>\r
- </xs:simpleType>\r
- </xs:element>\r
-\r
- <xs:element minOccurs="0" maxOccurs="1" name="UefiSpecificationVersion" type="xs:decimal"/>\r
-\r
- <xs:element minOccurs="0" maxOccurs="1" name="PiSpecificationVersion" type="xs:decimal"/>\r
-\r
- <xs:element minOccurs="0" maxOccurs="unbounded" name="Specification">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This is a list of other specifications that this\r
- module is written against. These entries can be used in #define statements\r
- (depending on the build system implementation, they may be autogenerated.)\r
- </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="xs:NCName">\r
- <xs:attribute name="Version" type="xs:decimal" use="required"/>\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
- </xs:element>\r
-\r
- <xs:element minOccurs="0" maxOccurs="unbounded" name="BootMode">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> Different firmware execution paths may be taken\r
- based on a given state of the hardware, firmware, or through feature settings. A\r
- BootMode may be declared (PRODUCES) or discovered (CONSUMES) based on these\r
- states and feature settings. If the usage is UNDEFINE, it implies that a Boot\r
- Mode is used, but the package creator does not know how it is used. The\r
- supported boot modes map to the PI specification Boot Modes. The boot modes\r
- listed with Recovery are to indicate that the BootMode is valid during a\r
- recovery boot. </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:sequence minOccurs="0">\r
- <xs:element minOccurs="1" maxOccurs="1" name="SupportedBootModes">\r
- <xs:simpleType>\r
- <xs:list>\r
- <xs:simpleType>\r
- <xs:restriction base="xs:NCName">\r
- <xs:enumeration value="FULL"/>\r
- <xs:enumeration value="MINIMAL"/>\r
- <xs:enumeration value="NO_CHANGE"/>\r
- <xs:enumeration value="DIAGNOSTICS"/>\r
- <xs:enumeration value="DEFAULT"/>\r
- <xs:enumeration value="S2_RESUME"/>\r
- <xs:enumeration value="S3_RESUME"/>\r
- <xs:enumeration value="S4_RESUME"/>\r
- <xs:enumeration value="S5_RESUME"/>\r
- <xs:enumeration value="FLASH_UPDATE"/>\r
- <xs:enumeration value="RECOVERY_FULL"/>\r
- <xs:enumeration value="RECOVERY_MINIMAL"/>\r
- <xs:enumeration value="RECOVERY_NO_CHANGE"/>\r
- <xs:enumeration value="RECOVERY_DIAGNOSTICS"/>\r
- <xs:enumeration value="RECOVERY_DEFAULT"/>\r
- <xs:enumeration value="RECOVERY_S2_RESUME"/>\r
- <xs:enumeration value="RECOVERY_S3_RESUME"/>\r
- <xs:enumeration value="RECOVERY_S4_RESUME"/>\r
- <xs:enumeration value="RECOVERY_S5_RESUME"/>\r
- <xs:enumeration value="RECOVERY_FLASH_UPDATE"/>\r
- <xs:enumeration value="UNDEFINED"/>\r
- </xs:restriction>\r
- </xs:simpleType>\r
- </xs:list>\r
- </xs:simpleType>\r
- </xs:element>\r
-\r
- <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>\r
- </xs:sequence>\r
- <xs:attribute name="Usage" use="required">\r
- <xs:simpleType>\r
- <xs:restriction base="xs:NCName">\r
- <xs:enumeration value="CONSUMES">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> The module always supports\r
- the given boot modes. </xs:documentation>\r
- </xs:annotation>\r
- </xs:enumeration>\r
- <xs:enumeration value="SOMETIMES_CONSUMES">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> The module may support a\r
- given mode on some execution paths. </xs:documentation>\r
- </xs:annotation>\r
- </xs:enumeration>\r
- <xs:enumeration value="PRODUCES">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> The module will change the\r
- boot mode. </xs:documentation>\r
- </xs:annotation>\r
- </xs:enumeration>\r
- <xs:enumeration value="SOMETIME_PRODUCES">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> The module will change the\r
- boot mode on some exection paths. </xs:documentation>\r
- </xs:annotation>\r
- </xs:enumeration>\r
- <xs:enumeration value="UNDEFINED">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> The package creator does not\r
- know how the boot mode is used. </xs:documentation>\r
- </xs:annotation>\r
- </xs:enumeration>\r
- </xs:restriction>\r
- </xs:simpleType>\r
- </xs:attribute>\r
- <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
- <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
- </xs:complexType>\r
- </xs:element>\r
-\r
- <xs:element minOccurs="0" maxOccurs="unbounded" name="Event" nillable="true">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> The functions that make up the Event, Timer, and\r
- Task Priority Services are used during preboot to create, close, signal, and\r
- wait for events; to set timers; and to raise and restore task priority levels as\r
- defined in the UEFI specification. GUIDed events should be listed in the Guids\r
- section. </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>\r
- </xs:sequence>\r
- <xs:attribute name="Usage" use="required">\r
- <xs:simpleType>\r
- <xs:restriction base="xs:NCName">\r
- <xs:enumeration value="CONSUMES">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> The module will register a\r
- notification function and calls the function when it is\r
- signaled. </xs:documentation>\r
- </xs:annotation>\r
- </xs:enumeration>\r
- <xs:enumeration value="SOMETIMES_CONSUMES">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> The module will register a\r
- notification function and calls the function when it is\r
- signaled on some execution paths. </xs:documentation>\r
- </xs:annotation>\r
- </xs:enumeration>\r
- <xs:enumeration value="PRODUCES">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> The module will signal all\r
- events in an event group. </xs:documentation>\r
- </xs:annotation>\r
- </xs:enumeration>\r
- <xs:enumeration value="SOMETIMES_PRODUCES">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> The module will signal all\r
- events in an event group under some execution paths.\r
- </xs:documentation>\r
- </xs:annotation>\r
- </xs:enumeration>\r
- <xs:enumeration value="UNDEFINED">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> The package creator does not\r
- know how an event is used. </xs:documentation>\r
- </xs:annotation>\r
- </xs:enumeration>\r
- </xs:restriction>\r
- </xs:simpleType>\r
- </xs:attribute>\r
- <xs:attribute name="EventType" use="required">\r
- <xs:simpleType>\r
- <xs:restriction base="xs:NCName">\r
- <xs:enumeration value="EVENT_TYPE_PERIODIC_TIMER"/>\r
- <xs:enumeration value="EVENT_TYPE_RELATIVE_TIMER"/>\r
- <xs:enumeration value="UNDEFINED"/>\r
- </xs:restriction>\r
- </xs:simpleType>\r
-\r
-\r
- </xs:attribute>\r
- <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
- <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
- </xs:complexType>\r
- </xs:element>\r
-\r
- <xs:element minOccurs="0" maxOccurs="unbounded" name="HOB" nillable="false">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This is a list of non-GUIDed Hand Off Blocks\r
- (HOBs) produced or consumed by this module. </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>\r
- </xs:sequence>\r
- <xs:attribute name="HobType" use="required">\r
- <xs:simpleType>\r
- <xs:restriction base="xs:NCName">\r
- <xs:enumeration value="PHIT"/>\r
- <xs:enumeration value="MEMORY_ALLOCATION"/>\r
- <xs:enumeration value="RESOURCE_DESCRIPTOR"/>\r
- <xs:enumeration value="FIRMWARE_VOLUME"/>\r
- <xs:enumeration value="LOAD_PEIM"/>\r
- <xs:enumeration value="UNDEFINED"/>\r
- </xs:restriction>\r
- </xs:simpleType>\r
- </xs:attribute>\r
- <xs:attribute name="Usage" use="required">\r
- <xs:simpleType>\r
- <xs:restriction base="xs:NCName">\r
- <xs:enumeration value="CONSUMES">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> A HOB must be present in the\r
- system. </xs:documentation>\r
- </xs:annotation>\r
- </xs:enumeration>\r
- <xs:enumeration value="SOMETIMES_CONSUMES">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> If present, the HOB will be\r
- used. </xs:documentation>\r
- </xs:annotation>\r
- </xs:enumeration>\r
- <xs:enumeration value="PRODUCES">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> The HOB is always produced\r
- by the module. </xs:documentation>\r
- </xs:annotation>\r
- </xs:enumeration>\r
- <xs:enumeration value="SOMETIMES_PRODUCES">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> The HOB may be produced by\r
- the module under some execution paths. </xs:documentation>\r
- </xs:annotation>\r
- </xs:enumeration>\r
- <xs:enumeration value="UNDEFINED">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> The package creator knows\r
- that a HOB is used, but does not know how it is used.\r
- </xs:documentation>\r
- </xs:annotation>\r
- </xs:enumeration>\r
- </xs:restriction>\r
- </xs:simpleType>\r
- </xs:attribute>\r
- <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
- <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
- </xs:complexType>\r
- </xs:element>\r
-\r
- </xs:sequence>\r
- <xs:attributeGroup ref="SupportedArchMod"/>\r
- </xs:complexType>\r
- </xs:element>\r
- <!-- End of ModuleProperties Section -->\r
-\r
- <xs:element minOccurs="0" maxOccurs="1" name="ClonedFrom">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This section may be included for Modules that are copied\r
- from a different module. </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="1" name="GUID">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This GUID and the Version attribute uniquely\r
- identify the Module that this Module was copied from. </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="RegistryFormatGuid">\r
- <xs:attribute name="Version" type="xs:decimal" use="required">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This value, along with the GUID,\r
- is used to uniquely identify this object. </xs:documentation>\r
- </xs:annotation>\r
- </xs:attribute>\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
- </xs:element>\r
- </xs:sequence>\r
- </xs:complexType>\r
- </xs:element>\r
- <!-- End of ClonedFrom Section. -->\r
-\r
- <xs:element minOccurs="0" maxOccurs="1" name="LibraryClassDefinitions">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> A list of the different Library Classes consumed by a\r
- driver, core and/or application module, or produced by a Library module. </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="unbounded" name="LibraryClass">\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="1" name="Keyword" type="xs:NCName">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us "> Used by tools to identify different\r
- instances of libraries that provide the library class. This keyword\r
- identifies the library class this module needs to be linked against.\r
- </xs:documentation>\r
- </xs:annotation>\r
- </xs:element>\r
- <xs:element minOccurs="0" maxOccurs="1" name="RecommendedInstance">\r
- <xs:complexType>\r
- <xs:all>\r
- <xs:element minOccurs="1" maxOccurs="1" name="GUID">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This GUID and the\r
- Version attribute uniquely identify the recommended Library\r
- Instance for this module . </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="RegistryFormatGuid">\r
- <xs:attribute name="Version" type="xs:decimal"\r
- use="optional">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This value, along with\r
- the GUID, is used to uniquely identify this object.\r
- </xs:documentation>\r
- </xs:annotation>\r
- </xs:attribute>\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
- </xs:element>\r
- </xs:all>\r
- </xs:complexType>\r
- </xs:element>\r
- <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>\r
- </xs:sequence>\r
- <xs:attribute name="Usage" use="required">\r
- <xs:simpleType>\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> Library instances can provide code\r
- for a library class, or may require other library instances\r
- themselves. Since different execution paths in a library (or module)\r
- may need different library classes based on some setting, library\r
- classes may not alway be required. </xs:documentation>\r
- </xs:annotation>\r
- <xs:restriction base="xs:NCName">\r
- <xs:enumeration value="PRODUCES"/>\r
- <xs:enumeration value="CONSUMES"/>\r
- <xs:enumeration value="SOMETIMES_CONSUMES"/>\r
- <xs:enumeration value="UNDEFINED"/>\r
- </xs:restriction>\r
- </xs:simpleType>\r
- </xs:attribute>\r
-\r
- <xs:attributeGroup ref="SupportedArchMod"/>\r
- <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> A FeatureFlag attribute must evaluate to\r
- either true or false - it may be a fixed value of true or false, a C\r
- name or an in-fix expression. </xs:documentation>\r
- </xs:annotation>\r
- </xs:attribute>\r
- </xs:complexType>\r
- </xs:element>\r
- </xs:sequence>\r
- </xs:complexType>\r
- </xs:element>\r
- <!-- End of LibraryClassDefinitions Section -->\r
-\r
- <xs:element minOccurs="0" maxOccurs="1" name="SourceFiles">\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This is the module relative\r
- (ModuleProperties.Path) path and filename location within the ZIP file.\r
- </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="xs:anyURI">\r
- <xs:attribute name="Family" type="FamilyTypes" use="optional">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> The Family attribute is used to\r
- restrict usage to a given family of compilers, such as GCC or\r
- MSFT. Since not all code processing tools use the same syntax,\r
- especially for assembly, this field can be used to identify\r
- different syntax. </xs:documentation>\r
- </xs:annotation>\r
- </xs:attribute>\r
- <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
- <xs:attribute name="SupModList" type="ModuleListType" use="optional"/>\r
- <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
- </xs:element>\r
- <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>\r
- </xs:sequence>\r
- </xs:complexType>\r
- </xs:element>\r
- <!-- End of SourceFiles Section -->\r
-\r
- <xs:element minOccurs="0" maxOccurs="1" name="BinaryFiles">\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="unbounded" name="BinaryFile">\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This is the module relative\r
- (ModuleProperties.Path) path and filename location within the ZIP\r
- file. </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="xs:anyURI">\r
- <xs:attribute name="FileType" use="optional">\r
- <xs:simpleType>\r
- <xs:restriction base="xs:NCName">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> Binary file distribution\r
- is limited to UEFI/PI FFS leaf section file types.\r
- </xs:documentation>\r
- </xs:annotation>\r
- <xs:enumeration value="GUID"/>\r
- <xs:enumeration value="FREEFORM"/>\r
- <xs:enumeration value="UEFI_IMAGE"/>\r
- <xs:enumeration value="PE32">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> A UEFI/PI FFS Leaf\r
- section file type, not a raw PE32 file. </xs:documentation>\r
- </xs:annotation>\r
- </xs:enumeration>\r
- <xs:enumeration value="PIC"/>\r
- <xs:enumeration value="PEI_DEPEX"/>\r
- <xs:enumeration value="DXE_DEPEX"/>\r
- <xs:enumeration value="SMM_DEPEX"/>\r
- <xs:enumeration value="COMPAT16"/>\r
- <xs:enumeration value="DISPOSABLE"/>\r
- <xs:enumeration value="TE"/>\r
- <xs:enumeration value="VER"/>\r
- <xs:enumeration value="UI"/>\r
- <xs:enumeration value="BIN"/>\r
- <xs:enumeration value="FV"/>\r
- </xs:restriction>\r
- </xs:simpleType>\r
- </xs:attribute>\r
- <xs:attribute name="GUID" use="optional"\r
- type="RegistryFormatGuid"/>\r
- <xs:attribute name="SupArchList" type="ArchListType"\r
- use="optional"/>\r
- <xs:attribute name="SupModList" type="ModuleListType"\r
- use="optional"/>\r
- <xs:attribute name="FeatureFlag" type="xs:normalizedString"\r
- use="optional"/>\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
- </xs:element>\r
- <xs:element minOccurs="0" maxOccurs="unbounded" name="AsBuilt">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This section contains information\r
- about how the module was coded, such as Compiler Tools, Flags, PCDs\r
- (only PatchPcd and/or PcdEx) and Library Class Instances used to\r
- build the binary. </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:sequence>\r
-\r
- <xs:element minOccurs="0" maxOccurs="unbounded" name="PatchPcdValue">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> The element is the\r
- Patchable PCD Value that was used during the build.\r
- </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="1"\r
- name="TokenSpaceGuidValue" type="RegistryFormatGuid"/>\r
- <xs:element minOccurs="1" maxOccurs="1" name="PcdCName"\r
- type="xs:NCName"/>\r
- <xs:element minOccurs="1" maxOccurs="1" name="Token">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> The minLength of 3 is\r
- required to handle the "0x" prefix to the hex number.\r
- </xs:documentation>\r
- </xs:annotation>\r
- <xs:simpleType>\r
- <xs:restriction base="HexNumber">\r
- <xs:minLength value="3"/>\r
- <xs:maxLength value="10"/>\r
- </xs:restriction>\r
- </xs:simpleType>\r
- </xs:element>\r
- <xs:element minOccurs="1" maxOccurs="1" name="DatumType" \r
- type="PcdDatumTypes"/>\r
- <xs:element minOccurs="0" maxOccurs="1" name="MaxDatumSize">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This field is required\r
- if the Pcd Datum Type is VOID* </xs:documentation>\r
- <xs:documentation xml:lang="en-us"> The minLength of 3 is\r
- required to handle the "0x" prefix to the hex number.\r
- </xs:documentation>\r
- </xs:annotation>\r
- <xs:simpleType>\r
- <xs:restriction base="HexNumber">\r
- <xs:minLength value="3"/>\r
- </xs:restriction>\r
- </xs:simpleType>\r
- </xs:element>\r
- <xs:element minOccurs="1" maxOccurs="1" name="Value"\r
- type="xs:normalizedString"/>\r
- <xs:element minOccurs="1" maxOccurs="1" name="Offset">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> The minLength of 3 is\r
- required to handle the "0x" prefix to the hex number.\r
- </xs:documentation>\r
- </xs:annotation>\r
- <xs:simpleType>\r
- <xs:restriction base="HexNumber">\r
- <xs:minLength value="3"/>\r
- </xs:restriction>\r
- </xs:simpleType>\r
- </xs:element>\r
- <xs:element ref="HelpText" minOccurs="0"\r
- maxOccurs="unbounded"/>\r
- <xs:element minOccurs="0" maxOccurs="unbounded"\r
- name="PcdError">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> Error information\r
- implemented by the module. </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:choice>\r
- <xs:element minOccurs="0" maxOccurs="1" name="ValidValueList">\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="xs:normalizedString">\r
- <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"/>\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
- </xs:element>\r
- <xs:element minOccurs="0" maxOccurs="1" name="ValidValueRange" type="xs:normalizedString"/>\r
- <xs:element minOccurs="0" maxOccurs="1" name="Expression" type="xs:normalizedString"/>\r
- </xs:choice>\r
- <xs:element minOccurs="1" maxOccurs="1" name="ErrorNumber">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> The minLength of 3 is\r
- required to handle the "0x" prefix to the hex number.\r
- </xs:documentation>\r
- </xs:annotation>\r
- <xs:simpleType>\r
- <xs:restriction base="HexNumber">\r
- <xs:minLength value="3"/>\r
- </xs:restriction>\r
- </xs:simpleType>\r
- </xs:element>\r
- <xs:element minOccurs="0" maxOccurs="unbounded"\r
- name="ErrorMessage">\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="xs:string">\r
- <xs:attribute name="Lang" type="xs:language" default="en-us"\r
- use="optional"/>\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
- </xs:element>\r
- </xs:sequence>\r
- </xs:complexType>\r
- </xs:element>\r
- </xs:sequence>\r
- </xs:complexType>\r
- </xs:element>\r
-\r
- <xs:element minOccurs="0" maxOccurs="unbounded" name="PcdExValue">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> The element is the\r
- DynamicEx PCD Value that was used during the build.\r
- </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="1"\r
- name="TokenSpaceGuidValue" type="RegistryFormatGuid"/>\r
- <xs:element minOccurs="1" maxOccurs="1" name="Token">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> The minLength of 3 is\r
- required to handle the "0x" prefix to the hex number.\r
- </xs:documentation>\r
- </xs:annotation>\r
- <xs:simpleType>\r
- <xs:restriction base="HexNumber">\r
- <xs:minLength value="3"/>\r
- <xs:maxLength value="10"/>\r
- </xs:restriction>\r
- </xs:simpleType>\r
- </xs:element>\r
- <xs:element minOccurs="1" maxOccurs="1" name="DatumType"\r
- type="PcdDatumTypes"/>\r
- <xs:element minOccurs="0" maxOccurs="1" name="MaxDatumSize">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This field is required\r
- if the Pcd Datum Type is VOID* </xs:documentation>\r
- </xs:annotation>\r
- <xs:simpleType>\r
- <xs:restriction base="HexNumber">\r
- <xs:minLength value="3"/>\r
- </xs:restriction>\r
- </xs:simpleType>\r
- </xs:element>\r
- <xs:element minOccurs="1" maxOccurs="1" name="Value"\r
- type="xs:normalizedString"/>\r
- <xs:element ref="HelpText" minOccurs="0"\r
- maxOccurs="unbounded"/>\r
- <xs:element minOccurs="0" maxOccurs="unbounded"\r
- name="PcdError">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> Error information\r
- implemented by the module. </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:choice>\r
- <xs:element minOccurs="0" maxOccurs="1" name="ValidValueList">\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="xs:normalizedString">\r
- <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"/>\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
- </xs:element>\r
- <xs:element minOccurs="0" maxOccurs="1" name="ValidValueRange" type="xs:normalizedString"/>\r
- <xs:element minOccurs="0" maxOccurs="1" name="Expression" type="xs:normalizedString"/>\r
- </xs:choice>\r
- <xs:element minOccurs="1" maxOccurs="1" name="ErrorNumber">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> The minLength of 3 is\r
- required to handle the "0x" prefix to the hex number.\r
- </xs:documentation>\r
- </xs:annotation>\r
- <xs:simpleType>\r
- <xs:restriction base="HexNumber">\r
- <xs:minLength value="3"/>\r
- </xs:restriction>\r
- </xs:simpleType>\r
- </xs:element>\r
- <xs:element minOccurs="0" maxOccurs="unbounded"\r
- name="ErrorMessage">\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="xs:string">\r
- <xs:attribute name="Lang" type="xs:language" default="en-us"\r
- use="optional"/>\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
- </xs:element>\r
- </xs:sequence>\r
- </xs:complexType>\r
- </xs:element>\r
- </xs:sequence>\r
- </xs:complexType>\r
- </xs:element>\r
-\r
- <xs:element minOccurs="0" maxOccurs="1" name="LibraryInstances">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This is the actual\r
- library instance that was used to link against the module.\r
- </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="unbounded" name="GUID">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This GUID and the\r
- Version attribute uniquely identify the actual Library\r
- Instance linked in this module. </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="RegistryFormatGuid">\r
- <xs:attribute name="Version" type="xs:decimal"\r
- use="required">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This value, along with\r
- the GUID, is used to uniquely identify this object.\r
- </xs:documentation>\r
- </xs:annotation>\r
- </xs:attribute>\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
- </xs:element>\r
- </xs:sequence>\r
- </xs:complexType>\r
- </xs:element>\r
-\r
- <xs:element minOccurs="0" maxOccurs="unbounded" name="BuildFlags">\r
- <xs:complexType mixed="true">\r
- <xs:simpleContent>\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> Any description of OS,\r
- Tool, and flags for the individual tool can go in this\r
- section. </xs:documentation>\r
- </xs:annotation>\r
- <xs:extension base="xs:string">\r
- <xs:anyAttribute processContents="lax"/>\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
- </xs:element>\r
- </xs:sequence>\r
- </xs:complexType>\r
- </xs:element>\r
- <!-- End of AsBuilt -->\r
- <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>\r
- </xs:sequence>\r
- </xs:complexType>\r
- </xs:element>\r
-\r
- </xs:sequence>\r
- </xs:complexType>\r
- </xs:element>\r
- <!-- End of BinaryFiles Section -->\r
-\r
- <xs:element minOccurs="0" maxOccurs="1" name="PackageDependencies">\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="unbounded" name="Package">\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="0" maxOccurs="unbounded" name="Description">\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="xs:string">\r
- <xs:attribute name="Lang" type="xs:language" default="en-us"\r
- use="optional"/>\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
- </xs:element>\r
- <xs:element minOccurs="1" maxOccurs="1" name="GUID">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This GUID and the Version attribute\r
- uniquely identify Package that this Module depends on.\r
- </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="RegistryFormatGuid">\r
- <xs:attribute name="Version" type="xs:decimal" use="optional">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This value, along with\r
- the GUID, is used to uniquely identify this object. If the\r
- version attribute is not specified, the most recent version\r
- of the package can be used. </xs:documentation>\r
- </xs:annotation>\r
- </xs:attribute>\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
- </xs:element>\r
- </xs:sequence>\r
- <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
- <xs:attribute name="SupModList" type="ModuleListType" use="optional"/>\r
- <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
- </xs:complexType>\r
- </xs:element>\r
- </xs:sequence>\r
- </xs:complexType>\r
- </xs:element>\r
- <!-- End of PackageDependencies -->\r
-\r
- <xs:element minOccurs="0" maxOccurs="1" name="Guids">\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="unbounded" name="GuidCName">\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="1" name="CName" type="xs:NCName"/>\r
- <xs:element minOccurs="0" maxOccurs="1" name="GUID" type="RegistryFormatGuid"/>\r
- <xs:element minOccurs="0" maxOccurs="1" name="VariableName"\r
- type="xs:normalizedString">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> Only valid for Variable GUID types. </xs:documentation>\r
- <xs:documentation> This can be either a Hex Array or C string in unicode\r
- format: L"string" Data. </xs:documentation>\r
- </xs:annotation>\r
- </xs:element>\r
- <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>\r
- </xs:sequence>\r
- <xs:attribute name="Usage" use="required">\r
- <xs:simpleType>\r
- <xs:restriction base="xs:NCName">\r
- <xs:enumeration value="CONSUMES">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us">The module does not install\r
- the GUID, and the GUID must be present for the module to\r
- execute. </xs:documentation>\r
- </xs:annotation>\r
- </xs:enumeration>\r
- <xs:enumeration value="SOMETIMES_CONSUMES">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> The module does not install\r
- the GUID, however, the GUID will be used if it is present.\r
- </xs:documentation>\r
- </xs:annotation>\r
- </xs:enumeration>\r
- <xs:enumeration value="PRODUCES">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> The module always installs\r
- the GUID. </xs:documentation>\r
- </xs:annotation>\r
- </xs:enumeration>\r
- <xs:enumeration value="SOMETIMES_PRODUCES">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> The Module will install the\r
- GUID under certain execution paths. </xs:documentation>\r
- </xs:annotation>\r
- </xs:enumeration>\r
- <xs:enumeration value="UNDEFINED">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> The package creator knows\r
- that a GUID is used, but does not know how it is used.\r
- </xs:documentation>\r
- </xs:annotation>\r
- </xs:enumeration>\r
- </xs:restriction>\r
- </xs:simpleType>\r
- </xs:attribute>\r
- <xs:attribute name="GuidType" type="GuidListType" use="required"/>\r
- <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
- <xs:attribute name="SupModList" type="ModuleListType" use="optional"/>\r
- <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
- </xs:complexType>\r
- </xs:element>\r
- </xs:sequence>\r
- </xs:complexType>\r
- </xs:element>\r
- <!-- End of Guids Section -->\r
-\r
- <xs:element minOccurs="0" maxOccurs="1" name="Protocols">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> A listing of protocols required or produced by this module.\r
- </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="unbounded" name="Protocol" nillable="true">\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="1" name="CName" type="xs:NCName"/>\r
- <xs:element minOccurs="0" maxOccurs="1" name="GUID" type="RegistryFormatGuid"/> \r
- <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>\r
- </xs:sequence>\r
- <xs:attribute name="Usage" use="required">\r
- <xs:simpleType>\r
- <xs:restriction base="xs:NCName">\r
- <xs:enumeration value="PRODUCES"/>\r
- <xs:enumeration value="SOMETIMES_PRODUCES"/>\r
- <xs:enumeration value="CONSUMES"/>\r
- <xs:enumeration value="SOMETIMES_CONSUMES"/>\r
- <xs:enumeration value="TO_START"/>\r
- <xs:enumeration value="BY_START"/>\r
- <xs:enumeration value="UNDEFINED"/>\r
- </xs:restriction>\r
- </xs:simpleType>\r
- </xs:attribute>\r
- <xs:attribute name="Notify" type="xs:boolean" use="optional"/>\r
- <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
- <xs:attribute name="SupModList" type="ModuleListType" use="optional"/>\r
- <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
- </xs:complexType>\r
- </xs:element>\r
- </xs:sequence>\r
- </xs:complexType>\r
- </xs:element>\r
- <!-- End of Protocols Section -->\r
-\r
- <xs:element minOccurs="0" maxOccurs="1" name="PPIs">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> A listing of PPIs required or produced by this module.\r
- </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="unbounded" name="Ppi" nillable="true">\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="1" name="CName" type="xs:NCName"/>\r
- <xs:element minOccurs="0" maxOccurs="1" name="GUID" type="RegistryFormatGuid"/> \r
- <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>\r
- </xs:sequence>\r
- <xs:attribute name="Usage" use="required">\r
- <xs:simpleType>\r
- <xs:restriction base="xs:NCName">\r
- <xs:enumeration value="PRODUCES"/>\r
- <xs:enumeration value="SOMETIMES_PRODUCES"/>\r
- <xs:enumeration value="CONSUMES"/>\r
- <xs:enumeration value="SOMETIMES_CONSUMES"/>\r
- <xs:enumeration value="UNDEFINED"/>\r
- </xs:restriction>\r
- </xs:simpleType>\r
- </xs:attribute>\r
- <xs:attribute name="Notify" type="xs:boolean" use="optional"/>\r
- <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
- <xs:attribute name="SupModList" type="ModuleListType" use="optional"/>\r
- <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
- </xs:complexType>\r
- </xs:element>\r
- </xs:sequence>\r
- </xs:complexType>\r
- </xs:element>\r
- <!-- End of PPIs Section -->\r
-\r
- <xs:element minOccurs="0" maxOccurs="1" name="Externs">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> These elements specify additional information about the\r
- module. This area may be used by tools to generate code. </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="unbounded" name="Extern">\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:choice minOccurs="1">\r
- <xs:sequence>\r
- <xs:element minOccurs="0" maxOccurs="1" name="EntryPoint"\r
- type="xs:NCName"/>\r
- <xs:element minOccurs="0" maxOccurs="1" name="UnloadImage"\r
- type="xs:NCName"/>\r
- </xs:sequence>\r
- <xs:sequence>\r
- <xs:element minOccurs="0" maxOccurs="1" name="Constructor"\r
- type="xs:NCName"/>\r
- <xs:element minOccurs="0" maxOccurs="1" name="Destructor"\r
- type="xs:NCName"/>\r
- </xs:sequence>\r
- </xs:choice>\r
- <xs:element ref="HelpText" minOccurs="0" maxOccurs="1"/>\r
- </xs:sequence>\r
- <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
- <xs:attribute name="SupModList" type="ModuleListType" use="optional"/>\r
- <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
- </xs:complexType>\r
- </xs:element>\r
- </xs:sequence>\r
- </xs:complexType>\r
- </xs:element>\r
- <!-- End of Externs Section -->\r
-\r
- <xs:element minOccurs="0" maxOccurs="1" name="PcdCoded">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This section describes how a platform is coded with respect\r
- to the platform configuration knobs. </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="unbounded" name="PcdEntry">\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="1" name="CName" type="xs:NCName"/>\r
- <xs:element minOccurs="1" maxOccurs="1" name="TokenSpaceGuidCName"\r
- type="xs:NCName"/>\r
- <xs:element minOccurs="0" maxOccurs="1" name="DefaultValue"\r
- type="xs:normalizedString"/>\r
- <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>\r
- </xs:sequence>\r
- <xs:attribute name="PcdItemType" type="PcdItemTypes" use="required"/>\r
- <xs:attribute name="PcdUsage" use="required">\r
- <xs:simpleType>\r
- <xs:restriction base="xs:NCName">\r
- <xs:enumeration value="PRODUCES"/>\r
- <xs:enumeration value="SOMETIMES_PRODUCES"/>\r
- <xs:enumeration value="CONSUMES"/>\r
- <xs:enumeration value="SOMETIMES_CONSUMES"/>\r
- <xs:enumeration value="UNDEFINED"/>\r
- </xs:restriction>\r
- </xs:simpleType>\r
-\r
-\r
- </xs:attribute>\r
- <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
- <xs:attribute name="SupModList" type="ModuleListType" use="optional"/>\r
- <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
- </xs:complexType>\r
- </xs:element>\r
- </xs:sequence>\r
- </xs:complexType>\r
- </xs:element>\r
- <!-- End of PcdCoded Section -->\r
-\r
- <xs:element minOccurs="0" maxOccurs="unbounded" name="PeiDepex">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This is the PEI dependency expression for a Dependency\r
- Section. </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element name="Expression" type="xs:string" minOccurs="1" maxOccurs="1">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> An in-fix expression, of C identifiers and TRUE,\r
- FALSE, AND, OR, NOT, BEFORE, and AFTER as well as parenthesis () in the in-fix\r
- notation. The operators are restricted to grammar defined in the PI\r
- specification. </xs:documentation>\r
- </xs:annotation>\r
- </xs:element>\r
- <xs:element ref="HelpText" minOccurs="0" maxOccurs="1"/>\r
- </xs:sequence>\r
- <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
- <xs:attribute name="SupModList" type="ModuleListType" use="optional"/>\r
- <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
- </xs:complexType>\r
- </xs:element>\r
- <!-- End of PeiDepex Section -->\r
-\r
- <xs:element minOccurs="0" maxOccurs="unbounded" name="DxeDepex">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This is the DXE dependency expression for a Dependency\r
- Section. </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element name="Expression" type=" xs:string " minOccurs="1" maxOccurs="1">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> An in-fix expression, of C identifiers and TRUE,\r
- FALSE, AND, OR, NOT, BEFORE, and AFTER as well as parenthesis () in the in-fix\r
- notation. The operators are restricted to grammar defined in the PI\r
- specification. </xs:documentation>\r
- </xs:annotation>\r
- </xs:element>\r
- <xs:element ref="HelpText" minOccurs="0" maxOccurs="1"/>\r
- </xs:sequence>\r
- <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
- <xs:attribute name="SupModList" type="ModuleListType" use="optional"/>\r
- <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
- </xs:complexType>\r
- </xs:element>\r
- <!-- End of DxeDepex Section -->\r
-\r
- <xs:element minOccurs="0" maxOccurs="unbounded" name="SmmDepex">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This is the SMM dependency expression for a Dependency\r
- Section. </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element name="Expression" type=" xs:string " minOccurs="1" maxOccurs="1">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> An in-fix expression, of C identifiers and TRUE,\r
- FALSE, AND, OR, NOT, BEFORE, and AFTER as well as parenthesis () in the in-fix\r
- notation. The operators are restricted to grammar defined in the PI\r
- specification. </xs:documentation>\r
- </xs:annotation>\r
- </xs:element>\r
- <xs:element ref="HelpText" minOccurs="0" maxOccurs="1"/>\r
- </xs:sequence>\r
- <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
- <xs:attribute name="SupModList" type="ModuleListType" use="optional"/>\r
- <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
- </xs:complexType>\r
- </xs:element>\r
- <!-- End of SmmDepex Section -->\r
-\r
-\r
- <xs:element minOccurs="0" maxOccurs="1" name="MiscellaneousFiles">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This section is used to provide comments and/or list\r
- auxiliary files, such as pdb or map files. </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="0" maxOccurs="unbounded" name="Description">\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="xs:string">\r
- <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"\r
- />\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
- </xs:element>\r
- <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This is the path and filename location within\r
- the ZIP file. </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="xs:anyURI">\r
- <xs:attribute name="Executable" type="xs:boolean" default="false"\r
- use="optional">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> If true, used by installation\r
- tools to ensure that a file that must be executable has the\r
- correct properties to permit execution. </xs:documentation>\r
- </xs:annotation>\r
- </xs:attribute>\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
- </xs:element>\r
- </xs:sequence>\r
- </xs:complexType>\r
- </xs:element>\r
- <!-- End of Module Surface Area Misc Section -->\r
-\r
- <xs:element minOccurs="0" maxOccurs="unbounded" name="UserExtensions">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This section is used for any processing instructions that\r
- may be custom to the content provided by the distribution that are common to module. </xs:documentation>\r
- <xs:documentation xml:lang="en-us"> The content is vendor specific. </xs:documentation>\r
- <xs:documentation xml:lang="en-us"> The content can be plain text as well as any user-defined,\r
- properly formatted XML structure. </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType mixed="true">\r
- <xs:attribute name="UserId" type="xs:NCName" use="required">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This is a single word identifier for grouping\r
- similar content. For example, ReferenceBuild might be used to identify non-PI\r
- compliant build steps, with two different UserExtensions sections, one with an\r
- Identifier of Prebuild, and another of PostBuild. Both UserExtensions sections would\r
- use the same UserId. </xs:documentation>\r
- </xs:annotation>\r
- </xs:attribute>\r
- <xs:attribute name="Identifier" type="xs:string" use="required">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This can be any string used to differentiate or\r
- identify this section from other UserExtensions sections. </xs:documentation>\r
- <xs:documentation xml:lang="en-us"> For example, a PRE_PROCESS Identifier might indicate\r
- specific steps and tools required before processing module content, while a\r
- different UserExtensions section with a POST_PROCESS Identifier might describe steps\r
- that need to be executed after operations on this module. </xs:documentation>\r
- </xs:annotation>\r
- </xs:attribute>\r
- <xs:anyAttribute processContents="lax"/>\r
- </xs:complexType>\r
- </xs:element>\r
- <!-- End of Module Surface Area UserExtensions Section -->\r
-\r
- </xs:sequence>\r
- <xs:attribute name="BinaryModule" type="xs:boolean" default="false" use="optional">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This attribute is used when the binaries are distributed for\r
- this module and no code generation from source files is required. If set, then the BinaryFiles\r
- section should be used, and any files listed in the SourceFiles section do not have to be built.\r
- Additionally, the AsBuilt section for each binary file must be included. </xs:documentation>\r
- </xs:annotation>\r
- </xs:attribute>\r
- </xs:complexType>\r
-\r
- </xs:element>\r
- <!-- End of the ModuleSurfaceArea element. -->\r
-\r
- <xs:element name="Tools">\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="0" maxOccurs="1" name="Header">\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="1" maxOccurs="1" name="Name" type="xs:normalizedString">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us">This is the User Interface Name for this Tools\r
- Distribution.</xs:documentation>\r
- </xs:annotation>\r
- </xs:element>\r
- <xs:element minOccurs="0" maxOccurs="1" name="Copyright" type="xs:string">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This is only required if the Copyright is\r
- different from the Distribution Package copyright. </xs:documentation>\r
- </xs:annotation>\r
- </xs:element>\r
- <xs:element minOccurs="0" maxOccurs="1" name="License" type="xs:string">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This is only required if the License is\r
- different from the Distribution Package license. </xs:documentation>\r
- </xs:annotation>\r
- </xs:element>\r
- <xs:element minOccurs="0" maxOccurs="1" name="Abstract">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This is only required if the Abstract is\r
- different from the Distribution Package Abstract. </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="xs:normalizedString">\r
- <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"/>\r
- </xs:extension> \r
- </xs:simpleContent>\r
- </xs:complexType>\r
- </xs:element>\r
- <xs:element minOccurs="0" maxOccurs="1" name="Description">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This is only required if the Description is\r
- different from the Distribution Package Description. </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="xs:string">\r
- <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"/>\r
- </xs:extension> \r
- </xs:simpleContent>\r
- </xs:complexType>\r
- \r
- </xs:element>\r
- </xs:sequence>\r
- </xs:complexType>\r
- </xs:element>\r
- <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This is the path and filename location within the ZIP file.\r
- </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="xs:anyURI">\r
- <xs:attribute name="OS" type="SupportedOs" use="optional">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This is required for tools that execute; it\r
- should not be used for configuration files. </xs:documentation>\r
- </xs:annotation>\r
- </xs:attribute>\r
- <xs:attribute name="Executable" type="xs:boolean" default="false" use="optional">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> If true, used by installation tools to\r
- ensure that a file that must be executable has the correct properties to\r
- permit execution. </xs:documentation>\r
- </xs:annotation>\r
- </xs:attribute>\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
- </xs:element>\r
- </xs:sequence>\r
- </xs:complexType>\r
- </xs:element>\r
- <!-- End of the Tools element. -->\r
-\r
- <xs:element name="MiscellaneousFiles">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This section contains a list of files that are not part of the code\r
- distributed with modules, packages or tools. </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="0" maxOccurs="1" name="Header">\r
- <xs:complexType>\r
- <xs:sequence>\r
- <xs:element minOccurs="0" maxOccurs="1" name="Name" type="xs:normalizedString">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> The User interface name for this content.\r
- </xs:documentation>\r
- </xs:annotation>\r
- </xs:element>\r
- <xs:element minOccurs="0" maxOccurs="1" name="Copyright" type="xs:string">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This is only required if the Copyright is\r
- different from the Distribution Package Copyright. </xs:documentation>\r
- </xs:annotation>\r
- </xs:element>\r
- <xs:element minOccurs="0" maxOccurs="1" name="License" type="xs:string">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This is only required if the License is\r
- different from the Distribution Package License. </xs:documentation>\r
- </xs:annotation>\r
- </xs:element>\r
- <xs:element minOccurs="0" maxOccurs="1" name="Abstract" type="xs:normalizedString"/>\r
- <xs:element minOccurs="0" maxOccurs="unbounded" name="Description">\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="xs:string">\r
- <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"\r
- />\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
- </xs:element>\r
- </xs:sequence>\r
- </xs:complexType>\r
- </xs:element>\r
- <xs:element minOccurs="0" maxOccurs="unbounded" name="Filename">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This is the path and filename location within the ZIP file.\r
- </xs:documentation>\r
- </xs:annotation>\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="xs:anyURI">\r
- <xs:attribute name="Executable" type="xs:boolean" default="false" use="optional">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> If true, used by installation tools to\r
- ensure that a file that must be executable has the correct properties to\r
- permit execution. </xs:documentation>\r
- </xs:annotation>\r
- </xs:attribute>\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
- </xs:element>\r
- </xs:sequence>\r
- </xs:complexType>\r
- </xs:element>\r
- <!-- End of the Misc element. -->\r
+ </xs:choice>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="ErrorNumber">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ A hexadecimal value for\r
+ the error message as defined by specifications.\r
+ </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The minLength of 3 is\r
+ required to handle the "0x" prefix to the hex number.\r
+ </xs:documentation>\r
\r
- <xs:element name="UserExtensions">\r
- <xs:complexType mixed="true">\r
- <xs:sequence>\r
- <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>\r
+ </xs:annotation>\r
+ <xs:simpleType>\r
+ <xs:restriction base="HexNumber">\r
+ <xs:minLength value="3"/>\r
+ </xs:restriction>\r
+ </xs:simpleType>\r
+ </xs:element>\r
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="ErrorMessage">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This string should be\r
+ defined by specifications. There are pre-defined error\r
+ number ranges in the UEFI/PI specificaiton.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:simpleContent>\r
+ <xs:extension base="xs:string">\r
+ <xs:attribute name="Lang" type="xs:language" default="en-us"\r
+ use="optional"/>\r
+ </xs:extension>\r
+ </xs:simpleContent>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ </xs:sequence>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ </xs:sequence>\r
+ <xs:attributeGroup ref="SupportedArchMod"/>\r
+ </xs:complexType>\r
+ </xs:element>\r
</xs:sequence>\r
- <xs:attribute name="UserId" type="xs:NCName" use="required">\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <!-- End of PackageSurfaceArea PcdDeclarations element. -->\r
+\r
+ <xs:element minOccurs="0" maxOccurs="1" name="PcdRelationshipChecks">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This section is used to describe any PCD interdependencies\r
+ or relationships.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="PcdCheck" type="xs:normalizedString">\r
<xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This is a single word identifier for grouping similar content.\r
- For example, ReferenceBuild might be used to identify non-PI compliant build steps, with two\r
- different UserExtensions sections, one with an Identifier of Prebuild, and another of PostBuild.\r
- Both UserExtensions sections would use the same UserId. </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This entry must used\r
+ TokenSpaceGuidCName.PcdCname for every named PCD. Restricted to Relational,\r
+ Equality and Logical Operators (NOT, AND, OR, GT, GE, EQ, LE, LT and XOR) and\r
+ parenthesis are valid. Only the TokenSpaceGuidCName.PcdCname us permitted to\r
+ name PCDs in the expression. All other values must be numeric.\r
+ </xs:documentation>\r
+ <xs:documentation xml:lang="en-us"> LValue (op RValue)+ </xs:documentation>\r
</xs:annotation>\r
- </xs:attribute>\r
- <xs:attribute name="Identifier" type="xs:string" use="optional">\r
+ </xs:element>\r
+ </xs:sequence>\r
+ </xs:complexType>\r
+ </xs:element>\r
+\r
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="MiscellaneousFiles">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This section contains files that are not part of the code\r
+ distributed with this package.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element minOccurs="0" maxOccurs="1" name="Copyright" type="xs:string">\r
<xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This can be any string used to differentiate or identify this\r
- section from other UserExtensions sections. </xs:documentation>\r
- <xs:documentation xml:lang="en-us"> For example, a PRE_PROCESS Identifier might indicate specific\r
- steps and tools required before processing distribution package content, while a different\r
- UserExtensions section with a POST_PROCESS Identifier might describe steps that need to be\r
- executed after operations on this content. </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ Only required if different from the Package\r
+ Copyright.\r
+ </xs:documentation>\r
</xs:annotation>\r
- </xs:attribute>\r
- <xs:anyAttribute processContents="lax"/>\r
- </xs:complexType>\r
- </xs:element>\r
- <!-- The following elsements are common definitions used with the ref attribute for elements. -->\r
-\r
- <xs:element name="HelpText">\r
- <xs:complexType>\r
- <xs:simpleContent>\r
- <xs:extension base="xs:string">\r
- <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"/>\r
- </xs:extension>\r
- </xs:simpleContent>\r
- </xs:complexType>\r
- </xs:element>\r
-\r
- <!-- The following attribute groups are used in various elements above. -->\r
-\r
- <xs:attributeGroup name="SupportedArchMod">\r
- <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
- <xs:attribute name="SupModList" type="ModuleListType" use="optional"/>\r
- </xs:attributeGroup>\r
-\r
- <!-- The following data types are used to restrict content. -->\r
-\r
- <xs:simpleType name="ArchListType">\r
- <xs:list itemType="ArchTypes"/>\r
- </xs:simpleType>\r
-\r
- <xs:simpleType name="ArchTypes">\r
- <xs:restriction base="xs:NCName">\r
- <xs:enumeration value="IA32"/>\r
- <xs:enumeration value="X64"/>\r
- <xs:enumeration value="IPF"/>\r
- <xs:enumeration value="EBC"/>\r
- <xs:enumeration value="ARM"/>\r
- <xs:pattern value="([A-Z])([a-zA-Z0-9])*">\r
+ </xs:element>\r
+ <xs:element minOccurs="0" maxOccurs="1" name="License" type="xs:string">\r
<xs:annotation>\r
- <xs:documentation xml:lang="en-us"> Any processor architecture not listed above. The Architecture\r
- must be a target architecture of one or more compiler tool chains. </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ Only required if different from the Package\r
+ License.\r
+ </xs:documentation>\r
</xs:annotation>\r
- </xs:pattern>\r
- </xs:restriction>\r
- </xs:simpleType>\r
-\r
-\r
- <xs:simpleType name="FamilyTypes">\r
- <xs:restriction base="xs:NCName">\r
- <xs:enumeration value="MSFT"/>\r
- <xs:enumeration value="GCC"/>\r
- <xs:pattern value="[A-Z][a-zA-Z0-9]*">\r
+ </xs:element>\r
+ <xs:element minOccurs="0" maxOccurs="1" name="Abstract" type="xs:string">\r
<xs:annotation>\r
- <xs:documentation xml:lang="en-us"> Any other family of build utilities for which compiler tools\r
- exist. </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ A one line description of this section's\r
+ content.\r
+ </xs:documentation>\r
</xs:annotation>\r
- </xs:pattern>\r
- </xs:restriction>\r
- </xs:simpleType>\r
-\r
- <xs:simpleType name="GuidListType">\r
- <xs:list itemType="GuidTypes"/>\r
- </xs:simpleType>\r
-\r
- <xs:simpleType name="GuidTypes">\r
- <xs:restriction base="xs:NCName">\r
- <xs:enumeration value="Event"/>\r
- <xs:enumeration value="File"/>\r
- <xs:enumeration value="FV"/>\r
- <xs:enumeration value="GUID"/>\r
- <xs:enumeration value="HII"/>\r
- <xs:enumeration value="Hii"/>\r
- <xs:enumeration value="HOB"/>\r
- <xs:enumeration value="SystemTable"/>\r
- <xs:enumeration value="TokenSpaceGuid"/>\r
- <xs:enumeration value="Variable"/>\r
- <xs:enumeration value="UNDEFINED"/>\r
- </xs:restriction>\r
- </xs:simpleType>\r
-\r
- <xs:simpleType name="HexNumber">\r
- <xs:restriction base="xs:hexBinary">\r
- <xs:pattern value="0x([a-fA-F0-9])+"/>\r
- </xs:restriction>\r
- </xs:simpleType>\r
-\r
- <xs:simpleType name="Md5Sum">\r
- <xs:restriction base="xs:normalizedString">\r
- <xs:pattern value="[a-zA-Z0-9]{32}"/>\r
- </xs:restriction>\r
- </xs:simpleType>\r
-\r
- <xs:simpleType name="ModuleListType">\r
- <xs:list itemType="ModuleTypes"/>\r
- </xs:simpleType>\r
-\r
- <xs:simpleType name="ModuleTypes">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> The following module types are defined by specifications. </xs:documentation>\r
- <xs:documentation xml:lang="en-us"> Module types for components and libraries defined for this distribution\r
- mechanism. </xs:documentation>\r
- </xs:annotation>\r
- <xs:restriction base="xs:NCName">\r
- <xs:enumeration value="BASE ">\r
+ </xs:element>\r
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="Description" type="xs:string">\r
<xs:annotation>\r
- <xs:documentation xml:lang="en-us"> Use of this module is not restricted. </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ A complete description of the files in this\r
+ section.\r
+ </xs:documentation>\r
</xs:annotation>\r
- </xs:enumeration>\r
- <xs:enumeration value="DXE_CORE">\r
+ </xs:element>\r
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename">\r
<xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This module is only applicable to the DXE core.\r
- </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This is the PackagePath relative path and\r
+ filename location within the ZIP file.\r
+ </xs:documentation>\r
</xs:annotation>\r
- </xs:enumeration>\r
- <xs:enumeration value="DXE_DRIVER">\r
+ <xs:complexType>\r
+ <xs:simpleContent>\r
+ <xs:extension base="xs:anyURI">\r
+ <xs:attribute name="Executable" type="xs:boolean" default="false"\r
+ use="optional">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ If true, used by installation\r
+ tools to ensure that a file that must be executable has the\r
+ correct properties to permit execution.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:attribute>\r
+ </xs:extension>\r
+ </xs:simpleContent>\r
+ </xs:complexType>\r
+ </xs:element>\r
+\r
+ </xs:sequence>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <!-- End of PackageSurfaceArea Misc element. -->\r
+\r
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="UserExtensions">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This section is used for any processing instructions that\r
+ may be custom to the content provided by this package that are common to this package.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType mixed="true">\r
+ <xs:sequence>\r
+ <xs:any processContents="lax" minOccurs="0" maxOccurs="1"/>\r
+ </xs:sequence>\r
+ <xs:attribute name="UserId" type="xs:NCName" use="required">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This is a single word identifier for grouping\r
+ similar content that does not fit into previously defined sections or other sections\r
+ of the Distribution.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:attribute>\r
+ <xs:attribute name="Identifier" type="xs:string" use="required">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This can be used to differentiate multiple sections\r
+ with a grouping.\r
+ </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ For example, a PRE_PROCESS Identifier might indicate\r
+ specific steps and tools required before processing module content, while a\r
+ different UserExtensions section with a POST_PROCESS Identifier might describe steps\r
+ that need to be executed after operations on the modules in this package.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:attribute>\r
+ <xs:anyAttribute processContents="lax"/>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <!-- End of PackageSurfaceArea UserExtensions element. -->\r
+\r
+ </xs:sequence>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <!-- End of the PackageSurfaceArea element. -->\r
+\r
+ <xs:element name="ModuleSurfaceArea">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ Each module is uniquely identified by it's GUID and Version number.\r
+ Backward compatible releases of a module need only change the version number, while non-backward\r
+ compatible changes require the GUID to change (resetting the version number to 1.0 is optional.)\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+\r
+ <xs:element minOccurs="1" maxOccurs="1" name="Header">\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="Name">\r
<xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This module is only applicable to a DXE driver.\r
- </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This is the User Interface Name for this Module.\r
+ </xs:documentation>\r
</xs:annotation>\r
- </xs:enumeration>\r
- <xs:enumeration value="DXE_RUNTIME_DRIVER">\r
+ <xs:complexType>\r
+ <xs:simpleContent>\r
+ <xs:extension base="xs:normalizedString">\r
+ <xs:attribute name="BaseName" type="xs:NMTOKEN" use="required">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This is a single word BaseName\r
+ that will be used to create a module meta-data file.\r
+ </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This name should also be used to\r
+ create output file names and directories.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:attribute>\r
+ </xs:extension>\r
+ </xs:simpleContent>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="GUID">\r
<xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This module is only applicable to a DXE runtime driver.\r
- </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This GUID and the Version attribute uniquely\r
+ identify a given Module.\r
+ </xs:documentation>\r
</xs:annotation>\r
- </xs:enumeration>\r
- <xs:enumeration value="DXE_SAL_DRIVER">\r
+ <xs:complexType>\r
+ <xs:simpleContent>\r
+ <xs:extension base="RegistryFormatGuid">\r
+ <xs:attribute name="Version" type="xs:decimal" use="required">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This value, along with the GUID,\r
+ is used to uniquely identify this object.\r
+ </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ Backward compatible changes must\r
+ make sure this number is incremented from the most recent\r
+ version. Non-backward compatible changes require a new GUID, and\r
+ the version can be reset.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:attribute>\r
+ </xs:extension>\r
+ </xs:simpleContent>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="Copyright">\r
<xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This module is only applicable to an IPF DXE runtime driver.\r
- </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This is only required if the Copyright is\r
+ different from either the Package or Distribution copyright. Multiple copyright\r
+ lines are permitted within this section.\r
+ </xs:documentation>\r
</xs:annotation>\r
- </xs:enumeration>\r
- <xs:enumeration value="DXE_SMM_DRIVER">\r
+ <xs:complexType>\r
+ <xs:simpleContent>\r
+ <xs:extension base="xs:string">\r
+ <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"\r
+ />\r
+ </xs:extension>\r
+ </xs:simpleContent>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="License">\r
<xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This module is only applicable to a DXE SMM driver.\r
- </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This is only required if the license is\r
+ different from either the Package or Distribution license. Multiple licenses are\r
+ permitted within this section.\r
+ </xs:documentation>\r
</xs:annotation>\r
- </xs:enumeration>\r
- <xs:enumeration value="PEI_CORE">\r
+ <xs:complexType>\r
+ <xs:simpleContent>\r
+ <xs:extension base="xs:string">\r
+ <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"\r
+ />\r
+ </xs:extension>\r
+ </xs:simpleContent>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="Abstract">\r
<xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This module is only applicable to the PEI core.\r
- </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ A brief text description of the module.\r
+ </xs:documentation>\r
</xs:annotation>\r
- </xs:enumeration>\r
- <xs:enumeration value="PEIM">\r
+ <xs:complexType>\r
+ <xs:simpleContent>\r
+ <xs:extension base="xs:normalizedString">\r
+ <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"\r
+ />\r
+ </xs:extension>\r
+ </xs:simpleContent>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="Description">\r
<xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This module is only valid for PEI modules. </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ A complete description of the module contents\r
+ and/or features including a description of the updates since the previous module\r
+ release.\r
+ </xs:documentation>\r
</xs:annotation>\r
- </xs:enumeration>\r
- <xs:enumeration value="SEC">\r
+ <xs:complexType>\r
+ <xs:simpleContent>\r
+ <xs:extension base="xs:string">\r
+ <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"\r
+ />\r
+ </xs:extension>\r
+ </xs:simpleContent>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ </xs:sequence>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <!-- End of Module Surface Area Header Section -->\r
+\r
+ <xs:element minOccurs="0" maxOccurs="1" name="ModuleProperties">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ List general information about a module, including the\r
+ Supported Architectures, this module's type, specifications the module is coded against, and\r
+ other informational content.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="ModuleType" type="ModuleTypes">\r
<xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This module is only applicable to Security phase.\r
- </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ One of the Enumerated module types that limit\r
+ the use of a module.\r
+ </xs:documentation>\r
</xs:annotation>\r
- </xs:enumeration>\r
- <xs:enumeration value="UEFI_DRIVER">\r
+ </xs:element>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="Path" type="xs:anyURI">\r
<xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This module is only valid for UEFI drivers. </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ For stand-alone modules that are NOT part of any\r
+ package, this is the path to the root of the module as listed in the ZIP file.\r
+ For modules included in a package, this is the location, relative to the root of\r
+ the package (PackagePath) this module belongs to.\r
+ </xs:documentation>\r
</xs:annotation>\r
- </xs:enumeration>\r
- <xs:enumeration value="UEFI_RUNTIME_DRIVER">\r
+ </xs:element>\r
+ <xs:element minOccurs="0" maxOccurs="1" name="PcdIsDriver">\r
<xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This module is only valid for UEFI runtime\r
- drivers.</xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This element is only required for the PEIM that\r
+ produces the PCD PPI or the DXE Driver that produces the PCD Protocol.\r
+ </xs:documentation>\r
</xs:annotation>\r
- </xs:enumeration>\r
- <xs:enumeration value="UEFI_APPLICATION">\r
+ <xs:simpleType>\r
+ <xs:restriction base="xs:NCName">\r
+ <xs:enumeration value="PEI_PCD_DRIVER"/>\r
+ <xs:enumeration value="DXE_PCD_DRIVER"/>\r
+ </xs:restriction>\r
+ </xs:simpleType>\r
+ </xs:element>\r
+\r
+ <xs:element minOccurs="0" maxOccurs="1" name="UefiSpecificationVersion" type="xs:decimal"/>\r
+\r
+ <xs:element minOccurs="0" maxOccurs="1" name="PiSpecificationVersion" type="xs:decimal"/>\r
+\r
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="Specification">\r
<xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This module is only valid for UEFI applications.\r
- </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This is a list of other specifications that this\r
+ module is written against. These entries can be used in #define statements\r
+ (depending on the build system implementation, they may be autogenerated.)\r
+ </xs:documentation>\r
</xs:annotation>\r
- </xs:enumeration>\r
- <xs:enumeration value="SMM_CORE">\r
+ <xs:complexType>\r
+ <xs:simpleContent>\r
+ <xs:extension base="xs:NCName">\r
+ <xs:attribute name="Version" type="xs:decimal" use="required"/>\r
+ </xs:extension>\r
+ </xs:simpleContent>\r
+ </xs:complexType>\r
+ </xs:element>\r
+\r
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="BootMode">\r
<xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This module is only applicable to the SMM\r
- core.</xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ Different firmware execution paths may be taken\r
+ based on a given state of the hardware, firmware, or through feature settings. A\r
+ BootMode may be declared (PRODUCES) or discovered (CONSUMES) based on these\r
+ states and feature settings. If the usage is UNDEFINE, it implies that a Boot\r
+ Mode is used, but the package creator does not know how it is used. The\r
+ supported boot modes map to the PI specification Boot Modes. The boot modes\r
+ listed with Recovery are to indicate that the BootMode is valid during a\r
+ recovery boot.\r
+ </xs:documentation>\r
</xs:annotation>\r
- </xs:enumeration>\r
- <xs:enumeration value="USER_DEFINED">\r
+ <xs:complexType>\r
+ <xs:sequence minOccurs="0">\r
+ <xs:element minOccurs="1" maxOccurs="1" name="SupportedBootModes">\r
+ <xs:simpleType>\r
+ <xs:list>\r
+ <xs:simpleType>\r
+ <xs:restriction base="xs:NCName">\r
+ <xs:enumeration value="FULL"/>\r
+ <xs:enumeration value="MINIMAL"/>\r
+ <xs:enumeration value="NO_CHANGE"/>\r
+ <xs:enumeration value="DIAGNOSTICS"/>\r
+ <xs:enumeration value="DEFAULT"/>\r
+ <xs:enumeration value="S2_RESUME"/>\r
+ <xs:enumeration value="S3_RESUME"/>\r
+ <xs:enumeration value="S4_RESUME"/>\r
+ <xs:enumeration value="S5_RESUME"/>\r
+ <xs:enumeration value="FLASH_UPDATE"/>\r
+ <xs:enumeration value="RECOVERY_FULL"/>\r
+ <xs:enumeration value="RECOVERY_MINIMAL"/>\r
+ <xs:enumeration value="RECOVERY_NO_CHANGE"/>\r
+ <xs:enumeration value="RECOVERY_DIAGNOSTICS"/>\r
+ <xs:enumeration value="RECOVERY_DEFAULT"/>\r
+ <xs:enumeration value="RECOVERY_S2_RESUME"/>\r
+ <xs:enumeration value="RECOVERY_S3_RESUME"/>\r
+ <xs:enumeration value="RECOVERY_S4_RESUME"/>\r
+ <xs:enumeration value="RECOVERY_S5_RESUME"/>\r
+ <xs:enumeration value="RECOVERY_FLASH_UPDATE"/>\r
+ <xs:enumeration value="UNDEFINED"/>\r
+ </xs:restriction>\r
+ </xs:simpleType>\r
+ </xs:list>\r
+ </xs:simpleType>\r
+ </xs:element>\r
+\r
+ <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>\r
+ </xs:sequence>\r
+ <xs:attribute name="Usage" use="required">\r
+ <xs:simpleType>\r
+ <xs:restriction base="xs:NCName">\r
+ <xs:enumeration value="CONSUMES">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The module always supports\r
+ the given boot modes.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:enumeration>\r
+ <xs:enumeration value="SOMETIMES_CONSUMES">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The module may support a\r
+ given mode on some execution paths.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:enumeration>\r
+ <xs:enumeration value="PRODUCES">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The module will change the\r
+ boot mode.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:enumeration>\r
+ <xs:enumeration value="SOMETIME_PRODUCES">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The module will change the\r
+ boot mode on some exection paths.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:enumeration>\r
+ <xs:enumeration value="UNDEFINED">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The package creator does not\r
+ know how the boot mode is used.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:enumeration>\r
+ </xs:restriction>\r
+ </xs:simpleType>\r
+ </xs:attribute>\r
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+ <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
+ </xs:complexType>\r
+ </xs:element>\r
+\r
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="Event" nillable="true">\r
<xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This content is restricted to a specific implementation.\r
- </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The functions that make up the Event, Timer, and\r
+ Task Priority Services are used during preboot to create, close, signal, and\r
+ wait for events; to set timers; and to raise and restore task priority levels as\r
+ defined in the UEFI specification. GUIDed events should be listed in the Guids\r
+ section.\r
+ </xs:documentation>\r
</xs:annotation>\r
- </xs:enumeration>\r
- <xs:enumeration value="UNDEFINED">\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>\r
+ </xs:sequence>\r
+ <xs:attribute name="Usage" use="required">\r
+ <xs:simpleType>\r
+ <xs:restriction base="xs:NCName">\r
+ <xs:enumeration value="CONSUMES">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The module will register a\r
+ notification function and calls the function when it is\r
+ signaled.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:enumeration>\r
+ <xs:enumeration value="SOMETIMES_CONSUMES">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The module will register a\r
+ notification function and calls the function when it is\r
+ signaled on some execution paths.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:enumeration>\r
+ <xs:enumeration value="PRODUCES">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The module will signal all\r
+ events in an event group.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:enumeration>\r
+ <xs:enumeration value="SOMETIMES_PRODUCES">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The module will signal all\r
+ events in an event group under some execution paths.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:enumeration>\r
+ <xs:enumeration value="UNDEFINED">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The package creator does not\r
+ know how an event is used.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:enumeration>\r
+ </xs:restriction>\r
+ </xs:simpleType>\r
+ </xs:attribute>\r
+ <xs:attribute name="EventType" use="required">\r
+ <xs:simpleType>\r
+ <xs:restriction base="xs:NCName">\r
+ <xs:enumeration value="EVENT_TYPE_PERIODIC_TIMER"/>\r
+ <xs:enumeration value="EVENT_TYPE_RELATIVE_TIMER"/>\r
+ <xs:enumeration value="UNDEFINED"/>\r
+ </xs:restriction>\r
+ </xs:simpleType>\r
+\r
+\r
+ </xs:attribute>\r
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+ <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
+ </xs:complexType>\r
+ </xs:element>\r
+\r
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="HOB" nillable="false">\r
<xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This enumeration is for use in a list that where the package\r
- creator does not know the what module types are supported by a module. </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This is a list of non-GUIDed Hand Off Blocks\r
+ (HOBs) produced or consumed by this module.\r
+ </xs:documentation>\r
</xs:annotation>\r
- </xs:enumeration>\r
- <xs:pattern value="([A-Z])([a-zA-Z0-9])*">\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>\r
+ </xs:sequence>\r
+ <xs:attribute name="HobType" use="required">\r
+ <xs:simpleType>\r
+ <xs:restriction base="xs:NCName">\r
+ <xs:enumeration value="PHIT"/>\r
+ <xs:enumeration value="MEMORY_ALLOCATION"/>\r
+ <xs:enumeration value="RESOURCE_DESCRIPTOR"/>\r
+ <xs:enumeration value="FIRMWARE_VOLUME"/>\r
+ <xs:enumeration value="LOAD_PEIM"/>\r
+ <xs:enumeration value="UNDEFINED"/>\r
+ </xs:restriction>\r
+ </xs:simpleType>\r
+ </xs:attribute>\r
+ <xs:attribute name="Usage" use="required">\r
+ <xs:simpleType>\r
+ <xs:restriction base="xs:NCName">\r
+ <xs:enumeration value="CONSUMES">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ A HOB must be present in the\r
+ system.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:enumeration>\r
+ <xs:enumeration value="SOMETIMES_CONSUMES">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ If present, the HOB will be\r
+ used.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:enumeration>\r
+ <xs:enumeration value="PRODUCES">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The HOB is always produced\r
+ by the module.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:enumeration>\r
+ <xs:enumeration value="SOMETIMES_PRODUCES">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The HOB may be produced by\r
+ the module under some execution paths.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:enumeration>\r
+ <xs:enumeration value="UNDEFINED">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The package creator knows\r
+ that a HOB is used, but does not know how it is used.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:enumeration>\r
+ </xs:restriction>\r
+ </xs:simpleType>\r
+ </xs:attribute>\r
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+ <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
+ </xs:complexType>\r
+ </xs:element>\r
+\r
+ </xs:sequence>\r
+ <xs:attributeGroup ref="SupportedArchMod"/>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <!-- End of ModuleProperties Section -->\r
+\r
+ <xs:element minOccurs="0" maxOccurs="1" name="ClonedFrom">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This section may be included for Modules that are copied\r
+ from a different module.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="GUID">\r
<xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This pattern has been added for use in a module lists - for\r
- future expansion. </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This GUID and the Version attribute uniquely\r
+ identify the Module that this Module was copied from.\r
+ </xs:documentation>\r
</xs:annotation>\r
- </xs:pattern>\r
- </xs:restriction>\r
- </xs:simpleType>\r
+ <xs:complexType>\r
+ <xs:simpleContent>\r
+ <xs:extension base="RegistryFormatGuid">\r
+ <xs:attribute name="Version" type="xs:decimal" use="required">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This value, along with the GUID,\r
+ is used to uniquely identify this object.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:attribute>\r
+ </xs:extension>\r
+ </xs:simpleContent>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ </xs:sequence>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <!-- End of ClonedFrom Section. -->\r
+\r
+ <xs:element minOccurs="0" maxOccurs="1" name="LibraryClassDefinitions">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ A list of the different Library Classes consumed by a\r
+ driver, core and/or application module, or produced by a Library module.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="LibraryClass">\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="Keyword" type="xs:NCName">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us ">\r
+ Used by tools to identify different\r
+ instances of libraries that provide the library class. This keyword\r
+ identifies the library class this module needs to be linked against.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:element>\r
+ <xs:element minOccurs="0" maxOccurs="1" name="RecommendedInstance">\r
+ <xs:complexType>\r
+ <xs:all>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="GUID">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This GUID and the\r
+ Version attribute uniquely identify the recommended Library\r
+ Instance for this module .\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:simpleContent>\r
+ <xs:extension base="RegistryFormatGuid">\r
+ <xs:attribute name="Version" type="xs:decimal"\r
+ use="optional">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This value, along with\r
+ the GUID, is used to uniquely identify this object.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:attribute>\r
+ </xs:extension>\r
+ </xs:simpleContent>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ </xs:all>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>\r
+ </xs:sequence>\r
+ <xs:attribute name="Usage" use="required">\r
+ <xs:simpleType>\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ Library instances can provide code\r
+ for a library class, or may require other library instances\r
+ themselves. Since different execution paths in a library (or module)\r
+ may need different library classes based on some setting, library\r
+ classes may not alway be required.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:restriction base="xs:NCName">\r
+ <xs:enumeration value="PRODUCES"/>\r
+ <xs:enumeration value="CONSUMES"/>\r
+ <xs:enumeration value="SOMETIMES_CONSUMES"/>\r
+ <xs:enumeration value="UNDEFINED"/>\r
+ </xs:restriction>\r
+ </xs:simpleType>\r
+ </xs:attribute>\r
+\r
+ <xs:attributeGroup ref="SupportedArchMod"/>\r
+ <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ A FeatureFlag attribute must evaluate to\r
+ either true or false - it may be a fixed value of true or false, a C\r
+ name or an in-fix expression.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:attribute>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ </xs:sequence>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <!-- End of LibraryClassDefinitions Section -->\r
\r
- <xs:simpleType name="PcdDatumTypes">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> The following data types are defined by the PCD specification (or PCD\r
- section of the UEFI/PI specifications.) </xs:documentation>\r
- </xs:annotation>\r
- <xs:restriction base="xs:normalizedString">\r
- <xs:enumeration value="UINT8"/>\r
- <xs:enumeration value="UINT16"/>\r
- <xs:enumeration value="UINT32"/>\r
- <xs:enumeration value="UINT64"/>\r
- <xs:enumeration value="BOOLEAN"/>\r
- <xs:enumeration value="VOID*"/>\r
- </xs:restriction>\r
- </xs:simpleType>\r
-\r
- <xs:simpleType name="PcdItemListType">\r
- <xs:list itemType="PcdItemTypes"/>\r
- </xs:simpleType>\r
-\r
- <xs:simpleType name="PcdItemTypes">\r
- <xs:restriction base="xs:NCName">\r
- <xs:enumeration value="FeaturePcd">\r
+ <xs:element minOccurs="0" maxOccurs="1" name="SourceFiles">\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename">\r
<xs:annotation>\r
- <xs:documentation xml:lang="en-us"> The Feature PCD is a binary, evaluating to either true or false.\r
- This is used during build to include/exclude content. It can also be used during execution to\r
- force execution paths within drivers, or to enable/disable features within a driver for a given\r
- platform. </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This is the module relative\r
+ (ModuleProperties.Path) path and filename location within the ZIP file.\r
+ </xs:documentation>\r
</xs:annotation>\r
- </xs:enumeration>\r
- <xs:enumeration value="FixedPcd">\r
+ <xs:complexType>\r
+ <xs:simpleContent>\r
+ <xs:extension base="xs:anyURI">\r
+ <xs:attribute name="Family" type="FamilyTypes" use="optional">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The Family attribute is used to\r
+ restrict usage to a given family of compilers, such as GCC or\r
+ MSFT. Since not all code processing tools use the same syntax,\r
+ especially for assembly, this field can be used to identify\r
+ different syntax.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:attribute>\r
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+ <xs:attribute name="SupModList" type="ModuleListType" use="optional"/>\r
+ <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
+ </xs:extension>\r
+ </xs:simpleContent>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>\r
+ </xs:sequence>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <!-- End of SourceFiles Section -->\r
+\r
+ <xs:element minOccurs="0" maxOccurs="1" name="BinaryFiles">\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="BinaryFile">\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This is the module relative\r
+ (ModuleProperties.Path) path and filename location within the ZIP\r
+ file.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:simpleContent>\r
+ <xs:extension base="xs:anyURI">\r
+ <xs:attribute name="FileType" use="optional">\r
+ <xs:simpleType>\r
+ <xs:restriction base="xs:NCName">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ Binary file distribution\r
+ is limited to UEFI/PI FFS leaf section file types.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:enumeration value="GUID"/>\r
+ <xs:enumeration value="FREEFORM"/>\r
+ <xs:enumeration value="UEFI_IMAGE"/>\r
+ <xs:enumeration value="PE32">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ A UEFI/PI FFS Leaf\r
+ section file type, not a raw PE32 file.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:enumeration>\r
+ <xs:enumeration value="PIC"/>\r
+ <xs:enumeration value="PEI_DEPEX"/>\r
+ <xs:enumeration value="DXE_DEPEX"/>\r
+ <xs:enumeration value="SMM_DEPEX"/>\r
+ <xs:enumeration value="COMPAT16"/>\r
+ <xs:enumeration value="DISPOSABLE"/>\r
+ <xs:enumeration value="TE"/>\r
+ <xs:enumeration value="VER"/>\r
+ <xs:enumeration value="UI"/>\r
+ <xs:enumeration value="BIN"/>\r
+ <xs:enumeration value="FV"/>\r
+ </xs:restriction>\r
+ </xs:simpleType>\r
+ </xs:attribute>\r
+ <xs:attribute name="GUID" use="optional"\r
+ type="RegistryFormatGuid"/>\r
+ <xs:attribute name="SupArchList" type="ArchListType"\r
+ use="optional"/>\r
+ <xs:attribute name="SupModList" type="ModuleListType"\r
+ use="optional"/>\r
+ <xs:attribute name="FeatureFlag" type="xs:normalizedString"\r
+ use="optional"/>\r
+ </xs:extension>\r
+ </xs:simpleContent>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="AsBuilt">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This section contains information\r
+ about how the module was coded, such as Compiler Tools, Flags, PCDs\r
+ (only PatchPcd and/or PcdEx) and Library Class Instances used to\r
+ build the binary.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+\r
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="PatchPcdValue">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The element is the\r
+ Patchable PCD Value that was used during the build.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element minOccurs="1" maxOccurs="1"\r
+ name="TokenSpaceGuidValue" type="RegistryFormatGuid"/>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="PcdCName"\r
+ type="xs:NCName"/>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="Token">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The minLength of 3 is\r
+ required to handle the "0x" prefix to the hex number.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:simpleType>\r
+ <xs:restriction base="HexNumber">\r
+ <xs:minLength value="3"/>\r
+ <xs:maxLength value="10"/>\r
+ </xs:restriction>\r
+ </xs:simpleType>\r
+ </xs:element>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="DatumType"\r
+ type="PcdDatumTypes"/>\r
+ <xs:element minOccurs="0" maxOccurs="1" name="MaxDatumSize">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This field is required\r
+ if the Pcd Datum Type is VOID*\r
+ </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The minLength of 3 is\r
+ required to handle the "0x" prefix to the hex number.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:simpleType>\r
+ <xs:restriction base="HexNumber">\r
+ <xs:minLength value="3"/>\r
+ </xs:restriction>\r
+ </xs:simpleType>\r
+ </xs:element>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="Value"\r
+ type="xs:normalizedString"/>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="Offset">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The minLength of 3 is\r
+ required to handle the "0x" prefix to the hex number.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:simpleType>\r
+ <xs:restriction base="HexNumber">\r
+ <xs:minLength value="3"/>\r
+ </xs:restriction>\r
+ </xs:simpleType>\r
+ </xs:element>\r
+ <xs:element ref="HelpText" minOccurs="0"\r
+ maxOccurs="unbounded"/>\r
+ <xs:element minOccurs="0" maxOccurs="unbounded"\r
+ name="PcdError">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ Error information\r
+ implemented by the module.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:choice>\r
+ <xs:element minOccurs="0" maxOccurs="1" name="ValidValueList">\r
+ <xs:complexType>\r
+ <xs:simpleContent>\r
+ <xs:extension base="xs:normalizedString">\r
+ <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"/>\r
+ </xs:extension>\r
+ </xs:simpleContent>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <xs:element minOccurs="0" maxOccurs="1" name="ValidValueRange" type="xs:normalizedString"/>\r
+ <xs:element minOccurs="0" maxOccurs="1" name="Expression" type="xs:normalizedString"/>\r
+ </xs:choice>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="ErrorNumber">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The minLength of 3 is\r
+ required to handle the "0x" prefix to the hex number.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:simpleType>\r
+ <xs:restriction base="HexNumber">\r
+ <xs:minLength value="3"/>\r
+ </xs:restriction>\r
+ </xs:simpleType>\r
+ </xs:element>\r
+ <xs:element minOccurs="0" maxOccurs="unbounded"\r
+ name="ErrorMessage">\r
+ <xs:complexType>\r
+ <xs:simpleContent>\r
+ <xs:extension base="xs:string">\r
+ <xs:attribute name="Lang" type="xs:language" default="en-us"\r
+ use="optional"/>\r
+ </xs:extension>\r
+ </xs:simpleContent>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ </xs:sequence>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ </xs:sequence>\r
+ </xs:complexType>\r
+ </xs:element>\r
+\r
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="PcdExValue">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The element is the\r
+ DynamicEx PCD Value that was used during the build.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element minOccurs="1" maxOccurs="1"\r
+ name="TokenSpaceGuidValue" type="RegistryFormatGuid"/>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="Token">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The minLength of 3 is\r
+ required to handle the "0x" prefix to the hex number.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:simpleType>\r
+ <xs:restriction base="HexNumber">\r
+ <xs:minLength value="3"/>\r
+ <xs:maxLength value="10"/>\r
+ </xs:restriction>\r
+ </xs:simpleType>\r
+ </xs:element>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="DatumType"\r
+ type="PcdDatumTypes"/>\r
+ <xs:element minOccurs="0" maxOccurs="1" name="MaxDatumSize">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This field is required\r
+ if the Pcd Datum Type is VOID*\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:simpleType>\r
+ <xs:restriction base="HexNumber">\r
+ <xs:minLength value="3"/>\r
+ </xs:restriction>\r
+ </xs:simpleType>\r
+ </xs:element>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="Value"\r
+ type="xs:normalizedString"/>\r
+ <xs:element ref="HelpText" minOccurs="0"\r
+ maxOccurs="unbounded"/>\r
+ <xs:element minOccurs="0" maxOccurs="unbounded"\r
+ name="PcdError">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ Error information\r
+ implemented by the module.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:choice>\r
+ <xs:element minOccurs="0" maxOccurs="1" name="ValidValueList">\r
+ <xs:complexType>\r
+ <xs:simpleContent>\r
+ <xs:extension base="xs:normalizedString">\r
+ <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"/>\r
+ </xs:extension>\r
+ </xs:simpleContent>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <xs:element minOccurs="0" maxOccurs="1" name="ValidValueRange" type="xs:normalizedString"/>\r
+ <xs:element minOccurs="0" maxOccurs="1" name="Expression" type="xs:normalizedString"/>\r
+ </xs:choice>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="ErrorNumber">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The minLength of 3 is\r
+ required to handle the "0x" prefix to the hex number.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:simpleType>\r
+ <xs:restriction base="HexNumber">\r
+ <xs:minLength value="3"/>\r
+ </xs:restriction>\r
+ </xs:simpleType>\r
+ </xs:element>\r
+ <xs:element minOccurs="0" maxOccurs="unbounded"\r
+ name="ErrorMessage">\r
+ <xs:complexType>\r
+ <xs:simpleContent>\r
+ <xs:extension base="xs:string">\r
+ <xs:attribute name="Lang" type="xs:language" default="en-us"\r
+ use="optional"/>\r
+ </xs:extension>\r
+ </xs:simpleContent>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ </xs:sequence>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ </xs:sequence>\r
+ </xs:complexType>\r
+ </xs:element>\r
+\r
+ <xs:element minOccurs="0" maxOccurs="1" name="LibraryInstances">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This is the actual\r
+ library instance that was used to link against the module.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="GUID">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This GUID and the\r
+ Version attribute uniquely identify the actual Library\r
+ Instance linked in this module.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:simpleContent>\r
+ <xs:extension base="RegistryFormatGuid">\r
+ <xs:attribute name="Version" type="xs:decimal"\r
+ use="required">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This value, along with\r
+ the GUID, is used to uniquely identify this object.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:attribute>\r
+ </xs:extension>\r
+ </xs:simpleContent>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ </xs:sequence>\r
+ </xs:complexType>\r
+ </xs:element>\r
+\r
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="BuildFlags">\r
+ <xs:complexType mixed="true">\r
+ <xs:simpleContent>\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ Any description of OS,\r
+ Tool, and flags for the individual tool can go in this\r
+ section.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:extension base="xs:string">\r
+ <xs:anyAttribute processContents="lax"/>\r
+ </xs:extension>\r
+ </xs:simpleContent>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ </xs:sequence>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <!-- End of AsBuilt -->\r
+ <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>\r
+ </xs:sequence>\r
+ </xs:complexType>\r
+ </xs:element>\r
+\r
+ </xs:sequence>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <!-- End of BinaryFiles Section -->\r
+\r
+ <xs:element minOccurs="0" maxOccurs="1" name="PackageDependencies">\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="Package">\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="Description">\r
+ <xs:complexType>\r
+ <xs:simpleContent>\r
+ <xs:extension base="xs:string">\r
+ <xs:attribute name="Lang" type="xs:language" default="en-us"\r
+ use="optional"/>\r
+ </xs:extension>\r
+ </xs:simpleContent>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="GUID">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This GUID and the Version attribute\r
+ uniquely identify Package that this Module depends on.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:simpleContent>\r
+ <xs:extension base="RegistryFormatGuid">\r
+ <xs:attribute name="Version" type="xs:decimal" use="optional">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This value, along with\r
+ the GUID, is used to uniquely identify this object. If the\r
+ version attribute is not specified, the most recent version\r
+ of the package can be used.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:attribute>\r
+ </xs:extension>\r
+ </xs:simpleContent>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ </xs:sequence>\r
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+ <xs:attribute name="SupModList" type="ModuleListType" use="optional"/>\r
+ <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ </xs:sequence>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <!-- End of PackageDependencies -->\r
+\r
+ <xs:element minOccurs="0" maxOccurs="1" name="Guids">\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="GuidCName">\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="CName" type="xs:NCName"/>\r
+ <xs:element minOccurs="0" maxOccurs="1" name="GUID" type="RegistryFormatGuid"/>\r
+ <xs:element minOccurs="0" maxOccurs="1" name="VariableName"\r
+ type="xs:normalizedString">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us"> Only valid for Variable GUID types. </xs:documentation>\r
+ <xs:documentation>\r
+ This can be either a Hex Array or C string in unicode\r
+ format: L"string" Data.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:element>\r
+ <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>\r
+ </xs:sequence>\r
+ <xs:attribute name="Usage" use="required">\r
+ <xs:simpleType>\r
+ <xs:restriction base="xs:NCName">\r
+ <xs:enumeration value="CONSUMES">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The module does not install\r
+ the GUID, and the GUID must be present for the module to\r
+ execute.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:enumeration>\r
+ <xs:enumeration value="SOMETIMES_CONSUMES">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The module does not install\r
+ the GUID, however, the GUID will be used if it is present.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:enumeration>\r
+ <xs:enumeration value="PRODUCES">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The module always installs\r
+ the GUID.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:enumeration>\r
+ <xs:enumeration value="SOMETIMES_PRODUCES">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The Module will install the\r
+ GUID under certain execution paths.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:enumeration>\r
+ <xs:enumeration value="UNDEFINED">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The package creator knows\r
+ that a GUID is used, but does not know how it is used.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:enumeration>\r
+ </xs:restriction>\r
+ </xs:simpleType>\r
+ </xs:attribute>\r
+ <xs:attribute name="GuidType" type="GuidListType" use="required"/>\r
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+ <xs:attribute name="SupModList" type="ModuleListType" use="optional"/>\r
+ <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ </xs:sequence>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <!-- End of Guids Section -->\r
+\r
+ <xs:element minOccurs="0" maxOccurs="1" name="Protocols">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ A listing of protocols required or produced by this module.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="Protocol" nillable="true">\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="CName" type="xs:NCName"/>\r
+ <xs:element minOccurs="0" maxOccurs="1" name="GUID" type="RegistryFormatGuid"/>\r
+ <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>\r
+ </xs:sequence>\r
+ <xs:attribute name="Usage" use="required">\r
+ <xs:simpleType>\r
+ <xs:restriction base="xs:NCName">\r
+ <xs:enumeration value="PRODUCES"/>\r
+ <xs:enumeration value="SOMETIMES_PRODUCES"/>\r
+ <xs:enumeration value="CONSUMES"/>\r
+ <xs:enumeration value="SOMETIMES_CONSUMES"/>\r
+ <xs:enumeration value="TO_START"/>\r
+ <xs:enumeration value="BY_START"/>\r
+ <xs:enumeration value="UNDEFINED"/>\r
+ </xs:restriction>\r
+ </xs:simpleType>\r
+ </xs:attribute>\r
+ <xs:attribute name="Notify" type="xs:boolean" use="optional"/>\r
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+ <xs:attribute name="SupModList" type="ModuleListType" use="optional"/>\r
+ <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ </xs:sequence>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <!-- End of Protocols Section -->\r
+\r
+ <xs:element minOccurs="0" maxOccurs="1" name="PPIs">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ A listing of PPIs required or produced by this module.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="Ppi" nillable="true">\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="CName" type="xs:NCName"/>\r
+ <xs:element minOccurs="0" maxOccurs="1" name="GUID" type="RegistryFormatGuid"/>\r
+ <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>\r
+ </xs:sequence>\r
+ <xs:attribute name="Usage" use="required">\r
+ <xs:simpleType>\r
+ <xs:restriction base="xs:NCName">\r
+ <xs:enumeration value="PRODUCES"/>\r
+ <xs:enumeration value="SOMETIMES_PRODUCES"/>\r
+ <xs:enumeration value="CONSUMES"/>\r
+ <xs:enumeration value="SOMETIMES_CONSUMES"/>\r
+ <xs:enumeration value="UNDEFINED"/>\r
+ </xs:restriction>\r
+ </xs:simpleType>\r
+ </xs:attribute>\r
+ <xs:attribute name="Notify" type="xs:boolean" use="optional"/>\r
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+ <xs:attribute name="SupModList" type="ModuleListType" use="optional"/>\r
+ <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ </xs:sequence>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <!-- End of PPIs Section -->\r
+\r
+ <xs:element minOccurs="0" maxOccurs="1" name="Externs">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ These elements specify additional information about the\r
+ module. This area may be used by tools to generate code.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="Extern">\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:choice minOccurs="1">\r
+ <xs:sequence>\r
+ <xs:element minOccurs="0" maxOccurs="1" name="EntryPoint"\r
+ type="xs:NCName"/>\r
+ <xs:element minOccurs="0" maxOccurs="1" name="UnloadImage"\r
+ type="xs:NCName"/>\r
+ </xs:sequence>\r
+ <xs:sequence>\r
+ <xs:element minOccurs="0" maxOccurs="1" name="Constructor"\r
+ type="xs:NCName"/>\r
+ <xs:element minOccurs="0" maxOccurs="1" name="Destructor"\r
+ type="xs:NCName"/>\r
+ </xs:sequence>\r
+ </xs:choice>\r
+ <xs:element ref="HelpText" minOccurs="0" maxOccurs="1"/>\r
+ </xs:sequence>\r
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+ <xs:attribute name="SupModList" type="ModuleListType" use="optional"/>\r
+ <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ </xs:sequence>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <!-- End of Externs Section -->\r
+\r
+ <xs:element minOccurs="0" maxOccurs="1" name="PcdCoded">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This section describes how a platform is coded with respect\r
+ to the platform configuration knobs.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="PcdEntry">\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="CName" type="xs:NCName"/>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="TokenSpaceGuidCName"\r
+ type="xs:NCName"/>\r
+ <xs:element minOccurs="0" maxOccurs="1" name="DefaultValue"\r
+ type="xs:normalizedString"/>\r
+ <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>\r
+ </xs:sequence>\r
+ <xs:attribute name="PcdItemType" type="PcdItemTypes" use="required"/>\r
+ <xs:attribute name="PcdUsage" use="required">\r
+ <xs:simpleType>\r
+ <xs:restriction base="xs:NCName">\r
+ <xs:enumeration value="PRODUCES"/>\r
+ <xs:enumeration value="SOMETIMES_PRODUCES"/>\r
+ <xs:enumeration value="CONSUMES"/>\r
+ <xs:enumeration value="SOMETIMES_CONSUMES"/>\r
+ <xs:enumeration value="UNDEFINED"/>\r
+ </xs:restriction>\r
+ </xs:simpleType>\r
+\r
+\r
+ </xs:attribute>\r
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+ <xs:attribute name="SupModList" type="ModuleListType" use="optional"/>\r
+ <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ </xs:sequence>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <!-- End of PcdCoded Section -->\r
+\r
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="PeiDepex">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This is the PEI dependency expression for a Dependency\r
+ Section.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element name="Expression" type="xs:string" minOccurs="1" maxOccurs="1">\r
<xs:annotation>\r
- <xs:documentation xml:lang="en-us"> The Fixed PCD is a #define value that is set at build time.\r
- </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ An in-fix expression, of C identifiers and TRUE,\r
+ FALSE, AND, OR, NOT, BEFORE, and AFTER as well as parenthesis () in the in-fix\r
+ notation. The operators are restricted to grammar defined in the PI\r
+ specification.\r
+ </xs:documentation>\r
</xs:annotation>\r
- </xs:enumeration>\r
- <xs:enumeration value="PatchPcd">\r
+ </xs:element>\r
+ <xs:element ref="HelpText" minOccurs="0" maxOccurs="1"/>\r
+ </xs:sequence>\r
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+ <xs:attribute name="SupModList" type="ModuleListType" use="optional"/>\r
+ <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <!-- End of PeiDepex Section -->\r
+\r
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="DxeDepex">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This is the DXE dependency expression for a Dependency\r
+ Section.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element name="Expression" type=" xs:string " minOccurs="1" maxOccurs="1">\r
<xs:annotation>\r
- <xs:documentation xml:lang="en-us"> The Patch PCD is a #define that is set at build time, and that\r
- can be modified within a binary file. Additional information, such as the offset location of the\r
- value, along with it's length may need to be provided.</xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ An in-fix expression, of C identifiers and TRUE,\r
+ FALSE, AND, OR, NOT, BEFORE, and AFTER as well as parenthesis () in the in-fix\r
+ notation. The operators are restricted to grammar defined in the PI\r
+ specification.\r
+ </xs:documentation>\r
</xs:annotation>\r
- </xs:enumeration>\r
- <xs:enumeration value="Pcd">\r
+ </xs:element>\r
+ <xs:element ref="HelpText" minOccurs="0" maxOccurs="1"/>\r
+ </xs:sequence>\r
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+ <xs:attribute name="SupModList" type="ModuleListType" use="optional"/>\r
+ <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <!-- End of DxeDepex Section -->\r
+\r
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="SmmDepex">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This is the SMM dependency expression for a Dependency\r
+ Section.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element name="Expression" type=" xs:string " minOccurs="1" maxOccurs="1">\r
<xs:annotation>\r
- <xs:documentation xml:lang="en-us"> This PCD type has an overloaded definition. Prior to build, the\r
- platform integrator may choose to implement a PCD as Fixed, Patchable or a Dynamic PCD. If the\r
- platform integrator choose to use the PCD as dynamic, then a PCD driver is required in the\r
- platform (PEI/DXE/both) to track the PCD in some sort of 'database' of these items. For Dynamic\r
- PCDs, the PcdGet* must pass in the token space guid and the token number to retrieve data\r
- (PcdSet* also needs these values.) </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ An in-fix expression, of C identifiers and TRUE,\r
+ FALSE, AND, OR, NOT, BEFORE, and AFTER as well as parenthesis () in the in-fix\r
+ notation. The operators are restricted to grammar defined in the PI\r
+ specification.\r
+ </xs:documentation>\r
</xs:annotation>\r
- </xs:enumeration>\r
- <xs:enumeration value="PcdEx">\r
+ </xs:element>\r
+ <xs:element ref="HelpText" minOccurs="0" maxOccurs="1"/>\r
+ </xs:sequence>\r
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+ <xs:attribute name="SupModList" type="ModuleListType" use="optional"/>\r
+ <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <!-- End of SmmDepex Section -->\r
+\r
+\r
+ <xs:element minOccurs="0" maxOccurs="1" name="MiscellaneousFiles">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This section is used to provide comments and/or list\r
+ auxiliary files, such as pdb or map files.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="Description">\r
+ <xs:complexType>\r
+ <xs:simpleContent>\r
+ <xs:extension base="xs:string">\r
+ <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"\r
+ />\r
+ </xs:extension>\r
+ </xs:simpleContent>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename">\r
<xs:annotation>\r
- <xs:documentation xml:lang="en-us"> The PCD can only be used as Dynamic, and the platform firmware\r
- must contain a driver to maintain a 'database' of these items. For Dynamic PCDs, the PcdGet*\r
- must pass in the token space guid and the token number to retrieve data (PcdSet* also needs\r
- these values.) </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This is the path and filename location within\r
+ the ZIP file.\r
+ </xs:documentation>\r
</xs:annotation>\r
- </xs:enumeration>\r
- </xs:restriction>\r
- </xs:simpleType>\r
+ <xs:complexType>\r
+ <xs:simpleContent>\r
+ <xs:extension base="xs:anyURI">\r
+ <xs:attribute name="Executable" type="xs:boolean" default="false"\r
+ use="optional">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ If true, used by installation\r
+ tools to ensure that a file that must be executable has the\r
+ correct properties to permit execution.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:attribute>\r
+ </xs:extension>\r
+ </xs:simpleContent>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ </xs:sequence>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <!-- End of Module Surface Area Misc Section -->\r
+\r
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="UserExtensions">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This section is used for any processing instructions that\r
+ may be custom to the content provided by the distribution that are common to module.\r
+ </xs:documentation>\r
+ <xs:documentation xml:lang="en-us"> The content is vendor specific. </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The content can be plain text as well as any user-defined,\r
+ properly formatted XML structure.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType mixed="true">\r
+ <xs:attribute name="UserId" type="xs:NCName" use="required">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This is a single word identifier for grouping\r
+ similar content. For example, ReferenceBuild might be used to identify non-PI\r
+ compliant build steps, with two different UserExtensions sections, one with an\r
+ Identifier of Prebuild, and another of PostBuild. Both UserExtensions sections would\r
+ use the same UserId.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:attribute>\r
+ <xs:attribute name="Identifier" type="xs:string" use="required">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This can be any string used to differentiate or\r
+ identify this section from other UserExtensions sections.\r
+ </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ For example, a PRE_PROCESS Identifier might indicate\r
+ specific steps and tools required before processing module content, while a\r
+ different UserExtensions section with a POST_PROCESS Identifier might describe steps\r
+ that need to be executed after operations on this module.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:attribute>\r
+ <xs:anyAttribute processContents="lax"/>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <!-- End of Module Surface Area UserExtensions Section -->\r
\r
- <xs:simpleType name="RegistryFormatGuid">\r
+ </xs:sequence>\r
+ <xs:attribute name="BinaryModule" type="xs:boolean" default="false" use="optional">\r
<xs:annotation>\r
- <xs:documentation xml:lang="en-us"> A GUID must contain five different Hexadecimal character sets that are\r
- separated by a dash (-) character. </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This attribute is used when the binaries are distributed for\r
+ this module and no code generation from source files is required. If set, then the BinaryFiles\r
+ section should be used, and any files listed in the SourceFiles section do not have to be built.\r
+ Additionally, the AsBuilt section for each binary file must be included.\r
+ </xs:documentation>\r
</xs:annotation>\r
- <xs:restriction base="xs:string">\r
- <xs:pattern value="\s*[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}\s*"/>\r
- </xs:restriction>\r
- </xs:simpleType>\r
+ </xs:attribute>\r
+ </xs:complexType>\r
\r
- <xs:simpleType name="SupportedOs">\r
- <xs:annotation>\r
- <xs:documentation xml:lang="en-us"> The EDK II build system supports workstations running one of the\r
- following supported operating systems. This is the OS for the developer's workstation, not the target\r
- platform. </xs:documentation>\r
- </xs:annotation>\r
- <xs:restriction base="xs:string">\r
- <xs:enumeration value="Win32">\r
+ </xs:element>\r
+ <!-- End of the ModuleSurfaceArea element. -->\r
+\r
+ <xs:element name="Tools">\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element minOccurs="0" maxOccurs="1" name="Header">\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element minOccurs="1" maxOccurs="1" name="Name" type="xs:normalizedString">\r
<xs:annotation>\r
- <xs:documentation xml:lang="en-us"> For Windows 2003, Windows XP and Windows Vista.\r
- </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This is the User Interface Name for this Tools\r
+ Distribution.\r
+ </xs:documentation>\r
</xs:annotation>\r
- </xs:enumeration>\r
- <xs:enumeration value="Win64">\r
+ </xs:element>\r
+ <xs:element minOccurs="0" maxOccurs="1" name="Copyright" type="xs:string">\r
<xs:annotation>\r
- <xs:documentation xml:lang="en-us"> For Windows 2003, Windows XP and Windows Vista.\r
- </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This is only required if the Copyright is\r
+ different from the Distribution Package copyright.\r
+ </xs:documentation>\r
</xs:annotation>\r
- </xs:enumeration>\r
- <xs:enumeration value="RedHat32"/>\r
- <xs:enumeration value="RedHat64"/>\r
- <xs:enumeration value="SuSE32"/>\r
- <xs:enumeration value="SuSE64"/>\r
- <xs:enumeration value="Linux32"/>\r
- <xs:enumeration value="Linux64"/>\r
- <xs:enumeration value="OS/X32"/>\r
- <xs:enumeration value="OS/X64"/>\r
- <xs:enumeration value="Generic"/>\r
- <xs:enumeration value="GenericWin">\r
+ </xs:element>\r
+ <xs:element minOccurs="0" maxOccurs="1" name="License" type="xs:string">\r
<xs:annotation>\r
- <xs:documentation xml:lang="en-us"> Typically, this is used for Windows Batch files.\r
+ <xs:documentation xml:lang="en-us">\r
+ This is only required if the License is\r
+ different from the Distribution Package license.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:element>\r
+ <xs:element minOccurs="0" maxOccurs="1" name="Abstract">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This is only required if the Abstract is\r
+ different from the Distribution Package Abstract.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:simpleContent>\r
+ <xs:extension base="xs:normalizedString">\r
+ <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"/>\r
+ </xs:extension>\r
+ </xs:simpleContent>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <xs:element minOccurs="0" maxOccurs="1" name="Description">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This is only required if the Description is\r
+ different from the Distribution Package Description.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:simpleContent>\r
+ <xs:extension base="xs:string">\r
+ <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"/>\r
+ </xs:extension>\r
+ </xs:simpleContent>\r
+ </xs:complexType>\r
+\r
+ </xs:element>\r
+ </xs:sequence>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This is the path and filename location within the ZIP file.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:simpleContent>\r
+ <xs:extension base="xs:anyURI">\r
+ <xs:attribute name="OS" type="SupportedOs" use="optional">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This is required for tools that execute; it\r
+ should not be used for configuration files.\r
</xs:documentation>\r
+ </xs:annotation>\r
+ </xs:attribute>\r
+ <xs:attribute name="Executable" type="xs:boolean" default="false" use="optional">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ If true, used by installation tools to\r
+ ensure that a file that must be executable has the correct properties to\r
+ permit execution.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:attribute>\r
+ </xs:extension>\r
+ </xs:simpleContent>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ </xs:sequence>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <!-- End of the Tools element. -->\r
+\r
+ <xs:element name="MiscellaneousFiles">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This section contains a list of files that are not part of the code\r
+ distributed with modules, packages or tools.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element minOccurs="0" maxOccurs="1" name="Header">\r
+ <xs:complexType>\r
+ <xs:sequence>\r
+ <xs:element minOccurs="0" maxOccurs="1" name="Name" type="xs:normalizedString">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The User interface name for this content.\r
+ </xs:documentation>\r
</xs:annotation>\r
- </xs:enumeration>\r
- <xs:enumeration value="GenericNix">\r
+ </xs:element>\r
+ <xs:element minOccurs="0" maxOccurs="1" name="Copyright" type="xs:string">\r
<xs:annotation>\r
- <xs:documentation xml:lang="en-us"> Typically use for shell scripts - valid for any Linux and Mac\r
- OS/X. </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This is only required if the Copyright is\r
+ different from the Distribution Package Copyright.\r
+ </xs:documentation>\r
</xs:annotation>\r
- </xs:enumeration>\r
- <xs:pattern value="[a-zA-Z]([a-zA-Z0-9])*"/>\r
- </xs:restriction>\r
- </xs:simpleType>\r
+ </xs:element>\r
+ <xs:element minOccurs="0" maxOccurs="1" name="License" type="xs:string">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This is only required if the License is\r
+ different from the Distribution Package License.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:element>\r
+ <xs:element minOccurs="0" maxOccurs="1" name="Abstract" type="xs:normalizedString"/>\r
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="Description">\r
+ <xs:complexType>\r
+ <xs:simpleContent>\r
+ <xs:extension base="xs:string">\r
+ <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"\r
+ />\r
+ </xs:extension>\r
+ </xs:simpleContent>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ </xs:sequence>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <xs:element minOccurs="0" maxOccurs="unbounded" name="Filename">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This is the path and filename location within the ZIP file.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:complexType>\r
+ <xs:simpleContent>\r
+ <xs:extension base="xs:anyURI">\r
+ <xs:attribute name="Executable" type="xs:boolean" default="false" use="optional">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ If true, used by installation tools to\r
+ ensure that a file that must be executable has the correct properties to\r
+ permit execution.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:attribute>\r
+ </xs:extension>\r
+ </xs:simpleContent>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ </xs:sequence>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <!-- End of the Misc element. -->\r
+\r
+ <xs:element name="UserExtensions">\r
+ <xs:complexType mixed="true">\r
+ <xs:sequence>\r
+ <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>\r
+ </xs:sequence>\r
+ <xs:attribute name="UserId" type="xs:NCName" use="required">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This is a single word identifier for grouping similar content.\r
+ For example, ReferenceBuild might be used to identify non-PI compliant build steps, with two\r
+ different UserExtensions sections, one with an Identifier of Prebuild, and another of PostBuild.\r
+ Both UserExtensions sections would use the same UserId.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:attribute>\r
+ <xs:attribute name="Identifier" type="xs:string" use="optional">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This can be any string used to differentiate or identify this\r
+ section from other UserExtensions sections.\r
+ </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ For example, a PRE_PROCESS Identifier might indicate specific\r
+ steps and tools required before processing distribution package content, while a different\r
+ UserExtensions section with a POST_PROCESS Identifier might describe steps that need to be\r
+ executed after operations on this content.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:attribute>\r
+ <xs:anyAttribute processContents="lax"/>\r
+ </xs:complexType>\r
+ </xs:element>\r
+ <!-- The following elsements are common definitions used with the ref attribute for elements. -->\r
+\r
+ <xs:element name="HelpText">\r
+ <xs:complexType>\r
+ <xs:simpleContent>\r
+ <xs:extension base="xs:string">\r
+ <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"/>\r
+ </xs:extension>\r
+ </xs:simpleContent>\r
+ </xs:complexType>\r
+ </xs:element>\r
+\r
+ <!-- The following attribute groups are used in various elements above. -->\r
+\r
+ <xs:attributeGroup name="SupportedArchMod">\r
+ <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>\r
+ <xs:attribute name="SupModList" type="ModuleListType" use="optional"/>\r
+ </xs:attributeGroup>\r
+\r
+ <!-- The following data types are used to restrict content. -->\r
+\r
+ <xs:simpleType name="ArchListType">\r
+ <xs:list itemType="ArchTypes"/>\r
+ </xs:simpleType>\r
+\r
+ <xs:simpleType name="ArchTypes">\r
+ <xs:restriction base="xs:NCName">\r
+ <xs:enumeration value="IA32"/>\r
+ <xs:enumeration value="X64"/>\r
+ <xs:enumeration value="IPF"/>\r
+ <xs:enumeration value="EBC"/>\r
+ <xs:enumeration value="ARM"/>\r
+ <xs:pattern value="([A-Z])([a-zA-Z0-9])*">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ Any processor architecture not listed above. The Architecture\r
+ must be a target architecture of one or more compiler tool chains.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:pattern>\r
+ </xs:restriction>\r
+ </xs:simpleType>\r
+\r
+\r
+ <xs:simpleType name="FamilyTypes">\r
+ <xs:restriction base="xs:NCName">\r
+ <xs:enumeration value="MSFT"/>\r
+ <xs:enumeration value="GCC"/>\r
+ <xs:pattern value="[A-Z][a-zA-Z0-9]*">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ Any other family of build utilities for which compiler tools\r
+ exist.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:pattern>\r
+ </xs:restriction>\r
+ </xs:simpleType>\r
+\r
+ <xs:simpleType name="GuidListType">\r
+ <xs:list itemType="GuidTypes"/>\r
+ </xs:simpleType>\r
+\r
+ <xs:simpleType name="GuidTypes">\r
+ <xs:restriction base="xs:NCName">\r
+ <xs:enumeration value="Event"/>\r
+ <xs:enumeration value="File"/>\r
+ <xs:enumeration value="FV"/>\r
+ <xs:enumeration value="GUID"/>\r
+ <xs:enumeration value="HII"/>\r
+ <xs:enumeration value="Hii"/>\r
+ <xs:enumeration value="HOB"/>\r
+ <xs:enumeration value="SystemTable"/>\r
+ <xs:enumeration value="TokenSpaceGuid"/>\r
+ <xs:enumeration value="Variable"/>\r
+ <xs:enumeration value="UNDEFINED"/>\r
+ </xs:restriction>\r
+ </xs:simpleType>\r
+\r
+ <xs:simpleType name="HexNumber">\r
+ <xs:restriction base="xs:hexBinary">\r
+ <xs:pattern value="0x([a-fA-F0-9])+"/>\r
+ </xs:restriction>\r
+ </xs:simpleType>\r
+\r
+ <xs:simpleType name="Md5Sum">\r
+ <xs:restriction base="xs:normalizedString">\r
+ <xs:pattern value="[a-zA-Z0-9]{32}"/>\r
+ </xs:restriction>\r
+ </xs:simpleType>\r
+\r
+ <xs:simpleType name="ModuleListType">\r
+ <xs:list itemType="ModuleTypes"/>\r
+ </xs:simpleType>\r
+\r
+ <xs:simpleType name="ModuleTypes">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us"> The following module types are defined by specifications. </xs:documentation>\r
+ <xs:documentation xml:lang="en-us">\r
+ Module types for components and libraries defined for this distribution\r
+ mechanism.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:restriction base="xs:NCName">\r
+ <xs:enumeration value="BASE ">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us"> Use of this module is not restricted. </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:enumeration>\r
+ <xs:enumeration value="DXE_CORE">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This module is only applicable to the DXE core.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:enumeration>\r
+ <xs:enumeration value="DXE_DRIVER">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This module is only applicable to a DXE driver.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:enumeration>\r
+ <xs:enumeration value="DXE_RUNTIME_DRIVER">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This module is only applicable to a DXE runtime driver.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:enumeration>\r
+ <xs:enumeration value="DXE_SAL_DRIVER">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This module is only applicable to an IPF DXE runtime driver.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:enumeration>\r
+ <xs:enumeration value="DXE_SMM_DRIVER">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This module is only applicable to a DXE SMM driver.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:enumeration>\r
+ <xs:enumeration value="PEI_CORE">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This module is only applicable to the PEI core.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:enumeration>\r
+ <xs:enumeration value="PEIM">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us"> This module is only valid for PEI modules. </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:enumeration>\r
+ <xs:enumeration value="SEC">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This module is only applicable to Security phase.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:enumeration>\r
+ <xs:enumeration value="UEFI_DRIVER">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us"> This module is only valid for UEFI drivers. </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:enumeration>\r
+ <xs:enumeration value="UEFI_RUNTIME_DRIVER">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This module is only valid for UEFI runtime\r
+ drivers.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:enumeration>\r
+ <xs:enumeration value="UEFI_APPLICATION">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This module is only valid for UEFI applications.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:enumeration>\r
+ <xs:enumeration value="SMM_CORE">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This module is only applicable to the SMM\r
+ core.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:enumeration>\r
+ <xs:enumeration value="USER_DEFINED">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This content is restricted to a specific implementation.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:enumeration>\r
+ <xs:enumeration value="UNDEFINED">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This enumeration is for use in a list that where the package\r
+ creator does not know the what module types are supported by a module.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:enumeration>\r
+ <xs:pattern value="([A-Z])([a-zA-Z0-9])*">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This pattern has been added for use in a module lists - for\r
+ future expansion.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:pattern>\r
+ </xs:restriction>\r
+ </xs:simpleType>\r
+\r
+ <xs:simpleType name="PcdDatumTypes">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The following data types are defined by the PCD specification (or PCD\r
+ section of the UEFI/PI specifications.)\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:restriction base="xs:normalizedString">\r
+ <xs:enumeration value="UINT8"/>\r
+ <xs:enumeration value="UINT16"/>\r
+ <xs:enumeration value="UINT32"/>\r
+ <xs:enumeration value="UINT64"/>\r
+ <xs:enumeration value="BOOLEAN"/>\r
+ <xs:enumeration value="VOID*"/>\r
+ </xs:restriction>\r
+ </xs:simpleType>\r
+\r
+ <xs:simpleType name="PcdItemListType">\r
+ <xs:list itemType="PcdItemTypes"/>\r
+ </xs:simpleType>\r
+\r
+ <xs:simpleType name="PcdItemTypes">\r
+ <xs:restriction base="xs:NCName">\r
+ <xs:enumeration value="FeaturePcd">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The Feature PCD is a binary, evaluating to either true or false.\r
+ This is used during build to include/exclude content. It can also be used during execution to\r
+ force execution paths within drivers, or to enable/disable features within a driver for a given\r
+ platform.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:enumeration>\r
+ <xs:enumeration value="FixedPcd">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The Fixed PCD is a #define value that is set at build time.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:enumeration>\r
+ <xs:enumeration value="PatchPcd">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The Patch PCD is a #define that is set at build time, and that\r
+ can be modified within a binary file. Additional information, such as the offset location of the\r
+ value, along with it's length may need to be provided.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:enumeration>\r
+ <xs:enumeration value="Pcd">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ This PCD type has an overloaded definition. Prior to build, the\r
+ platform integrator may choose to implement a PCD as Fixed, Patchable or a Dynamic PCD. If the\r
+ platform integrator choose to use the PCD as dynamic, then a PCD driver is required in the\r
+ platform (PEI/DXE/both) to track the PCD in some sort of 'database' of these items. For Dynamic\r
+ PCDs, the PcdGet* must pass in the token space guid and the token number to retrieve data\r
+ (PcdSet* also needs these values.)\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:enumeration>\r
+ <xs:enumeration value="PcdEx">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The PCD can only be used as Dynamic, and the platform firmware\r
+ must contain a driver to maintain a 'database' of these items. For Dynamic PCDs, the PcdGet*\r
+ must pass in the token space guid and the token number to retrieve data (PcdSet* also needs\r
+ these values.)\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:enumeration>\r
+ </xs:restriction>\r
+ </xs:simpleType>\r
+\r
+ <xs:simpleType name="RegistryFormatGuid">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ A GUID must contain five different Hexadecimal character sets that are\r
+ separated by a dash (-) character.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:restriction base="xs:string">\r
+ <xs:pattern value="\s*[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}\s*"/>\r
+ </xs:restriction>\r
+ </xs:simpleType>\r
+\r
+ <xs:simpleType name="SupportedOs">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ The EDK II build system supports workstations running one of the\r
+ following supported operating systems. This is the OS for the developer's workstation, not the target\r
+ platform.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ <xs:restriction base="xs:string">\r
+ <xs:enumeration value="Win32">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ For Windows 2003, Windows XP and Windows Vista.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:enumeration>\r
+ <xs:enumeration value="Win64">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ For Windows 2003, Windows XP and Windows Vista.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:enumeration>\r
+ <xs:enumeration value="RedHat32"/>\r
+ <xs:enumeration value="RedHat64"/>\r
+ <xs:enumeration value="SuSE32"/>\r
+ <xs:enumeration value="SuSE64"/>\r
+ <xs:enumeration value="Linux32"/>\r
+ <xs:enumeration value="Linux64"/>\r
+ <xs:enumeration value="OS/X32"/>\r
+ <xs:enumeration value="OS/X64"/>\r
+ <xs:enumeration value="Generic"/>\r
+ <xs:enumeration value="GenericWin">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ Typically, this is used for Windows Batch files.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:enumeration>\r
+ <xs:enumeration value="GenericNix">\r
+ <xs:annotation>\r
+ <xs:documentation xml:lang="en-us">\r
+ Typically use for shell scripts - valid for any Linux and Mac\r
+ OS/X.\r
+ </xs:documentation>\r
+ </xs:annotation>\r
+ </xs:enumeration>\r
+ <xs:pattern value="[a-zA-Z]([a-zA-Z0-9])*"/>\r
+ </xs:restriction>\r
+ </xs:simpleType>\r
\r
</xs:schema>\r