1/* 2 * Some or all of this work - Copyright (c) 2006 - 2016, 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/* 30 * Resource Descriptor macros 31 * 32 * Word IO Resource Descriptor Macro 33 */ 34 35Name (p420, Package() { 36 37 // Byte 4 (General Flags) of Word Address Space Descriptor 38 39 ResourceTemplate () { 40 WordIO (ResourceProducer, MinNotFixed, MaxNotFixed, PosDecode, , 41 0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff) 42 }, 43 ResourceTemplate () { 44 WordIO (ResourceProducer, MinNotFixed, MaxNotFixed, SubDecode, , 45 0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff) 46 }, 47 ResourceTemplate () { 48 WordIO (ResourceProducer, MinNotFixed, MaxFixed, PosDecode, , 49 0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff) 50 }, 51 ResourceTemplate () { 52 WordIO (ResourceProducer, MinNotFixed, MaxFixed, SubDecode, , 53 0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff) 54 }, 55 ResourceTemplate () { 56 WordIO (ResourceProducer, MinFixed, MaxNotFixed, PosDecode, , 57 0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff) 58 }, 59 ResourceTemplate () { 60 WordIO (ResourceProducer, MinFixed, MaxNotFixed, SubDecode, , 61 0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff) 62 }, 63 ResourceTemplate () { 64 WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, , 65 0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff) 66 }, 67 ResourceTemplate () { 68 WordIO (ResourceProducer, MinFixed, MaxFixed, SubDecode, , 69 0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff) 70 }, 71 ResourceTemplate () { 72 WordIO (ResourceConsumer, MinNotFixed, MaxNotFixed, PosDecode, , 73 0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff) 74 }, 75 ResourceTemplate () { 76 WordIO (ResourceConsumer, MinNotFixed, MaxNotFixed, SubDecode, , 77 0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff) 78 }, 79 ResourceTemplate () { 80 WordIO (ResourceConsumer, MinNotFixed, MaxFixed, PosDecode, , 81 0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff) 82 }, 83 ResourceTemplate () { 84 WordIO (ResourceConsumer, MinNotFixed, MaxFixed, SubDecode, , 85 0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff) 86 }, 87 ResourceTemplate () { 88 WordIO (ResourceConsumer, MinFixed, MaxNotFixed, PosDecode, , 89 0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff) 90 }, 91 ResourceTemplate () { 92 WordIO (ResourceConsumer, MinFixed, MaxNotFixed, SubDecode, , 93 0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff) 94 }, 95 ResourceTemplate () { 96 WordIO (ResourceConsumer, MinFixed, MaxFixed, PosDecode, , 97 0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff) 98 }, 99 ResourceTemplate () { 100 WordIO (ResourceConsumer, MinFixed, MaxFixed, SubDecode, , 101 0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff) 102 }, 103 104 // Byte 5 (Type Specific Flags) of Word Address Space Descriptor 105 106 ResourceTemplate () { 107 WordIO ( , , , , NonISAOnlyRanges, 108 0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff, 109 , , , TypeStatic, DenseTranslation) 110 }, 111 ResourceTemplate () { 112 WordIO ( , , , , NonISAOnlyRanges, 113 0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff, 114 , , , TypeStatic, SparseTranslation) 115 }, 116 ResourceTemplate () { 117 WordIO ( , , , , NonISAOnlyRanges, 118 0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff, 119 , , , TypeTranslation, DenseTranslation) 120 }, 121 ResourceTemplate () { 122 WordIO ( , , , , NonISAOnlyRanges, 123 0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff, 124 , , , TypeTranslation, SparseTranslation) 125 }, 126 ResourceTemplate () { 127 WordIO ( , , , , ISAOnlyRanges, 128 0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff, 129 , , , TypeStatic, DenseTranslation) 130 }, 131 ResourceTemplate () { 132 WordIO ( , , , , ISAOnlyRanges, 133 0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff, 134 , , , TypeStatic, SparseTranslation) 135 }, 136 ResourceTemplate () { 137 WordIO ( , , , , ISAOnlyRanges, 138 0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff, 139 , , , TypeTranslation, DenseTranslation) 140 }, 141 ResourceTemplate () { 142 WordIO ( , , , , ISAOnlyRanges, 143 0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff, 144 , , , TypeTranslation, SparseTranslation) 145 }, 146 ResourceTemplate () { 147 WordIO ( , , , , EntireRange, 148 0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff, 149 , , , TypeStatic, DenseTranslation) 150 }, 151 ResourceTemplate () { 152 WordIO ( , , , , EntireRange, 153 0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff, 154 , , , TypeStatic, SparseTranslation) 155 }, 156 ResourceTemplate () { 157 WordIO ( , , , , EntireRange, 158 0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff, 159 , , , TypeTranslation, DenseTranslation) 160 }, 161 ResourceTemplate () { 162 WordIO ( , , , , EntireRange, 163 0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff, 164 , , , TypeTranslation, SparseTranslation) 165 }, 166 167 // Particular cases 168 169 ResourceTemplate () { 170 WordIO ( , , , , , 171 0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff) 172 }, 173 ResourceTemplate () { 174 WordIO ( , , , , , 175 0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff, 176 , , , , ) 177 }, 178 179 // Resource Source 180 181 ResourceTemplate () { 182 WordIO ( , , , , , 183 0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff, 184 0x01, "", , , ) 185 }, 186 ResourceTemplate () { 187 WordIO ( , , , , , 188 0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff, 189 0x0f, "P", , , ) 190 }, 191 ResourceTemplate () { 192 WordIO ( , , , , , 193 0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff, 194 0xf0, "PATH", , , ) 195 }, 196 ResourceTemplate () { 197 WordIO ( , , , , , 198 0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff, 199 0xff, 200 "!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !\"#$%&'()*", 201 , , ) 202 }, 203 204 // Particular cases 205 206 ResourceTemplate () { 207 WordIO (ResourceConsumer, MinFixed, MaxFixed, SubDecode, EntireRange, 208 0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff, 209 0xff, "PATHPATHPATH", WIO0, TypeTranslation, SparseTranslation) 210 }, 211 ResourceTemplate () { 212 WordIO (ResourceConsumer, MinFixed, MaxFixed, SubDecode, EntireRange, 213 0, 0, 0, 0, 0, 214 0xff, "PATHPATHPATH", , TypeTranslation, SparseTranslation) 215 }, 216 217 // 20051021, relaxation for omitted ResourceSource (bug-fix 70 rejection) 218 ResourceTemplate () { 219 WordIO ( , , , , , 220 0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff, 221 0x0f) 222 }, 223}) 224 225/* 226ACPI Specification, Revision 3.0, September 2, 2004 2276.4.3.5.3 Word Address Space Descriptor 228 229I/O Word Address Space Descriptor layout: 230 231Byte 0 (Tag Bits): Value=10001000B (0x88) (Type = 1, Large item name = 0x8) 232Byte 1 (Length, bits[7:0]): Variable: Value = 13 (minimum) 233Byte 2 (Length, bits[15:8]): Variable: Value = 0 (minimum) 234Byte 3 (Resource Type): 235 1 I/O range 236Byte 4 (General Flags): 237 Bits[7:4] Reserved (must be 0) 238 Bit[3] Min Address Fixed, _MAF: 239 1 The specified maximum address is fixed 240 0 The specified maximum address is not fixed 241 and can be changed 242 Bit[2] Max Address Fixed,_MIF: 243 1 The specified minimum address is fixed 244 0 The specified minimum address is not fixed 245 and can be changed 246 Bit[1] Decode Type, _DEC: 247 1 This bridge subtractively decodes this address 248 (top level bridges only) 249 0 This bridge positively decodes this address 250 Bit[0] Consumer/Producer: 251 1-This device consumes this resource 252 0-This device produces and consumes this resource 253 254Byte 5 (Type Specific Flags): 255 Flags that are specific to each resource type. The meaning of the flags 256 in this field depends on the value of the Resource Type field (see above) 257 Bits[7:6] Reserved (must be 0) 258 Bit[5] Sparse Translation, _TRS. This bit is only meaningful if Bit[4] is set. 259 1 SparseTranslation: The primary-side memory address of any specific 260 I/O port within the secondary-side range can be found using 261 the following function. 262 263 address = (((port & 0xFFFc) << 10) || (port & 0xFFF)) + _TRA 264 265 In the address used to access the I/O port, bits[11:2] must be identical 266 to bits[21:12], this gives four bytes of I/O ports on each 4 KB page. 267 0 DenseTranslation: The primary-side memory address of any specific I/O port 268 within the secondary-side range can be found using the following function. 269 270 address = port + _TRA 271 Bit[4] I/O to Memory Translation, _TTP 272 1 TypeTranslation: This resource, which is I/O on the secondary side of 273 the bridge, is memory on the primary side of the bridge. 274 0 TypeStatic: This resource, which is I/O on the secondary side of 275 the bridge, is also I/O on the primary side of the bridge. 276 Bit[3:2] Reserved (must be 0) 277 Bit[1:0] _RNG 278 3 Memory window covers the entire range 279 2 ISARangesOnly. This flag is for bridges on systems with multiple bridges. 280 Setting this bit means the memory window specified in this descriptor is 281 limited to the ISA I/O addresses that fall within the specified window. 282 The ISA I/O ranges are: n000-n0FF, n400-n4FF, n800-n8FF, nC00-nCFF. This 283 bit can only be set for bridges entirely configured through ACPI namespace. 284 1 NonISARangesOnly. This flag is for bridges on systems with multiple bridges. 285 Setting this bit means the memory window specified in this descriptor is 286 limited to the non-ISA I/O addresses that fall within the specified window. 287 The non-ISA I/O ranges are: n100-n3FF, n500-n7FF, n900-nBFF, nD00-nFFF. 288 This bit can only be set for bridges entirely configured through ACPI namespace. 289 0 Reserved 290 291Byte 6 (Address space granularity, _GRA bits[7:0]): 292 A set bit in this mask means that this bit is decoded. All bits less 293 significant than the most significant set bit must be set. (in other 294 words, the value of the full Address Space Granularity field (all 16 295 bits) must be a number (2**n-1). 296Byte 7 (Address space granularity, _GRA bits[15:8]) 297Byte 8 (Address range minimum, _MIN bits [7:0]): 298 For bridges that translate addresses, this is the address space 299 on the secondary side of the bridge 300Byte 9 (Address range minimum, _MIN bits[15:8]) 301Byte 10 (Address range maximum, _MAX bits [7:0]): See comment for _MIN 302Byte 11 (Address range maximum, _MAX bits[15:8]) 303Byte 12 (Address Translation offset, _TRA bits [7:0]): 304 For bridges that translate addresses across the bridge, this is the 305 offset that must be added to the address on the secondary side to obtain 306 the address on the primary side. Non-bridge devices must list 0 for all 307 Address Translation offset bits 308Byte 13 (Address Translation offset, _TRA bits[15:8]) 309Byte 14 (Address Length, _LEN bits [7:0]) 310Byte 15 (Address Length, _LEN bits[15:8]) 311Byte 16 (Resource Source Index): 312 (Optional) Only present if Resource Source (below) is present. This 313 field gives an index to the specific resource descriptor that this 314 device consumes from in the current resource template for the device 315 object pointed to in Resource Source 316String (Resource Source): 317 (Optional) If present, the device that uses this descriptor consumes 318 its resources from the resources produced by the named device object. 319 If not present, the device consumes its resources out of a global pool. 320 If not present, the device consumes this resource from its hierarchical 321 parent. 322*/ 323 324Name (p421, Package() { 325 326 // Byte 4 (General Flags) of Word Address Space Descriptor 327 328 Buffer () {0x88, 0x0d, 0x00, 0x01, 0x00, 0x03, 329 0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00}, 330 Buffer () {0x88, 0x0d, 0x00, 0x01, 0x02, 0x03, 331 0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00}, 332 Buffer () {0x88, 0x0d, 0x00, 0x01, 0x08, 0x03, 333 0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00}, 334 Buffer () {0x88, 0x0d, 0x00, 0x01, 0x0a, 0x03, 335 0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00}, 336 Buffer () {0x88, 0x0d, 0x00, 0x01, 0x04, 0x03, 337 0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00}, 338 Buffer () {0x88, 0x0d, 0x00, 0x01, 0x06, 0x03, 339 0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00}, 340 Buffer () {0x88, 0x0d, 0x00, 0x01, 0x0c, 0x03, 341 0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00}, 342 Buffer () {0x88, 0x0d, 0x00, 0x01, 0x0e, 0x03, 343 0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00}, 344 Buffer () {0x88, 0x0d, 0x00, 0x01, 0x01, 0x03, 345 0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00}, 346 Buffer () {0x88, 0x0d, 0x00, 0x01, 0x03, 0x03, 347 0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00}, 348 Buffer () {0x88, 0x0d, 0x00, 0x01, 0x09, 0x03, 349 0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00}, 350 Buffer () {0x88, 0x0d, 0x00, 0x01, 0x0b, 0x03, 351 0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00}, 352 Buffer () {0x88, 0x0d, 0x00, 0x01, 0x05, 0x03, 353 0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00}, 354 Buffer () {0x88, 0x0d, 0x00, 0x01, 0x07, 0x03, 355 0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00}, 356 Buffer () {0x88, 0x0d, 0x00, 0x01, 0x0d, 0x03, 357 0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00}, 358 Buffer () {0x88, 0x0d, 0x00, 0x01, 0x0f, 0x03, 359 0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00}, 360 361 // Byte 5 (Type Specific Flags) of Word Address Space Descriptor 362 363 Buffer () {0x88, 0x0d, 0x00, 0x01, 0x01, 0x01, 364 0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00}, 365 Buffer () {0x88, 0x0d, 0x00, 0x01, 0x01, 0x21, 366 0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00}, 367 Buffer () {0x88, 0x0d, 0x00, 0x01, 0x01, 0x11, 368 0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00}, 369 Buffer () {0x88, 0x0d, 0x00, 0x01, 0x01, 0x31, 370 0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00}, 371 Buffer () {0x88, 0x0d, 0x00, 0x01, 0x01, 0x02, 372 0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00}, 373 Buffer () {0x88, 0x0d, 0x00, 0x01, 0x01, 0x22, 374 0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00}, 375 Buffer () {0x88, 0x0d, 0x00, 0x01, 0x01, 0x12, 376 0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00}, 377 Buffer () {0x88, 0x0d, 0x00, 0x01, 0x01, 0x32, 378 0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00}, 379 Buffer () {0x88, 0x0d, 0x00, 0x01, 0x01, 0x03, 380 0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00}, 381 Buffer () {0x88, 0x0d, 0x00, 0x01, 0x01, 0x23, 382 0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00}, 383 Buffer () {0x88, 0x0d, 0x00, 0x01, 0x01, 0x13, 384 0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00}, 385 Buffer () {0x88, 0x0d, 0x00, 0x01, 0x01, 0x33, 386 0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00}, 387 388 // Particular cases 389 390 Buffer () {0x88, 0x0d, 0x00, 0x01, 0x01, 0x03, 391 0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00}, 392 Buffer () {0x88, 0x0d, 0x00, 0x01, 0x01, 0x03, 393 0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 0x79, 0x00}, 394 395 // Resource Source 396 397 Buffer () {0x88, 0x0f, 0x00, 0x01, 0x01, 0x03, 398 0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 399 0x01, 0x00, 0x79, 0x00}, 400 Buffer () {0x88, 0x10, 0x00, 0x01, 0x01, 0x03, 401 0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 402 0x0f, 0x50, 0x00, 0x79, 0x00}, 403 Buffer () {0x88, 0x13, 0x00, 0x01, 0x01, 0x03, 404 0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 405 0xf0, 0x50, 0x41, 0x54, 0x48, 0x00, 0x79, 0x00}, 406 Buffer () {0x88, 0xd7, 0x00, 0x01, 0x01, 0x03, 407 0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 408 0xff, 409 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 410 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 411 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 412 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 413 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 414 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 415 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 416 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 417 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 418 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 419 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 420 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x20, 0x21, 421 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 422 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 423 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 424 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 425 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 426 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 427 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 428 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, 0x61, 429 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 430 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 431 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 432 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x20, 0x21, 0x22, 433 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 434 0x00, 0x79, 0x00}, 435 436 // Particular cases 437 438 Buffer () {0x88, 0x1b, 0x00, 0x01, 0x0f, 0x33, 439 0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 440 0xff, 0x50, 0x41, 0x54, 0x48, 0x50, 0x41, 0x54, 441 0x48, 0x50, 0x41, 0x54, 0x48, 0x00, 0x79, 0x00}, 442 Buffer () {0x88, 0x1b, 0x00, 0x01, 0x0f, 0x33, 443 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 444 0xff, 0x50, 0x41, 0x54, 0x48, 0x50, 0x41, 0x54, 445 0x48, 0x50, 0x41, 0x54, 0x48, 0x00, 0x79, 0x00}, 446 447 // 20051021, relaxation for omitted ResourceSource (bug-fix 70 rejection) 448 Buffer () {0x88, 0x0e, 0x00, 0x01, 0x01, 0x03, 449 0xf7, 0xf6, 0xf9, 0xf8, 0xfb, 0xfa, 0xfd, 0xfc, 0xff, 0xfe, 450 0x0f, 0x79, 0x00}, 451}) 452 453Method(RT0e,, Serialized) 454{ 455 Name(ts, "RT0e") 456 457 // Emit test header, set the filename 458 459 THDR (ts, "WordIO Resource Descriptor Macro", __FILE__) 460 461 // Main test case for packages above 462 463 m330(ts, 37, "p420", p420, p421) 464 465 // Check resource descriptor tag offsets 466 467 Store ( 468 ResourceTemplate () { 469 WordIO (ResourceProducer, MinNotFixed, MaxNotFixed, PosDecode, EntireRange, 470 0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff, , , WIO0) 471 WordIO (ResourceConsumer, MinNotFixed, MaxNotFixed, PosDecode, EntireRange, 472 0xf6f7, 0xf8f9, 0xfafb, 0xfcfd, 0xfeff, , , WIO1) 473 }, Local0) 474 475 m331(ts, 1, WIO0._DEC, 0x21, WIO1._DEC, 0xa1, "_DEC") 476 m331(ts, 2, WIO0._MIF, 0x22, WIO1._MIF, 0xa2, "_MIF") 477 m331(ts, 3, WIO0._MAF, 0x23, WIO1._MAF, 0xa3, "_MAF") 478 m331(ts, 4, WIO0._RNG, 0x28, WIO1._RNG, 0xa8, "_RNG") 479 m331(ts, 5, WIO0._TTP, 0x2c, WIO1._TTP, 0xac, "_TTP") 480 m331(ts, 6, WIO0._TRS, 0x2d, WIO1._TRS, 0xad, "_TRS") 481 m331(ts, 7, WIO0._GRA, 0x30, WIO1._GRA, 0xB0, "_GRA") 482 m331(ts, 8, WIO0._MIN, 0x40, WIO1._MIN, 0xC0, "_MIN") 483 m331(ts, 9, WIO0._MAX, 0x50, WIO1._MAX, 0xD0, "_MAX") 484 m331(ts, 10, WIO0._TRA, 0x60, WIO1._TRA, 0xE0, "_TRA") 485 m331(ts, 11, WIO0._LEN, 0x70, WIO1._LEN, 0xF0, "_LEN") 486} 487 488 489