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     * Common use Data
30     */
31    Name (ID00, 0xE0385BCD)
32    Name (ID01, 0x00) /* Flag of error, used by demo-162 */
33    Name (ID02, 0x00) /* Flag of presence of demo-162 test */
34    Name (ID09, 0x00)
35    Name (ID0A, 0x00)
36    Name (ID0B, 0x89ABCDEF)
37    Name (SD00, "String")
38    Name (BD00, Buffer (0x20)
39    {
40         0x01, 0x02, 0x03, 0x04                           // ....
41    })
42    Name (BD02, Buffer (0x14)
43    {
44        /* 0000 */  0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,  // ........
45        /* 0008 */  0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F,  // ........
46        /* 0010 */  0x20, 0x21, 0x22, 0x23                           //  !"#
47    })
48    CreateField (BD00, 0x00, 0x08, BF30)
49    CreateField (BD00, 0x08, 0x41, BF31)
50    Name (PD00, Package (0x01)
51    {
52        Buffer (0x04)
53        {
54             0x01, 0x02, 0x03, 0x04                           // ....
55        }
56    })
57    Device (DD00)
58    {
59        Name (I900, 0xABCD0017)
60    }
61
62    Device (DD01)
63    {
64        Name (I900, 0xABCD0017)
65    }
66
67    Device (DD02)
68    {
69        Name (I900, 0xABCD0017)
70    }
71
72    Device (DD03)
73    {
74        Name (I900, 0xABCD0017)
75    }
76
77    Device (DD04)
78    {
79        Name (I900, 0xABCD0017)
80    }
81
82    Device (DD05)
83    {
84        Name (I900, 0xABCD0017)
85    }
86
87    Device (DD06)
88    {
89        Name (I900, 0xABCD0017)
90    }
91
92    Device (DD07)
93    {
94        Name (I900, 0xABCD0017)
95    }
96
97    OperationRegion (RD00, SystemMemory, 0x0100, 0x0100)
98    Field (RD00, ByteAcc, NoLock, Preserve)
99    {
100        FD00,   8,
101        FD01,   65
102    }
103
104    /*
105     * Global CreateField declarations for bug 161
106     */
107    /* Comment/uncomment it */
108    Name (ID03, 0x08)
109    Name (ID04, 0x40)
110    Name (ID05, 0x50)
111    Name (ID06, 0x08)
112    Name (ID07, 0x50)
113    Name (ID08, 0x08)
114    Name (BD03, Buffer (0x14)
115    {
116        /* 0000 */  0x10, 0x5D, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,  // .]......
117        /* 0008 */  0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F,  // ........
118        /* 0010 */  0x20, 0x21, 0x22, 0x23                           //  !"#
119    })
120    /* Caused stack overflow */
121
122    CreateField (BD03, 0x20, ID03, BF32)
123    /* CreateField(bd03, 32, 8, bf32) */
124
125    CreateField (BD03, 0x28, (ID03 + 0x08), BF33)
126    /* Caused stack overflow */
127
128    CreateField (BD03, ID04, 0x08, BF34)
129    /* CreateField(bd03, 64, 8, bf34) */
130
131    CreateField (BD03, (ID04 + 0x08), 0x08, BF35)
132    /* Caused stack overflow */
133
134    CreateField (BD03, ID05, ID06, BF36)
135    /* CreateField(bd03, 80, 8, bf36) */
136
137    CreateField (BD03, (ID07 + 0x08), (ID08 + 0x08), BF37)
138    /* ==================== Additional: */
139
140    CreateBitField (BD03, 0x08, BF40)
141    CreateByteField (BD03, 0x01, BF41)
142    CreateWordField (BD03, 0x01, BF42)
143    CreateDWordField (BD03, 0x01, BF43)
144    CreateQWordField (BD03, 0x01, BF44)
145    CreateField (BD03, 0x08, 0x08, BF45)
146    Name (ID21, 0x01)
147    Name (ID22, 0x08)
148    CreateBitField (BD03, ID22, BF46)
149    CreateByteField (BD03, ID21, BF47)
150    CreateWordField (BD03, ID21, BF48)
151    CreateDWordField (BD03, ID21, BF49)
152    CreateQWordField (BD03, ID21, BF4A)
153    CreateField (BD03, 0x08, ID22, BF4B)
154    CreateField (BD03, ID22, 0x08, BF4C)
155    CreateField (BD03, ID22, ID22, BF4D)
156    /* ==================== bug 161. */
157    /* 161 */
158    Mutex (MXD0, 0x00)
159    Event (ED00)
160    OperationRegion (RD01, SystemMemory, 0x0100, 0x0100)
161    OperationRegion (RD02, SystemMemory, 0x0100, 0x0100)
162    Name (PD01, Package (0x01)
163    {
164        0x89ABCDEF
165    })
166    Name (DD08, 0x12)
167    Name (SD01, "123456789")
168    Name (BD04, Buffer (0x09)
169    {
170        /* 0000 */  0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,  // ........
171        /* 0008 */  0x09                                             // .
172    })
173    Name (ID0C, 0x12)
174    Name (SD02, "123456789")
175    Name (BD05, Buffer (0x09)
176    {
177        /* 0000 */  0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,  // ........
178        /* 0008 */  0x09                                             // .
179    })
180    Name (PD02, Package (0x09)
181    {
182        0x01,
183        0x02,
184        0x03,
185        0x04,
186        0x05,
187        0x06,
188        0x07,
189        0x08,
190        0x09
191    })
192    OperationRegion (RD03, SystemMemory, 0x0100, 0x0100)
193    Field (RD03, ByteAcc, NoLock, Preserve)
194    {
195        FD02,   8
196    }
197
198    Device (DD09)
199    {
200    }
201
202    Event (ED01)
203    Method (ME53, 0, NotSerialized)
204    {
205        Return (0x12)
206    }
207
208    Mutex (MXD1, 0x00)
209    PowerResource (PWD0, 0x01, 0x0000)
210    {
211        Method (M001, 0, NotSerialized)
212        {
213            Return (0x00)
214        }
215    }
216
217    Processor (PRD0, 0x00, 0xFFFFFFFF, 0x00){}
218    ThermalZone (TZD0)
219    {
220    }
221
222    CreateField (BD05, 0x00, 0x08, BFD0)
223    Name (ID0D, 0x00)
224    Name (ID0E, 0x00)
225    Method (ME69, 0, NotSerialized)
226    {
227        Return (0x12345678)
228    }
229
230    Name (PD03, Package (0x01)
231    {
232        ME69
233    })
234    Name (ID0F, 0x00)
235    Name (ID10, 0x1234)
236    Name (PD04, Package (0x01)
237    {
238        0x10
239    })
240    Name (PD05, Package (0x01)
241    {
242        0x20
243    })
244    Name (PD06, Package (0x01)
245    {
246        0x30
247    })
248    Name (PD07, Package (0x01)
249    {
250        0x40
251    })
252    Name (PD08, Package (0x01)
253    {
254        0x50
255    })
256    Name (PD09, Package (0x01)
257    {
258        0x60
259    })
260    Name (ID11, 0xFE7CB391D650A284)
261    Name (BD06, Buffer (0x09)
262    {
263        /* 0000 */  0x01, 0x02, 0x03, 0x04, 0x59, 0x06, 0x07, 0x08,  // ....Y...
264        /* 0008 */  0x09                                             // .
265    })
266    CreateField (BD06, 0x28, 0x08, BFD1)
267    OperationRegion (RD04, SystemMemory, 0x0100, 0x0100)
268    Field (RD04, ByteAcc, NoLock, Preserve)
269    {
270        FD03,   8
271    }
272
273    Name (PD0A, Package (0x01)
274    {
275        ID11
276    })
277    Name (PD0B, Package (0x01)
278    {
279        BFD1
280    })
281    Name (PD0C, Package (0x01)
282    {
283        FD03
284    })
285    Name (SD03, "0123456789a")
286    Name (BD07, Buffer (0x2001){})
287    Name (SD04, "qwer0000")
288    Name (BD08, Buffer (0x04)
289    {
290         0x01, 0x77, 0x03, 0x04                           // .w..
291    })
292    Name (PD0D, Package (0x03)
293    {
294        0x05,
295        0x77,
296        0x07
297    })
298    Name (ID12, 0x77)
299    Name (PD0E, Package (0x01)
300    {
301        0x77
302    })
303    Name (ID13, 0x00)
304    Name (SD05, "q_er0000")
305    Name (BD09, Buffer (0x04)
306    {
307         0x01, 0x00, 0x03, 0x04                           // ....
308    })
309    Name (PD0F, Package (0x03)
310    {
311        0x05,
312        0x00,
313        0x07
314    })
315    Name (ID14, 0x11)
316    Name (ID15, 0x22)
317    Name (ID16, 0x33)
318    Name (ID17, 0x44)
319    Name (ID18, 0x55)
320    Name (ID19, 0x66)
321    Name (ID1A, 0x77)
322    Name (ID1B, 0xFEDCBA9876543210)
323    Name (ID1C, 0xFEDCBA9876543211)
324    Name (ID1D, 0xFEDCBA9876543210)
325    Device (DD0B)
326    {
327        Name (S000, "DEV0")
328    }
329
330    Event (ED02)
331    OperationRegion (RD05, SystemMemory, 0x0100, 0x0100)
332    Name (BD0A, Buffer (0x09)
333    {
334         0x10, 0x11, 0x12, 0x13                           // ....
335    })
336    CreateField (BD0A, 0x00, 0x08, BFD2)
337    Name (RTD0, ResourceTemplate ()
338    {
339        IRQNoFlags ()
340            {1}
341        DMA (Compatibility, NotBusMaster, Transfer16, )
342            {2}
343    })
344    Name (BD0B, ResourceTemplate ()
345    {
346        IRQNoFlags ()
347            {1}
348        DMA (Compatibility, NotBusMaster, Transfer16, )
349            {2}
350        IRQNoFlags ()
351            {1}
352        DMA (Compatibility, NotBusMaster, Transfer16, )
353            {2}
354    })
355    Device (DD0C)
356    {
357    }
358
359    Processor (PRD1, 0x00, 0xFFFFFFFF, 0x00){}
360    OperationRegion (RD06, SystemMemory, 0x0100, 0x0100)
361    PowerResource (PWD1, 0x01, 0x0000)
362    {
363        Method (MMMM, 0, NotSerialized)
364        {
365            Return (0x00)
366        }
367    }
368
369    ThermalZone (TZD1)
370    {
371    }
372
373    Event (ED03)
374    Mutex (MXD2, 0x00)
375    Event (ED04)
376    Name (ID1E, 0x19283746)
377    Name (PD10, Package (0x01)
378    {
379        "Package"
380    })
381    Name (RTD1, ResourceTemplate ()
382    {
383        QWordSpace (0xC0, ResourceProducer, PosDecode, MinNotFixed, MaxNotFixed, 0x0A,
384            0xD8D9DADBDCDDDEDF, // Granularity
385            0xE0E1E2E3E4E5E6E7, // Range Minimum
386            0xE8E9EAEBECEDEEEF, // Range Maximum
387            0xF0F1F2F3F4F5F6F7, // Translation Offset
388            0xF8F9FAFBFCFDFEFF, // Length
389            ,, )
390    })
391    Name (BD0C, ResourceTemplate ()
392    {
393        QWordSpace (0xC0, ResourceProducer, PosDecode, MinNotFixed, MaxNotFixed, 0x0A,
394            0xD8D9DADBDCDDDEDF, // Granularity
395            0xE0E1E2E3E4E5E6E7, // Range Minimum
396            0xE8E9EAEBECEDEEEF, // Range Maximum
397            0xF0F1F2F3F4F5F6F7, // Translation Offset
398            0xF8F9FAFBFCFDFEFF, // Length
399            ,, )
400    })
401    Device (DD0D)
402    {
403    }
404
405    Processor (PRD2, 0x00, 0xFFFFFFFF, 0x00){}
406    OperationRegion (RD07, SystemMemory, 0x0100, 0x0100)
407    PowerResource (PWD2, 0x01, 0x0000)
408    {
409        Method (MMMM, 0, NotSerialized)
410        {
411            Return (0x00)
412        }
413    }
414
415    ThermalZone (TZD2)
416    {
417    }
418
419    Event (ED05)
420    Mutex (MXD3, 0x00)
421    Name (ID1F, 0x31)
422    Name (ID20, 0x07)
423    OperationRegion (RD08, SystemMemory, 0x00, ID1F++)
424    Name (BD0D, Buffer (0x08)
425    {
426         0x80, 0x99, 0xFF, 0x83, 0x84, 0x85, 0x86, 0x87   // ........
427    })
428    CreateField (BD0D, 0x08, ID20++, BFD3)
429    Name (PD11, Package (0x02)
430    {
431        0x01
432    })
433    Name (BD0E, Buffer (0x04)
434    {
435         0x01, 0x77, 0x03, 0x04                           // .w..
436    })
437    /* Base of Buffer Field */
438
439    Name (BD0F, Buffer (0x09){})
440    /* Benchmark buffer */
441
442    Name (BD10, Buffer (0x09){})
443    /* It is used in b198 Name(id24, 0) */
444    /* Name(id25, 0) */
445    /* Don't use this name bd13! */
446    /* Name(bd13, Buffer(9){}) */
447    Name (ID29, 0x00)
448    Name (ID2A, 0x00)
449    Name (ID2B, 0x00)
450