]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Tools/XMLSchema/FrameworkPlatformDataElements.xsd
Sync the type of <VariableName> with the latest email send by Larry.
[mirror_edk2.git] / Tools / XMLSchema / FrameworkPlatformDataElements.xsd
index 5cbaaca699fae05145093ee6f3966409652f0842..a32b28c2f361f288bd81c2d3624848ad039e5b32 100644 (file)
         <xs:documentation xml:lang="en"> This schema defines EFI and Framework Platform Data Elements that are specific to platform creation.</xs:documentation>\r
     </xs:annotation>\r
     <xs:include schemaLocation="NamingConvention.xsd"/>\r
+    <xs:include schemaLocation="FrameworkDataAttributes.xsd"/>\r
     <xs:include schemaLocation="FrameworkDataTypes.xsd"/>\r
     <xs:include schemaLocation="FrameworkDataElements.xsd"/>\r
+    <xs:include schemaLocation="FrameworkPlatformDataTypes.xsd"/>\r
     <xs:element name="Capsule">\r
         <xs:complexType>\r
             <xs:sequence>\r
@@ -73,8 +75,8 @@
                     <xs:element name="FlashDefinition" type="FlashData"/>\r
                     <xs:element name="FlashDefinitionFile" type="FileNameConvention"/>\r
                 </xs:choice>\r
-                <xs:element minOccurs="0" maxOccurs="unbounded" ref="FvImages"/>\r
-                <xs:element minOccurs="0" maxOccurs="unbounded" ref="Capsules"/>\r
+                <xs:element minOccurs="0" maxOccurs="1" ref="FvImages"/>\r
+                <xs:element minOccurs="0" maxOccurs="1" ref="Capsules"/>\r
             </xs:sequence>\r
             <xs:attribute name="MicrocodeFile" type="FileNameConvention" use="optional"/>\r
         </xs:complexType>\r
             <xs:documentation xml:lang="en">Define contents of the regions in flash. The files and data are placed in the output image in the order they are encountered in this definition. Multiple FlashDeviceImage sections may be defined. Which one the tool should use is specified by Name on the command line.</xs:documentation>\r
         </xs:annotation>\r
         <xs:complexType>\r
-            <xs:sequence minOccurs="1" maxOccurs="unbounded">\r
-                <xs:element minOccurs="1" maxOccurs="1" name="Name" type="NameConvention"/>\r
-                <xs:element minOccurs="0" maxOccurs="unbounded" name="File" type="FvImageFileType"/>\r
-            </xs:sequence>\r
+            <xs:all>\r
+                <xs:element minOccurs="0" maxOccurs="1" name="RawData">\r
+                    <xs:complexType>\r
+                        <xs:sequence minOccurs="0" maxOccurs="1">\r
+                            <xs:element name="Data" type="xs:string"/>\r
+                        </xs:sequence>\r
+                        <xs:attributeGroup ref="RawDataAttributes"/>\r
+                    </xs:complexType>\r
+                </xs:element>\r
+                <xs:element minOccurs="0" maxOccurs="1" name="File">\r
+                    <xs:complexType>\r
+                        <xs:attributeGroup ref="FlashDeviceImageFileAttributes"/>\r
+                    </xs:complexType>\r
+                </xs:element>\r
+            </xs:all>\r
+            <xs:attributeGroup ref="FlashDeviceImageAttributes"/>\r
         </xs:complexType>\r
     </xs:element>\r
     <xs:element name="FlashDeviceInfo">\r
         </xs:annotation>\r
         <xs:complexType>\r
             <xs:sequence>\r
-                <xs:element minOccurs="1" maxOccurs="1" name="Name" type="UCNameType"/>\r
-                <xs:element default="512KB" minOccurs="1" maxOccurs="1" name="FlashSize" type="FlashSize"/>\r
-                <xs:element minOccurs="1" maxOccurs="1" name="BaseAddress" type="HexAddressType"/>\r
-                <xs:element minOccurs="1" maxOccurs="1" name="OutputDirectory" type="DirectoryNamingConvention"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" name="MicrocodeFile" type="FileNameConvention"/>\r
-                <xs:element minOccurs="1" maxOccurs="255" name="Block" type="BlockNameType"/>\r
-                <xs:element minOccurs="1" maxOccurs="unbounded" name="Region" type="RegionDataType"/>\r
+                <xs:element name="Blocks">\r
+                    <xs:complexType>\r
+                        <xs:sequence>\r
+                            <xs:element minOccurs="1" maxOccurs="255" name="Block">\r
+                                <xs:complexType>\r
+                                    <xs:simpleContent>\r
+                                        <xs:extension base="BlockNameType">\r
+                                            <xs:attributeGroup ref="BlockAttributes"/>\r
+                                        </xs:extension>\r
+                                    </xs:simpleContent>\r
+                                </xs:complexType>\r
+                            </xs:element>\r
+                        </xs:sequence>\r
+                    </xs:complexType>\r
+                </xs:element>\r
+                <xs:element name="Regions">\r
+                    <xs:complexType>\r
+                        <xs:sequence>\r
+                            <xs:element minOccurs="1" maxOccurs="unbounded" name="Region">\r
+                                <xs:complexType>\r
+                                    <xs:all>\r
+                                        <xs:element name="SubRegions">\r
+                                            <xs:complexType>\r
+                                                <xs:sequence minOccurs="0" maxOccurs="unbounded">\r
+                                                    <xs:element name="SubRegion">\r
+                                                        <xs:complexType>\r
+                                                            <xs:simpleContent>\r
+                                                                <xs:extension base="xs:string">\r
+                                                                    <xs:attributeGroup ref="SubRegionAttributes"/>\r
+                                                                </xs:extension>\r
+                                                            </xs:simpleContent>\r
+                                                        </xs:complexType>\r
+                                                    </xs:element>\r
+                                                </xs:sequence>\r
+                                            </xs:complexType>\r
+                                        </xs:element>\r
+                                    </xs:all>\r
+                                    <xs:attributeGroup ref="RegionAttributes"/>\r
+                                </xs:complexType>\r
+                            </xs:element>\r
+                        </xs:sequence>\r
+                    </xs:complexType>\r
+                </xs:element>\r
             </xs:sequence>\r
+            <xs:attributeGroup ref="FlashDeviceInfoAttributes"/>\r
         </xs:complexType>\r
     </xs:element>\r
     <xs:element name="FlashDeviceOverrideImage">\r
                 <xs:element minOccurs="1" maxOccurs="unbounded" ref="FvImageNames"/>\r
                 <xs:element minOccurs="0" maxOccurs="1" ref="FvImageOptions"/>\r
             </xs:sequence>\r
-            <xs:attribute name="Type" type="xs:string" use="optional"/>\r
+            <xs:attribute name="Type" type="FvImageTypes" use="optional"/>\r
         </xs:complexType>\r
     </xs:element>\r
     <xs:element name="FvImageName">\r
             <xs:attribute name="Name" type="FvRegionTypes" use="required"/>\r
         </xs:complexType>\r
     </xs:element>\r
-    <xs:element name="FvImageNames" type="xs:string"/>\r
+    <xs:element name="FvImageNames" type="xs:NCName"/>\r
     <xs:element name="FvImageOptions">\r
         <xs:annotation>\r
             <xs:documentation xml:lang="en">This element is used specify different name value pairs.</xs:documentation>\r
         </xs:annotation>\r
         <xs:complexType>\r
             <xs:sequence minOccurs="1">\r
+                <!-- DO NOT USE! REMOVE SourceFiles in FINAL -->\r
                 <xs:element minOccurs="0" maxOccurs="1" ref="SourceFiles"/>\r
+                <!-- DO NOT USE! REMOVE Includes in FINAL -->\r
                 <xs:element minOccurs="0" maxOccurs="1" ref="Includes"/>\r
+                <!-- Libraries stays in FINAL -->\r
                 <xs:element minOccurs="0" maxOccurs="1" ref="Libraries"/>\r
+                <!-- DO NOT USE! REMOVE Protocols in FINAL -->\r
                 <xs:element minOccurs="0" maxOccurs="1" ref="Protocols"/>\r
+                <!-- DO NOT USE! REMOVE Events in FINAL -->\r
                 <xs:element minOccurs="0" maxOccurs="1" ref="Events"/>\r
+                <!-- DO NOT USE! REMOVE Hobs in FINAL -->\r
                 <xs:element minOccurs="0" maxOccurs="1" ref="Hobs"/>\r
+                <!-- DO NOT USE! REMOVE PPIs in FINAL -->\r
                 <xs:element minOccurs="0" maxOccurs="1" ref="PPIs"/>\r
+                <!-- DO NOT USE! REMOVE Variables in FINAL -->\r
                 <xs:element minOccurs="0" maxOccurs="1" ref="Variables"/>\r
+                <!-- DO NOT USE! REMOVE BootModes in FINAL -->\r
                 <xs:element minOccurs="0" maxOccurs="1" ref="BootModes"/>\r
+                <!-- DO NOT USE! REMOVE SystemTables in FINAL -->\r
                 <xs:element minOccurs="0" maxOccurs="1" ref="SystemTables"/>\r
+                <!-- DO NOT USE! REMOVE DataHubs in FINAL -->\r
                 <xs:element minOccurs="0" maxOccurs="1" ref="DataHubs"/>\r
+                <!-- DO NOT USE! REMOVE Formsets in FINAL -->\r
                 <xs:element minOccurs="0" maxOccurs="1" ref="Formsets"/>\r
+                <!-- DO NOT USE! REMOVE Guids in FINAL -->\r
                 <xs:element minOccurs="0" maxOccurs="1" ref="Guids"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" ref="Externs"/>\r
+                <xs:choice minOccurs="0">\r
+                    <!-- DO NOT USE! REMOVE Externs stays in FINAL -->\r
+                    <xs:element minOccurs="0" maxOccurs="1" ref="Externs"/>\r
+                    <xs:element minOccurs="0" maxOccurs="1" name="Extern">\r
+                        <xs:annotation>\r
+                            <xs:documentation xml:lang="en">Only specification is allow here. We need to let this be an addtion OR, if the WORD portion exists, this entry takes precedence.</xs:documentation>\r
+                        </xs:annotation>\r
+                        <xs:complexType>\r
+                            <xs:sequence>\r
+                                <xs:element minOccurs="1" maxOccurs="unbounded" ref="Specification"/>\r
+                            </xs:sequence>\r
+                        </xs:complexType>\r
+                    </xs:element>\r
+                </xs:choice>\r
+                <xs:choice>\r
+                    <!-- DO NOT USE! REMOVE PcdBuildDeclarations in FINAL -->\r
+                    <xs:element minOccurs="0" maxOccurs="1" ref="PcdBuildDeclarations"/>\r
+                    <!-- PcdBuildDefinition stays in FINAL -->\r
+                    <xs:element minOccurs="0" maxOccurs="1" ref="PcdBuildDefinition"/>\r
+                </xs:choice>\r
+                <!-- BuildOptions stays in FINAL -->\r
+                <xs:element minOccurs="0" maxOccurs="1" ref="BuildOptions"/>\r
             </xs:sequence>\r
             <xs:attributeGroup ref="MsaAttributes"/>\r
         </xs:complexType>\r
         </xs:complexType>\r
     </xs:element>\r
     <xs:element name="Overrides">\r
+        <xs:annotation>\r
+            <xs:documentation xml:lang="en">DO NOT USE! - Removing this from Schema</xs:documentation>\r
+        </xs:annotation>\r
         <xs:complexType>\r
             <xs:sequence>\r
                 <xs:element minOccurs="0" maxOccurs="1" ref="FlashDeviceOverrideInfo"/>\r
         </xs:complexType>\r
     </xs:element>\r
     <xs:element name="PlatformDescriptions">\r
+        <xs:annotation>\r
+            <xs:documentation xml:lang="en">DO NOT USE! - Use PlatformList instead</xs:documentation>\r
+        </xs:annotation>\r
         <xs:complexType>\r
             <xs:sequence maxOccurs="unbounded">\r
                 <xs:element ref="Platform"/>\r
             </xs:sequence>\r
         </xs:complexType>\r
     </xs:element>\r
-    <xs:element name="TianoImage">\r
+    <xs:element name="PlatformList">\r
         <xs:annotation>\r
-            <xs:documentation xml:lang="en">This defines the required sections of a valid EFI/Tiano binary image</xs:documentation>\r
+            <xs:documentation xml:lang="en">This is used in the Framework Database file</xs:documentation>\r
         </xs:annotation>\r
         <xs:complexType>\r
-            <xs:sequence>\r
-                <xs:element minOccurs="1" maxOccurs="1" name="SEC" type="Components"/>\r
-                <xs:element minOccurs="1" maxOccurs="1" name="PEI_CORE" type="Components"/>\r
-                <xs:element minOccurs="1" maxOccurs="1" name="PEIM" type="Components"/>\r
-                <xs:element minOccurs="1" maxOccurs="1" name="DXE_CORE" type="Components"/>\r
-                <xs:element minOccurs="1" maxOccurs="1" name="DXE_DRIVERS" type="Components"/>\r
-                <xs:element minOccurs="0" maxOccurs="1" name="OTHER_COMPONENTS" type="Components"/>\r
+            <xs:sequence maxOccurs="unbounded">\r
+                <xs:element ref="Platform"/>\r
             </xs:sequence>\r
         </xs:complexType>\r
     </xs:element>\r
-    <xs:simpleType name="EfiFvAttributeType">\r
+    <xs:element name="FrameworkModules">\r
         <xs:annotation>\r
-            <xs:documentation xml:lang="en">The list of EFI_FLASH_AREA Attributes</xs:documentation>\r
+            <xs:documentation xml:lang="en">This is used in a Framework Platform Description (FPD) file</xs:documentation>\r
         </xs:annotation>\r
-        <xs:restriction base="UCNameType">\r
-            <xs:enumeration value="EFI_FLASH_AREA_FV"/>\r
-            <xs:enumeration value="EFI_FLASH_AREA_MEMMAPPED_FV"/>\r
-            <xs:enumeration value="EFI_FLASH_AREA_SUBFV"/>\r
-        </xs:restriction>\r
-    </xs:simpleType>\r
-    <xs:simpleType name="EfiFvAreaType">\r
-        <xs:annotation>\r
-            <xs:documentation xml:lang="en">The list of valid EFI Area Types</xs:documentation>\r
-        </xs:annotation>\r
-        <xs:restriction base="UCNameType">\r
-            <xs:enumeration value="EFI_FLASH_AREA_EFI_VARIABLES"/>\r
-            <xs:enumeration value="EFI_FLASH_AREA_UNUSED"/>\r
-            <xs:enumeration value="EFI_FLASH_AREA_MAIN_BIOS"/>\r
-            <xs:enumeration value="EFI_FLASH_AREA_GUID_DEFINED"/>\r
-            <xs:enumeration value="EFI_FLASH_AREA_FTW_STATE"/>\r
-            <xs:enumeration value="EFI_FLASH_AREA_FTW_BACKUP"/>\r
-            <xs:enumeration value="EFI_FLASH_AREA_RECOVERY_BIOS"/>\r
-        </xs:restriction>\r
-    </xs:simpleType>\r
-    <xs:simpleType name="EfiNameGuidType">\r
+        <xs:complexType>\r
+            <xs:sequence>\r
+                <xs:choice>\r
+                    <xs:sequence>\r
+                        <xs:element minOccurs="0" maxOccurs="1" name="SEC" type="Components"/>\r
+                        <xs:element minOccurs="0" maxOccurs="1" name="PEI_CORE" type="Components"/>\r
+                        <xs:element minOccurs="0" maxOccurs="1" name="PEIM" type="Components"/>\r
+                        <xs:element minOccurs="0" maxOccurs="1" name="DXE_CORE" type="Components"/>\r
+                        <xs:element minOccurs="0" maxOccurs="1" name="DXE_DRIVERS" type="Components"/>\r
+                        <xs:element minOccurs="0" maxOccurs="1" name="OTHER_COMPONENTS" type="Components"/>\r
+                    </xs:sequence>\r
+                    <xs:element minOccurs="1" maxOccurs="unbounded" ref="ModuleSA"/>\r
+                </xs:choice>\r
+            </xs:sequence>\r
+        </xs:complexType>\r
+    </xs:element>\r
+    <xs:element name="TianoImage">\r
         <xs:annotation>\r
-            <xs:documentation xml:lang="en">Right now, only EFI_FLASH_MAP_HOB_GUID is defined</xs:documentation>\r
+            <xs:documentation xml:lang="en">DO NOT USE - Use FrameworkModules Instead.</xs:documentation>\r
         </xs:annotation>\r
-        <xs:restriction base="UCNameType">\r
-            <xs:enumeration value="EFI_FLASH_MAP_HOB_GUID"/>\r
-        </xs:restriction>\r
-    </xs:simpleType>\r
-    <xs:simpleType name="FlashSize">\r
-        <xs:restriction base="xs:string">\r
-            <xs:enumeration value="256KB"/>\r
-            <xs:enumeration value="512KB"/>\r
-            <xs:enumeration value="1MB"/>\r
-            <xs:enumeration value="2MB"/>\r
-            <xs:enumeration value="4MB"/>\r
-        </xs:restriction>\r
-    </xs:simpleType>\r
-    <xs:simpleType name="FvSubRegionTypes">\r
-        <xs:restriction base="UCNameType">\r
-            <xs:enumeration value="NV_VARIABLE_STORE"/>\r
-            <xs:enumeration value="MICROCODE"/>\r
-            <xs:enumeration value="NV_FTW_WORKING"/>\r
-        </xs:restriction>\r
-    </xs:simpleType>\r
+        <xs:complexType>\r
+            <xs:sequence>\r
+                <xs:element minOccurs="0" maxOccurs="1" name="SEC" type="Components"/>\r
+                <xs:element minOccurs="0" maxOccurs="1" name="PEI_CORE" type="Components"/>\r
+                <xs:element minOccurs="0" maxOccurs="1" name="PEIM" type="Components"/>\r
+                <xs:element minOccurs="0" maxOccurs="1" name="DXE_CORE" type="Components"/>\r
+                <xs:element minOccurs="0" maxOccurs="1" name="DXE_DRIVERS" type="Components"/>\r
+                <xs:element minOccurs="0" maxOccurs="1" name="OTHER_COMPONENTS" type="Components"/>\r
+            </xs:sequence>\r
+        </xs:complexType>\r
+    </xs:element>\r
     <xs:complexType name="Components">\r
         <xs:sequence minOccurs="1" maxOccurs="unbounded">\r
             <xs:element ref="ModuleSA"/>\r