Updated schema, added some new elements that will be used in the final. Added a DatumSizeLimitation type so that it could be referred to rather than specify 8 additional lines of XML for DataumSize element.

MAJOR CHANGE TO Framework Doc - SPD Has been added.  I will add Andrew's comments tomorrow.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@424 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
lhauch 2006-06-06 03:09:40 +00:00
parent 6c756d6463
commit e4ecc06e50
5 changed files with 202 additions and 101 deletions

Binary file not shown.

View File

@ -853,24 +853,6 @@
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="MsaFileList">
<xs:annotation>
<xs:documentation xml:lang="en">Surface Area Package Description (SPD) list of Module Surface Area files</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="Filename">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:anyURI">
<xs:attributeGroup ref="ModuleNameSaAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="MsaPcdDeclarations">
<xs:annotation>
<xs:documentation xml:lang="en">Child of Module Surface Area Description (MSA)</xs:documentation>
@ -895,6 +877,24 @@
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="MsaFileList">
<xs:annotation>
<xs:documentation xml:lang="en">Surface Area Package Description (SPD) list of Module Surface Area files</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="Filename">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:anyURI">
<xs:attributeGroup ref="ModuleNameSaAttributes"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="OutputDirectory">
<xs:annotation>
<xs:documentation xml:lang="en">Define where we want our output to go. The Attribute, IntermediateDirectories, default MODULE, says that intermediate files will be local to the module, versus a unified directory structure.</xs:documentation>
@ -941,17 +941,7 @@
<xs:element default="false" minOccurs="0" maxOccurs="1" name="SkuDataArrayEnable" type="xs:boolean"/>
<xs:element default="0x00" minOccurs="0" maxOccurs="1" name="MaxSku" type="HexByteDataType"/>
<xs:element default="0x00" minOccurs="0" maxOccurs="1" name="SkuId" type="HexByteDataType"/>
<xs:element minOccurs="0" maxOccurs="1" name="DatumSize">
<xs:annotation>
<xs:documentation xml:lang="en">Max Number of Bytes of the data.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:minInclusive value="1"/>
<xs:maxInclusive value="16777215"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element minOccurs="0" maxOccurs="1" name="DatumSize" type="DatumSizeLimitation"/>
<xs:element minOccurs="0" maxOccurs="1" name="VariableName" type="xs:normalizedString"/>
<xs:element minOccurs="0" maxOccurs="1" name="VariableGuid" type="VariableGuidType"/>
<xs:element minOccurs="0" maxOccurs="1" name="DataOffset" type="Hex64BitDataType"/>
@ -1212,26 +1202,10 @@
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" maxOccurs="1" name="TokenSpaceGuid" type="GuidType"/>
<xs:element minOccurs="1" maxOccurs="1" name="DatumType" type="PcdDataTypes">
<xs:annotation>
<xs:documentation xml:lang="en">This specifies the size of the Pcd Datum. It is either 8, 16, 32 or 64 bits for values, 1 bit for BOOLEAN and variable length for elements defined as VOID*</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element default="false" minOccurs="1" maxOccurs="1" name="HiiEnable" type="xs:boolean">
<xs:annotation>
<xs:documentation xml:lang="en">This Bit means that the Variable data is associated with HII</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element default="false" minOccurs="1" maxOccurs="1" name="VpdEnable" type="xs:boolean">
<xs:annotation>
<xs:documentation xml:lang="en">This bit enables the Vital Product Data area within flash for maintaining PCD information</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element default="false" minOccurs="1" maxOccurs="1" name="AlternateNameSpaceEnable" type="xs:boolean">
<xs:annotation>
<xs:documentation>This is only applicable to ItemType DYNAMIC_EX</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="1" maxOccurs="1" name="DatumType" type="PcdDataTypes"/>
<xs:element default="false" minOccurs="1" maxOccurs="1" name="HiiEnable" type="xs:boolean"/>
<xs:element default="false" minOccurs="1" maxOccurs="1" name="VpdEnable" type="xs:boolean"/>
<xs:element default="false" minOccurs="1" maxOccurs="1" name="AlternateNameSpaceEnable" type="xs:boolean"/>
<xs:element default="false" minOccurs="1" maxOccurs="1" name="SkuEnable" type="xs:boolean"/>
<xs:element default="false" minOccurs="1" maxOccurs="1" name="SkuDataArrayEnable" type="xs:boolean"/>
<xs:choice minOccurs="0">
@ -1260,43 +1234,13 @@
<xs:documentation xml:lang="en">This value comes from a production line database, and has nothing to do with the number of SkuData IDs that have been defined.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element default="0x00" minOccurs="1" maxOccurs="1" name="SkuId" type="HexByteDataType">
<xs:annotation>
<xs:documentation xml:lang="en">This is the specific Sku ID for this build.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="1" maxOccurs="1" name="DatumSize">
<xs:annotation>
<xs:documentation xml:lang="en">Max Number of Bytes of the data.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:minInclusive value="1"/>
<xs:maxInclusive value="16777215"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element minOccurs="1" maxOccurs="1" name="VariableGuid" type="VariableGuidType">
<xs:annotation>
<xs:documentation xml:lang="en">This is the Variable's GUID if and only if HII is enabled.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="1" maxOccurs="1" name="VariableName" type="xs:normalizedString">
<xs:annotation>
<xs:documentation xml:lang="en">This is the C Name for the Variable, and is valid if and only HII is enabled.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element default="0x00" minOccurs="1" maxOccurs="1" name="SkuId" type="HexByteDataType"/>
<xs:element minOccurs="1" maxOccurs="1" name="DatumSize" type="DatumSizeLimitation"/>
<xs:element minOccurs="1" maxOccurs="1" name="VariableGuid" type="VariableGuidType"/>
<xs:element minOccurs="1" maxOccurs="1" name="VariableName" type="xs:normalizedString"/>
<xs:element minOccurs="0" maxOccurs="1" name="VariableValueDefault" type="xs:normalizedString"/>
<xs:element minOccurs="1" maxOccurs="1" name="DataOffset" type="Hex64BitDataType">
<xs:annotation>
<xs:documentation xml:lang="en">If HII is enabled, This is the offset into the variable data entry, If Vpd is enabled, then it's the Offset into the VPD area of the image defined by platform manufacturer, if neither HII nor Vpd are enabled, it's the offset into the PCD Data Area. HII and VPD can never be enabled at the same time (as of the date of this document.)</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" maxOccurs="1" name="GuidOffset" type="Hex64BitDataType">
<xs:annotation>
<xs:documentation xml:lang="en">FIELD IS NOT USED! REMOVE in FINAL!</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="1" maxOccurs="1" name="DataOffset" type="Hex64BitDataType"/>
<xs:element minOccurs="0" maxOccurs="1" name="GuidOffset" type="Hex64BitDataType"/>
<xs:element minOccurs="1" maxOccurs="1" name="DefaultValue" type="xs:normalizedString"/>
</xs:sequence>
<xs:attributeGroup ref="PcdAttributes"/>
@ -1316,6 +1260,115 @@
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="DynamicPcdBuildDefinitions">
<xs:annotation>
<xs:documentation xml:lang="en">Child of Framework Platform Description (FPD)</xs:documentation>
<xs:documentation xml:lang="en">FPD uses this PCD information for Dynamic PCDs Only</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="PcdBuildData">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>
<xs:element minOccurs="1" maxOccurs="1" name="Token" type="HexDoubleWordDataType"/>
<xs:element minOccurs="0" maxOccurs="1" name="TokenSpaceGuid" type="GuidType"/>
<xs:element minOccurs="1" maxOccurs="1" name="DatumType" type="PcdDataTypes"/>
<xs:group minOccurs="0" maxOccurs="1" ref="SkuGroup"/>
<xs:choice minOccurs="0" maxOccurs="1">
<xs:group minOccurs="0" maxOccurs="1" ref="HiiGroup"/>
<xs:group minOccurs="0" maxOccurs="1" ref="VpdGroup"/>
</xs:choice>
<xs:element minOccurs="1" maxOccurs="1" name="DatumSize" type="DatumSizeLimitation"/>
<xs:element minOccurs="1" maxOccurs="1" name="Value" type="xs:normalizedString"/>
</xs:sequence>
<xs:attributeGroup ref="PcdAttributes"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="PcdBuildDefinition">
<xs:annotation>
<xs:documentation xml:lang="en">Child of FPD ModuleSA element for FIXED_AT_BUILD, PATCHABLE_IN_MODULE, and FEATURE_FLAG PCDS Only!</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence minOccurs="1">
<xs:element maxOccurs="unbounded" name="PcdData">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>
<xs:element minOccurs="1" maxOccurs="1" name="Token" type="HexDoubleWordDataType"/>
<xs:element minOccurs="0" maxOccurs="1" name="TokenSpaceGuid" type="GuidType"/>
<xs:element minOccurs="1" maxOccurs="1" name="DatumType" type="PcdDataTypes"/>
<xs:group minOccurs="0" maxOccurs="1" ref="SkuGroup"/>
<xs:choice minOccurs="0" maxOccurs="1">
<xs:group minOccurs="0" maxOccurs="1" ref="HiiGroup"/>
<xs:group minOccurs="0" maxOccurs="1" ref="VpdGroup"/>
</xs:choice>
<xs:element minOccurs="0" maxOccurs="1" name="DatumSize" type="DatumSizeLimitation"/>
<xs:element minOccurs="0" maxOccurs="1" name="Value" type="xs:normalizedString"/>
</xs:sequence>
<xs:attributeGroup ref="PcdAttributes"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:group name="HiiGroup">
<xs:annotation>
<xs:documentation xml:lang="en">If HiiGroup is specified, then HiiEnable is default true</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="VariableName" type="xs:normalizedString"/>
<xs:element minOccurs="0" maxOccurs="1" name="VariableGuid" type="VariableGuidType"/>
<xs:element minOccurs="0" maxOccurs="1" name="VariableOffset" type="Hex64BitDataType"/>
</xs:sequence>
</xs:group>
<xs:group name="VpdGroup">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="VpdOffset" type="Hex64BitDataType"/>
</xs:sequence>
</xs:group>
<xs:group name="SkuGroup">
<xs:sequence>
<xs:element default="0x00" minOccurs="0" maxOccurs="1" name="SkuSet" type="SkuListType"/>
<xs:element default="0x00" minOccurs="0" maxOccurs="1" name="SkuList" type="SkuListType"/>
<xs:element default="false" minOccurs="0" maxOccurs="1" name="SkuDataArrayEnable" type="xs:boolean"/>
<xs:element minOccurs="0" maxOccurs="unbounded" name="SkuData">
<xs:complexType>
<xs:sequence minOccurs="1">
<xs:element name="Id" type="xs:int"/>
<xs:element name="Value" type="xs:normalizedString"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:group>
<xs:element name="PcdCoded">
<xs:annotation>
<xs:documentation xml:lang="en">Child of Module Surface Area Description (MSA)</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence minOccurs="1">
<xs:element maxOccurs="unbounded" name="PcdEntry">
<xs:annotation>
<xs:documentation xml:lang="en">This is the valid content of the PCD table of a Module. The contents may not be wired at build time, and these only refer to Platform Build values, not modules.</xs:documentation>
<xs:documentation xml:lang="en">This element is valid for PcdInfo.xml and FPD files.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" ref="C_Name"/>
<xs:element minOccurs="0" maxOccurs="1" name="DefaultValue" type="DefaultValue"/>
<xs:element minOccurs="0" maxOccurs="1" name="HelpText" type="Paragraph"/>
</xs:sequence>
<!-- MSA file declares a single usage, and must match one of the entries in what the SPD file declares as the set of possible Item Types. -->
<xs:attribute name="PcdItemType" type="PcdItemTypes" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="PcdDeclarations">
<xs:annotation>
<xs:documentation xml:lang="en">Child of Package Surface Area Description (SPD)</xs:documentation>
@ -1673,6 +1726,16 @@
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="UserExtensions">
<xs:complexType>
<xs:complexContent mixed="true">
<xs:extension base="xs:anyType">
<xs:attribute name="UserID" type="xs:NCName" use="required"/>
<xs:attribute name="Identifier" type="xs:integer" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="Variables">
<xs:annotation>
<xs:documentation xml:lang="en">A list of EFI Variables described by GUID string pair.</xs:documentation>

View File

@ -190,6 +190,12 @@
<xs:pattern value="[1-9][0-9][0-9][0-9]-[0-1][0-9]-[0-3][0-9] [0-2][0-9]:[0-5][0-9]"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="DatumSizeLimitation">
<xs:restriction base="xs:int">
<xs:minInclusive value="1"/>
<xs:maxInclusive value="16777215"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="DefaultValue">
<xs:annotation>
<xs:documentation xml:lang="en"> The DefaultValue is a union of a string and an integer. </xs:documentation>
@ -863,6 +869,9 @@
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="SkuListType">
<xs:list itemType="HexByteDataType"/>
</xs:simpleType>
<xs:simpleType name="SupportedArchitectures">
<xs:annotation>
<xs:documentation xml:lang="en"> These are the currently Supportted Architectures type codes </xs:documentation>

View File

@ -232,21 +232,41 @@
</xs:annotation>
<xs:complexType>
<xs:sequence minOccurs="1">
<xs:element minOccurs="0" maxOccurs="1" ref="SourceFiles"/> <!-- DO NOT USE! REMOVE in FINAL -->
<xs:element minOccurs="0" maxOccurs="1" ref="Includes"/> <!-- DO NOT USE! REMOVE in FINAL -->
<!-- DO NOT USE! REMOVE SourceFiles in FINAL -->
<xs:element minOccurs="0" maxOccurs="1" ref="SourceFiles"/>
<!-- DO NOT USE! REMOVE Includes in FINAL -->
<xs:element minOccurs="0" maxOccurs="1" ref="Includes"/>
<!-- Libraries stays in FINAL -->
<xs:element minOccurs="0" maxOccurs="1" ref="Libraries"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Protocols"/> <!-- DO NOT USE! REMOVE in FINAL -->
<xs:element minOccurs="0" maxOccurs="1" ref="Events"/> <!-- DO NOT USE! REMOVE in FINAL -->
<xs:element minOccurs="0" maxOccurs="1" ref="Hobs"/> <!-- DO NOT USE! REMOVE in FINAL -->
<xs:element minOccurs="0" maxOccurs="1" ref="PPIs"/> <!-- DO NOT USE! REMOVE in FINAL -->
<xs:element minOccurs="0" maxOccurs="1" ref="Variables"/> <!-- DO NOT USE! REMOVE in FINAL -->
<xs:element minOccurs="0" maxOccurs="1" ref="BootModes"/> <!-- DO NOT USE! REMOVE in FINAL -->
<xs:element minOccurs="0" maxOccurs="1" ref="SystemTables"/> <!-- DO NOT USE! REMOVE in FINAL -->
<xs:element minOccurs="0" maxOccurs="1" ref="DataHubs"/> <!-- DO NOT USE! REMOVE in FINAL -->
<xs:element minOccurs="0" maxOccurs="1" ref="Formsets"/> <!-- DO NOT USE! REMOVE in FINAL -->
<xs:element minOccurs="0" maxOccurs="1" ref="Guids"/> <!-- DO NOT USE! REMOVE in FINAL -->
<!-- DO NOT USE! REMOVE Protocols in FINAL -->
<xs:element minOccurs="0" maxOccurs="1" ref="Protocols"/>
<!-- DO NOT USE! REMOVE Events in FINAL -->
<xs:element minOccurs="0" maxOccurs="1" ref="Events"/>
<!-- DO NOT USE! REMOVE Hobs in FINAL -->
<xs:element minOccurs="0" maxOccurs="1" ref="Hobs"/>
<!-- DO NOT USE! REMOVE PPIs in FINAL -->
<xs:element minOccurs="0" maxOccurs="1" ref="PPIs"/>
<!-- DO NOT USE! REMOVE Variables in FINAL -->
<xs:element minOccurs="0" maxOccurs="1" ref="Variables"/>
<!-- DO NOT USE! REMOVE BootModes in FINAL -->
<xs:element minOccurs="0" maxOccurs="1" ref="BootModes"/>
<!-- DO NOT USE! REMOVE SystemTables in FINAL -->
<xs:element minOccurs="0" maxOccurs="1" ref="SystemTables"/>
<!-- DO NOT USE! REMOVE DataHubs in FINAL -->
<xs:element minOccurs="0" maxOccurs="1" ref="DataHubs"/>
<!-- DO NOT USE! REMOVE Formsets in FINAL -->
<xs:element minOccurs="0" maxOccurs="1" ref="Formsets"/>
<!-- DO NOT USE! REMOVE Guids in FINAL -->
<xs:element minOccurs="0" maxOccurs="1" ref="Guids"/>
<!-- EXTERNS stays in FINAL -->
<xs:element minOccurs="0" maxOccurs="1" ref="Externs"/>
<xs:element minOccurs="0" maxOccurs="1" ref="PcdBuildDeclarations"/>
<xs:choice>
<!-- DO NOT USE! REMOVE PcdBuildDeclarations in FINAL -->
<xs:element minOccurs="0" maxOccurs="1" ref="PcdBuildDeclarations"/>
<!-- PcdBuildDefinition stays in FINAL -->
<xs:element minOccurs="0" maxOccurs="1" ref="PcdBuildDefinition"/>
</xs:choice>
<!-- BuildOptions stays in FINAL -->
<xs:element minOccurs="0" maxOccurs="1" ref="BuildOptions"/>
</xs:sequence>
<xs:attributeGroup ref="MsaAttributes"/>

View File

@ -44,8 +44,12 @@
<xs:element minOccurs="0" maxOccurs="1" ref="FrameworkModules"/>
<!-- DO NOT USE! removing PcdBuildDeclarations here, use PcdBuildDeclaratiion in ModuleSA instead. -->
<xs:element minOccurs="0" maxOccurs="1" ref="PcdBuildDeclarations"/>
<xs:element minOccurs="0" maxOccurs="1" ref="PcdDynamicBuildDeclarations"/>
<xs:choice minOccurs="0">
<xs:element minOccurs="0" maxOccurs="1" ref="PcdDynamicBuildDeclarations"/>
<xs:element minOccurs="0" maxOccurs="1" ref="DynamicPcdBuildDefinitions"/>
</xs:choice>
<xs:element minOccurs="0" maxOccurs="1" ref="BuildOptions"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="UserExtensions"/>
</xs:sequence>
</xs:complexType>
</xs:element>
@ -136,7 +140,10 @@
<xs:element minOccurs="1" maxOccurs="1" ref="MsaHeader"/>
<xs:element minOccurs="0" maxOccurs="1" ref="LibraryClassDefinitions"/>
<xs:element minOccurs="1" maxOccurs="1" ref="SourceFiles"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Includes"/>
<xs:choice minOccurs="0">
<xs:element minOccurs="0" maxOccurs="1" ref="Includes"/>
<xs:element minOccurs="0" maxOccurs="1" ref="PackageDependencies"/>
</xs:choice>
<xs:element minOccurs="0" maxOccurs="1" ref="Protocols"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Events"/>
<xs:element minOccurs="0" maxOccurs="1" ref="Hobs"/>
@ -151,9 +158,10 @@
<xs:choice minOccurs="0">
<!-- DO NOT USE! removing PCDs, use MsaPcdDeclarations instead -->
<xs:element minOccurs="0" maxOccurs="1" ref="PCDs"/>
<xs:element minOccurs="0" maxOccurs="1" ref="MsaPcdDeclarations"/>
<xs:element minOccurs="0" maxOccurs="1" ref="PcdCoded"/>
</xs:choice>
<xs:element minOccurs="0" maxOccurs="1" ref="BuildOptions"/>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="UserExtensions"/>
</xs:sequence>
</xs:complexType>
</xs:element>
@ -177,6 +185,7 @@
<xs:element minOccurs="0" maxOccurs="1" ref="PcdDefinitions"/>
<xs:element minOccurs="0" maxOccurs="1" ref="PcdDeclarations"/>
</xs:choice>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="UserExtensions"/>
</xs:sequence>
</xs:complexType>
</xs:element>