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
30Method(md05,, Serialized)
31{
32	Event(e000)
33	Mutex(mx00, 0)
34	ThermalZone(tz00) {}
35	Processor(pr00, 0, 0xFFFFFFFF, 0) {}
36	PowerResource(pw00, 1, 0) {Method(mmmm){return (0)}}
37	Method(m000) {return (0xabcd0006)}
38	Device(d000) { Name(i900, 0xabcd0017) }
39	OperationRegion(r000, SystemMemory, 0x100, 0x100)
40
41	Name(i000, 0xabcd0000)
42	Name(i001, 0xabcd0001)
43	Name(i002, 0xabcd0002)
44	Name(i003, 0xabcd0003)
45	Name(i004, 0xabcd0004)
46	Name(i005, 0xabcd0005)
47
48	Store(Store(Store(Store(Store(Store(Store(Store(0x1a2b3c4d, i000), i001), i002), i003), i004), i005), d000), r000)
49
50	if (LNotEqual(i000, 0x1a2b3c4d)) {
51		err("", zFFF, __LINE__, 0, 0, i000, 0x1a2b3c4d)
52	}
53	if (LNotEqual(i001, 0x1a2b3c4d)) {
54		err("", zFFF, __LINE__, 0, 0, i001, 0x1a2b3c4d)
55	}
56	if (LNotEqual(i002, 0x1a2b3c4d)) {
57		err("", zFFF, __LINE__, 0, 0, i002, 0x1a2b3c4d)
58	}
59	if (LNotEqual(i003, 0x1a2b3c4d)) {
60		err("", zFFF, __LINE__, 0, 0, i003, 0x1a2b3c4d)
61	}
62	if (LNotEqual(i004, 0x1a2b3c4d)) {
63		err("", zFFF, __LINE__, 0, 0, i004, 0x1a2b3c4d)
64	}
65	if (LNotEqual(i005, 0x1a2b3c4d)) {
66		err("", zFFF, __LINE__, 0, 0, i005, 0x1a2b3c4d)
67	}
68	Store(Refof(d000), Local0)
69	if (LNotEqual(DerefOf(Local0), 0x1a2b3c4d)) {
70		err("", zFFF, __LINE__, 0, 0, d000, 0x1a2b3c4d)
71	}
72	Store(Refof(r000), Local0)
73	if (LNotEqual(DerefOf(Local0), 0x1a2b3c4d)) {
74		err("", zFFF, __LINE__, 0, 0, r000, 0x1a2b3c4d)
75	}
76
77	Store(Store(Store(Store(Store(Store(Store(Store(Store(0x91827364, e000), mx00), tz00), pr00), pw00), m000), i000), d000), r000)
78
79	Store(Refof(e000), Local0)
80	if (LNotEqual(DerefOf(Local0), 0x91827364)) {
81		err("", zFFF, __LINE__, 0, 0, e000, 0x91827364)
82	}
83	Store(Refof(mx00), Local0)
84	if (LNotEqual(DerefOf(Local0), 0x91827364)) {
85		err("", zFFF, __LINE__, 0, 0, mx00, 0x91827364)
86	}
87	Store(Refof(tz00), Local0)
88	if (LNotEqual(DerefOf(Local0), 0x91827364)) {
89		err("", zFFF, __LINE__, 0, 0, tz00, 0x91827364)
90	}
91	Store(Refof(pr00), Local0)
92	if (LNotEqual(DerefOf(Local0), 0x91827364)) {
93		err("", zFFF, __LINE__, 0, 0, pr00, 0x91827364)
94	}
95	Store(Refof(pw00), Local0)
96	if (LNotEqual(DerefOf(Local0), 0x91827364)) {
97		err("", zFFF, __LINE__, 0, 0, pw00, 0x91827364)
98	}
99	Store(Refof(m000), Local0)
100	if (LNotEqual(DerefOf(Local0), 0x91827364)) {
101		err("", zFFF, __LINE__, 0, 0, m000, 0x91827364)
102	}
103	Store(Refof(i000), Local0)
104	if (LNotEqual(DerefOf(Local0), 0x91827364)) {
105		err("", zFFF, __LINE__, 0, 0, i000, 0x91827364)
106	}
107	Store(Refof(d000), Local0)
108	if (LNotEqual(DerefOf(Local0), 0x91827364)) {
109		err("", zFFF, __LINE__, 0, 0, d000, 0x91827364)
110	}
111	Store(Refof(r000), Local0)
112	if (LNotEqual(DerefOf(Local0), 0x91827364)) {
113		err("", zFFF, __LINE__, 0, 0, r000, 0x91827364)
114	}
115}
116
117Method(md06,, Serialized)
118{
119	Event(e000)
120	Mutex(mx00, 0)
121	ThermalZone(tz00) {}
122	Processor(pr00, 0, 0xFFFFFFFF, 0) {}
123	PowerResource(pw00, 1, 0) {Method(mmmm){return (0)}}
124	Method(m000) {return (0xabcd0006)}
125	Device(d000) { Name(i900, 0xabcd0017) }
126	OperationRegion(r000, SystemMemory, 0x100, 0x100)
127
128	Name(i000, 0xabcd0006)
129	Name(i001, 0xabcd0007)
130	Name(i002, 0xabcd0008)
131	Name(i003, 0xabcd0009)
132	Name(i004, 0xabcd000a)
133	Name(i005, 0xabcd000b)
134	Name(i006, 0xabcd000c)
135
136	Store(Store(Store(Store(Store(Store(i006, i000), i001), i002), i003), i004), i005)
137
138	if (LNotEqual(i006, i000)) {
139		err("", zFFF, __LINE__, 0, 0, i006, i000)
140	}
141	if (LNotEqual(i006, i001)) {
142		err("", zFFF, __LINE__, 0, 0, i006, i001)
143	}
144	if (LNotEqual(i006, i002)) {
145		err("", zFFF, __LINE__, 0, 0, i006, i002)
146	}
147	if (LNotEqual(i006, i003)) {
148		err("", zFFF, __LINE__, 0, 0, i006, i003)
149	}
150	if (LNotEqual(i006, i004)) {
151		err("", zFFF, __LINE__, 0, 0, i006, i004)
152	}
153	if (LNotEqual(i006, i005)) {
154		err("", zFFF, __LINE__, 0, 0, i006, i005)
155	}
156	if (LNotEqual(i006, i006)) {
157		err("", zFFF, __LINE__, 0, 0, i006, i006)
158	}
159	Store(Store(Store(Store(Store(Store(Store(i006, e000), mx00), tz00), pr00), pw00), m000), i000)
160
161	Store(Refof(e000), Local0)
162	if (LNotEqual(DerefOf(Local0), i006)) {
163		err("", zFFF, __LINE__, 0, 0, e000, i006)
164	}
165	Store(Refof(mx00), Local0)
166	if (LNotEqual(DerefOf(Local0), i006)) {
167		err("", zFFF, __LINE__, 0, 0, mx00, i006)
168	}
169	Store(Refof(tz00), Local0)
170	if (LNotEqual(DerefOf(Local0), i006)) {
171		err("", zFFF, __LINE__, 0, 0, tz00, i006)
172	}
173	Store(Refof(pr00), Local0)
174	if (LNotEqual(DerefOf(Local0), i006)) {
175		err("", zFFF, __LINE__, 0, 0, pr00, i006)
176	}
177	Store(Refof(pw00), Local0)
178	if (LNotEqual(DerefOf(Local0), i006)) {
179		err("", zFFF, __LINE__, 0, 0, pw00, i006)
180	}
181	Store(Refof(m000), Local0)
182	if (LNotEqual(DerefOf(Local0), i006)) {
183		err("", zFFF, __LINE__, 0, 0, m000, i006)
184	}
185	Store(Refof(i000), Local0)
186	if (LNotEqual(DerefOf(Local0), i006)) {
187		err("", zFFF, __LINE__, 0, 0, i000, i006)
188	}
189}
190
191Method(md68,, Serialized)
192{
193	Name(i000, 0xe0385bcd)
194	Event(OOO2)
195	Name(p000, Package(8){})
196	Name(p001, Package(8){OOO2})
197
198	Store(Refof(OOO2), Local7)
199	Store(Refof(OOO2), Index(p000, 0))
200
201	Store(ObjectType(DeRefof(Local7)), Local0)
202	if (LNotEqual(Local0, c00f)) {
203		err("", zFFF, __LINE__, 0, 0, Local0, c00f)
204	}
205	Store(Derefof(Index(p000, 0)), Local6)
206	Store(ObjectType(DeRefof(Local6)), Local0)
207	if (LNotEqual(Local0, c00f)) {
208		err("", zFFF, __LINE__, 0, 0, Local0, c00f)
209	}
210
211	Store(i000, OOO2)
212	Store (0x61, OOO2)
213
214	Store(DeRefof(Refof(OOO2)), Local0)
215
216	if (LNotEqual(Local0, 0x61)) {
217		err("", zFFF, __LINE__, 0, 0, Local0, 0x61)
218	}
219	if (LNotEqual(i000, 0xe0385bcd)) {
220		err("", zFFF, __LINE__, 0, 0, i000, 0xe0385bcd)
221	}
222
223	Store(ObjectType(DeRefof(Local7)), Local0)
224	if (LNotEqual(Local0, c009)) {
225		err("", zFFF, __LINE__, 0, 0, Local0, c009)
226	}
227
228	Store(Refof(OOO2), Local7)
229	Store(ObjectType(DeRefof(Local7)), Local0)
230	if (LNotEqual(Local0, c009)) {
231		err("", zFFF, __LINE__, 0, 0, Local0, c009)
232	}
233
234	Store(ObjectType(OOO2), Local0)
235	if (LNotEqual(Local0, c009)) {
236		err("", zFFF, __LINE__, 0, 0, Local0, c009)
237	}
238
239	Store(Derefof(Index(p000, 0)), Local7)
240	Store(ObjectType(DeRefof(Local7)), Local0)
241	if (LNotEqual(Local0, c009)) {
242		err("", zFFF, __LINE__, 0, 0, Local0, c009)
243	}
244}
245
246Method(md69,, Serialized)
247{
248	Name(i000, 0xe0385bcd)
249	Device(OOO2) {
250		Name(i001, 0xabcd0011)
251		Name(i002, 0xabcd0012)
252		Name(i003, 0xabcd0013)
253		Name(i004, 0xabcd0014)
254		Name(i005, 0xabcd0015)
255		Name(i006, 0xabcd0016)
256		Name(i007, 0xabcd0017)
257	}
258
259	Store(RefOf(OOO2.i001), Local1)
260	Store(RefOf(OOO2.i002), Local2)
261	Store(RefOf(OOO2.i003), Local3)
262	Store(RefOf(OOO2.i004), Local4)
263	Store(RefOf(OOO2.i005), Local5)
264	Store(RefOf(OOO2.i006), Local6)
265	Store(RefOf(OOO2.i007), Local7)
266
267	Store(i000, OOO2)
268	Store (0x61, OOO2)
269
270	Store(DeRefof(Refof(OOO2)), Local0)
271
272	if (LNotEqual(Local0, 0x61)) {
273		err("", zFFF, __LINE__, 0, 0, Local0, 0x61)
274	}
275	if (LNotEqual(i000, 0xe0385bcd)) {
276		err("", zFFF, __LINE__, 0, 0, i000, 0xe0385bcd)
277	}
278
279	// Are the locals save?
280
281	Store(DerefOf(Local1), Local0)
282	if (LNotEqual(Local0, 0xabcd0011)) {
283		err("", zFFF, __LINE__, 0, 0, Local0, 0xabcd0011)
284	}
285	Store(DerefOf(Local2), Local0)
286	if (LNotEqual(Local0, 0xabcd0012)) {
287		err("", zFFF, __LINE__, 0, 0, Local0, 0xabcd0012)
288	}
289	Store(DerefOf(Local3), Local0)
290	if (LNotEqual(Local0, 0xabcd0013)) {
291		err("", zFFF, __LINE__, 0, 0, Local0, 0xabcd0013)
292	}
293	Store(DerefOf(Local4), Local0)
294	if (LNotEqual(Local0, 0xabcd0014)) {
295		err("", zFFF, __LINE__, 0, 0, Local0, 0xabcd0014)
296	}
297	Store(DerefOf(Local5), Local0)
298	if (LNotEqual(Local0, 0xabcd0015)) {
299		err("", zFFF, __LINE__, 0, 0, Local0, 0xabcd0015)
300	}
301	Store(DerefOf(Local6), Local0)
302	if (LNotEqual(Local0, 0xabcd0016)) {
303		err("", zFFF, __LINE__, 0, 0, Local0, 0xabcd0016)
304	}
305	Store(DerefOf(Local7), Local0)
306	if (LNotEqual(Local0, 0xabcd0017)) {
307		err("", zFFF, __LINE__, 0, 0, Local0, 0xabcd0017)
308	}
309}
310
311Method(md07)
312{
313	CH03("", 0, 0xf02, __LINE__, 0)
314	md05()
315	md06()
316	md68()
317	md69()
318	CH03("", 0, 0xf03, __LINE__, 0)
319}
320