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 * Extended Space Resource Descriptor Macro 32 */ 33 Name (P432, Package (0x18) 34 { 35 ResourceTemplate () 36 { 37 ExtendedSpace (0xC0, ResourceProducer, PosDecode, MinNotFixed, MaxNotFixed, 0x0A, 38 0xD0D1D2D3D4D5D6D7, // Granularity 39 0xD8D9DADBDCDDDEDF, // Range Minimum 40 0xE0E1E2E3E4E5E6E7, // Range Maximum 41 0xE8E9EAEBECEDEEEF, // Translation Offset 42 0xF0F1F2F3F4F5F6F7, // Length 43 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 44 ) 45 }, 46 47 ResourceTemplate () 48 { 49 ExtendedSpace (0xC1, ResourceProducer, PosDecode, MinNotFixed, MaxFixed, 0x1A, 50 0xD0D1D2D3D4D5D6D7, // Granularity 51 0xD8D9DADBDCDDDEDF, // Range Minimum 52 0xE0E1E2E3E4E5E6E7, // Range Maximum 53 0xE8E9EAEBECEDEEEF, // Translation Offset 54 0xF0F1F2F3F4F5F6F7, // Length 55 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 56 ) 57 }, 58 59 ResourceTemplate () 60 { 61 ExtendedSpace (0xC2, ResourceProducer, PosDecode, MinFixed, MaxNotFixed, 0x2A, 62 0xD0D1D2D3D4D5D6D7, // Granularity 63 0xD8D9DADBDCDDDEDF, // Range Minimum 64 0xE0E1E2E3E4E5E6E7, // Range Maximum 65 0xE8E9EAEBECEDEEEF, // Translation Offset 66 0xF0F1F2F3F4F5F6F7, // Length 67 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 68 ) 69 }, 70 71 ResourceTemplate () 72 { 73 ExtendedSpace (0xC3, ResourceProducer, PosDecode, MinFixed, MaxFixed, 0x3A, 74 0xD0D1D2D3D4D5D6D7, // Granularity 75 0xD8D9DADBDCDDDEDF, // Range Minimum 76 0xE0E1E2E3E4E5E6E7, // Range Maximum 77 0xE8E9EAEBECEDEEEF, // Translation Offset 78 0xF0F1F2F3F4F5F6F7, // Length 79 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 80 ) 81 }, 82 83 ResourceTemplate () 84 { 85 ExtendedSpace (0xC4, ResourceProducer, SubDecode, MinNotFixed, MaxNotFixed, 0x4A, 86 0xD0D1D2D3D4D5D6D7, // Granularity 87 0xD8D9DADBDCDDDEDF, // Range Minimum 88 0xE0E1E2E3E4E5E6E7, // Range Maximum 89 0xE8E9EAEBECEDEEEF, // Translation Offset 90 0xF0F1F2F3F4F5F6F7, // Length 91 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 92 ) 93 }, 94 95 ResourceTemplate () 96 { 97 ExtendedSpace (0xC5, ResourceProducer, SubDecode, MinNotFixed, MaxFixed, 0x5A, 98 0xD0D1D2D3D4D5D6D7, // Granularity 99 0xD8D9DADBDCDDDEDF, // Range Minimum 100 0xE0E1E2E3E4E5E6E7, // Range Maximum 101 0xE8E9EAEBECEDEEEF, // Translation Offset 102 0xF0F1F2F3F4F5F6F7, // Length 103 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 104 ) 105 }, 106 107 ResourceTemplate () 108 { 109 ExtendedSpace (0xC6, ResourceProducer, SubDecode, MinFixed, MaxNotFixed, 0x6A, 110 0xD0D1D2D3D4D5D6D7, // Granularity 111 0xD8D9DADBDCDDDEDF, // Range Minimum 112 0xE0E1E2E3E4E5E6E7, // Range Maximum 113 0xE8E9EAEBECEDEEEF, // Translation Offset 114 0xF0F1F2F3F4F5F6F7, // Length 115 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 116 ) 117 }, 118 119 ResourceTemplate () 120 { 121 ExtendedSpace (0xC7, ResourceProducer, SubDecode, MinFixed, MaxFixed, 0x7A, 122 0xD0D1D2D3D4D5D6D7, // Granularity 123 0xD8D9DADBDCDDDEDF, // Range Minimum 124 0xE0E1E2E3E4E5E6E7, // Range Maximum 125 0xE8E9EAEBECEDEEEF, // Translation Offset 126 0xF0F1F2F3F4F5F6F7, // Length 127 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 128 ) 129 }, 130 131 ResourceTemplate () 132 { 133 ExtendedSpace (0xC8, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x8A, 134 0xD0D1D2D3D4D5D6D7, // Granularity 135 0xD8D9DADBDCDDDEDF, // Range Minimum 136 0xE0E1E2E3E4E5E6E7, // Range Maximum 137 0xE8E9EAEBECEDEEEF, // Translation Offset 138 0xF0F1F2F3F4F5F6F7, // Length 139 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 140 ) 141 }, 142 143 ResourceTemplate () 144 { 145 ExtendedSpace (0xC9, ResourceConsumer, PosDecode, MinNotFixed, MaxFixed, 0x9A, 146 0xD0D1D2D3D4D5D6D7, // Granularity 147 0xD8D9DADBDCDDDEDF, // Range Minimum 148 0xE0E1E2E3E4E5E6E7, // Range Maximum 149 0xE8E9EAEBECEDEEEF, // Translation Offset 150 0xF0F1F2F3F4F5F6F7, // Length 151 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 152 ) 153 }, 154 155 ResourceTemplate () 156 { 157 ExtendedSpace (0xCA, ResourceConsumer, PosDecode, MinFixed, MaxNotFixed, 0xAA, 158 0xD0D1D2D3D4D5D6D7, // Granularity 159 0xD8D9DADBDCDDDEDF, // Range Minimum 160 0xE0E1E2E3E4E5E6E7, // Range Maximum 161 0xE8E9EAEBECEDEEEF, // Translation Offset 162 0xF0F1F2F3F4F5F6F7, // Length 163 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 164 ) 165 }, 166 167 ResourceTemplate () 168 { 169 ExtendedSpace (0xCB, ResourceConsumer, PosDecode, MinFixed, MaxFixed, 0xBA, 170 0xD0D1D2D3D4D5D6D7, // Granularity 171 0xD8D9DADBDCDDDEDF, // Range Minimum 172 0xE0E1E2E3E4E5E6E7, // Range Maximum 173 0xE8E9EAEBECEDEEEF, // Translation Offset 174 0xF0F1F2F3F4F5F6F7, // Length 175 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 176 ) 177 }, 178 179 ResourceTemplate () 180 { 181 ExtendedSpace (0xCC, ResourceConsumer, SubDecode, MinNotFixed, MaxNotFixed, 0xCA, 182 0xD0D1D2D3D4D5D6D7, // Granularity 183 0xD8D9DADBDCDDDEDF, // Range Minimum 184 0xE0E1E2E3E4E5E6E7, // Range Maximum 185 0xE8E9EAEBECEDEEEF, // Translation Offset 186 0xF0F1F2F3F4F5F6F7, // Length 187 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 188 ) 189 }, 190 191 ResourceTemplate () 192 { 193 ExtendedSpace (0xCD, ResourceConsumer, SubDecode, MinNotFixed, MaxFixed, 0xDA, 194 0xD0D1D2D3D4D5D6D7, // Granularity 195 0xD8D9DADBDCDDDEDF, // Range Minimum 196 0xE0E1E2E3E4E5E6E7, // Range Maximum 197 0xE8E9EAEBECEDEEEF, // Translation Offset 198 0xF0F1F2F3F4F5F6F7, // Length 199 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 200 ) 201 }, 202 203 ResourceTemplate () 204 { 205 ExtendedSpace (0xCE, ResourceConsumer, SubDecode, MinFixed, MaxNotFixed, 0xEA, 206 0xD0D1D2D3D4D5D6D7, // Granularity 207 0xD8D9DADBDCDDDEDF, // Range Minimum 208 0xE0E1E2E3E4E5E6E7, // Range Maximum 209 0xE8E9EAEBECEDEEEF, // Translation Offset 210 0xF0F1F2F3F4F5F6F7, // Length 211 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 212 ) 213 }, 214 215 ResourceTemplate () 216 { 217 ExtendedSpace (0xFF, ResourceConsumer, SubDecode, MinFixed, MaxFixed, 0xFA, 218 0xD0D1D2D3D4D5D6D7, // Granularity 219 0xD8D9DADBDCDDDEDF, // Range Minimum 220 0xE0E1E2E3E4E5E6E7, // Range Maximum 221 0xE8E9EAEBECEDEEEF, // Translation Offset 222 0xF0F1F2F3F4F5F6F7, // Length 223 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 224 ) 225 }, 226 227 ResourceTemplate () 228 { 229 ExtendedSpace (0xC0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x00, 230 0xD0D1D2D3D4D5D6D7, // Granularity 231 0xD8D9DADBDCDDDEDF, // Range Minimum 232 0xE0E1E2E3E4E5E6E7, // Range Maximum 233 0xE8E9EAEBECEDEEEF, // Translation Offset 234 0xF0F1F2F3F4F5F6F7, // Length 235 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 236 ) 237 }, 238 239 ResourceTemplate () 240 { 241 ExtendedSpace (0xC0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0xFF, 242 0xD0D1D2D3D4D5D6D7, // Granularity 243 0xD8D9DADBDCDDDEDF, // Range Minimum 244 0xE0E1E2E3E4E5E6E7, // Range Maximum 245 0xE8E9EAEBECEDEEEF, // Translation Offset 246 0xF0F1F2F3F4F5F6F7, // Length 247 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 248 ) 249 }, 250 251 ResourceTemplate () 252 { 253 ExtendedSpace (0xC0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x5A, 254 0xD0D1D2D3D4D5D6D7, // Granularity 255 0xD8D9DADBDCDDDEDF, // Range Minimum 256 0xE0E1E2E3E4E5E6E7, // Range Maximum 257 0xE8E9EAEBECEDEEEF, // Translation Offset 258 0xF0F1F2F3F4F5F6F7, // Length 259 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 260 ) 261 }, 262 263 ResourceTemplate () 264 { 265 ExtendedSpace (0xC0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x5A, 266 0xD0D1D2D3D4D5D6D7, // Granularity 267 0xD8D9DADBDCDDDEDF, // Range Minimum 268 0xE0E1E2E3E4E5E6E7, // Range Maximum 269 0xE8E9EAEBECEDEEEF, // Translation Offset 270 0xF0F1F2F3F4F5F6F7, // Length 271 0x0000000000000000, // Type-Specific Attributes 272 ) 273 }, 274 275 ResourceTemplate () 276 { 277 ExtendedSpace (0xC0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x5A, 278 0xD0D1D2D3D4D5D6D7, // Granularity 279 0xD8D9DADBDCDDDEDF, // Range Minimum 280 0xE0E1E2E3E4E5E6E7, // Range Maximum 281 0xE8E9EAEBECEDEEEF, // Translation Offset 282 0xF0F1F2F3F4F5F6F7, // Length 283 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 284 ) 285 }, 286 287 ResourceTemplate () 288 { 289 ExtendedSpace (0xC0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x5A, 290 0xD0D1D2D3D4D5D6D7, // Granularity 291 0xD8D9DADBDCDDDEDF, // Range Minimum 292 0xE0E1E2E3E4E5E6E7, // Range Maximum 293 0xE8E9EAEBECEDEEEF, // Translation Offset 294 0xF0F1F2F3F4F5F6F7, // Length 295 0x0000000000000000, // Type-Specific Attributes 296 ) 297 }, 298 299 ResourceTemplate () 300 { 301 ExtendedSpace (0xC0, ResourceConsumer, SubDecode, MinFixed, MaxFixed, 0x5A, 302 0xD0D1D2D3D4D5D6D7, // Granularity 303 0xD8D9DADBDCDDDEDF, // Range Minimum 304 0xE0E1E2E3E4E5E6E7, // Range Maximum 305 0xE8E9EAEBECEDEEEF, // Translation Offset 306 0xF0F1F2F3F4F5F6F7, // Length 307 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 308 ) 309 }, 310 311 ResourceTemplate () 312 { 313 ExtendedSpace (0xC0, ResourceConsumer, SubDecode, MinFixed, MaxFixed, 0x00, 314 0x0000000000000000, // Granularity 315 0x0000000000000000, // Range Minimum 316 0x0000000000000000, // Range Maximum 317 0x0000000000000000, // Translation Offset 318 0x0000000000000000, // Length 319 0x0000000000000000, // Type-Specific Attributes 320 ) 321 } 322 }) 323 /* 324 ACPI Specification, Revision 3.0, September 2, 2004 325 6.4.3.5.4 Extended Address Space Descriptor 326 Space Extended Address Space Descriptor layout: 327 Byte 0 (Tag Bits): Value=10001011B (0x8b) (Type = 1, Large item name = 0xB) 328 Byte 1 (Length, bits[7:0]): Variable: Value = 53 (minimum) 329 Byte 2 (Length, bits[15:8]): Variable: Value = 0 (minimum) 330 Byte 3 (Resource Type): 331 192-255 Hardware Vendor Defined 332 Byte 4 (General Flags): 333 Bits[7:4] Reserved (must be 0) 334 Bit[3] Min Address Fixed, _MAF: 335 1 The specified maximum address is fixed 336 0 The specified maximum address is not fixed 337 and can be changed 338 Bit[2] Max Address Fixed,_MIF: 339 1 The specified minimum address is fixed 340 0 The specified minimum address is not fixed 341 and can be changed 342 Bit[1] Decode Type, _DEC: 343 1 This bridge subtractively decodes this address 344 (top level bridges only) 345 0 This bridge positively decodes this address 346 Bit[0] Consumer/Producer: 347 1-This device consumes this resource 348 0-This device produces and consumes this resource 349 Byte 5 (Type Specific Flags): 350 Flags that are specific to each resource type. The meaning of the flags 351 in this field depends on the value of the Resource Type field (see above) 352 Byte 6 (Revision ID): 353 Indicates the revision of the Extended Address Space descriptor. 354 For ACPI 3.0, this value is 1. 355 Byte 7 (Reserved): 0 356 Byte 8 (Address space granularity, _GRA bits[7:0]): 357 A set bit in this mask means that this bit is decoded. All bits less 358 significant than the most significant set bit must be set. (in other 359 words, the value of the full Address Space Granularity field (all 32 360 bits) must be a number (2**n-1). 361 Byte 9 (Address space granularity, _GRA bits[15:8]) 362 Byte 10 (Address space granularity, _GRA bits[23:16]) 363 Byte 11 (Address space granularity, _GRA bits[31:24]) 364 Byte 12 (Address space granularity, _GRA bits[39:32]) 365 Byte 13 (Address space granularity, _GRA bits[47:40]) 366 Byte 14 (Address space granularity, _GRA bits[55:48]) 367 Byte 15 (Address space granularity, _GRA bits[63:56]) 368 Byte 16 (Address range minimum, _MIN bits [7:0]): 369 For bridges that translate addresses, this is the address space 370 on the secondary side of the bridge 371 Byte 17 (Address range minimum, _MIN bits[15:8]) 372 Byte 18 (Address range minimum, _MIN bits[23:16]) 373 Byte 19 (Address range minimum, _MIN bits[31:24]) 374 Byte 20 (Address range minimum, _MIN bits[39:32]) 375 Byte 21 (Address range minimum, _MIN bits[47:40]) 376 Byte 22 (Address range minimum, _MIN bits[55:48]) 377 Byte 23 (Address range minimum, _MIN bits[63:56]) 378 Byte 24 (Address range maximum, _MAX bits [7:0]): See comment for _MIN 379 Byte 25 (Address range maximum, _MAX bits[15:8]) 380 Byte 26 (Address range maximum, _MAX bits[23:16]) 381 Byte 27 (Address range maximum, _MAX bits[31:24]) 382 Byte 28 (Address range maximum, _MAX bits[39:32]) 383 Byte 29 (Address range maximum, _MAX bits[47:40]) 384 Byte 30 (Address range maximum, _MAX bits[55:48]) 385 Byte 31 (Address range maximum, _MAX bits[63:56]) 386 Byte 32 (Address Translation offset, _TRA bits [7:0]): 387 For bridges that translate addresses across the bridge, this is the 388 offset that must be added to the address on the secondary side to obtain 389 the address on the primary side. Non-bridge devices must list 0 for all 390 Address Translation offset bits 391 Byte 33 (Address Translation offset, _TRA bits[15:8]) 392 Byte 34 (Address Translation offset, _TRA bits[23:16]) 393 Byte 35 (Address Translation offset, _TRA bits[31:24]) 394 Byte 36 (Address Translation offset, _TRA bits[39:32]) 395 Byte 37 (Address Translation offset, _TRA bits[47:40]) 396 Byte 38 (Address Translation offset, _TRA bits[55:48]) 397 Byte 39 (Address Translation offset, _TRA bits[63:56]) 398 Byte 40 (Address Length, _LEN bits [7:0]) 399 Byte 41 (Address Length, _LEN bits[15:8]) 400 Byte 42 (Address Length, _LEN bits[23:16]) 401 Byte 43 (Address Length, _LEN bits[31:24]) 402 Byte 44 (Address Length, _LEN bits[39:32]) 403 Byte 45 (Address Length, _LEN bits[47:40]) 404 Byte 46 (Address Length, _LEN bits[55:48]) 405 Byte 47 (Address Length, _LEN bits[63:56]) 406 Byte 48 (Type Specific Attribute, _ATT bits [7:0]): 407 Attributes that are specific to each resource type. The meaning 408 of the attributes in this field depends on the value of the Resource 409 Type field (see above). For the Memory Resource Type, the definition 410 is defined section 6.4.3.5.4.1. For other Resource Types, this field 411 is reserved to 0 412 Byte 49 (Type Specific Attribute, _ATT bits[15:8]) 413 Byte 50 (Type Specific Attribute, _ATT bits[23:16]) 414 Byte 51 (Type Specific Attribute, _ATT bits[31:24]) 415 Byte 52 (Type Specific Attribute, _ATT bits[39:32]) 416 Byte 53 (Type Specific Attribute, _ATT bits[47:40]) 417 Byte 54 (Type Specific Attribute, _ATT bits[55:48]) 418 Byte 55 (Type Specific Attribute, _ATT bits[63:56]) 419 */ 420 Name (P433, Package (0x18) 421 { 422 /* Byte 4 (General Flags) of Extended Address Space Descriptor */ 423 424 ResourceTemplate () 425 { 426 ExtendedSpace (0xC0, ResourceProducer, PosDecode, MinNotFixed, MaxNotFixed, 0x0A, 427 0xD0D1D2D3D4D5D6D7, // Granularity 428 0xD8D9DADBDCDDDEDF, // Range Minimum 429 0xE0E1E2E3E4E5E6E7, // Range Maximum 430 0xE8E9EAEBECEDEEEF, // Translation Offset 431 0xF0F1F2F3F4F5F6F7, // Length 432 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 433 ) 434 }, 435 436 ResourceTemplate () 437 { 438 ExtendedSpace (0xC1, ResourceProducer, PosDecode, MinNotFixed, MaxFixed, 0x1A, 439 0xD0D1D2D3D4D5D6D7, // Granularity 440 0xD8D9DADBDCDDDEDF, // Range Minimum 441 0xE0E1E2E3E4E5E6E7, // Range Maximum 442 0xE8E9EAEBECEDEEEF, // Translation Offset 443 0xF0F1F2F3F4F5F6F7, // Length 444 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 445 ) 446 }, 447 448 ResourceTemplate () 449 { 450 ExtendedSpace (0xC2, ResourceProducer, PosDecode, MinFixed, MaxNotFixed, 0x2A, 451 0xD0D1D2D3D4D5D6D7, // Granularity 452 0xD8D9DADBDCDDDEDF, // Range Minimum 453 0xE0E1E2E3E4E5E6E7, // Range Maximum 454 0xE8E9EAEBECEDEEEF, // Translation Offset 455 0xF0F1F2F3F4F5F6F7, // Length 456 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 457 ) 458 }, 459 460 ResourceTemplate () 461 { 462 ExtendedSpace (0xC3, ResourceProducer, PosDecode, MinFixed, MaxFixed, 0x3A, 463 0xD0D1D2D3D4D5D6D7, // Granularity 464 0xD8D9DADBDCDDDEDF, // Range Minimum 465 0xE0E1E2E3E4E5E6E7, // Range Maximum 466 0xE8E9EAEBECEDEEEF, // Translation Offset 467 0xF0F1F2F3F4F5F6F7, // Length 468 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 469 ) 470 }, 471 472 ResourceTemplate () 473 { 474 ExtendedSpace (0xC4, ResourceProducer, SubDecode, MinNotFixed, MaxNotFixed, 0x4A, 475 0xD0D1D2D3D4D5D6D7, // Granularity 476 0xD8D9DADBDCDDDEDF, // Range Minimum 477 0xE0E1E2E3E4E5E6E7, // Range Maximum 478 0xE8E9EAEBECEDEEEF, // Translation Offset 479 0xF0F1F2F3F4F5F6F7, // Length 480 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 481 ) 482 }, 483 484 ResourceTemplate () 485 { 486 ExtendedSpace (0xC5, ResourceProducer, SubDecode, MinNotFixed, MaxFixed, 0x5A, 487 0xD0D1D2D3D4D5D6D7, // Granularity 488 0xD8D9DADBDCDDDEDF, // Range Minimum 489 0xE0E1E2E3E4E5E6E7, // Range Maximum 490 0xE8E9EAEBECEDEEEF, // Translation Offset 491 0xF0F1F2F3F4F5F6F7, // Length 492 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 493 ) 494 }, 495 496 ResourceTemplate () 497 { 498 ExtendedSpace (0xC6, ResourceProducer, SubDecode, MinFixed, MaxNotFixed, 0x6A, 499 0xD0D1D2D3D4D5D6D7, // Granularity 500 0xD8D9DADBDCDDDEDF, // Range Minimum 501 0xE0E1E2E3E4E5E6E7, // Range Maximum 502 0xE8E9EAEBECEDEEEF, // Translation Offset 503 0xF0F1F2F3F4F5F6F7, // Length 504 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 505 ) 506 }, 507 508 ResourceTemplate () 509 { 510 ExtendedSpace (0xC7, ResourceProducer, SubDecode, MinFixed, MaxFixed, 0x7A, 511 0xD0D1D2D3D4D5D6D7, // Granularity 512 0xD8D9DADBDCDDDEDF, // Range Minimum 513 0xE0E1E2E3E4E5E6E7, // Range Maximum 514 0xE8E9EAEBECEDEEEF, // Translation Offset 515 0xF0F1F2F3F4F5F6F7, // Length 516 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 517 ) 518 }, 519 520 ResourceTemplate () 521 { 522 ExtendedSpace (0xC8, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x8A, 523 0xD0D1D2D3D4D5D6D7, // Granularity 524 0xD8D9DADBDCDDDEDF, // Range Minimum 525 0xE0E1E2E3E4E5E6E7, // Range Maximum 526 0xE8E9EAEBECEDEEEF, // Translation Offset 527 0xF0F1F2F3F4F5F6F7, // Length 528 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 529 ) 530 }, 531 532 ResourceTemplate () 533 { 534 ExtendedSpace (0xC9, ResourceConsumer, PosDecode, MinNotFixed, MaxFixed, 0x9A, 535 0xD0D1D2D3D4D5D6D7, // Granularity 536 0xD8D9DADBDCDDDEDF, // Range Minimum 537 0xE0E1E2E3E4E5E6E7, // Range Maximum 538 0xE8E9EAEBECEDEEEF, // Translation Offset 539 0xF0F1F2F3F4F5F6F7, // Length 540 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 541 ) 542 }, 543 544 ResourceTemplate () 545 { 546 ExtendedSpace (0xCA, ResourceConsumer, PosDecode, MinFixed, MaxNotFixed, 0xAA, 547 0xD0D1D2D3D4D5D6D7, // Granularity 548 0xD8D9DADBDCDDDEDF, // Range Minimum 549 0xE0E1E2E3E4E5E6E7, // Range Maximum 550 0xE8E9EAEBECEDEEEF, // Translation Offset 551 0xF0F1F2F3F4F5F6F7, // Length 552 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 553 ) 554 }, 555 556 ResourceTemplate () 557 { 558 ExtendedSpace (0xCB, ResourceConsumer, PosDecode, MinFixed, MaxFixed, 0xBA, 559 0xD0D1D2D3D4D5D6D7, // Granularity 560 0xD8D9DADBDCDDDEDF, // Range Minimum 561 0xE0E1E2E3E4E5E6E7, // Range Maximum 562 0xE8E9EAEBECEDEEEF, // Translation Offset 563 0xF0F1F2F3F4F5F6F7, // Length 564 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 565 ) 566 }, 567 568 ResourceTemplate () 569 { 570 ExtendedSpace (0xCC, ResourceConsumer, SubDecode, MinNotFixed, MaxNotFixed, 0xCA, 571 0xD0D1D2D3D4D5D6D7, // Granularity 572 0xD8D9DADBDCDDDEDF, // Range Minimum 573 0xE0E1E2E3E4E5E6E7, // Range Maximum 574 0xE8E9EAEBECEDEEEF, // Translation Offset 575 0xF0F1F2F3F4F5F6F7, // Length 576 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 577 ) 578 }, 579 580 ResourceTemplate () 581 { 582 ExtendedSpace (0xCD, ResourceConsumer, SubDecode, MinNotFixed, MaxFixed, 0xDA, 583 0xD0D1D2D3D4D5D6D7, // Granularity 584 0xD8D9DADBDCDDDEDF, // Range Minimum 585 0xE0E1E2E3E4E5E6E7, // Range Maximum 586 0xE8E9EAEBECEDEEEF, // Translation Offset 587 0xF0F1F2F3F4F5F6F7, // Length 588 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 589 ) 590 }, 591 592 ResourceTemplate () 593 { 594 ExtendedSpace (0xCE, ResourceConsumer, SubDecode, MinFixed, MaxNotFixed, 0xEA, 595 0xD0D1D2D3D4D5D6D7, // Granularity 596 0xD8D9DADBDCDDDEDF, // Range Minimum 597 0xE0E1E2E3E4E5E6E7, // Range Maximum 598 0xE8E9EAEBECEDEEEF, // Translation Offset 599 0xF0F1F2F3F4F5F6F7, // Length 600 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 601 ) 602 }, 603 604 ResourceTemplate () 605 { 606 ExtendedSpace (0xFF, ResourceConsumer, SubDecode, MinFixed, MaxFixed, 0xFA, 607 0xD0D1D2D3D4D5D6D7, // Granularity 608 0xD8D9DADBDCDDDEDF, // Range Minimum 609 0xE0E1E2E3E4E5E6E7, // Range Maximum 610 0xE8E9EAEBECEDEEEF, // Translation Offset 611 0xF0F1F2F3F4F5F6F7, // Length 612 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 613 ) 614 }, 615 616 /* Byte 5 (Type Specific Flags) of Extended Address Space Descriptor */ 617 618 ResourceTemplate () 619 { 620 ExtendedSpace (0xC0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x00, 621 0xD0D1D2D3D4D5D6D7, // Granularity 622 0xD8D9DADBDCDDDEDF, // Range Minimum 623 0xE0E1E2E3E4E5E6E7, // Range Maximum 624 0xE8E9EAEBECEDEEEF, // Translation Offset 625 0xF0F1F2F3F4F5F6F7, // Length 626 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 627 ) 628 }, 629 630 ResourceTemplate () 631 { 632 ExtendedSpace (0xC0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0xFF, 633 0xD0D1D2D3D4D5D6D7, // Granularity 634 0xD8D9DADBDCDDDEDF, // Range Minimum 635 0xE0E1E2E3E4E5E6E7, // Range Maximum 636 0xE8E9EAEBECEDEEEF, // Translation Offset 637 0xF0F1F2F3F4F5F6F7, // Length 638 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 639 ) 640 }, 641 642 /* Particular cases */ 643 644 ResourceTemplate () 645 { 646 ExtendedSpace (0xC0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x5A, 647 0xD0D1D2D3D4D5D6D7, // Granularity 648 0xD8D9DADBDCDDDEDF, // Range Minimum 649 0xE0E1E2E3E4E5E6E7, // Range Maximum 650 0xE8E9EAEBECEDEEEF, // Translation Offset 651 0xF0F1F2F3F4F5F6F7, // Length 652 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 653 ) 654 }, 655 656 ResourceTemplate () 657 { 658 ExtendedSpace (0xC0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x5A, 659 0xD0D1D2D3D4D5D6D7, // Granularity 660 0xD8D9DADBDCDDDEDF, // Range Minimum 661 0xE0E1E2E3E4E5E6E7, // Range Maximum 662 0xE8E9EAEBECEDEEEF, // Translation Offset 663 0xF0F1F2F3F4F5F6F7, // Length 664 0x0000000000000000, // Type-Specific Attributes 665 ) 666 }, 667 668 ResourceTemplate () 669 { 670 ExtendedSpace (0xC0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x5A, 671 0xD0D1D2D3D4D5D6D7, // Granularity 672 0xD8D9DADBDCDDDEDF, // Range Minimum 673 0xE0E1E2E3E4E5E6E7, // Range Maximum 674 0xE8E9EAEBECEDEEEF, // Translation Offset 675 0xF0F1F2F3F4F5F6F7, // Length 676 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 677 ) 678 }, 679 680 ResourceTemplate () 681 { 682 ExtendedSpace (0xC0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x5A, 683 0xD0D1D2D3D4D5D6D7, // Granularity 684 0xD8D9DADBDCDDDEDF, // Range Minimum 685 0xE0E1E2E3E4E5E6E7, // Range Maximum 686 0xE8E9EAEBECEDEEEF, // Translation Offset 687 0xF0F1F2F3F4F5F6F7, // Length 688 0x0000000000000000, // Type-Specific Attributes 689 ) 690 }, 691 692 ResourceTemplate () 693 { 694 ExtendedSpace (0xC0, ResourceConsumer, SubDecode, MinFixed, MaxFixed, 0x5A, 695 0xD0D1D2D3D4D5D6D7, // Granularity 696 0xD8D9DADBDCDDDEDF, // Range Minimum 697 0xE0E1E2E3E4E5E6E7, // Range Maximum 698 0xE8E9EAEBECEDEEEF, // Translation Offset 699 0xF0F1F2F3F4F5F6F7, // Length 700 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 701 ) 702 }, 703 704 ResourceTemplate () 705 { 706 ExtendedSpace (0xC0, ResourceConsumer, SubDecode, MinFixed, MaxFixed, 0x00, 707 0x0000000000000000, // Granularity 708 0x0000000000000000, // Range Minimum 709 0x0000000000000000, // Range Maximum 710 0x0000000000000000, // Translation Offset 711 0x0000000000000000, // Length 712 0x0000000000000000, // Type-Specific Attributes 713 ) 714 } 715 }) 716 Method (RT17, 0, Serialized) 717 { 718 /* Emit test header, set the filename */ 719 720 THDR (__METHOD__, "ExtendedSpace Resource Descriptor Macro", "extendedspace.asl") 721 /* Main test case for packages above */ 722 723 M330 (__METHOD__, 0x18, "p432", P432, P433) 724 /* Check resource descriptor tag offsets */ 725 726 Local0 = ResourceTemplate () 727 { 728 ExtendedSpace (0xC0, ResourceProducer, PosDecode, MinNotFixed, MaxNotFixed, 0x5A, 729 0xD0D1D2D3D4D5D6D7, // Granularity 730 0xD8D9DADBDCDDDEDF, // Range Minimum 731 0xE0E1E2E3E4E5E6E7, // Range Maximum 732 0xE8E9EAEBECEDEEEF, // Translation Offset 733 0xF0F1F2F3F4F5F6F7, // Length 734 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 735 ) 736 ExtendedSpace (0xC0, ResourceConsumer, PosDecode, MinNotFixed, MaxNotFixed, 0x5A, 737 0xD0D1D2D3D4D5D6D7, // Granularity 738 0xD8D9DADBDCDDDEDF, // Range Minimum 739 0xE0E1E2E3E4E5E6E7, // Range Maximum 740 0xE8E9EAEBECEDEEEF, // Translation Offset 741 0xF0F1F2F3F4F5F6F7, // Length 742 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 743 ) 744 } 745 M331 (__METHOD__, 0x01, 0x21, 0x21, 0x01E1, 0x01E1, "_DEC") 746 M331 (__METHOD__, 0x02, 0x22, 0x22, 0x01E2, 0x01E2, "_MIF") 747 M331 (__METHOD__, 0x03, 0x23, 0x23, 0x01E3, 0x01E3, "_MAF") 748 M331 (__METHOD__, 0x04, 0x40, 0x40, 0x0200, 0x0200, "_GRA") 749 M331 (__METHOD__, 0x05, 0x80, 0x80, 0x0240, 0x0240, "_MIN") 750 M331 (__METHOD__, 0x06, 0xC0, 0xC0, 0x0280, 0x0280, "_MAX") 751 M331 (__METHOD__, 0x07, 0x0100, 0x0100, 0x02C0, 0x02C0, "_TRA") 752 M331 (__METHOD__, 0x08, 0x0140, 0x0140, 0x0300, 0x0300, "_LEN") 753 M331 (__METHOD__, 0x09, 0x0180, 0x0180, 0x0340, 0x0340, "_ATT") 754 } 755