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 IO Resource Descriptor Macro 32 */ 33 Name (P422, Package (0x22) 34 { 35 ResourceTemplate () 36 { 37 ExtendedIO (ResourceProducer, MinNotFixed, MaxNotFixed, PosDecode, EntireRange, 38 0xD0D1D2D3D4D5D6D7, // Granularity 39 0xD8D9DADBDCDDDEDF, // Range Minimum 40 0xE0E1E2E3E4E5E6E7, // Range Maximum 41 0xE8E9EAEBECEDEEEF, // Translation Offset 42 0xF0F1F2F3F4F5F6F7, // Length 43 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 44 , TypeStatic, DenseTranslation) 45 }, 46 47 ResourceTemplate () 48 { 49 ExtendedIO (ResourceProducer, MinNotFixed, MaxNotFixed, SubDecode, EntireRange, 50 0xD0D1D2D3D4D5D6D7, // Granularity 51 0xD8D9DADBDCDDDEDF, // Range Minimum 52 0xE0E1E2E3E4E5E6E7, // Range Maximum 53 0xE8E9EAEBECEDEEEF, // Translation Offset 54 0xF0F1F2F3F4F5F6F7, // Length 55 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 56 , TypeStatic, DenseTranslation) 57 }, 58 59 ResourceTemplate () 60 { 61 ExtendedIO (ResourceProducer, MinNotFixed, MaxFixed, PosDecode, EntireRange, 62 0xD0D1D2D3D4D5D6D7, // Granularity 63 0xD8D9DADBDCDDDEDF, // Range Minimum 64 0xE0E1E2E3E4E5E6E7, // Range Maximum 65 0xE8E9EAEBECEDEEEF, // Translation Offset 66 0xF0F1F2F3F4F5F6F7, // Length 67 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 68 , TypeStatic, DenseTranslation) 69 }, 70 71 ResourceTemplate () 72 { 73 ExtendedIO (ResourceProducer, MinNotFixed, MaxFixed, SubDecode, EntireRange, 74 0xD0D1D2D3D4D5D6D7, // Granularity 75 0xD8D9DADBDCDDDEDF, // Range Minimum 76 0xE0E1E2E3E4E5E6E7, // Range Maximum 77 0xE8E9EAEBECEDEEEF, // Translation Offset 78 0xF0F1F2F3F4F5F6F7, // Length 79 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 80 , TypeStatic, DenseTranslation) 81 }, 82 83 ResourceTemplate () 84 { 85 ExtendedIO (ResourceProducer, MinFixed, MaxNotFixed, PosDecode, EntireRange, 86 0xD0D1D2D3D4D5D6D7, // Granularity 87 0xD8D9DADBDCDDDEDF, // Range Minimum 88 0xE0E1E2E3E4E5E6E7, // Range Maximum 89 0xE8E9EAEBECEDEEEF, // Translation Offset 90 0xF0F1F2F3F4F5F6F7, // Length 91 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 92 , TypeStatic, DenseTranslation) 93 }, 94 95 ResourceTemplate () 96 { 97 ExtendedIO (ResourceProducer, MinFixed, MaxNotFixed, SubDecode, EntireRange, 98 0xD0D1D2D3D4D5D6D7, // Granularity 99 0xD8D9DADBDCDDDEDF, // Range Minimum 100 0xE0E1E2E3E4E5E6E7, // Range Maximum 101 0xE8E9EAEBECEDEEEF, // Translation Offset 102 0xF0F1F2F3F4F5F6F7, // Length 103 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 104 , TypeStatic, DenseTranslation) 105 }, 106 107 ResourceTemplate () 108 { 109 ExtendedIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, 110 0xD0D1D2D3D4D5D6D7, // Granularity 111 0xD8D9DADBDCDDDEDF, // Range Minimum 112 0xE0E1E2E3E4E5E6E7, // Range Maximum 113 0xE8E9EAEBECEDEEEF, // Translation Offset 114 0xF0F1F2F3F4F5F6F7, // Length 115 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 116 , TypeStatic, DenseTranslation) 117 }, 118 119 ResourceTemplate () 120 { 121 ExtendedIO (ResourceProducer, MinFixed, MaxFixed, SubDecode, EntireRange, 122 0xD0D1D2D3D4D5D6D7, // Granularity 123 0xD8D9DADBDCDDDEDF, // Range Minimum 124 0xE0E1E2E3E4E5E6E7, // Range Maximum 125 0xE8E9EAEBECEDEEEF, // Translation Offset 126 0xF0F1F2F3F4F5F6F7, // Length 127 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 128 , TypeStatic, DenseTranslation) 129 }, 130 131 ResourceTemplate () 132 { 133 ExtendedIO (ResourceConsumer, MinNotFixed, MaxNotFixed, PosDecode, EntireRange, 134 0xD0D1D2D3D4D5D6D7, // Granularity 135 0xD8D9DADBDCDDDEDF, // Range Minimum 136 0xE0E1E2E3E4E5E6E7, // Range Maximum 137 0xE8E9EAEBECEDEEEF, // Translation Offset 138 0xF0F1F2F3F4F5F6F7, // Length 139 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 140 , TypeStatic, DenseTranslation) 141 }, 142 143 ResourceTemplate () 144 { 145 ExtendedIO (ResourceConsumer, MinNotFixed, MaxNotFixed, SubDecode, EntireRange, 146 0xD0D1D2D3D4D5D6D7, // Granularity 147 0xD8D9DADBDCDDDEDF, // Range Minimum 148 0xE0E1E2E3E4E5E6E7, // Range Maximum 149 0xE8E9EAEBECEDEEEF, // Translation Offset 150 0xF0F1F2F3F4F5F6F7, // Length 151 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 152 , TypeStatic, DenseTranslation) 153 }, 154 155 ResourceTemplate () 156 { 157 ExtendedIO (ResourceConsumer, MinNotFixed, MaxFixed, PosDecode, EntireRange, 158 0xD0D1D2D3D4D5D6D7, // Granularity 159 0xD8D9DADBDCDDDEDF, // Range Minimum 160 0xE0E1E2E3E4E5E6E7, // Range Maximum 161 0xE8E9EAEBECEDEEEF, // Translation Offset 162 0xF0F1F2F3F4F5F6F7, // Length 163 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 164 , TypeStatic, DenseTranslation) 165 }, 166 167 ResourceTemplate () 168 { 169 ExtendedIO (ResourceConsumer, MinNotFixed, MaxFixed, SubDecode, EntireRange, 170 0xD0D1D2D3D4D5D6D7, // Granularity 171 0xD8D9DADBDCDDDEDF, // Range Minimum 172 0xE0E1E2E3E4E5E6E7, // Range Maximum 173 0xE8E9EAEBECEDEEEF, // Translation Offset 174 0xF0F1F2F3F4F5F6F7, // Length 175 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 176 , TypeStatic, DenseTranslation) 177 }, 178 179 ResourceTemplate () 180 { 181 ExtendedIO (ResourceConsumer, MinFixed, MaxNotFixed, PosDecode, EntireRange, 182 0xD0D1D2D3D4D5D6D7, // Granularity 183 0xD8D9DADBDCDDDEDF, // Range Minimum 184 0xE0E1E2E3E4E5E6E7, // Range Maximum 185 0xE8E9EAEBECEDEEEF, // Translation Offset 186 0xF0F1F2F3F4F5F6F7, // Length 187 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 188 , TypeStatic, DenseTranslation) 189 }, 190 191 ResourceTemplate () 192 { 193 ExtendedIO (ResourceConsumer, MinFixed, MaxNotFixed, SubDecode, EntireRange, 194 0xD0D1D2D3D4D5D6D7, // Granularity 195 0xD8D9DADBDCDDDEDF, // Range Minimum 196 0xE0E1E2E3E4E5E6E7, // Range Maximum 197 0xE8E9EAEBECEDEEEF, // Translation Offset 198 0xF0F1F2F3F4F5F6F7, // Length 199 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 200 , TypeStatic, DenseTranslation) 201 }, 202 203 ResourceTemplate () 204 { 205 ExtendedIO (ResourceConsumer, MinFixed, MaxFixed, PosDecode, EntireRange, 206 0xD0D1D2D3D4D5D6D7, // Granularity 207 0xD8D9DADBDCDDDEDF, // Range Minimum 208 0xE0E1E2E3E4E5E6E7, // Range Maximum 209 0xE8E9EAEBECEDEEEF, // Translation Offset 210 0xF0F1F2F3F4F5F6F7, // Length 211 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 212 , TypeStatic, DenseTranslation) 213 }, 214 215 ResourceTemplate () 216 { 217 ExtendedIO (ResourceConsumer, MinFixed, MaxFixed, SubDecode, EntireRange, 218 0xD0D1D2D3D4D5D6D7, // Granularity 219 0xD8D9DADBDCDDDEDF, // Range Minimum 220 0xE0E1E2E3E4E5E6E7, // Range Maximum 221 0xE8E9EAEBECEDEEEF, // Translation Offset 222 0xF0F1F2F3F4F5F6F7, // Length 223 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 224 , TypeStatic, DenseTranslation) 225 }, 226 227 ResourceTemplate () 228 { 229 ExtendedIO (ResourceConsumer, MinNotFixed, MaxNotFixed, PosDecode, NonISAOnlyRanges, 230 0xD0D1D2D3D4D5D6D7, // Granularity 231 0xD8D9DADBDCDDDEDF, // Range Minimum 232 0xE0E1E2E3E4E5E6E7, // Range Maximum 233 0xE8E9EAEBECEDEEEF, // Translation Offset 234 0xF0F1F2F3F4F5F6F7, // Length 235 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 236 , TypeStatic, DenseTranslation) 237 }, 238 239 ResourceTemplate () 240 { 241 ExtendedIO (ResourceConsumer, MinNotFixed, MaxNotFixed, PosDecode, NonISAOnlyRanges, 242 0xD0D1D2D3D4D5D6D7, // Granularity 243 0xD8D9DADBDCDDDEDF, // Range Minimum 244 0xE0E1E2E3E4E5E6E7, // Range Maximum 245 0xE8E9EAEBECEDEEEF, // Translation Offset 246 0xF0F1F2F3F4F5F6F7, // Length 247 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 248 , TypeStatic, SparseTranslation) 249 }, 250 251 ResourceTemplate () 252 { 253 ExtendedIO (ResourceConsumer, MinNotFixed, MaxNotFixed, PosDecode, NonISAOnlyRanges, 254 0xD0D1D2D3D4D5D6D7, // Granularity 255 0xD8D9DADBDCDDDEDF, // Range Minimum 256 0xE0E1E2E3E4E5E6E7, // Range Maximum 257 0xE8E9EAEBECEDEEEF, // Translation Offset 258 0xF0F1F2F3F4F5F6F7, // Length 259 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 260 , TypeTranslation, DenseTranslation) 261 }, 262 263 ResourceTemplate () 264 { 265 ExtendedIO (ResourceConsumer, MinNotFixed, MaxNotFixed, PosDecode, NonISAOnlyRanges, 266 0xD0D1D2D3D4D5D6D7, // Granularity 267 0xD8D9DADBDCDDDEDF, // Range Minimum 268 0xE0E1E2E3E4E5E6E7, // Range Maximum 269 0xE8E9EAEBECEDEEEF, // Translation Offset 270 0xF0F1F2F3F4F5F6F7, // Length 271 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 272 , TypeTranslation, SparseTranslation) 273 }, 274 275 ResourceTemplate () 276 { 277 ExtendedIO (ResourceConsumer, MinNotFixed, MaxNotFixed, PosDecode, ISAOnlyRanges, 278 0xD0D1D2D3D4D5D6D7, // Granularity 279 0xD8D9DADBDCDDDEDF, // Range Minimum 280 0xE0E1E2E3E4E5E6E7, // Range Maximum 281 0xE8E9EAEBECEDEEEF, // Translation Offset 282 0xF0F1F2F3F4F5F6F7, // Length 283 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 284 , TypeStatic, DenseTranslation) 285 }, 286 287 ResourceTemplate () 288 { 289 ExtendedIO (ResourceConsumer, MinNotFixed, MaxNotFixed, PosDecode, ISAOnlyRanges, 290 0xD0D1D2D3D4D5D6D7, // Granularity 291 0xD8D9DADBDCDDDEDF, // Range Minimum 292 0xE0E1E2E3E4E5E6E7, // Range Maximum 293 0xE8E9EAEBECEDEEEF, // Translation Offset 294 0xF0F1F2F3F4F5F6F7, // Length 295 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 296 , TypeStatic, SparseTranslation) 297 }, 298 299 ResourceTemplate () 300 { 301 ExtendedIO (ResourceConsumer, MinNotFixed, MaxNotFixed, PosDecode, ISAOnlyRanges, 302 0xD0D1D2D3D4D5D6D7, // Granularity 303 0xD8D9DADBDCDDDEDF, // Range Minimum 304 0xE0E1E2E3E4E5E6E7, // Range Maximum 305 0xE8E9EAEBECEDEEEF, // Translation Offset 306 0xF0F1F2F3F4F5F6F7, // Length 307 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 308 , TypeTranslation, DenseTranslation) 309 }, 310 311 ResourceTemplate () 312 { 313 ExtendedIO (ResourceConsumer, MinNotFixed, MaxNotFixed, PosDecode, ISAOnlyRanges, 314 0xD0D1D2D3D4D5D6D7, // Granularity 315 0xD8D9DADBDCDDDEDF, // Range Minimum 316 0xE0E1E2E3E4E5E6E7, // Range Maximum 317 0xE8E9EAEBECEDEEEF, // Translation Offset 318 0xF0F1F2F3F4F5F6F7, // Length 319 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 320 , TypeTranslation, SparseTranslation) 321 }, 322 323 ResourceTemplate () 324 { 325 ExtendedIO (ResourceConsumer, MinNotFixed, MaxNotFixed, PosDecode, EntireRange, 326 0xD0D1D2D3D4D5D6D7, // Granularity 327 0xD8D9DADBDCDDDEDF, // Range Minimum 328 0xE0E1E2E3E4E5E6E7, // Range Maximum 329 0xE8E9EAEBECEDEEEF, // Translation Offset 330 0xF0F1F2F3F4F5F6F7, // Length 331 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 332 , TypeStatic, DenseTranslation) 333 }, 334 335 ResourceTemplate () 336 { 337 ExtendedIO (ResourceConsumer, MinNotFixed, MaxNotFixed, PosDecode, EntireRange, 338 0xD0D1D2D3D4D5D6D7, // Granularity 339 0xD8D9DADBDCDDDEDF, // Range Minimum 340 0xE0E1E2E3E4E5E6E7, // Range Maximum 341 0xE8E9EAEBECEDEEEF, // Translation Offset 342 0xF0F1F2F3F4F5F6F7, // Length 343 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 344 , TypeStatic, SparseTranslation) 345 }, 346 347 ResourceTemplate () 348 { 349 ExtendedIO (ResourceConsumer, MinNotFixed, MaxNotFixed, PosDecode, EntireRange, 350 0xD0D1D2D3D4D5D6D7, // Granularity 351 0xD8D9DADBDCDDDEDF, // Range Minimum 352 0xE0E1E2E3E4E5E6E7, // Range Maximum 353 0xE8E9EAEBECEDEEEF, // Translation Offset 354 0xF0F1F2F3F4F5F6F7, // Length 355 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 356 , TypeTranslation, DenseTranslation) 357 }, 358 359 ResourceTemplate () 360 { 361 ExtendedIO (ResourceConsumer, MinNotFixed, MaxNotFixed, PosDecode, EntireRange, 362 0xD0D1D2D3D4D5D6D7, // Granularity 363 0xD8D9DADBDCDDDEDF, // Range Minimum 364 0xE0E1E2E3E4E5E6E7, // Range Maximum 365 0xE8E9EAEBECEDEEEF, // Translation Offset 366 0xF0F1F2F3F4F5F6F7, // Length 367 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 368 , TypeTranslation, SparseTranslation) 369 }, 370 371 ResourceTemplate () 372 { 373 ExtendedIO (ResourceConsumer, MinNotFixed, MaxNotFixed, PosDecode, EntireRange, 374 0xD0D1D2D3D4D5D6D7, // Granularity 375 0xD8D9DADBDCDDDEDF, // Range Minimum 376 0xE0E1E2E3E4E5E6E7, // Range Maximum 377 0xE8E9EAEBECEDEEEF, // Translation Offset 378 0xF0F1F2F3F4F5F6F7, // Length 379 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 380 , TypeStatic, DenseTranslation) 381 }, 382 383 ResourceTemplate () 384 { 385 ExtendedIO (ResourceConsumer, MinNotFixed, MaxNotFixed, PosDecode, EntireRange, 386 0xD0D1D2D3D4D5D6D7, // Granularity 387 0xD8D9DADBDCDDDEDF, // Range Minimum 388 0xE0E1E2E3E4E5E6E7, // Range Maximum 389 0xE8E9EAEBECEDEEEF, // Translation Offset 390 0xF0F1F2F3F4F5F6F7, // Length 391 0x0000000000000000, // Type-Specific Attributes 392 , TypeStatic, DenseTranslation) 393 }, 394 395 ResourceTemplate () 396 { 397 ExtendedIO (ResourceConsumer, MinNotFixed, MaxNotFixed, PosDecode, EntireRange, 398 0xD0D1D2D3D4D5D6D7, // Granularity 399 0xD8D9DADBDCDDDEDF, // Range Minimum 400 0xE0E1E2E3E4E5E6E7, // Range Maximum 401 0xE8E9EAEBECEDEEEF, // Translation Offset 402 0xF0F1F2F3F4F5F6F7, // Length 403 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 404 , TypeStatic, DenseTranslation) 405 }, 406 407 ResourceTemplate () 408 { 409 ExtendedIO (ResourceConsumer, MinNotFixed, MaxNotFixed, PosDecode, EntireRange, 410 0xD0D1D2D3D4D5D6D7, // Granularity 411 0xD8D9DADBDCDDDEDF, // Range Minimum 412 0xE0E1E2E3E4E5E6E7, // Range Maximum 413 0xE8E9EAEBECEDEEEF, // Translation Offset 414 0xF0F1F2F3F4F5F6F7, // Length 415 0x0000000000000000, // Type-Specific Attributes 416 , TypeStatic, DenseTranslation) 417 }, 418 419 ResourceTemplate () 420 { 421 ExtendedIO (ResourceConsumer, MinFixed, MaxFixed, SubDecode, EntireRange, 422 0xD0D1D2D3D4D5D6D7, // Granularity 423 0xD8D9DADBDCDDDEDF, // Range Minimum 424 0xE0E1E2E3E4E5E6E7, // Range Maximum 425 0xE8E9EAEBECEDEEEF, // Translation Offset 426 0xF0F1F2F3F4F5F6F7, // Length 427 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 428 , TypeTranslation, SparseTranslation) 429 }, 430 431 ResourceTemplate () 432 { 433 ExtendedIO (ResourceConsumer, MinFixed, MaxFixed, SubDecode, EntireRange, 434 0x0000000000000000, // Granularity 435 0x0000000000000000, // Range Minimum 436 0x0000000000000000, // Range Maximum 437 0x0000000000000000, // Translation Offset 438 0x0000000000000000, // Length 439 0x0000000000000000, // Type-Specific Attributes 440 , TypeTranslation, SparseTranslation) 441 } 442 }) 443 /* 444 ACPI Specification, Revision 3.0, September 2, 2004 445 6.4.3.5.4 Extended Address Space Descriptor 446 I/O Extended Address Space Descriptor layout: 447 Byte 0 (Tag Bits): Value=10001011B (0x8b) (Type = 1, Large item name = 0xB) 448 Byte 1 (Length, bits[7:0]): Variable: Value = 53 (minimum) 449 Byte 2 (Length, bits[15:8]): Variable: Value = 0 (minimum) 450 Byte 3 (Resource Type): 451 1 I/O range 452 Byte 4 (General Flags): 453 Bits[7:4] Reserved (must be 0) 454 Bit[3] Min Address Fixed, _MAF: 455 1 The specified maximum address is fixed 456 0 The specified maximum address is not fixed 457 and can be changed 458 Bit[2] Max Address Fixed,_MIF: 459 1 The specified minimum address is fixed 460 0 The specified minimum address is not fixed 461 and can be changed 462 Bit[1] Decode Type, _DEC: 463 1 This bridge subtractively decodes this address 464 (top level bridges only) 465 0 This bridge positively decodes this address 466 Bit[0] Consumer/Producer: 467 1-This device consumes this resource 468 0-This device produces and consumes this resource 469 Byte 5 (Type Specific Flags): 470 Flags that are specific to each resource type. The meaning of the flags 471 in this field depends on the value of the Resource Type field (see above) 472 Bits[7:6] Reserved (must be 0) 473 Bit[5] Sparse Translation, _TRS. This bit is only meaningful if Bit[4] is set. 474 1 SparseTranslation: The primary-side memory address of any specific 475 I/O port within the secondary-side range can be found using 476 the following function. 477 address = (((port & 0xFFFc) << 10) || (port & 0xFFF)) + _TRA 478 In the address used to access the I/O port, bits[11:2] must be identical 479 to bits[21:12], this gives four bytes of I/O ports on each 4 KB page. 480 0 DenseTranslation: The primary-side memory address of any specific I/O port 481 within the secondary-side range can be found using the following function. 482 address = port + _TRA 483 Bit[4] I/O to Memory Translation, _TTP 484 1 TypeTranslation: This resource, which is I/O on the secondary side of 485 the bridge, is memory on the primary side of the bridge. 486 0 TypeStatic: This resource, which is I/O on the secondary side of 487 the bridge, is also I/O on the primary side of the bridge. 488 Bit[3:2] Reserved (must be 0) 489 Bit[1:0] _RNG 490 3 Memory window covers the entire range 491 2 ISARangesOnly. This flag is for bridges on systems with multiple bridges. 492 Setting this bit means the memory window specified in this descriptor is 493 limited to the ISA I/O addresses that fall within the specified window. 494 The ISA I/O ranges are: n000-n0FF, n400-n4FF, n800-n8FF, nC00-nCFF. This 495 bit can only be set for bridges entirely configured through ACPI namespace. 496 1 NonISARangesOnly. This flag is for bridges on systems with multiple bridges. 497 Setting this bit means the memory window specified in this descriptor is 498 limited to the non-ISA I/O addresses that fall within the specified window. 499 The non-ISA I/O ranges are: n100-n3FF, n500-n7FF, n900-nBFF, nD00-nFFF. 500 This bit can only be set for bridges entirely configured through ACPI namespace. 501 0 Reserved 502 Byte 6 (Revision ID): 503 Indicates the revision of the Extended Address Space descriptor. 504 For ACPI 3.0, this value is 1. 505 Byte 7 (Reserved): 0 506 Byte 8 (Address space granularity, _GRA bits[7:0]): 507 A set bit in this mask means that this bit is decoded. All bits less 508 significant than the most significant set bit must be set. (in other 509 words, the value of the full Address Space Granularity field (all 32 510 bits) must be a number (2**n-1). 511 Byte 9 (Address space granularity, _GRA bits[15:8]) 512 Byte 10 (Address space granularity, _GRA bits[23:16]) 513 Byte 11 (Address space granularity, _GRA bits[31:24]) 514 Byte 12 (Address space granularity, _GRA bits[39:32]) 515 Byte 13 (Address space granularity, _GRA bits[47:40]) 516 Byte 14 (Address space granularity, _GRA bits[55:48]) 517 Byte 15 (Address space granularity, _GRA bits[63:56]) 518 Byte 16 (Address range minimum, _MIN bits [7:0]): 519 For bridges that translate addresses, this is the address space 520 on the secondary side of the bridge 521 Byte 17 (Address range minimum, _MIN bits[15:8]) 522 Byte 18 (Address range minimum, _MIN bits[23:16]) 523 Byte 19 (Address range minimum, _MIN bits[31:24]) 524 Byte 20 (Address range minimum, _MIN bits[39:32]) 525 Byte 21 (Address range minimum, _MIN bits[47:40]) 526 Byte 22 (Address range minimum, _MIN bits[55:48]) 527 Byte 23 (Address range minimum, _MIN bits[63:56]) 528 Byte 24 (Address range maximum, _MAX bits [7:0]): See comment for _MIN 529 Byte 25 (Address range maximum, _MAX bits[15:8]) 530 Byte 26 (Address range maximum, _MAX bits[23:16]) 531 Byte 27 (Address range maximum, _MAX bits[31:24]) 532 Byte 28 (Address range maximum, _MAX bits[39:32]) 533 Byte 29 (Address range maximum, _MAX bits[47:40]) 534 Byte 30 (Address range maximum, _MAX bits[55:48]) 535 Byte 31 (Address range maximum, _MAX bits[63:56]) 536 Byte 32 (Address Translation offset, _TRA bits [7:0]): 537 For bridges that translate addresses across the bridge, this is the 538 offset that must be added to the address on the secondary side to obtain 539 the address on the primary side. Non-bridge devices must list 0 for all 540 Address Translation offset bits 541 Byte 33 (Address Translation offset, _TRA bits[15:8]) 542 Byte 34 (Address Translation offset, _TRA bits[23:16]) 543 Byte 35 (Address Translation offset, _TRA bits[31:24]) 544 Byte 36 (Address Translation offset, _TRA bits[39:32]) 545 Byte 37 (Address Translation offset, _TRA bits[47:40]) 546 Byte 38 (Address Translation offset, _TRA bits[55:48]) 547 Byte 39 (Address Translation offset, _TRA bits[63:56]) 548 Byte 40 (Address Length, _LEN bits [7:0]) 549 Byte 41 (Address Length, _LEN bits[15:8]) 550 Byte 42 (Address Length, _LEN bits[23:16]) 551 Byte 43 (Address Length, _LEN bits[31:24]) 552 Byte 44 (Address Length, _LEN bits[39:32]) 553 Byte 45 (Address Length, _LEN bits[47:40]) 554 Byte 46 (Address Length, _LEN bits[55:48]) 555 Byte 47 (Address Length, _LEN bits[63:56]) 556 Byte 48 (Type Specific Attribute, _ATT bits [7:0]): 557 Attributes that are specific to each resource type. The meaning 558 of the attributes in this field depends on the value of the Resource 559 Type field (see above). For the Memory Resource Type, the definition 560 is defined section 6.4.3.5.4.1. For other Resource Types, this field 561 is reserved to 0 562 Byte 49 (Type Specific Attribute, _ATT bits[15:8]) 563 Byte 50 (Type Specific Attribute, _ATT bits[23:16]) 564 Byte 51 (Type Specific Attribute, _ATT bits[31:24]) 565 Byte 52 (Type Specific Attribute, _ATT bits[39:32]) 566 Byte 53 (Type Specific Attribute, _ATT bits[47:40]) 567 Byte 54 (Type Specific Attribute, _ATT bits[55:48]) 568 Byte 55 (Type Specific Attribute, _ATT bits[63:56]) 569 */ 570 Name (P423, Package (0x22) 571 { 572 /* Byte 4 (General Flags) of Extended Address Space Descriptor */ 573 574 ResourceTemplate () 575 { 576 ExtendedIO (ResourceProducer, MinNotFixed, MaxNotFixed, PosDecode, EntireRange, 577 0xD0D1D2D3D4D5D6D7, // Granularity 578 0xD8D9DADBDCDDDEDF, // Range Minimum 579 0xE0E1E2E3E4E5E6E7, // Range Maximum 580 0xE8E9EAEBECEDEEEF, // Translation Offset 581 0xF0F1F2F3F4F5F6F7, // Length 582 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 583 , TypeStatic, DenseTranslation) 584 }, 585 586 ResourceTemplate () 587 { 588 ExtendedIO (ResourceProducer, MinNotFixed, MaxNotFixed, SubDecode, EntireRange, 589 0xD0D1D2D3D4D5D6D7, // Granularity 590 0xD8D9DADBDCDDDEDF, // Range Minimum 591 0xE0E1E2E3E4E5E6E7, // Range Maximum 592 0xE8E9EAEBECEDEEEF, // Translation Offset 593 0xF0F1F2F3F4F5F6F7, // Length 594 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 595 , TypeStatic, DenseTranslation) 596 }, 597 598 ResourceTemplate () 599 { 600 ExtendedIO (ResourceProducer, MinNotFixed, MaxFixed, PosDecode, EntireRange, 601 0xD0D1D2D3D4D5D6D7, // Granularity 602 0xD8D9DADBDCDDDEDF, // Range Minimum 603 0xE0E1E2E3E4E5E6E7, // Range Maximum 604 0xE8E9EAEBECEDEEEF, // Translation Offset 605 0xF0F1F2F3F4F5F6F7, // Length 606 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 607 , TypeStatic, DenseTranslation) 608 }, 609 610 ResourceTemplate () 611 { 612 ExtendedIO (ResourceProducer, MinNotFixed, MaxFixed, SubDecode, EntireRange, 613 0xD0D1D2D3D4D5D6D7, // Granularity 614 0xD8D9DADBDCDDDEDF, // Range Minimum 615 0xE0E1E2E3E4E5E6E7, // Range Maximum 616 0xE8E9EAEBECEDEEEF, // Translation Offset 617 0xF0F1F2F3F4F5F6F7, // Length 618 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 619 , TypeStatic, DenseTranslation) 620 }, 621 622 ResourceTemplate () 623 { 624 ExtendedIO (ResourceProducer, MinFixed, MaxNotFixed, PosDecode, EntireRange, 625 0xD0D1D2D3D4D5D6D7, // Granularity 626 0xD8D9DADBDCDDDEDF, // Range Minimum 627 0xE0E1E2E3E4E5E6E7, // Range Maximum 628 0xE8E9EAEBECEDEEEF, // Translation Offset 629 0xF0F1F2F3F4F5F6F7, // Length 630 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 631 , TypeStatic, DenseTranslation) 632 }, 633 634 ResourceTemplate () 635 { 636 ExtendedIO (ResourceProducer, MinFixed, MaxNotFixed, SubDecode, EntireRange, 637 0xD0D1D2D3D4D5D6D7, // Granularity 638 0xD8D9DADBDCDDDEDF, // Range Minimum 639 0xE0E1E2E3E4E5E6E7, // Range Maximum 640 0xE8E9EAEBECEDEEEF, // Translation Offset 641 0xF0F1F2F3F4F5F6F7, // Length 642 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 643 , TypeStatic, DenseTranslation) 644 }, 645 646 ResourceTemplate () 647 { 648 ExtendedIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, 649 0xD0D1D2D3D4D5D6D7, // Granularity 650 0xD8D9DADBDCDDDEDF, // Range Minimum 651 0xE0E1E2E3E4E5E6E7, // Range Maximum 652 0xE8E9EAEBECEDEEEF, // Translation Offset 653 0xF0F1F2F3F4F5F6F7, // Length 654 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 655 , TypeStatic, DenseTranslation) 656 }, 657 658 ResourceTemplate () 659 { 660 ExtendedIO (ResourceProducer, MinFixed, MaxFixed, SubDecode, EntireRange, 661 0xD0D1D2D3D4D5D6D7, // Granularity 662 0xD8D9DADBDCDDDEDF, // Range Minimum 663 0xE0E1E2E3E4E5E6E7, // Range Maximum 664 0xE8E9EAEBECEDEEEF, // Translation Offset 665 0xF0F1F2F3F4F5F6F7, // Length 666 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 667 , TypeStatic, DenseTranslation) 668 }, 669 670 ResourceTemplate () 671 { 672 ExtendedIO (ResourceConsumer, MinNotFixed, MaxNotFixed, PosDecode, EntireRange, 673 0xD0D1D2D3D4D5D6D7, // Granularity 674 0xD8D9DADBDCDDDEDF, // Range Minimum 675 0xE0E1E2E3E4E5E6E7, // Range Maximum 676 0xE8E9EAEBECEDEEEF, // Translation Offset 677 0xF0F1F2F3F4F5F6F7, // Length 678 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 679 , TypeStatic, DenseTranslation) 680 }, 681 682 ResourceTemplate () 683 { 684 ExtendedIO (ResourceConsumer, MinNotFixed, MaxNotFixed, SubDecode, EntireRange, 685 0xD0D1D2D3D4D5D6D7, // Granularity 686 0xD8D9DADBDCDDDEDF, // Range Minimum 687 0xE0E1E2E3E4E5E6E7, // Range Maximum 688 0xE8E9EAEBECEDEEEF, // Translation Offset 689 0xF0F1F2F3F4F5F6F7, // Length 690 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 691 , TypeStatic, DenseTranslation) 692 }, 693 694 ResourceTemplate () 695 { 696 ExtendedIO (ResourceConsumer, MinNotFixed, MaxFixed, PosDecode, EntireRange, 697 0xD0D1D2D3D4D5D6D7, // Granularity 698 0xD8D9DADBDCDDDEDF, // Range Minimum 699 0xE0E1E2E3E4E5E6E7, // Range Maximum 700 0xE8E9EAEBECEDEEEF, // Translation Offset 701 0xF0F1F2F3F4F5F6F7, // Length 702 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 703 , TypeStatic, DenseTranslation) 704 }, 705 706 ResourceTemplate () 707 { 708 ExtendedIO (ResourceConsumer, MinNotFixed, MaxFixed, SubDecode, EntireRange, 709 0xD0D1D2D3D4D5D6D7, // Granularity 710 0xD8D9DADBDCDDDEDF, // Range Minimum 711 0xE0E1E2E3E4E5E6E7, // Range Maximum 712 0xE8E9EAEBECEDEEEF, // Translation Offset 713 0xF0F1F2F3F4F5F6F7, // Length 714 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 715 , TypeStatic, DenseTranslation) 716 }, 717 718 ResourceTemplate () 719 { 720 ExtendedIO (ResourceConsumer, MinFixed, MaxNotFixed, PosDecode, EntireRange, 721 0xD0D1D2D3D4D5D6D7, // Granularity 722 0xD8D9DADBDCDDDEDF, // Range Minimum 723 0xE0E1E2E3E4E5E6E7, // Range Maximum 724 0xE8E9EAEBECEDEEEF, // Translation Offset 725 0xF0F1F2F3F4F5F6F7, // Length 726 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 727 , TypeStatic, DenseTranslation) 728 }, 729 730 ResourceTemplate () 731 { 732 ExtendedIO (ResourceConsumer, MinFixed, MaxNotFixed, SubDecode, EntireRange, 733 0xD0D1D2D3D4D5D6D7, // Granularity 734 0xD8D9DADBDCDDDEDF, // Range Minimum 735 0xE0E1E2E3E4E5E6E7, // Range Maximum 736 0xE8E9EAEBECEDEEEF, // Translation Offset 737 0xF0F1F2F3F4F5F6F7, // Length 738 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 739 , TypeStatic, DenseTranslation) 740 }, 741 742 ResourceTemplate () 743 { 744 ExtendedIO (ResourceConsumer, MinFixed, MaxFixed, PosDecode, EntireRange, 745 0xD0D1D2D3D4D5D6D7, // Granularity 746 0xD8D9DADBDCDDDEDF, // Range Minimum 747 0xE0E1E2E3E4E5E6E7, // Range Maximum 748 0xE8E9EAEBECEDEEEF, // Translation Offset 749 0xF0F1F2F3F4F5F6F7, // Length 750 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 751 , TypeStatic, DenseTranslation) 752 }, 753 754 ResourceTemplate () 755 { 756 ExtendedIO (ResourceConsumer, MinFixed, MaxFixed, SubDecode, EntireRange, 757 0xD0D1D2D3D4D5D6D7, // Granularity 758 0xD8D9DADBDCDDDEDF, // Range Minimum 759 0xE0E1E2E3E4E5E6E7, // Range Maximum 760 0xE8E9EAEBECEDEEEF, // Translation Offset 761 0xF0F1F2F3F4F5F6F7, // Length 762 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 763 , TypeStatic, DenseTranslation) 764 }, 765 766 /* Byte 5 (Type Specific Flags) of Extended Address Space Descriptor */ 767 768 ResourceTemplate () 769 { 770 ExtendedIO (ResourceConsumer, MinNotFixed, MaxNotFixed, PosDecode, NonISAOnlyRanges, 771 0xD0D1D2D3D4D5D6D7, // Granularity 772 0xD8D9DADBDCDDDEDF, // Range Minimum 773 0xE0E1E2E3E4E5E6E7, // Range Maximum 774 0xE8E9EAEBECEDEEEF, // Translation Offset 775 0xF0F1F2F3F4F5F6F7, // Length 776 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 777 , TypeStatic, DenseTranslation) 778 }, 779 780 ResourceTemplate () 781 { 782 ExtendedIO (ResourceConsumer, MinNotFixed, MaxNotFixed, PosDecode, NonISAOnlyRanges, 783 0xD0D1D2D3D4D5D6D7, // Granularity 784 0xD8D9DADBDCDDDEDF, // Range Minimum 785 0xE0E1E2E3E4E5E6E7, // Range Maximum 786 0xE8E9EAEBECEDEEEF, // Translation Offset 787 0xF0F1F2F3F4F5F6F7, // Length 788 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 789 , TypeStatic, SparseTranslation) 790 }, 791 792 ResourceTemplate () 793 { 794 ExtendedIO (ResourceConsumer, MinNotFixed, MaxNotFixed, PosDecode, NonISAOnlyRanges, 795 0xD0D1D2D3D4D5D6D7, // Granularity 796 0xD8D9DADBDCDDDEDF, // Range Minimum 797 0xE0E1E2E3E4E5E6E7, // Range Maximum 798 0xE8E9EAEBECEDEEEF, // Translation Offset 799 0xF0F1F2F3F4F5F6F7, // Length 800 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 801 , TypeTranslation, DenseTranslation) 802 }, 803 804 ResourceTemplate () 805 { 806 ExtendedIO (ResourceConsumer, MinNotFixed, MaxNotFixed, PosDecode, NonISAOnlyRanges, 807 0xD0D1D2D3D4D5D6D7, // Granularity 808 0xD8D9DADBDCDDDEDF, // Range Minimum 809 0xE0E1E2E3E4E5E6E7, // Range Maximum 810 0xE8E9EAEBECEDEEEF, // Translation Offset 811 0xF0F1F2F3F4F5F6F7, // Length 812 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 813 , TypeTranslation, SparseTranslation) 814 }, 815 816 ResourceTemplate () 817 { 818 ExtendedIO (ResourceConsumer, MinNotFixed, MaxNotFixed, PosDecode, ISAOnlyRanges, 819 0xD0D1D2D3D4D5D6D7, // Granularity 820 0xD8D9DADBDCDDDEDF, // Range Minimum 821 0xE0E1E2E3E4E5E6E7, // Range Maximum 822 0xE8E9EAEBECEDEEEF, // Translation Offset 823 0xF0F1F2F3F4F5F6F7, // Length 824 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 825 , TypeStatic, DenseTranslation) 826 }, 827 828 ResourceTemplate () 829 { 830 ExtendedIO (ResourceConsumer, MinNotFixed, MaxNotFixed, PosDecode, ISAOnlyRanges, 831 0xD0D1D2D3D4D5D6D7, // Granularity 832 0xD8D9DADBDCDDDEDF, // Range Minimum 833 0xE0E1E2E3E4E5E6E7, // Range Maximum 834 0xE8E9EAEBECEDEEEF, // Translation Offset 835 0xF0F1F2F3F4F5F6F7, // Length 836 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 837 , TypeStatic, SparseTranslation) 838 }, 839 840 ResourceTemplate () 841 { 842 ExtendedIO (ResourceConsumer, MinNotFixed, MaxNotFixed, PosDecode, ISAOnlyRanges, 843 0xD0D1D2D3D4D5D6D7, // Granularity 844 0xD8D9DADBDCDDDEDF, // Range Minimum 845 0xE0E1E2E3E4E5E6E7, // Range Maximum 846 0xE8E9EAEBECEDEEEF, // Translation Offset 847 0xF0F1F2F3F4F5F6F7, // Length 848 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 849 , TypeTranslation, DenseTranslation) 850 }, 851 852 ResourceTemplate () 853 { 854 ExtendedIO (ResourceConsumer, MinNotFixed, MaxNotFixed, PosDecode, ISAOnlyRanges, 855 0xD0D1D2D3D4D5D6D7, // Granularity 856 0xD8D9DADBDCDDDEDF, // Range Minimum 857 0xE0E1E2E3E4E5E6E7, // Range Maximum 858 0xE8E9EAEBECEDEEEF, // Translation Offset 859 0xF0F1F2F3F4F5F6F7, // Length 860 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 861 , TypeTranslation, SparseTranslation) 862 }, 863 864 ResourceTemplate () 865 { 866 ExtendedIO (ResourceConsumer, MinNotFixed, MaxNotFixed, PosDecode, EntireRange, 867 0xD0D1D2D3D4D5D6D7, // Granularity 868 0xD8D9DADBDCDDDEDF, // Range Minimum 869 0xE0E1E2E3E4E5E6E7, // Range Maximum 870 0xE8E9EAEBECEDEEEF, // Translation Offset 871 0xF0F1F2F3F4F5F6F7, // Length 872 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 873 , TypeStatic, DenseTranslation) 874 }, 875 876 ResourceTemplate () 877 { 878 ExtendedIO (ResourceConsumer, MinNotFixed, MaxNotFixed, PosDecode, EntireRange, 879 0xD0D1D2D3D4D5D6D7, // Granularity 880 0xD8D9DADBDCDDDEDF, // Range Minimum 881 0xE0E1E2E3E4E5E6E7, // Range Maximum 882 0xE8E9EAEBECEDEEEF, // Translation Offset 883 0xF0F1F2F3F4F5F6F7, // Length 884 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 885 , TypeStatic, SparseTranslation) 886 }, 887 888 ResourceTemplate () 889 { 890 ExtendedIO (ResourceConsumer, MinNotFixed, MaxNotFixed, PosDecode, EntireRange, 891 0xD0D1D2D3D4D5D6D7, // Granularity 892 0xD8D9DADBDCDDDEDF, // Range Minimum 893 0xE0E1E2E3E4E5E6E7, // Range Maximum 894 0xE8E9EAEBECEDEEEF, // Translation Offset 895 0xF0F1F2F3F4F5F6F7, // Length 896 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 897 , TypeTranslation, DenseTranslation) 898 }, 899 900 ResourceTemplate () 901 { 902 ExtendedIO (ResourceConsumer, MinNotFixed, MaxNotFixed, PosDecode, EntireRange, 903 0xD0D1D2D3D4D5D6D7, // Granularity 904 0xD8D9DADBDCDDDEDF, // Range Minimum 905 0xE0E1E2E3E4E5E6E7, // Range Maximum 906 0xE8E9EAEBECEDEEEF, // Translation Offset 907 0xF0F1F2F3F4F5F6F7, // Length 908 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 909 , TypeTranslation, SparseTranslation) 910 }, 911 912 /* Particular cases */ 913 914 ResourceTemplate () 915 { 916 ExtendedIO (ResourceConsumer, MinNotFixed, MaxNotFixed, PosDecode, EntireRange, 917 0xD0D1D2D3D4D5D6D7, // Granularity 918 0xD8D9DADBDCDDDEDF, // Range Minimum 919 0xE0E1E2E3E4E5E6E7, // Range Maximum 920 0xE8E9EAEBECEDEEEF, // Translation Offset 921 0xF0F1F2F3F4F5F6F7, // Length 922 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 923 , TypeStatic, DenseTranslation) 924 }, 925 926 ResourceTemplate () 927 { 928 ExtendedIO (ResourceConsumer, MinNotFixed, MaxNotFixed, PosDecode, EntireRange, 929 0xD0D1D2D3D4D5D6D7, // Granularity 930 0xD8D9DADBDCDDDEDF, // Range Minimum 931 0xE0E1E2E3E4E5E6E7, // Range Maximum 932 0xE8E9EAEBECEDEEEF, // Translation Offset 933 0xF0F1F2F3F4F5F6F7, // Length 934 0x0000000000000000, // Type-Specific Attributes 935 , TypeStatic, DenseTranslation) 936 }, 937 938 ResourceTemplate () 939 { 940 ExtendedIO (ResourceConsumer, MinNotFixed, MaxNotFixed, PosDecode, EntireRange, 941 0xD0D1D2D3D4D5D6D7, // Granularity 942 0xD8D9DADBDCDDDEDF, // Range Minimum 943 0xE0E1E2E3E4E5E6E7, // Range Maximum 944 0xE8E9EAEBECEDEEEF, // Translation Offset 945 0xF0F1F2F3F4F5F6F7, // Length 946 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 947 , TypeStatic, DenseTranslation) 948 }, 949 950 ResourceTemplate () 951 { 952 ExtendedIO (ResourceConsumer, MinNotFixed, MaxNotFixed, PosDecode, EntireRange, 953 0xD0D1D2D3D4D5D6D7, // Granularity 954 0xD8D9DADBDCDDDEDF, // Range Minimum 955 0xE0E1E2E3E4E5E6E7, // Range Maximum 956 0xE8E9EAEBECEDEEEF, // Translation Offset 957 0xF0F1F2F3F4F5F6F7, // Length 958 0x0000000000000000, // Type-Specific Attributes 959 , TypeStatic, DenseTranslation) 960 }, 961 962 ResourceTemplate () 963 { 964 ExtendedIO (ResourceConsumer, MinFixed, MaxFixed, SubDecode, EntireRange, 965 0xD0D1D2D3D4D5D6D7, // Granularity 966 0xD8D9DADBDCDDDEDF, // Range Minimum 967 0xE0E1E2E3E4E5E6E7, // Range Maximum 968 0xE8E9EAEBECEDEEEF, // Translation Offset 969 0xF0F1F2F3F4F5F6F7, // Length 970 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 971 , TypeTranslation, SparseTranslation) 972 }, 973 974 ResourceTemplate () 975 { 976 ExtendedIO (ResourceConsumer, MinFixed, MaxFixed, SubDecode, EntireRange, 977 0x0000000000000000, // Granularity 978 0x0000000000000000, // Range Minimum 979 0x0000000000000000, // Range Maximum 980 0x0000000000000000, // Translation Offset 981 0x0000000000000000, // Length 982 0x0000000000000000, // Type-Specific Attributes 983 , TypeTranslation, SparseTranslation) 984 } 985 }) 986 Method (RT0F, 0, Serialized) 987 { 988 /* Emit test header, set the filename */ 989 990 THDR (__METHOD__, "ExtendedIo Resource Descriptor Macro", "extendedio.asl") 991 /* Main test case for packages above */ 992 993 M330 (__METHOD__, 0x22, "p422", P422, P423) 994 /* Check resource descriptor tag offsets */ 995 996 Local0 = ResourceTemplate () 997 { 998 ExtendedIO (ResourceProducer, MinNotFixed, MaxNotFixed, PosDecode, EntireRange, 999 0xD0D1D2D3D4D5D6D7, // Granularity 1000 0xD8D9DADBDCDDDEDF, // Range Minimum 1001 0xE0E1E2E3E4E5E6E7, // Range Maximum 1002 0xE8E9EAEBECEDEEEF, // Translation Offset 1003 0xF0F1F2F3F4F5F6F7, // Length 1004 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 1005 , TypeStatic, DenseTranslation) 1006 ExtendedIO (ResourceConsumer, MinNotFixed, MaxNotFixed, PosDecode, EntireRange, 1007 0xD0D1D2D3D4D5D6D7, // Granularity 1008 0xD8D9DADBDCDDDEDF, // Range Minimum 1009 0xE0E1E2E3E4E5E6E7, // Range Maximum 1010 0xE8E9EAEBECEDEEEF, // Translation Offset 1011 0xF0F1F2F3F4F5F6F7, // Length 1012 0xF8F9FAFBFCFDFEFF, // Type-Specific Attributes 1013 , TypeStatic, DenseTranslation) 1014 } 1015 M331 (__METHOD__, 0x01, 0x21, 0x21, 0x01E1, 0x01E1, "_DEC") 1016 M331 (__METHOD__, 0x02, 0x22, 0x22, 0x01E2, 0x01E2, "_MIF") 1017 M331 (__METHOD__, 0x03, 0x23, 0x23, 0x01E3, 0x01E3, "_MAF") 1018 M331 (__METHOD__, 0x04, 0x28, 0x28, 0x01E8, 0x01E8, "_RNG") 1019 M331 (__METHOD__, 0x05, 0x2C, 0x2C, 0x01EC, 0x01EC, "_TTP") 1020 M331 (__METHOD__, 0x06, 0x2D, 0x2D, 0x01ED, 0x01ED, "_TRS") 1021 M331 (__METHOD__, 0x07, 0x40, 0x40, 0x0200, 0x0200, "_GRA") 1022 M331 (__METHOD__, 0x08, 0x80, 0x80, 0x0240, 0x0240, "_MIN") 1023 M331 (__METHOD__, 0x09, 0xC0, 0xC0, 0x0280, 0x0280, "_MAX") 1024 M331 (__METHOD__, 0x0A, 0x0100, 0x0100, 0x02C0, 0x02C0, "_TRA") 1025 M331 (__METHOD__, 0x0B, 0x0140, 0x0140, 0x0300, 0x0300, "_LEN") 1026 M331 (__METHOD__, 0x0C, 0x0180, 0x0180, 0x0340, 0x0340, "_ATT") 1027 } 1028