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     * Word Space Resource Descriptor Macro
32     */
33    Name (P430, Package (0x1B)
34    {
35        ResourceTemplate ()
36        {
37            WordSpace (0xC0, ResourceProducer, PosDecode, MinNotFixed, MaxNotFixed, 0x0A,
38                0xF6F7,             // Granularity
39                0xF8F9,             // Range Minimum
40                0xFAFB,             // Range Maximum
41                0xFCFD,             // Translation Offset
42                0xFEFF,             // Length
43                ,, )
44        },
45
46        ResourceTemplate ()
47        {
48            WordSpace (0xC1, ResourceProducer, PosDecode, MinNotFixed, MaxFixed, 0x1A,
49                0xF6F7,             // Granularity
50                0xF8F9,             // Range Minimum
51                0xFAFB,             // Range Maximum
52                0xFCFD,             // Translation Offset
53                0xFEFF,             // Length
54                ,, )
55        },
56
57        ResourceTemplate ()
58        {
59            WordSpace (0xC2, ResourceProducer, PosDecode, MinFixed, MaxNotFixed, 0x2A,
60                0xF6F7,             // Granularity
61                0xF8F9,             // Range Minimum
62                0xFAFB,             // Range Maximum
63                0xFCFD,             // Translation Offset
64                0xFEFF,             // Length
65                ,, )
66        },
67
68        ResourceTemplate ()
69        {
70            WordSpace (0xC3, ResourceProducer, PosDecode, MinFixed, MaxFixed, 0x3A,
71                0xF6F7,             // Granularity
72                0xF8F9,             // Range Minimum
73                0xFAFB,             // Range Maximum
74                0xFCFD,             // Translation Offset
75                0xFEFF,             // Length
76                ,, )
77        },
78
79        ResourceTemplate ()
80        {
81            WordSpace (0xC4, ResourceProducer, SubDecode, MinNotFixed, MaxNotFixed, 0x4A,
82                0xF6F7,             // Granularity
83                0xF8F9,             // Range Minimum
84                0xFAFB,             // Range Maximum
85                0xFCFD,             // Translation Offset
86                0xFEFF,             // Length
87                ,, )
88        },
89
90        ResourceTemplate ()
91        {
92            WordSpace (0xC5, ResourceProducer, SubDecode, MinNotFixed, MaxFixed, 0x5A,
93                0xF6F7,             // Granularity
94                0xF8F9,             // Range Minimum
95                0xFAFB,             // Range Maximum
96                0xFCFD,             // Translation Offset
97                0xFEFF,             // Length
98                ,, )
99        },
100
101        ResourceTemplate ()
102        {
103            WordSpace (0xC6, ResourceProducer, SubDecode, MinFixed, MaxNotFixed, 0x6A,
104                0xF6F7,             // Granularity
105                0xF8F9,             // Range Minimum
106                0xFAFB,             // Range Maximum
107                0xFCFD,             // Translation Offset
108                0xFEFF,             // Length
109                ,, )
110        },
111
112        ResourceTemplate ()
113        {
114            WordSpace (0xC7, ResourceProducer, SubDecode, MinFixed, MaxFixed, 0x7A,
115                0xF6F7,             // Granularity
116                0xF8F9,             // Range Minimum
117                0xFAFB,             // Range Maximum
118                0xFCFD,             // Translation Offset
119                0xFEFF,             // Length
120                ,, )
121        },
122
123        ResourceTemplate ()
124        {
125            WordSpace (0xC8, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x8A,
126                0xF6F7,             // Granularity
127                0xF8F9,             // Range Minimum
128                0xFAFB,             // Range Maximum
129                0xFCFD,             // Translation Offset
130                0xFEFF,             // Length
131                ,, )
132        },
133
134        ResourceTemplate ()
135        {
136            WordSpace (0xC9, ResourceConsumer, PosDecode, MinNotFixed, MaxFixed, 0x9A,
137                0xF6F7,             // Granularity
138                0xF8F9,             // Range Minimum
139                0xFAFB,             // Range Maximum
140                0xFCFD,             // Translation Offset
141                0xFEFF,             // Length
142                ,, )
143        },
144
145        ResourceTemplate ()
146        {
147            WordSpace (0xCA, ResourceConsumer, PosDecode, MinFixed, MaxNotFixed, 0xAA,
148                0xF6F7,             // Granularity
149                0xF8F9,             // Range Minimum
150                0xFAFB,             // Range Maximum
151                0xFCFD,             // Translation Offset
152                0xFEFF,             // Length
153                ,, )
154        },
155
156        ResourceTemplate ()
157        {
158            WordSpace (0xCB, ResourceConsumer, PosDecode, MinFixed, MaxFixed, 0xBA,
159                0xF6F7,             // Granularity
160                0xF8F9,             // Range Minimum
161                0xFAFB,             // Range Maximum
162                0xFCFD,             // Translation Offset
163                0xFEFF,             // Length
164                ,, )
165        },
166
167        ResourceTemplate ()
168        {
169            WordSpace (0xCC, ResourceConsumer, SubDecode, MinNotFixed, MaxNotFixed, 0xCA,
170                0xF6F7,             // Granularity
171                0xF8F9,             // Range Minimum
172                0xFAFB,             // Range Maximum
173                0xFCFD,             // Translation Offset
174                0xFEFF,             // Length
175                ,, )
176        },
177
178        ResourceTemplate ()
179        {
180            WordSpace (0xCD, ResourceConsumer, SubDecode, MinNotFixed, MaxFixed, 0xDA,
181                0xF6F7,             // Granularity
182                0xF8F9,             // Range Minimum
183                0xFAFB,             // Range Maximum
184                0xFCFD,             // Translation Offset
185                0xFEFF,             // Length
186                ,, )
187        },
188
189        ResourceTemplate ()
190        {
191            WordSpace (0xCE, ResourceConsumer, SubDecode, MinFixed, MaxNotFixed, 0xEA,
192                0xF6F7,             // Granularity
193                0xF8F9,             // Range Minimum
194                0xFAFB,             // Range Maximum
195                0xFCFD,             // Translation Offset
196                0xFEFF,             // Length
197                ,, )
198        },
199
200        ResourceTemplate ()
201        {
202            WordSpace (0xFF, ResourceConsumer, SubDecode, MinFixed, MaxFixed, 0xFA,
203                0xF6F7,             // Granularity
204                0xF8F9,             // Range Minimum
205                0xFAFB,             // Range Maximum
206                0xFCFD,             // Translation Offset
207                0xFEFF,             // Length
208                ,, )
209        },
210
211        ResourceTemplate ()
212        {
213            WordSpace (0xC0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x00,
214                0xF6F7,             // Granularity
215                0xF8F9,             // Range Minimum
216                0xFAFB,             // Range Maximum
217                0xFCFD,             // Translation Offset
218                0xFEFF,             // Length
219                ,, )
220        },
221
222        ResourceTemplate ()
223        {
224            WordSpace (0xC0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0xFF,
225                0xF6F7,             // Granularity
226                0xF8F9,             // Range Minimum
227                0xFAFB,             // Range Maximum
228                0xFCFD,             // Translation Offset
229                0xFEFF,             // Length
230                ,, )
231        },
232
233        ResourceTemplate ()
234        {
235            WordSpace (0xC0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x5A,
236                0xF6F7,             // Granularity
237                0xF8F9,             // Range Minimum
238                0xFAFB,             // Range Maximum
239                0xFCFD,             // Translation Offset
240                0xFEFF,             // Length
241                ,, )
242        },
243
244        ResourceTemplate ()
245        {
246            WordSpace (0xC0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x5A,
247                0xF6F7,             // Granularity
248                0xF8F9,             // Range Minimum
249                0xFAFB,             // Range Maximum
250                0xFCFD,             // Translation Offset
251                0xFEFF,             // Length
252                ,, )
253        },
254
255        ResourceTemplate ()
256        {
257            WordSpace (0xC0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x5A,
258                0xF6F7,             // Granularity
259                0xF8F9,             // Range Minimum
260                0xFAFB,             // Range Maximum
261                0xFCFD,             // Translation Offset
262                0xFEFF,             // Length
263                0x01, "", )
264        },
265
266        ResourceTemplate ()
267        {
268            WordSpace (0xC0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x5A,
269                0xF6F7,             // Granularity
270                0xF8F9,             // Range Minimum
271                0xFAFB,             // Range Maximum
272                0xFCFD,             // Translation Offset
273                0xFEFF,             // Length
274                0x0F, "P", )
275        },
276
277        ResourceTemplate ()
278        {
279            WordSpace (0xC0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x5A,
280                0xF6F7,             // Granularity
281                0xF8F9,             // Range Minimum
282                0xFAFB,             // Range Maximum
283                0xFCFD,             // Translation Offset
284                0xFEFF,             // Length
285                0xF0, "PATH", )
286        },
287
288        ResourceTemplate ()
289        {
290            WordSpace (0xC0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x5A,
291                0xF6F7,             // Granularity
292                0xF8F9,             // Range Minimum
293                0xFAFB,             // Range Maximum
294                0xFCFD,             // Translation Offset
295                0xFEFF,             // Length
296                0xFF, "!\"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !\"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !\"#$%&\'()*", )
297        },
298
299        ResourceTemplate ()
300        {
301            WordSpace (0xC0, ResourceConsumer, SubDecode, MinFixed, MaxFixed, 0x5A,
302                0xF6F7,             // Granularity
303                0xF8F9,             // Range Minimum
304                0xFAFB,             // Range Maximum
305                0xFCFD,             // Translation Offset
306                0xFEFF,             // Length
307                0xFF, "PATHPATHPATH", )
308        },
309
310        ResourceTemplate ()
311        {
312            WordSpace (0xC0, ResourceConsumer, SubDecode, MinFixed, MaxFixed, 0x00,
313                0x0000,             // Granularity
314                0x0000,             // Range Minimum
315                0x0000,             // Range Maximum
316                0x0000,             // Translation Offset
317                0x0000,             // Length
318                0xFF, "PATHPATHPATH", )
319        },
320
321        ResourceTemplate ()
322        {
323            WordSpace (0xC0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x5A,
324                0xF6F7,             // Granularity
325                0xF8F9,             // Range Minimum
326                0xFAFB,             // Range Maximum
327                0xFCFD,             // Translation Offset
328                0xFEFF,             // Length
329                0x0F,, )
330        }
331    })
332    /*
333     ACPI Specification, Revision 3.0, September 2, 2004
334     6.4.3.5.3   Word Address Space Descriptor
335     Memory Word Address Space Descriptor layout:
336     Byte 0 (Tag Bits): Value=10001000B (0x88) (Type = 1, Large item name = 0x8)
337     Byte 1 (Length, bits[7:0]): Variable: Value = 13 (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 16
365     bits) must be a number (2**n-1).
366     Byte 7 (Address space granularity, _GRA bits[15:8])
367     Byte 8 (Address range minimum, _MIN bits [7:0]):
368     For bridges that translate addresses, this is the address space
369     on the secondary side of the bridge
370     Byte 9 (Address range minimum, _MIN bits[15:8])
371     Byte 10 (Address range maximum, _MAX bits [7:0]): See comment for _MIN
372     Byte 11 (Address range maximum, _MAX bits[15:8])
373     Byte 12 (Address Translation offset, _TRA bits [7:0]):
374     For bridges that translate addresses across the bridge, this is the
375     offset that must be added to the address on the secondary side to obtain
376     the address on the primary side. Non-bridge devices must list 0 for all
377     Address Translation offset bits
378     Byte 13 (Address Translation offset, _TRA bits[15:8])
379     Byte 14 (Address Length, _LEN bits [7:0])
380     Byte 15 (Address Length, _LEN bits[15:8])
381     Byte 16 (Resource Source Index):
382     (Optional) Only present if Resource Source (below) is present. This
383     field gives an index to the specific resource descriptor that this
384     device consumes from in the current resource template for the device
385     object pointed to in Resource Source
386     String (Resource Source):
387     (Optional) If present, the device that uses this descriptor consumes
388     its resources from the resources produced by the named device object.
389     If not present, the device consumes its resources out of a global pool.
390     If not present, the device consumes this resource from its hierarchical
391     parent.
392     */
393    Name (P431, Package (0x1B)
394    {
395        /* Byte 4 (General Flags) of Word Address Space Descriptor */
396
397        ResourceTemplate ()
398        {
399            WordSpace (0xC0, ResourceProducer, PosDecode, MinNotFixed, MaxNotFixed, 0x0A,
400                0xF6F7,             // Granularity
401                0xF8F9,             // Range Minimum
402                0xFAFB,             // Range Maximum
403                0xFCFD,             // Translation Offset
404                0xFEFF,             // Length
405                ,, )
406        },
407
408        ResourceTemplate ()
409        {
410            WordSpace (0xC1, ResourceProducer, PosDecode, MinNotFixed, MaxFixed, 0x1A,
411                0xF6F7,             // Granularity
412                0xF8F9,             // Range Minimum
413                0xFAFB,             // Range Maximum
414                0xFCFD,             // Translation Offset
415                0xFEFF,             // Length
416                ,, )
417        },
418
419        ResourceTemplate ()
420        {
421            WordSpace (0xC2, ResourceProducer, PosDecode, MinFixed, MaxNotFixed, 0x2A,
422                0xF6F7,             // Granularity
423                0xF8F9,             // Range Minimum
424                0xFAFB,             // Range Maximum
425                0xFCFD,             // Translation Offset
426                0xFEFF,             // Length
427                ,, )
428        },
429
430        ResourceTemplate ()
431        {
432            WordSpace (0xC3, ResourceProducer, PosDecode, MinFixed, MaxFixed, 0x3A,
433                0xF6F7,             // Granularity
434                0xF8F9,             // Range Minimum
435                0xFAFB,             // Range Maximum
436                0xFCFD,             // Translation Offset
437                0xFEFF,             // Length
438                ,, )
439        },
440
441        ResourceTemplate ()
442        {
443            WordSpace (0xC4, ResourceProducer, SubDecode, MinNotFixed, MaxNotFixed, 0x4A,
444                0xF6F7,             // Granularity
445                0xF8F9,             // Range Minimum
446                0xFAFB,             // Range Maximum
447                0xFCFD,             // Translation Offset
448                0xFEFF,             // Length
449                ,, )
450        },
451
452        ResourceTemplate ()
453        {
454            WordSpace (0xC5, ResourceProducer, SubDecode, MinNotFixed, MaxFixed, 0x5A,
455                0xF6F7,             // Granularity
456                0xF8F9,             // Range Minimum
457                0xFAFB,             // Range Maximum
458                0xFCFD,             // Translation Offset
459                0xFEFF,             // Length
460                ,, )
461        },
462
463        ResourceTemplate ()
464        {
465            WordSpace (0xC6, ResourceProducer, SubDecode, MinFixed, MaxNotFixed, 0x6A,
466                0xF6F7,             // Granularity
467                0xF8F9,             // Range Minimum
468                0xFAFB,             // Range Maximum
469                0xFCFD,             // Translation Offset
470                0xFEFF,             // Length
471                ,, )
472        },
473
474        ResourceTemplate ()
475        {
476            WordSpace (0xC7, ResourceProducer, SubDecode, MinFixed, MaxFixed, 0x7A,
477                0xF6F7,             // Granularity
478                0xF8F9,             // Range Minimum
479                0xFAFB,             // Range Maximum
480                0xFCFD,             // Translation Offset
481                0xFEFF,             // Length
482                ,, )
483        },
484
485        ResourceTemplate ()
486        {
487            WordSpace (0xC8, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x8A,
488                0xF6F7,             // Granularity
489                0xF8F9,             // Range Minimum
490                0xFAFB,             // Range Maximum
491                0xFCFD,             // Translation Offset
492                0xFEFF,             // Length
493                ,, )
494        },
495
496        ResourceTemplate ()
497        {
498            WordSpace (0xC9, ResourceConsumer, PosDecode, MinNotFixed, MaxFixed, 0x9A,
499                0xF6F7,             // Granularity
500                0xF8F9,             // Range Minimum
501                0xFAFB,             // Range Maximum
502                0xFCFD,             // Translation Offset
503                0xFEFF,             // Length
504                ,, )
505        },
506
507        ResourceTemplate ()
508        {
509            WordSpace (0xCA, ResourceConsumer, PosDecode, MinFixed, MaxNotFixed, 0xAA,
510                0xF6F7,             // Granularity
511                0xF8F9,             // Range Minimum
512                0xFAFB,             // Range Maximum
513                0xFCFD,             // Translation Offset
514                0xFEFF,             // Length
515                ,, )
516        },
517
518        ResourceTemplate ()
519        {
520            WordSpace (0xCB, ResourceConsumer, PosDecode, MinFixed, MaxFixed, 0xBA,
521                0xF6F7,             // Granularity
522                0xF8F9,             // Range Minimum
523                0xFAFB,             // Range Maximum
524                0xFCFD,             // Translation Offset
525                0xFEFF,             // Length
526                ,, )
527        },
528
529        ResourceTemplate ()
530        {
531            WordSpace (0xCC, ResourceConsumer, SubDecode, MinNotFixed, MaxNotFixed, 0xCA,
532                0xF6F7,             // Granularity
533                0xF8F9,             // Range Minimum
534                0xFAFB,             // Range Maximum
535                0xFCFD,             // Translation Offset
536                0xFEFF,             // Length
537                ,, )
538        },
539
540        ResourceTemplate ()
541        {
542            WordSpace (0xCD, ResourceConsumer, SubDecode, MinNotFixed, MaxFixed, 0xDA,
543                0xF6F7,             // Granularity
544                0xF8F9,             // Range Minimum
545                0xFAFB,             // Range Maximum
546                0xFCFD,             // Translation Offset
547                0xFEFF,             // Length
548                ,, )
549        },
550
551        ResourceTemplate ()
552        {
553            WordSpace (0xCE, ResourceConsumer, SubDecode, MinFixed, MaxNotFixed, 0xEA,
554                0xF6F7,             // Granularity
555                0xF8F9,             // Range Minimum
556                0xFAFB,             // Range Maximum
557                0xFCFD,             // Translation Offset
558                0xFEFF,             // Length
559                ,, )
560        },
561
562        ResourceTemplate ()
563        {
564            WordSpace (0xFF, ResourceConsumer, SubDecode, MinFixed, MaxFixed, 0xFA,
565                0xF6F7,             // Granularity
566                0xF8F9,             // Range Minimum
567                0xFAFB,             // Range Maximum
568                0xFCFD,             // Translation Offset
569                0xFEFF,             // Length
570                ,, )
571        },
572
573        /* Byte 5 (Type Specific Flags) of Word Address Space Descriptor */
574
575        ResourceTemplate ()
576        {
577            WordSpace (0xC0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x00,
578                0xF6F7,             // Granularity
579                0xF8F9,             // Range Minimum
580                0xFAFB,             // Range Maximum
581                0xFCFD,             // Translation Offset
582                0xFEFF,             // Length
583                ,, )
584        },
585
586        ResourceTemplate ()
587        {
588            WordSpace (0xC0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0xFF,
589                0xF6F7,             // Granularity
590                0xF8F9,             // Range Minimum
591                0xFAFB,             // Range Maximum
592                0xFCFD,             // Translation Offset
593                0xFEFF,             // Length
594                ,, )
595        },
596
597        /* Particular cases */
598
599        ResourceTemplate ()
600        {
601            WordSpace (0xC0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x5A,
602                0xF6F7,             // Granularity
603                0xF8F9,             // Range Minimum
604                0xFAFB,             // Range Maximum
605                0xFCFD,             // Translation Offset
606                0xFEFF,             // Length
607                ,, )
608        },
609
610        ResourceTemplate ()
611        {
612            WordSpace (0xC0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x5A,
613                0xF6F7,             // Granularity
614                0xF8F9,             // Range Minimum
615                0xFAFB,             // Range Maximum
616                0xFCFD,             // Translation Offset
617                0xFEFF,             // Length
618                ,, )
619        },
620
621        /* Resource Source */
622
623        ResourceTemplate ()
624        {
625            WordSpace (0xC0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x5A,
626                0xF6F7,             // Granularity
627                0xF8F9,             // Range Minimum
628                0xFAFB,             // Range Maximum
629                0xFCFD,             // Translation Offset
630                0xFEFF,             // Length
631                0x01, "", )
632        },
633
634        ResourceTemplate ()
635        {
636            WordSpace (0xC0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x5A,
637                0xF6F7,             // Granularity
638                0xF8F9,             // Range Minimum
639                0xFAFB,             // Range Maximum
640                0xFCFD,             // Translation Offset
641                0xFEFF,             // Length
642                0x0F, "P", )
643        },
644
645        ResourceTemplate ()
646        {
647            WordSpace (0xC0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x5A,
648                0xF6F7,             // Granularity
649                0xF8F9,             // Range Minimum
650                0xFAFB,             // Range Maximum
651                0xFCFD,             // Translation Offset
652                0xFEFF,             // Length
653                0xF0, "PATH", )
654        },
655
656        ResourceTemplate ()
657        {
658            WordSpace (0xC0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x5A,
659                0xF6F7,             // Granularity
660                0xF8F9,             // Range Minimum
661                0xFAFB,             // Range Maximum
662                0xFCFD,             // Translation Offset
663                0xFEFF,             // Length
664                0xFF, "!\"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !\"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !\"#$%&\'()*", )
665        },
666
667        /* Particular cases */
668
669        ResourceTemplate ()
670        {
671            WordSpace (0xC0, ResourceConsumer, SubDecode, MinFixed, MaxFixed, 0x5A,
672                0xF6F7,             // Granularity
673                0xF8F9,             // Range Minimum
674                0xFAFB,             // Range Maximum
675                0xFCFD,             // Translation Offset
676                0xFEFF,             // Length
677                0xFF, "PATHPATHPATH", )
678        },
679
680        ResourceTemplate ()
681        {
682            WordSpace (0xC0, ResourceConsumer, SubDecode, MinFixed, MaxFixed, 0x00,
683                0x0000,             // Granularity
684                0x0000,             // Range Minimum
685                0x0000,             // Range Maximum
686                0x0000,             // Translation Offset
687                0x0000,             // Length
688                0xFF, "PATHPATHPATH", )
689        },
690
691        /* 20051021, relaxation for omitted ResourceSource (bug-fix 70 rejection) */
692
693        ResourceTemplate ()
694        {
695            WordSpace (0xC0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x5A,
696                0xF6F7,             // Granularity
697                0xF8F9,             // Range Minimum
698                0xFAFB,             // Range Maximum
699                0xFCFD,             // Translation Offset
700                0xFEFF,             // Length
701                0x0F,, )
702        }
703    })
704    Method (RT16, 0, Serialized)
705    {
706        /* Emit test header, set the filename */
707
708        THDR (__METHOD__, "WordSpace Resource Descriptor Macro", "wordspace.asl")
709        /* Main test case for packages above */
710
711        M330 (__METHOD__, 0x1B, "p430", P430, P431)
712        /* Check resource descriptor tag offsets */
713
714        Local0 = ResourceTemplate ()
715            {
716                WordSpace (0xC0, ResourceProducer, PosDecode, MinNotFixed, MaxNotFixed, 0x5A,
717                    0xF6F7,             // Granularity
718                    0xF8F9,             // Range Minimum
719                    0xFAFB,             // Range Maximum
720                    0xFCFD,             // Translation Offset
721                    0xFEFF,             // Length
722                    ,, )
723                WordSpace (0xC0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x5A,
724                    0xF6F7,             // Granularity
725                    0xF8F9,             // Range Minimum
726                    0xFAFB,             // Range Maximum
727                    0xFCFD,             // Translation Offset
728                    0xFEFF,             // Length
729                    ,, )
730            }
731        M331 (__METHOD__, 0x01, 0x21, 0x21, 0xA1, 0xA1, "_DEC")
732        M331 (__METHOD__, 0x02, 0x22, 0x22, 0xA2, 0xA2, "_MIF")
733        M331 (__METHOD__, 0x03, 0x23, 0x23, 0xA3, 0xA3, "_MAF")
734        M331 (__METHOD__, 0x07, 0x30, 0x30, 0xB0, 0xB0, "_GRA")
735        M331 (__METHOD__, 0x08, 0x40, 0x40, 0xC0, 0xC0, "_MIN")
736        M331 (__METHOD__, 0x09, 0x50, 0x50, 0xD0, 0xD0, "_MAX")
737        M331 (__METHOD__, 0x0A, 0x60, 0x60, 0xE0, 0xE0, "_TRA")
738        M331 (__METHOD__, 0x0B, 0x70, 0x70, 0xF0, 0xF0, "_LEN")
739    }
740