1    /*
2     * Some or all of this work - Copyright (c) 2006 - 2021, Intel Corp.
3     * All rights reserved.
4     *
5     * Redistribution and use in source and binary forms, with or without modification,
6     * are permitted provided that the following conditions are met:
7     *
8     * Redistributions of source code must retain the above copyright notice,
9     * this list of conditions and the following disclaimer.
10     * Redistributions in binary form must reproduce the above copyright notice,
11     * this list of conditions and the following disclaimer in the documentation
12     * and/or other materials provided with the distribution.
13     * Neither the name of Intel Corporation nor the names of its contributors
14     * may be used to endorse or promote products derived from this software
15     * without specific prior written permission.
16     *
17     * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18     * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19     * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20     * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
21     * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22     * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23     * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24     * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
25     * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
26     * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27     */
28    /*
29     * Resource Descriptor macros
30     *
31     * DWord Space Resource Descriptor Macro
32     */
33    Name (P42E, Package (0x1B)
34    {
35        ResourceTemplate ()
36        {
37            DWordSpace (0xC0, ResourceProducer, PosDecode, MinNotFixed, MaxNotFixed, 0x0A,
38                0xECEDEEEF,         // Granularity
39                0xF0F1F2F3,         // Range Minimum
40                0xF4F5F6F7,         // Range Maximum
41                0xF8F9FAFB,         // Translation Offset
42                0xFCFDFEFF,         // Length
43                ,, )
44        },
45
46        ResourceTemplate ()
47        {
48            DWordSpace (0xC1, ResourceProducer, PosDecode, MinNotFixed, MaxFixed, 0x1A,
49                0xECEDEEEF,         // Granularity
50                0xF0F1F2F3,         // Range Minimum
51                0xF4F5F6F7,         // Range Maximum
52                0xF8F9FAFB,         // Translation Offset
53                0xFCFDFEFF,         // Length
54                ,, )
55        },
56
57        ResourceTemplate ()
58        {
59            DWordSpace (0xC2, ResourceProducer, PosDecode, MinFixed, MaxNotFixed, 0x2A,
60                0xECEDEEEF,         // Granularity
61                0xF0F1F2F3,         // Range Minimum
62                0xF4F5F6F7,         // Range Maximum
63                0xF8F9FAFB,         // Translation Offset
64                0xFCFDFEFF,         // Length
65                ,, )
66        },
67
68        ResourceTemplate ()
69        {
70            DWordSpace (0xC3, ResourceProducer, PosDecode, MinFixed, MaxFixed, 0x3A,
71                0xECEDEEEF,         // Granularity
72                0xF0F1F2F3,         // Range Minimum
73                0xF4F5F6F7,         // Range Maximum
74                0xF8F9FAFB,         // Translation Offset
75                0xFCFDFEFF,         // Length
76                ,, )
77        },
78
79        ResourceTemplate ()
80        {
81            DWordSpace (0xC4, ResourceProducer, SubDecode, MinNotFixed, MaxNotFixed, 0x4A,
82                0xECEDEEEF,         // Granularity
83                0xF0F1F2F3,         // Range Minimum
84                0xF4F5F6F7,         // Range Maximum
85                0xF8F9FAFB,         // Translation Offset
86                0xFCFDFEFF,         // Length
87                ,, )
88        },
89
90        ResourceTemplate ()
91        {
92            DWordSpace (0xC5, ResourceProducer, SubDecode, MinNotFixed, MaxFixed, 0x5A,
93                0xECEDEEEF,         // Granularity
94                0xF0F1F2F3,         // Range Minimum
95                0xF4F5F6F7,         // Range Maximum
96                0xF8F9FAFB,         // Translation Offset
97                0xFCFDFEFF,         // Length
98                ,, )
99        },
100
101        ResourceTemplate ()
102        {
103            DWordSpace (0xC6, ResourceProducer, SubDecode, MinFixed, MaxNotFixed, 0x6A,
104                0xECEDEEEF,         // Granularity
105                0xF0F1F2F3,         // Range Minimum
106                0xF4F5F6F7,         // Range Maximum
107                0xF8F9FAFB,         // Translation Offset
108                0xFCFDFEFF,         // Length
109                ,, )
110        },
111
112        ResourceTemplate ()
113        {
114            DWordSpace (0xC7, ResourceProducer, SubDecode, MinFixed, MaxFixed, 0x7A,
115                0xECEDEEEF,         // Granularity
116                0xF0F1F2F3,         // Range Minimum
117                0xF4F5F6F7,         // Range Maximum
118                0xF8F9FAFB,         // Translation Offset
119                0xFCFDFEFF,         // Length
120                ,, )
121        },
122
123        ResourceTemplate ()
124        {
125            DWordSpace (0xC8, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x8A,
126                0xECEDEEEF,         // Granularity
127                0xF0F1F2F3,         // Range Minimum
128                0xF4F5F6F7,         // Range Maximum
129                0xF8F9FAFB,         // Translation Offset
130                0xFCFDFEFF,         // Length
131                ,, )
132        },
133
134        ResourceTemplate ()
135        {
136            DWordSpace (0xC9, ResourceConsumer, PosDecode, MinNotFixed, MaxFixed, 0x9A,
137                0xECEDEEEF,         // Granularity
138                0xF0F1F2F3,         // Range Minimum
139                0xF4F5F6F7,         // Range Maximum
140                0xF8F9FAFB,         // Translation Offset
141                0xFCFDFEFF,         // Length
142                ,, )
143        },
144
145        ResourceTemplate ()
146        {
147            DWordSpace (0xCA, ResourceConsumer, PosDecode, MinFixed, MaxNotFixed, 0xAA,
148                0xECEDEEEF,         // Granularity
149                0xF0F1F2F3,         // Range Minimum
150                0xF4F5F6F7,         // Range Maximum
151                0xF8F9FAFB,         // Translation Offset
152                0xFCFDFEFF,         // Length
153                ,, )
154        },
155
156        ResourceTemplate ()
157        {
158            DWordSpace (0xCB, ResourceConsumer, PosDecode, MinFixed, MaxFixed, 0xBA,
159                0xECEDEEEF,         // Granularity
160                0xF0F1F2F3,         // Range Minimum
161                0xF4F5F6F7,         // Range Maximum
162                0xF8F9FAFB,         // Translation Offset
163                0xFCFDFEFF,         // Length
164                ,, )
165        },
166
167        ResourceTemplate ()
168        {
169            DWordSpace (0xCC, ResourceConsumer, SubDecode, MinNotFixed, MaxNotFixed, 0xCA,
170                0xECEDEEEF,         // Granularity
171                0xF0F1F2F3,         // Range Minimum
172                0xF4F5F6F7,         // Range Maximum
173                0xF8F9FAFB,         // Translation Offset
174                0xFCFDFEFF,         // Length
175                ,, )
176        },
177
178        ResourceTemplate ()
179        {
180            DWordSpace (0xCD, ResourceConsumer, SubDecode, MinNotFixed, MaxFixed, 0xDA,
181                0xECEDEEEF,         // Granularity
182                0xF0F1F2F3,         // Range Minimum
183                0xF4F5F6F7,         // Range Maximum
184                0xF8F9FAFB,         // Translation Offset
185                0xFCFDFEFF,         // Length
186                ,, )
187        },
188
189        ResourceTemplate ()
190        {
191            DWordSpace (0xCE, ResourceConsumer, SubDecode, MinFixed, MaxNotFixed, 0xEA,
192                0xECEDEEEF,         // Granularity
193                0xF0F1F2F3,         // Range Minimum
194                0xF4F5F6F7,         // Range Maximum
195                0xF8F9FAFB,         // Translation Offset
196                0xFCFDFEFF,         // Length
197                ,, )
198        },
199
200        ResourceTemplate ()
201        {
202            DWordSpace (0xFF, ResourceConsumer, SubDecode, MinFixed, MaxFixed, 0xFA,
203                0xECEDEEEF,         // Granularity
204                0xF0F1F2F3,         // Range Minimum
205                0xF4F5F6F7,         // Range Maximum
206                0xF8F9FAFB,         // Translation Offset
207                0xFCFDFEFF,         // Length
208                ,, )
209        },
210
211        ResourceTemplate ()
212        {
213            DWordSpace (0xC0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x00,
214                0xECEDEEEF,         // Granularity
215                0xF0F1F2F3,         // Range Minimum
216                0xF4F5F6F7,         // Range Maximum
217                0xF8F9FAFB,         // Translation Offset
218                0xFCFDFEFF,         // Length
219                ,, )
220        },
221
222        ResourceTemplate ()
223        {
224            DWordSpace (0xC0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0xFF,
225                0xECEDEEEF,         // Granularity
226                0xF0F1F2F3,         // Range Minimum
227                0xF4F5F6F7,         // Range Maximum
228                0xF8F9FAFB,         // Translation Offset
229                0xFCFDFEFF,         // Length
230                ,, )
231        },
232
233        ResourceTemplate ()
234        {
235            DWordSpace (0xC0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x5A,
236                0xECEDEEEF,         // Granularity
237                0xF0F1F2F3,         // Range Minimum
238                0xF4F5F6F7,         // Range Maximum
239                0xF8F9FAFB,         // Translation Offset
240                0xFCFDFEFF,         // Length
241                ,, )
242        },
243
244        ResourceTemplate ()
245        {
246            DWordSpace (0xC0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x5A,
247                0xECEDEEEF,         // Granularity
248                0xF0F1F2F3,         // Range Minimum
249                0xF4F5F6F7,         // Range Maximum
250                0xF8F9FAFB,         // Translation Offset
251                0xFCFDFEFF,         // Length
252                ,, )
253        },
254
255        ResourceTemplate ()
256        {
257            DWordSpace (0xC0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x5A,
258                0xECEDEEEF,         // Granularity
259                0xF0F1F2F3,         // Range Minimum
260                0xF4F5F6F7,         // Range Maximum
261                0xF8F9FAFB,         // Translation Offset
262                0xFCFDFEFF,         // Length
263                0x01, "", )
264        },
265
266        ResourceTemplate ()
267        {
268            DWordSpace (0xC0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x5A,
269                0xECEDEEEF,         // Granularity
270                0xF0F1F2F3,         // Range Minimum
271                0xF4F5F6F7,         // Range Maximum
272                0xF8F9FAFB,         // Translation Offset
273                0xFCFDFEFF,         // Length
274                0x0F, "P", )
275        },
276
277        ResourceTemplate ()
278        {
279            DWordSpace (0xC0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x5A,
280                0xECEDEEEF,         // Granularity
281                0xF0F1F2F3,         // Range Minimum
282                0xF4F5F6F7,         // Range Maximum
283                0xF8F9FAFB,         // Translation Offset
284                0xFCFDFEFF,         // Length
285                0xF0, "PATH", )
286        },
287
288        ResourceTemplate ()
289        {
290            DWordSpace (0xC0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x5A,
291                0xECEDEEEF,         // Granularity
292                0xF0F1F2F3,         // Range Minimum
293                0xF4F5F6F7,         // Range Maximum
294                0xF8F9FAFB,         // Translation Offset
295                0xFCFDFEFF,         // Length
296                0xFF, "!\"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !\"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !\"#$%&\'()*", )
297        },
298
299        ResourceTemplate ()
300        {
301            DWordSpace (0xC0, ResourceConsumer, SubDecode, MinFixed, MaxFixed, 0x5A,
302                0xECEDEEEF,         // Granularity
303                0xF0F1F2F3,         // Range Minimum
304                0xF4F5F6F7,         // Range Maximum
305                0xF8F9FAFB,         // Translation Offset
306                0xFCFDFEFF,         // Length
307                0xFF, "PATHPATHPATH", )
308        },
309
310        ResourceTemplate ()
311        {
312            DWordSpace (0xC0, ResourceConsumer, SubDecode, MinFixed, MaxFixed, 0x00,
313                0x00000000,         // Granularity
314                0x00000000,         // Range Minimum
315                0x00000000,         // Range Maximum
316                0x00000000,         // Translation Offset
317                0x00000000,         // Length
318                0xFF, "PATHPATHPATH", )
319        },
320
321        ResourceTemplate ()
322        {
323            DWordSpace (0xC0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x5A,
324                0xECEDEEEF,         // Granularity
325                0xF0F1F2F3,         // Range Minimum
326                0xF4F5F6F7,         // Range Maximum
327                0xF8F9FAFB,         // Translation Offset
328                0xFCFDFEFF,         // Length
329                0x0F,, )
330        }
331    })
332    /*
333     ACPI Specification, Revision 3.0, September 2, 2004
334     6.4.3.5.2   DWord Address Space Descriptor
335     Memory DWord Address Space Descriptor layout:
336     Byte 0 (Tag Bits): Value=10000111B (0x87) (Type = 1, Large item name = 0x7)
337     Byte 1 (Length, bits[7:0]): Variable: Value = 23 (minimum)
338     Byte 2 (Length, bits[15:8]): Variable: Value = 0 (minimum)
339     Byte 3 (Resource Type):
340     192-255	Hardware Vendor Defined
341     Byte 4 (General Flags):
342     Bits[7:4] 	Reserved (must be 0)
343     Bit[3] 		Min Address Fixed, _MAF:
344     1	The specified maximum address is fixed
345     0	The specified maximum address is not fixed
346     and can be changed
347     Bit[2] 		Max Address Fixed,_MIF:
348     1	The specified minimum address is fixed
349     0	The specified minimum address is not fixed
350     and can be changed
351     Bit[1] 		Decode Type, _DEC:
352     1	This bridge subtractively decodes this address
353     (top level bridges only)
354     0	This bridge positively decodes this address
355     Bit[0] 		Consumer/Producer:
356     1-This device consumes this resource
357     0-This device produces and consumes this resource
358     Byte 5 (Type Specific Flags):
359     Flags that are specific to each resource type. The meaning of the flags
360     in this field depends on the value of the Resource Type field (see above)
361     Byte 6 (Address space granularity, _GRA bits[7:0]):
362     A set bit in this mask means that this bit is decoded. All bits less
363     significant than the most significant set bit must be set. (in other
364     words, the value of the full Address Space Granularity field (all 32
365     bits) must be a number (2**n-1).
366     Byte 7 (Address space granularity, _GRA bits[15:8])
367     Byte 8 (Address space granularity, _GRA bits[23:16])
368     Byte 9 (Address space granularity, _GRA bits[31:24])
369     Byte 10 (Address range minimum, _MIN bits [7:0]):
370     For bridges that translate addresses, this is the address space
371     on the secondary side of the bridge
372     Byte 11 (Address range minimum, _MIN bits[15:8])
373     Byte 12 (Address range minimum, _MIN bits[23:16])
374     Byte 13 (Address range minimum, _MIN bits[31:24])
375     Byte 14 (Address range maximum, _MAX bits [7:0]): See comment for _MIN
376     Byte 15 (Address range maximum, _MAX bits[15:8])
377     Byte 16 (Address range maximum, _MAX bits[23:16])
378     Byte 17 (Address range maximum, _MAX bits[31:24])
379     Byte 18 (Address Translation offset, _TRA bits [7:0]):
380     For bridges that translate addresses across the bridge, this is the
381     offset that must be added to the address on the secondary side to obtain
382     the address on the primary side. Non-bridge devices must list 0 for all
383     Address Translation offset bits
384     Byte 19 (Address Translation offset, _TRA bits[15:8])
385     Byte 20 (Address Translation offset, _TRA bits[23:16])
386     Byte 21 (Address Translation offset, _TRA bits[31:24])
387     Byte 22 (Address Length, _LEN bits [7:0])
388     Byte 23 (Address Length, _LEN bits[15:8])
389     Byte 24 (Address Length, _LEN bits[23:16])
390     Byte 25 (Address Length, _LEN bits[31:24])
391     Byte 26 (Resource Source Index):
392     (Optional) Only present if Resource Source (below) is present. This
393     field gives an index to the specific resource descriptor that this
394     device consumes from in the current resource template for the device
395     object pointed to in Resource Source
396     String (Resource Source):
397     (Optional) If present, the device that uses this descriptor consumes
398     its resources from the resources produced by the named device object.
399     If not present, the device consumes its resources out of a global pool.
400     If not present, the device consumes this resource from its hierarchical
401     parent.
402     */
403    Name (P42F, Package (0x1B)
404    {
405        /* Byte 4 (General Flags) of DWord Address Space Descriptor */
406
407        ResourceTemplate ()
408        {
409            DWordSpace (0xC0, ResourceProducer, PosDecode, MinNotFixed, MaxNotFixed, 0x0A,
410                0xECEDEEEF,         // Granularity
411                0xF0F1F2F3,         // Range Minimum
412                0xF4F5F6F7,         // Range Maximum
413                0xF8F9FAFB,         // Translation Offset
414                0xFCFDFEFF,         // Length
415                ,, )
416        },
417
418        ResourceTemplate ()
419        {
420            DWordSpace (0xC1, ResourceProducer, PosDecode, MinNotFixed, MaxFixed, 0x1A,
421                0xECEDEEEF,         // Granularity
422                0xF0F1F2F3,         // Range Minimum
423                0xF4F5F6F7,         // Range Maximum
424                0xF8F9FAFB,         // Translation Offset
425                0xFCFDFEFF,         // Length
426                ,, )
427        },
428
429        ResourceTemplate ()
430        {
431            DWordSpace (0xC2, ResourceProducer, PosDecode, MinFixed, MaxNotFixed, 0x2A,
432                0xECEDEEEF,         // Granularity
433                0xF0F1F2F3,         // Range Minimum
434                0xF4F5F6F7,         // Range Maximum
435                0xF8F9FAFB,         // Translation Offset
436                0xFCFDFEFF,         // Length
437                ,, )
438        },
439
440        ResourceTemplate ()
441        {
442            DWordSpace (0xC3, ResourceProducer, PosDecode, MinFixed, MaxFixed, 0x3A,
443                0xECEDEEEF,         // Granularity
444                0xF0F1F2F3,         // Range Minimum
445                0xF4F5F6F7,         // Range Maximum
446                0xF8F9FAFB,         // Translation Offset
447                0xFCFDFEFF,         // Length
448                ,, )
449        },
450
451        ResourceTemplate ()
452        {
453            DWordSpace (0xC4, ResourceProducer, SubDecode, MinNotFixed, MaxNotFixed, 0x4A,
454                0xECEDEEEF,         // Granularity
455                0xF0F1F2F3,         // Range Minimum
456                0xF4F5F6F7,         // Range Maximum
457                0xF8F9FAFB,         // Translation Offset
458                0xFCFDFEFF,         // Length
459                ,, )
460        },
461
462        ResourceTemplate ()
463        {
464            DWordSpace (0xC5, ResourceProducer, SubDecode, MinNotFixed, MaxFixed, 0x5A,
465                0xECEDEEEF,         // Granularity
466                0xF0F1F2F3,         // Range Minimum
467                0xF4F5F6F7,         // Range Maximum
468                0xF8F9FAFB,         // Translation Offset
469                0xFCFDFEFF,         // Length
470                ,, )
471        },
472
473        ResourceTemplate ()
474        {
475            DWordSpace (0xC6, ResourceProducer, SubDecode, MinFixed, MaxNotFixed, 0x6A,
476                0xECEDEEEF,         // Granularity
477                0xF0F1F2F3,         // Range Minimum
478                0xF4F5F6F7,         // Range Maximum
479                0xF8F9FAFB,         // Translation Offset
480                0xFCFDFEFF,         // Length
481                ,, )
482        },
483
484        ResourceTemplate ()
485        {
486            DWordSpace (0xC7, ResourceProducer, SubDecode, MinFixed, MaxFixed, 0x7A,
487                0xECEDEEEF,         // Granularity
488                0xF0F1F2F3,         // Range Minimum
489                0xF4F5F6F7,         // Range Maximum
490                0xF8F9FAFB,         // Translation Offset
491                0xFCFDFEFF,         // Length
492                ,, )
493        },
494
495        ResourceTemplate ()
496        {
497            DWordSpace (0xC8, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x8A,
498                0xECEDEEEF,         // Granularity
499                0xF0F1F2F3,         // Range Minimum
500                0xF4F5F6F7,         // Range Maximum
501                0xF8F9FAFB,         // Translation Offset
502                0xFCFDFEFF,         // Length
503                ,, )
504        },
505
506        ResourceTemplate ()
507        {
508            DWordSpace (0xC9, ResourceConsumer, PosDecode, MinNotFixed, MaxFixed, 0x9A,
509                0xECEDEEEF,         // Granularity
510                0xF0F1F2F3,         // Range Minimum
511                0xF4F5F6F7,         // Range Maximum
512                0xF8F9FAFB,         // Translation Offset
513                0xFCFDFEFF,         // Length
514                ,, )
515        },
516
517        ResourceTemplate ()
518        {
519            DWordSpace (0xCA, ResourceConsumer, PosDecode, MinFixed, MaxNotFixed, 0xAA,
520                0xECEDEEEF,         // Granularity
521                0xF0F1F2F3,         // Range Minimum
522                0xF4F5F6F7,         // Range Maximum
523                0xF8F9FAFB,         // Translation Offset
524                0xFCFDFEFF,         // Length
525                ,, )
526        },
527
528        ResourceTemplate ()
529        {
530            DWordSpace (0xCB, ResourceConsumer, PosDecode, MinFixed, MaxFixed, 0xBA,
531                0xECEDEEEF,         // Granularity
532                0xF0F1F2F3,         // Range Minimum
533                0xF4F5F6F7,         // Range Maximum
534                0xF8F9FAFB,         // Translation Offset
535                0xFCFDFEFF,         // Length
536                ,, )
537        },
538
539        ResourceTemplate ()
540        {
541            DWordSpace (0xCC, ResourceConsumer, SubDecode, MinNotFixed, MaxNotFixed, 0xCA,
542                0xECEDEEEF,         // Granularity
543                0xF0F1F2F3,         // Range Minimum
544                0xF4F5F6F7,         // Range Maximum
545                0xF8F9FAFB,         // Translation Offset
546                0xFCFDFEFF,         // Length
547                ,, )
548        },
549
550        ResourceTemplate ()
551        {
552            DWordSpace (0xCD, ResourceConsumer, SubDecode, MinNotFixed, MaxFixed, 0xDA,
553                0xECEDEEEF,         // Granularity
554                0xF0F1F2F3,         // Range Minimum
555                0xF4F5F6F7,         // Range Maximum
556                0xF8F9FAFB,         // Translation Offset
557                0xFCFDFEFF,         // Length
558                ,, )
559        },
560
561        ResourceTemplate ()
562        {
563            DWordSpace (0xCE, ResourceConsumer, SubDecode, MinFixed, MaxNotFixed, 0xEA,
564                0xECEDEEEF,         // Granularity
565                0xF0F1F2F3,         // Range Minimum
566                0xF4F5F6F7,         // Range Maximum
567                0xF8F9FAFB,         // Translation Offset
568                0xFCFDFEFF,         // Length
569                ,, )
570        },
571
572        ResourceTemplate ()
573        {
574            DWordSpace (0xFF, ResourceConsumer, SubDecode, MinFixed, MaxFixed, 0xFA,
575                0xECEDEEEF,         // Granularity
576                0xF0F1F2F3,         // Range Minimum
577                0xF4F5F6F7,         // Range Maximum
578                0xF8F9FAFB,         // Translation Offset
579                0xFCFDFEFF,         // Length
580                ,, )
581        },
582
583        /* Byte 5 (Type Specific Flags) of DWord Address Space Descriptor */
584
585        ResourceTemplate ()
586        {
587            DWordSpace (0xC0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x00,
588                0xECEDEEEF,         // Granularity
589                0xF0F1F2F3,         // Range Minimum
590                0xF4F5F6F7,         // Range Maximum
591                0xF8F9FAFB,         // Translation Offset
592                0xFCFDFEFF,         // Length
593                ,, )
594        },
595
596        ResourceTemplate ()
597        {
598            DWordSpace (0xC0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0xFF,
599                0xECEDEEEF,         // Granularity
600                0xF0F1F2F3,         // Range Minimum
601                0xF4F5F6F7,         // Range Maximum
602                0xF8F9FAFB,         // Translation Offset
603                0xFCFDFEFF,         // Length
604                ,, )
605        },
606
607        /* Particular cases */
608
609        ResourceTemplate ()
610        {
611            DWordSpace (0xC0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x5A,
612                0xECEDEEEF,         // Granularity
613                0xF0F1F2F3,         // Range Minimum
614                0xF4F5F6F7,         // Range Maximum
615                0xF8F9FAFB,         // Translation Offset
616                0xFCFDFEFF,         // Length
617                ,, )
618        },
619
620        ResourceTemplate ()
621        {
622            DWordSpace (0xC0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x5A,
623                0xECEDEEEF,         // Granularity
624                0xF0F1F2F3,         // Range Minimum
625                0xF4F5F6F7,         // Range Maximum
626                0xF8F9FAFB,         // Translation Offset
627                0xFCFDFEFF,         // Length
628                ,, )
629        },
630
631        /* Resource Source */
632
633        ResourceTemplate ()
634        {
635            DWordSpace (0xC0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x5A,
636                0xECEDEEEF,         // Granularity
637                0xF0F1F2F3,         // Range Minimum
638                0xF4F5F6F7,         // Range Maximum
639                0xF8F9FAFB,         // Translation Offset
640                0xFCFDFEFF,         // Length
641                0x01, "", )
642        },
643
644        ResourceTemplate ()
645        {
646            DWordSpace (0xC0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x5A,
647                0xECEDEEEF,         // Granularity
648                0xF0F1F2F3,         // Range Minimum
649                0xF4F5F6F7,         // Range Maximum
650                0xF8F9FAFB,         // Translation Offset
651                0xFCFDFEFF,         // Length
652                0x0F, "P", )
653        },
654
655        ResourceTemplate ()
656        {
657            DWordSpace (0xC0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x5A,
658                0xECEDEEEF,         // Granularity
659                0xF0F1F2F3,         // Range Minimum
660                0xF4F5F6F7,         // Range Maximum
661                0xF8F9FAFB,         // Translation Offset
662                0xFCFDFEFF,         // Length
663                0xF0, "PATH", )
664        },
665
666        ResourceTemplate ()
667        {
668            DWordSpace (0xC0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x5A,
669                0xECEDEEEF,         // Granularity
670                0xF0F1F2F3,         // Range Minimum
671                0xF4F5F6F7,         // Range Maximum
672                0xF8F9FAFB,         // Translation Offset
673                0xFCFDFEFF,         // Length
674                0xFF, "!\"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !\"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !\"#$%&\'()*", )
675        },
676
677        /* Particular cases */
678
679        ResourceTemplate ()
680        {
681            DWordSpace (0xC0, ResourceConsumer, SubDecode, MinFixed, MaxFixed, 0x5A,
682                0xECEDEEEF,         // Granularity
683                0xF0F1F2F3,         // Range Minimum
684                0xF4F5F6F7,         // Range Maximum
685                0xF8F9FAFB,         // Translation Offset
686                0xFCFDFEFF,         // Length
687                0xFF, "PATHPATHPATH", )
688        },
689
690        ResourceTemplate ()
691        {
692            DWordSpace (0xC0, ResourceConsumer, SubDecode, MinFixed, MaxFixed, 0x00,
693                0x00000000,         // Granularity
694                0x00000000,         // Range Minimum
695                0x00000000,         // Range Maximum
696                0x00000000,         // Translation Offset
697                0x00000000,         // Length
698                0xFF, "PATHPATHPATH", )
699        },
700
701        /* 20051021, relaxation for omitted ResourceSource (bug-fix 70 rejection) */
702
703        ResourceTemplate ()
704        {
705            DWordSpace (0xC0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x5A,
706                0xECEDEEEF,         // Granularity
707                0xF0F1F2F3,         // Range Minimum
708                0xF4F5F6F7,         // Range Maximum
709                0xF8F9FAFB,         // Translation Offset
710                0xFCFDFEFF,         // Length
711                0x0F,, )
712        }
713    })
714    Method (RT15, 0, Serialized)
715    {
716        /* Emit test header, set the filename */
717
718        THDR (__METHOD__, "DWordSpace Resource Descriptor Macro", "dwordspace.asl")
719        /* Main test case for packages above */
720
721        M330 (__METHOD__, 0x1B, "p42e", P42E, P42F)
722        /* Check resource descriptor tag offsets */
723
724        Local0 = ResourceTemplate ()
725            {
726                DWordSpace (0xC0, ResourceProducer, PosDecode, MinNotFixed, MaxNotFixed, 0x5A,
727                    0xECEDEEEF,         // Granularity
728                    0xF0F1F2F3,         // Range Minimum
729                    0xF4F5F6F7,         // Range Maximum
730                    0xF8F9FAFB,         // Translation Offset
731                    0xFCFDFEFF,         // Length
732                    ,, )
733                DWordSpace (0xC0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x5A,
734                    0xECEDEEEF,         // Granularity
735                    0xF0F1F2F3,         // Range Minimum
736                    0xF4F5F6F7,         // Range Maximum
737                    0xF8F9FAFB,         // Translation Offset
738                    0xFCFDFEFF,         // Length
739                    ,, )
740            }
741        M331 (__METHOD__, 0x01, 0x21, 0x21, 0xF1, 0xF1, "_DEC")
742        M331 (__METHOD__, 0x02, 0x22, 0x22, 0xF2, 0xF2, "_MIF")
743        M331 (__METHOD__, 0x03, 0x23, 0x23, 0xF3, 0xF3, "_MAF")
744        M331 (__METHOD__, 0x07, 0x30, 0x30, 0x0100, 0x0100, "_GRA")
745        M331 (__METHOD__, 0x08, 0x50, 0x50, 0x0120, 0x0120, "_MIN")
746        M331 (__METHOD__, 0x09, 0x70, 0x70, 0x0140, 0x0140, "_MAX")
747        M331 (__METHOD__, 0x0A, 0x90, 0x90, 0x0160, 0x0160, "_TRA")
748        M331 (__METHOD__, 0x0B, 0xB0, 0xB0, 0x0180, 0x0180, "_LEN")
749    }
750