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