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 * Bug 257: 30 * 31 * SUMMARY: Unexpected AE_AML_OPERAND_TYPE when the Object in Load is a Region Field 32 */ 33 /* 34 * Original source code: 35 DefinitionBlock("ssdt.aml", "SSDT", 0x02, "Intel", "Many", 0x00000001) 36 { 37 Device(AUXD) 38 { 39 Method(M000) 40 { 41 Return ("\\AUXD.M000 ()") 42 } 43 } 44 } 45 */ 46 Name (B257, Buffer (0x42) 47 { 48 /* 0000 */ 0x53, 0x53, 0x44, 0x54, 0x42, 0x00, 0x00, 0x00, // SSDTB... 49 /* 0008 */ 0x02, 0x81, 0x49, 0x6E, 0x74, 0x65, 0x6C, 0x00, // ..Intel. 50 /* 0010 */ 0x4D, 0x61, 0x6E, 0x79, 0x00, 0x00, 0x00, 0x00, // Many.... 51 /* 0018 */ 0x01, 0x00, 0x00, 0x00, 0x49, 0x4E, 0x54, 0x4C, // ....INTL 52 /* 0020 */ 0x11, 0x10, 0x06, 0x20, 0x5B, 0x82, 0x1C, 0x41, // ... [..A 53 /* 0028 */ 0x55, 0x58, 0x44, 0x14, 0x16, 0x4D, 0x30, 0x30, // UXD..M00 54 /* 0030 */ 0x30, 0x00, 0xA4, 0x0D, 0x5C, 0x41, 0x55, 0x58, // 0...\AUX 55 /* 0038 */ 0x44, 0x2E, 0x4D, 0x30, 0x30, 0x30, 0x20, 0x28, // D.M000 ( 56 /* 0040 */ 0x29, 0x00 // ). 57 }) 58 Name (H257, 0x00) 59 OperationRegion (R257, SystemMemory, 0x00, 0x42) 60 Field (R257, ByteAcc, NoLock, Preserve) 61 { 62 F257, 528 63 } 64 65 Method (M17D, 0, NotSerialized) 66 { 67 External (\AUXD.M000, UnknownObj) 68 F257 = B257 /* \B257 */ 69 If (CondRefOf (\AUXD, Local0)) 70 { 71 ERR (__METHOD__, ZFFF, __LINE__, 0x00, 0x00, "\\AUXD", 0x01) 72 Return (Zero) 73 } 74 75 If (CH03 (__METHOD__, 0x00, __LINE__, 0x00, 0x00)) 76 { 77 Return (Zero) 78 } 79 80 Load (F257, H257) /* \H257 */ 81 If (CH03 (__METHOD__, 0x00, __LINE__, 0x00, 0x00)) 82 { 83 Return (Zero) 84 } 85 86 If (CondRefOf (\AUXD, Local0)){} 87 Else 88 { 89 ERR (__METHOD__, ZFFF, __LINE__, 0x00, 0x00, "\\AUXD", 0x00) 90 Return (Zero) 91 } 92 93 Local1 = ObjectType (Local0) 94 If ((Local1 != 0x06)) 95 { 96 ERR (__METHOD__, ZFFF, __LINE__, 0x00, 0x00, Local1, 0x06) 97 Return (Zero) 98 } 99 100 Local0 = ObjectType (\AUXD.M000) 101 If ((Local0 != 0x08)) 102 { 103 ERR (__METHOD__, ZFFF, __LINE__, 0x00, 0x00, Local0, 0x08) 104 Return (Zero) 105 } 106 107 Unload (H257) 108 If (CondRefOf (\AUXD, Local0)) 109 { 110 ERR (__METHOD__, ZFFF, __LINE__, 0x00, 0x00, "\\AUXD", 0x01) 111 } 112 } 113