]> git.proxmox.com Git - mirror_edk2.git/blame - Tools/XMLSchema/FrameworkPlatformDataElements.xsd
map FeaturePcdGet(TokenName) to _PCD_GET_MODE_BOOL_##TokenName to follow the build...
[mirror_edk2.git] / Tools / XMLSchema / FrameworkPlatformDataElements.xsd
CommitLineData
92fb4401 1<?xml version="1.0" encoding="UTF-8"?>\r
2<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns="http://www.TianoCore.org/2006/Edk2.0" targetNamespace="http://www.TianoCore.org/2006/Edk2.0">\r
3 <!--\r
4 Filename: FrameworkPlatformDataElements.xsd\r
5 \r
6 Copyright (c) 2006, Intel Corp.\r
7 All rights reserved. This program and the accompanying materials\r
8 are licensed and made available under the terms and conditions of the BSD License\r
9 which may be found at http://opensource.org/licenses/bsd-license.php\r
10 \r
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
13 \r
14 -->\r
15 <xs:annotation>\r
16 <xs:documentation xml:lang="en"> This schema defines EFI and Framework Platform Data Elements that are specific to platform creation.</xs:documentation>\r
17 </xs:annotation>\r
18 <xs:include schemaLocation="NamingConvention.xsd"/>\r
19 <xs:include schemaLocation="FrameworkDataAttributes.xsd"/>\r
20 <xs:include schemaLocation="FrameworkDataTypes.xsd"/>\r
21 <xs:include schemaLocation="FrameworkDataElements.xsd"/>\r
22 <xs:include schemaLocation="FrameworkPlatformDataTypes.xsd"/>\r
23 <xs:element name="DataArray">\r
24 <xs:complexType>\r
25 <xs:simpleContent>\r
26 <xs:extension base="HexByteArrayType">\r
27 <xs:attribute name="Name" type="xs:normalizedString" use="required"/>\r
28 </xs:extension>\r
29 </xs:simpleContent>\r
30 </xs:complexType>\r
31 </xs:element>\r
32 <xs:element name="DataId">\r
33 <xs:complexType>\r
34 <xs:simpleContent>\r
35 <xs:extension base="xs:NCName">\r
36 <xs:attribute name="Seq" type="xs:nonNegativeInteger" use="required"/>\r
37 <xs:attribute name="SubRegion" type="UCNameType" use="required"/>\r
38 <xs:attribute name="DataSource" type="xs:normalizedString" use="required"/>\r
39 <xs:attribute name="SourceType" type="xs:NCName" use="required"/>\r
40 <xs:attribute name="DataSize" type="HexAddressType" use="optional"/>\r
41 <xs:attribute name="Alignment" type="xs:positiveInteger" use="optional"/>\r
42 </xs:extension>\r
43 </xs:simpleContent>\r
44 </xs:complexType>\r
45 </xs:element>\r
46 <xs:element name="DataRegions">\r
47 <xs:complexType>\r
48 <xs:sequence>\r
49 <xs:element minOccurs="1" maxOccurs="unbounded" name="FvDataRegion">\r
50 <xs:complexType>\r
51 <xs:sequence>\r
52 <xs:element minOccurs="1" maxOccurs="unbounded" ref="DataId"/>\r
53 <xs:element minOccurs="0" maxOccurs="unbounded" ref="DataArray"/>\r
54 </xs:sequence>\r
55 <xs:attribute name="Name" type="UCNameType" use="required"/>\r
56 </xs:complexType>\r
57 </xs:element>\r
58 </xs:sequence>\r
59 </xs:complexType>\r
60 </xs:element>\r
61 <xs:element name="Flash">\r
62 <xs:complexType>\r
63 <xs:sequence>\r
64 <xs:element minOccurs="0" maxOccurs="1" ref="FlashDefinitionFile"/>\r
65 <xs:element minOccurs="0" maxOccurs="1" ref="FvImages"/>\r
66 </xs:sequence>\r
67 <xs:attribute name="MicrocodeFile" type="PathAndFilename" use="optional"/>\r
68 </xs:complexType>\r
69 </xs:element>\r
70 <!-- Valid Flash Definition Files that can be used for a platform The UiName and Perferred tags are optional, for use with Wizards.-->\r
71 <xs:element name="FlashDefinitionFile">\r
72 <xs:complexType>\r
73 <xs:simpleContent>\r
74 <xs:extension base="PathAndFilename">\r
75 <!-- Id will be required eventually. -->\r
76 <xs:attribute name="Id" type="KeywordType" use="optional"/>\r
77 <xs:attribute name="UiName" type="UiNameType" use="optional"/>\r
78 <xs:attribute name="Preferred" type="xs:boolean" use="optional" default="false"/>\r
79 </xs:extension>\r
80 </xs:simpleContent>\r
81 </xs:complexType>\r
82 </xs:element>\r
83 <!-- For Future Use! -->\r
84 <!-- This describes the physical layout of the hardware device, used by tools to verify different regions fit within a given number of blocks. -->\r
85 <!-- An EFI Region MUST start on a block boundary. A region may span multiple blocks. -->\r
86 <xs:element name="FlashDevice">\r
87 <xs:complexType>\r
88 <xs:sequence>\r
89 <xs:element name="PartNumber" type="xs:NCName"/>\r
90 <xs:choice>\r
91 <xs:sequence minOccurs="0">\r
92 <!-- Use this sequence for a part with fixed block sizes -->\r
93 <xs:element minOccurs="1" maxOccurs="1" name="NumBlocks" type="xs:positiveInteger"/>\r
94 <xs:element minOccurs="1" maxOccurs="1" name="BlockSize" type="HexAddressType"/>\r
95 </xs:sequence>\r
96 <xs:sequence minOccurs="0">\r
97 <!-- Use this sequence for a part with variable block sizes -->\r
98 <xs:element maxOccurs="unbounded" name="VariableBlockSize">\r
99 <xs:complexType>\r
100 <xs:simpleContent>\r
101 <xs:extension base="HexAddressType">\r
102 <xs:attribute name="BlockNum" type="xs:nonNegativeInteger" use="required"/>\r
103 </xs:extension>\r
104 </xs:simpleContent>\r
105 </xs:complexType>\r
106 </xs:element>\r
107 </xs:sequence>\r
108 </xs:choice>\r
109 </xs:sequence>\r
110 </xs:complexType>\r
111 </xs:element>\r
112 <xs:element name="FlashDeviceDefinitions">\r
113 <xs:complexType>\r
114 <xs:annotation>\r
115 <xs:documentation xml:lang="en">We allow specifying the FlashMap filename</xs:documentation>\r
116 </xs:annotation>\r
117 <xs:sequence>\r
118 <xs:element minOccurs="1" maxOccurs="unbounded" ref="FlashDefinitionFile"/>\r
119 <xs:element minOccurs="1" maxOccurs="1" ref="FvImages"/>\r
120 <!-- DataRegions is for Future Use! -->\r
121 <xs:element minOccurs="0" maxOccurs="1" ref="DataRegions"/>\r
122 <xs:element minOccurs="1" maxOccurs="unbounded" ref="FvImageBindingSequence"/>\r
123 </xs:sequence>\r
124 </xs:complexType>\r
125 </xs:element>\r
126 <xs:element name="FrameworkModules">\r
127 <xs:annotation>\r
128 <xs:documentation xml:lang="en">This is used in a Framework Platform Description (FPD) file</xs:documentation>\r
129 </xs:annotation>\r
130 <xs:complexType>\r
131 <xs:sequence>\r
132 <xs:element minOccurs="1" maxOccurs="unbounded" ref="ModuleSA"/>\r
133 </xs:sequence>\r
134 </xs:complexType>\r
135 </xs:element>\r
136 <xs:element name="FvAttribute">\r
137 <xs:complexType>\r
138 <xs:attribute name="Name" type="xs:NCName" use="required"/>\r
139 <xs:attribute name="Value" type="xs:normalizedString" use="required"/>\r
140 </xs:complexType>\r
141 </xs:element>\r
142 <xs:element name="FwImage">\r
143 <xs:complexType>\r
144 <xs:sequence>\r
145 <xs:element minOccurs="1" maxOccurs="1" ref="FvRegionName"/>\r
146 <xs:element minOccurs="0" maxOccurs="unbounded" ref="FvOption"/>\r
147 <xs:element minOccurs="0" maxOccurs="unbounded" ref="FvAttribute"/>\r
148 </xs:sequence>\r
149 </xs:complexType>\r
150 </xs:element>\r
151 <xs:element name="FvImageBindingSequence">\r
152 <xs:complexType>\r
153 <xs:simpleContent>\r
154 <xs:extension base="ValidRegionNameListType">\r
155 <xs:attribute name="PartId" type="KeywordType" use="required"/>\r
156 <xs:attribute name="OutputFile" type="PathAndFilename" use="required"/>\r
157 </xs:extension>\r
158 </xs:simpleContent>\r
159 </xs:complexType>\r
160 </xs:element>\r
161 <xs:element name="FvImages">\r
162 <xs:annotation>\r
163 <xs:documentation xml:lang="en">This section allows the user to define specific information regarding the FvImage</xs:documentation>\r
164 </xs:annotation>\r
165 <xs:complexType>\r
166 <xs:choice>\r
167 <xs:sequence minOccurs="0">\r
168 <!-- This is the current style -->\r
169 <xs:element minOccurs="0" maxOccurs="unbounded" name="NameValue">\r
170 <xs:complexType>\r
171 <xs:attribute name="Name" type="xs:string" use="required"/>\r
172 <xs:attribute name="Value" type="xs:string" use="required"/>\r
173 </xs:complexType>\r
174 </xs:element>\r
175 <xs:choice>\r
176 <xs:element minOccurs="0" maxOccurs="unbounded" name="FvImage">\r
177 <xs:complexType>\r
178 <xs:sequence>\r
179 <xs:element minOccurs="1" maxOccurs="unbounded" name="FvImageNames" type="xs:NCName"/>\r
180 <xs:element minOccurs="0" maxOccurs="1" name="FvImageOptions">\r
181 <xs:complexType>\r
182 <xs:sequence>\r
183 <xs:element minOccurs="0" maxOccurs="unbounded" name="NameValue">\r
184 <xs:complexType>\r
185 <xs:attribute name="Name" type="xs:string" use="required"/>\r
186 <xs:attribute name="Value" type="xs:string" use="required"/>\r
187 </xs:complexType>\r
188 </xs:element>\r
189 </xs:sequence>\r
190 </xs:complexType>\r
191 </xs:element>\r
192 </xs:sequence>\r
193 <xs:attribute name="Type" type="FvImageTypes" use="optional"/>\r
194 </xs:complexType>\r
195 </xs:element>\r
196 </xs:choice>\r
197 <xs:element minOccurs="0" maxOccurs="unbounded" name="FvImageName">\r
198 <xs:complexType>\r
199 <xs:sequence>\r
200 <xs:element minOccurs="1" maxOccurs="1" name="FvImageOptions">\r
201 <xs:complexType>\r
202 <xs:sequence>\r
203 <xs:element minOccurs="0" maxOccurs="unbounded" name="NameValue">\r
204 <xs:complexType>\r
205 <xs:attribute name="Name" type="xs:string" use="required"/>\r
206 <xs:attribute name="Value" type="xs:string" use="required"/>\r
207 </xs:complexType>\r
208 </xs:element>\r
209 </xs:sequence>\r
210 </xs:complexType>\r
211 </xs:element>\r
212 </xs:sequence>\r
213 <xs:attribute name="Name" type="FvRegionTypes" use="required"/>\r
214 </xs:complexType>\r
215 </xs:element>\r
216 </xs:sequence>\r
217 </xs:choice>\r
218 </xs:complexType>\r
219 </xs:element>\r
220 <xs:element name="FvRegionName">\r
221 <xs:complexType>\r
222 <xs:simpleContent>\r
223 <xs:extension base="KeywordType">\r
224 <xs:attributeGroup ref="FvRegionNameAttributes"/>\r
225 </xs:extension>\r
226 </xs:simpleContent>\r
227 </xs:complexType>\r
228 </xs:element>\r
229 <xs:element name="ModuleSA">\r
230 <xs:annotation>\r
231 <xs:documentation xml:lang="en">This element is used to specify information in the FPD ModuleSA section.</xs:documentation>\r
232 </xs:annotation>\r
233 <xs:complexType>\r
234 <xs:sequence>\r
235 <xs:element minOccurs="0" maxOccurs="1" ref="Libraries"/>\r
236 <!-- Only specification is allow here. We need to let this be an addtion OR, if the WORD portion MATCHES, this entry takes precedence.</xs:documentation -->\r
237 <xs:element minOccurs="0" maxOccurs="unbounded" name="Specification" type="Sentence"/>\r
238 <xs:element minOccurs="0" maxOccurs="1" ref="PcdBuildDefinition"/>\r
239 <xs:element minOccurs="0" maxOccurs="1" ref="ModuleSaBuildOptions"/>\r
240 <!-- The following BuildOptions Sections is for Legacy Ffs -->\r
241 <xs:element minOccurs="0" maxOccurs="1" name="BuildOptions">\r
242 <xs:complexType>\r
243 <xs:sequence>\r
244 <xs:element minOccurs="0" maxOccurs="1" ref="UserDefinedAntTasks"/>\r
245 <xs:element minOccurs="0" maxOccurs="1" name="ImageEntryPoint" type="C_NameType"/>\r
246 <xs:element minOccurs="0" maxOccurs="1" name="OutputDirectory">\r
247 <xs:complexType>\r
248 <xs:simpleContent>\r
249 <xs:extension base="xs:anyURI">\r
250 <xs:attribute default="UNIFIED" name="IntermediateDirectories" use="optional">\r
251 <xs:simpleType>\r
252 <xs:restriction base="UCNameType">\r
253 <xs:enumeration value="MODULE"/>\r
254 <xs:enumeration value="UNIFIED"/>\r
255 </xs:restriction>\r
256 </xs:simpleType>\r
257 </xs:attribute>\r
258 </xs:extension>\r
259 </xs:simpleContent>\r
260 </xs:complexType>\r
261 </xs:element>\r
262 <xs:element minOccurs="0" maxOccurs="1" name="Ffs">\r
263 <xs:complexType>\r
264 <xs:sequence>\r
265 <xs:element minOccurs="0" maxOccurs="1" name="Attribute">\r
266 <xs:complexType>\r
267 <xs:sequence>\r
268 <xs:element minOccurs="1" maxOccurs="1" name="Name" type="C_NameType"/>\r
269 <xs:element minOccurs="1" maxOccurs="1" name="Value" type="C_NameType"/>\r
270 </xs:sequence>\r
271 </xs:complexType>\r
272 </xs:element>\r
273 <xs:element minOccurs="0" maxOccurs="1" name="Sections">\r
274 <xs:complexType>\r
275 <xs:sequence minOccurs="1">\r
276 <xs:element name="Section" minOccurs="0" maxOccurs="unbounded">\r
277 <xs:complexType>\r
278 <xs:sequence>\r
279 <xs:element ref=" Filenames " minOccurs="0"/>\r
280 <xs:element name="Args" type=" ArgsType " minOccurs="0"/>\r
281 <xs:element name="OutFile" type=" FileNameConvention " minOccurs="0"/>\r
282 <xs:element name="OutputFileExtension" type=" xs:string " minOccurs="0"/>\r
283 <xs:element name="ToolName" type=" ToolType " minOccurs="0"/>\r
284 </xs:sequence>\r
285 <xs:attributeGroup ref=" SectionsAttributes "/>\r
286 </xs:complexType>\r
287 </xs:element>\r
288 <xs:element name="Sections" minOccurs="0" maxOccurs="unbounded">\r
289 <xs:complexType>\r
290 <xs:sequence minOccurs="1" maxOccurs="unbounded">\r
291 <xs:element name="Section">\r
292 <xs:complexType>\r
293 <xs:sequence>\r
294 <xs:element ref=" Filenames " minOccurs="0"/>\r
295 <xs:element name="Args" type=" ArgsType " minOccurs="0"/>\r
296 <xs:element name="OutFile" type=" FileNameConvention " minOccurs="0"/>\r
297 <xs:element name="OutputFileExtension" type=" xs:string " minOccurs="0"/>\r
298 <xs:element name="ToolName" type=" ToolType " minOccurs="0"/>\r
299 </xs:sequence>\r
300 <xs:attributeGroup ref="SectionsAttributes"/>\r
301 </xs:complexType>\r
302 </xs:element>\r
303 </xs:sequence>\r
304 <xs:attributeGroup ref=" SectionsAttributes "/>\r
305 </xs:complexType>\r
306 </xs:element>\r
307 </xs:sequence>\r
308 <xs:attributeGroup ref=" SectionsAttributes "/>\r
309 </xs:complexType>\r
310 </xs:element>\r
311 </xs:sequence>\r
312 </xs:complexType>\r
313 </xs:element>\r
314 <xs:element name="Sections">\r
315 <xs:complexType>\r
316 <xs:sequence minOccurs="1">\r
317 <xs:element name="Section" minOccurs="0" maxOccurs="unbounded">\r
318 <xs:complexType>\r
319 <xs:sequence>\r
320 <xs:element ref=" Filenames " minOccurs="0"/>\r
321 <xs:element name="Args" type=" ArgsType " minOccurs="0"/>\r
322 <xs:element name="OutFile" type=" FileNameConvention " minOccurs="0"/>\r
323 <xs:element name="OutputFileExtension" type=" xs:string " minOccurs="0"/>\r
324 <xs:element name="ToolName" type=" ToolType " minOccurs="0"/>\r
325 </xs:sequence>\r
326 <xs:attributeGroup ref=" SectionsAttributes "/>\r
327 </xs:complexType>\r
328 </xs:element>\r
329 <xs:element name="Sections" minOccurs="0" maxOccurs="unbounded">\r
330 <xs:complexType>\r
331 <xs:sequence minOccurs="1" maxOccurs="unbounded">\r
332 <xs:element name="Section">\r
333 <xs:complexType>\r
334 <xs:sequence>\r
335 <xs:element ref=" Filenames " minOccurs="0"/>\r
336 <xs:element name="Args" type=" ArgsType " minOccurs="0"/>\r
337 <xs:element name="OutFile" type=" FileNameConvention " minOccurs="0"/>\r
338 <xs:element name="OutputFileExtension" type=" xs:string " minOccurs="0"/>\r
339 <xs:element name="ToolName" type=" ToolType " minOccurs="0"/>\r
340 </xs:sequence>\r
341 <xs:attributeGroup ref=" SectionsAttributes "/>\r
342 </xs:complexType>\r
343 </xs:element>\r
344 </xs:sequence>\r
345 <xs:attributeGroup ref=" SectionsAttributes "/>\r
346 </xs:complexType>\r
347 </xs:element>\r
348 </xs:sequence>\r
349 <xs:attributeGroup ref=" SectionsAttributes "/>\r
350 </xs:complexType>\r
351 </xs:element>\r
352 <xs:element name="Options">\r
353 <xs:complexType>\r
354 <xs:sequence>\r
355 <xs:element name=" Option " minOccurs="1" maxOccurs="unbounded">\r
356 <xs:complexType>\r
357 <xs:simpleContent>\r
358 <xs:extension base=" xs:normalizedString ">\r
359 <xs:attribute name="BuildTargets" type=" BuildTargetList " use="optional"/>\r
360 <xs:attribute name="ToolChainFamily" type=" ToolsNameConvention " use="optional"/>\r
361 <xs:attribute name="TagName" type=" ToolsNameConvention " use="optional"/>\r
362 <xs:attribute name="ToolCommand" type=" ToolsNameConvention " use="optional"/>\r
363 <xs:attribute name="SupArchList" type=" ArchListType " use="optional"/>\r
364 <xs:attribute name="Platform" type=" UiNameType " use="optional"/>\r
365 </xs:extension>\r
366 </xs:simpleContent>\r
367 </xs:complexType>\r
368 </xs:element>\r
369 </xs:sequence>\r
370 </xs:complexType>\r
371 </xs:element>\r
372 </xs:sequence>\r
373 <!-- Do not use ToolChain - it is a legacy value -->\r
374 <xs:attribute name="ToolChain" type="ToolChains" use="optional"/>\r
375 <xs:attribute name="BuildTargets" type=" BuildTargetList " use="optional"/>\r
376 <xs:attribute name="ToolChainFamily" type=" ToolsNameConvention " use="optional"/>\r
377 <xs:attribute name="TagName" type=" ToolsNameConvention " use="optional"/>\r
378 <xs:attribute name="ToolCommand" type=" ToolsNameConvention " use="optional"/>\r
379 <xs:attribute name="SupArchList" type=" ArchListType " use="optional"/>\r
380 </xs:complexType>\r
381 </xs:element>\r
382 <!-- The following Externs Section is for Legacy Ffs -->\r
383 <xs:element minOccurs="0" maxOccurs="1" name="Externs">\r
384 <xs:complexType>\r
385 <xs:sequence minOccurs="1">\r
386 <xs:element name="PcdIsDriver" type=" PcdDriverTypes " minOccurs="0" maxOccurs="1"/>\r
387 <xs:element name="Specification" type=" Sentence " minOccurs="0" maxOccurs="unbounded"/>\r
388 <xs:element name="Extern" minOccurs="0" maxOccurs="unbounded">\r
389 <xs:complexType>\r
390 <xs:choice minOccurs="1">\r
391 <xs:sequence minOccurs="0" maxOccurs="1">\r
392 <xs:element name=" ModuleEntryPoint " type=" C_NameType " minOccurs="0" maxOccurs="unbounded"/>\r
393 <xs:element name=" ModuleUnloadImage " type=" C_NameType " minOccurs="0" maxOccurs="unbounded"/>\r
394 </xs:sequence>\r
395 <xs:sequence minOccurs="0" maxOccurs="1">\r
396 <xs:element name=" Constructor " type=" C_NameType " minOccurs="0" maxOccurs="1"/>\r
397 <xs:element name=" Destructor " type=" C_NameType " minOccurs="0" maxOccurs="1"/>\r
398 </xs:sequence>\r
399 <xs:sequence minOccurs="0" maxOccurs="1">\r
400 <xs:element name=" DriverBinding " type=" C_NameType " minOccurs="0" maxOccurs="unbounded"/>\r
401 <xs:element name=" ComponentName " type=" C_NameType " minOccurs="0" maxOccurs="unbounded"/>\r
402 <xs:element name=" DriverConfig " type=" C_NameType " minOccurs="0" maxOccurs="unbounded"/>\r
403 <xs:element name=" DriverDiag " type=" C_NameType " minOccurs="0" maxOccurs="unbounded"/>\r
404 </xs:sequence>\r
405 <xs:sequence minOccurs="0" maxOccurs="1">\r
406 <xs:element name=" SetVirtualAddressMapCallBack " type=" C_NameType " minOccurs="0" maxOccurs="unbounded"/>\r
407 <xs:element name=" ExitBootServicesCallBack " type=" C_NameType " minOccurs="0" maxOccurs="unbounded"/>\r
408 </xs:sequence>\r
409 </xs:choice>\r
410 <xs:attributeGroup ref=" ExternAttributes "/>\r
411 </xs:complexType>\r
412 </xs:element>\r
413 </xs:sequence>\r
414 </xs:complexType>\r
415 </xs:element>\r
416 </xs:sequence>\r
417 <xs:attributeGroup ref="MsaAttributes"/>\r
418 </xs:complexType>\r
419 </xs:element>\r
420 <xs:element name="FvOption">\r
421 <xs:complexType>\r
422 <xs:attribute name="Name" type="xs:NCName" use="required"/>\r
423 <xs:attribute name="Value" type="xs:normalizedString" use="required"/>\r
424 </xs:complexType>\r
425 </xs:element>\r
426 <xs:element name="PlatformList">\r
427 <!-- Valid for DB usage only! -->\r
428 <xs:annotation>\r
429 <xs:documentation xml:lang="en">This is used in the FrameworkDatabase file</xs:documentation>\r
430 </xs:annotation>\r
431 <xs:complexType>\r
432 <xs:sequence>\r
433 <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename" type="DbPathAndFilename"/>\r
434 </xs:sequence>\r
435 </xs:complexType>\r
436 </xs:element>\r
437</xs:schema>\r