1/*
2 * Copyright (c) 2020, Rebecca Cran <rebecca@bsdio.com>
3 *
4 * SPDX-License-Identifier: BSD-2-Clause-Patent
5 */
6
7/*
8 * Intel ACPI Component Architecture
9 * AML Disassembler version 20100528
10 *
11 * Disassembly of DSDT.dat, Sat Apr 18 15:41:05 2015
12 *
13 *
14 * Original Table Header:
15 *     Signature        "DSDT"
16 *     Length           0x000008FA (2298)
17 *     Revision         0x02
18 *     Checksum         0xC4
19 *     OEM ID           "BHYVE "
20 *     OEM Table ID     "BVDSDT  "
21 *     OEM Revision     0x00000001 (1)
22 *     Compiler ID      "INTL"
23 *     Compiler Version 0x20150204 (538247684)
24 */
25DefinitionBlock ("DSDT.aml", "DSDT", 2, "BHYVE", "BVDSDT", 0x00000001)
26{
27    Name (_S5, Package (0x02)
28    {
29        0x05,
30        Zero
31    })
32    Name (PICM, Zero)
33    Method (_PIC, 1, NotSerialized)
34    {
35        Store (Arg0, PICM)
36    }
37
38    Scope (_SB)
39    {
40        Device (PC00)
41        {
42            Name (_HID, EisaId ("PNP0A03"))
43            Name (_ADR, Zero)
44            Method (_BBN, 0, NotSerialized)
45            {
46                Return (Zero)
47            }
48
49            Name (_CRS, ResourceTemplate ()
50            {
51                WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
52                    0x0000,             // Granularity
53                    0x0000,             // Range Minimum
54                    0x00FF,             // Range Maximum
55                    0x0000,             // Translation Offset
56                    0x0100,             // Length
57                    ,, )
58                IO (Decode16,
59                    0x03C0,             // Range Minimum
60                    0x03C0,             // Range Maximum
61                    0x00,               // Alignment
62                    0x20,               // Length
63                    )
64                IO (Decode16,
65                    0x0CF8,             // Range Minimum
66                    0x0CF8,             // Range Maximum
67                    0x01,               // Alignment
68                    0x08,               // Length
69                    )
70                WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
71                    0x0000,             // Granularity
72                    0x0000,             // Range Minimum
73                    0x0CF7,             // Range Maximum
74                    0x0000,             // Translation Offset
75                    0x0CF8,             // Length
76                    ,, , TypeStatic)
77                WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
78                    0x0000,             // Granularity
79                    0x0D00,             // Range Minimum
80                    0xFFFF,             // Range Maximum
81                    0x0000,             // Translation Offset
82                    0xF300,             // Length
83                    ,, , TypeStatic)
84                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
85                    0x00000000,         // Granularity
86                    0x000A0000,         // Range Minimum
87                    0x000BFFFF,         // Range Maximum
88                    0x00000000,         // Translation Offset
89                    0x00020000,         // Length
90                    ,, , AddressRangeMemory, TypeStatic)
91                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
92                    0x00000000,         // Granularity
93                    0xC0000000,         // Range Minimum
94                    0xDFFFFFFF,         // Range Maximum
95                    0x00000000,         // Translation Offset
96                    0x20000000,         // Range Length
97                    ,, PW32)
98                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
99                    0x00000000,         // Granularity
100                    0xF0000000,         // Range Minimum
101                    0xF07FFFFF,         // Range Maximum
102                    0x00000000,         // Translation Offset
103                    0x00800000,         // Range Length
104                    ,, FB32)
105                QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
106                    0x0000000000000000, // Granularity
107                    0x000000D000000000, // Range Minimum
108                    0x000000D0000FFFFF, // Range Maximum
109                    0x0000000000000000, // Translation Offset
110                    0x0000000000100000, // Length
111                    ,, , AddressRangeMemory, TypeStatic)
112            })
113            Name (PPRT, Package ()
114            {
115                Package () { 0x0000FFFF, 0, LPC.LNKF, Zero },
116                Package () { 0x0000FFFF, 1, LPC.LNKG, Zero },
117                Package () { 0x0000FFFF, 2, LPC.LNKH, Zero },
118                Package () { 0x0000FFFF, 3, LPC.LNKA, Zero },
119
120                Package () { 0x0001FFFF, 0, LPC.LNKG, Zero },
121                Package () { 0x0001FFFF, 1, LPC.LNKH, Zero },
122                Package () { 0x0001FFFF, 2, LPC.LNKA, Zero },
123                Package () { 0x0001FFFF, 3, LPC.LNKB, Zero },
124
125                Package () { 0x0002FFFF, 0, LPC.LNKH, Zero },
126                Package () { 0x0002FFFF, 1, LPC.LNKA, Zero },
127                Package () { 0x0002FFFF, 2, LPC.LNKB, Zero },
128                Package () { 0x0002FFFF, 3, LPC.LNKC, Zero },
129
130                Package () { 0x0003FFFF, 0, LPC.LNKA, Zero },
131                Package () { 0x0003FFFF, 1, LPC.LNKB, Zero },
132                Package () { 0x0003FFFF, 2, LPC.LNKC, Zero },
133                Package () { 0x0003FFFF, 3, LPC.LNKD, Zero },
134
135                Package () { 0x0004FFFF, 0, LPC.LNKB, Zero },
136                Package () { 0x0004FFFF, 1, LPC.LNKC, Zero },
137                Package () { 0x0004FFFF, 2, LPC.LNKD, Zero },
138                Package () { 0x0004FFFF, 3, LPC.LNKE, Zero },
139
140                Package () { 0x0005FFFF, 0, LPC.LNKC, Zero },
141                Package () { 0x0005FFFF, 1, LPC.LNKD, Zero },
142                Package () { 0x0005FFFF, 2, LPC.LNKE, Zero },
143                Package () { 0x0005FFFF, 3, LPC.LNKF, Zero },
144
145                Package () { 0x0006FFFF, 0, LPC.LNKD, Zero },
146                Package () { 0x0006FFFF, 1, LPC.LNKE, Zero },
147                Package () { 0x0006FFFF, 2, LPC.LNKF, Zero },
148                Package () { 0x0006FFFF, 3, LPC.LNKG, Zero },
149
150                Package () { 0x0007FFFF, 0, LPC.LNKE, Zero },
151                Package () { 0x0007FFFF, 1, LPC.LNKF, Zero },
152                Package () { 0x0007FFFF, 2, LPC.LNKG, Zero },
153                Package () { 0x0007FFFF, 3, LPC.LNKH, Zero },
154
155                Package () { 0x0008FFFF, 0, LPC.LNKF, Zero },
156                Package () { 0x0008FFFF, 1, LPC.LNKG, Zero },
157                Package () { 0x0008FFFF, 2, LPC.LNKH, Zero },
158                Package () { 0x0008FFFF, 3, LPC.LNKA, Zero },
159
160                Package () { 0x0009FFFF, 0, LPC.LNKG, Zero },
161                Package () { 0x0009FFFF, 1, LPC.LNKH, Zero },
162                Package () { 0x0009FFFF, 2, LPC.LNKA, Zero },
163                Package () { 0x0009FFFF, 3, LPC.LNKB, Zero },
164
165                Package () { 0x000AFFFF, 0, LPC.LNKH, Zero },
166                Package () { 0x000AFFFF, 1, LPC.LNKA, Zero },
167                Package () { 0x000AFFFF, 2, LPC.LNKB, Zero },
168                Package () { 0x000AFFFF, 3, LPC.LNKC, Zero },
169
170                Package () { 0x000BFFFF, 0, LPC.LNKA, Zero },
171                Package () { 0x000BFFFF, 1, LPC.LNKB, Zero },
172                Package () { 0x000BFFFF, 2, LPC.LNKC, Zero },
173                Package () { 0x000BFFFF, 3, LPC.LNKD, Zero },
174
175                Package () { 0x000CFFFF, 0, LPC.LNKB, Zero },
176                Package () { 0x000CFFFF, 1, LPC.LNKC, Zero },
177                Package () { 0x000CFFFF, 2, LPC.LNKD, Zero },
178                Package () { 0x000CFFFF, 3, LPC.LNKE, Zero },
179
180                Package () { 0x000DFFFF, 0, LPC.LNKC, Zero },
181                Package () { 0x000DFFFF, 1, LPC.LNKD, Zero },
182                Package () { 0x000DFFFF, 2, LPC.LNKE, Zero },
183                Package () { 0x000DFFFF, 3, LPC.LNKF, Zero },
184
185                Package () { 0x000EFFFF, 0, LPC.LNKD, Zero },
186                Package () { 0x000EFFFF, 1, LPC.LNKE, Zero },
187                Package () { 0x000EFFFF, 2, LPC.LNKF, Zero },
188                Package () { 0x000EFFFF, 3, LPC.LNKG, Zero },
189
190                Package () { 0x000FFFFF, 0, LPC.LNKE, Zero },
191                Package () { 0x000FFFFF, 1, LPC.LNKF, Zero },
192                Package () { 0x000FFFFF, 2, LPC.LNKG, Zero },
193                Package () { 0x000FFFFF, 3, LPC.LNKH, Zero },
194
195                Package () { 0x0010FFFF, 0, LPC.LNKF, Zero },
196                Package () { 0x0010FFFF, 1, LPC.LNKG, Zero },
197                Package () { 0x0010FFFF, 2, LPC.LNKH, Zero },
198                Package () { 0x0010FFFF, 3, LPC.LNKA, Zero },
199
200                Package () { 0x0011FFFF, 0, LPC.LNKG, Zero },
201                Package () { 0x0011FFFF, 1, LPC.LNKH, Zero },
202                Package () { 0x0011FFFF, 2, LPC.LNKA, Zero },
203                Package () { 0x0011FFFF, 3, LPC.LNKB, Zero },
204
205                Package () { 0x0012FFFF, 0, LPC.LNKH, Zero },
206                Package () { 0x0012FFFF, 1, LPC.LNKA, Zero },
207                Package () { 0x0012FFFF, 2, LPC.LNKB, Zero },
208                Package () { 0x0012FFFF, 3, LPC.LNKC, Zero },
209
210                Package () { 0x0013FFFF, 0, LPC.LNKA, Zero },
211                Package () { 0x0013FFFF, 1, LPC.LNKB, Zero },
212                Package () { 0x0013FFFF, 2, LPC.LNKC, Zero },
213                Package () { 0x0013FFFF, 3, LPC.LNKD, Zero },
214
215                Package () { 0x0014FFFF, 0, LPC.LNKB, Zero },
216                Package () { 0x0014FFFF, 1, LPC.LNKC, Zero },
217                Package () { 0x0014FFFF, 2, LPC.LNKD, Zero },
218                Package () { 0x0014FFFF, 3, LPC.LNKE, Zero },
219
220                Package () { 0x0015FFFF, 0, LPC.LNKC, Zero },
221                Package () { 0x0015FFFF, 1, LPC.LNKD, Zero },
222                Package () { 0x0015FFFF, 2, LPC.LNKE, Zero },
223                Package () { 0x0015FFFF, 3, LPC.LNKF, Zero },
224
225                Package () { 0x0016FFFF, 0, LPC.LNKD, Zero },
226                Package () { 0x0016FFFF, 1, LPC.LNKE, Zero },
227                Package () { 0x0016FFFF, 2, LPC.LNKF, Zero },
228                Package () { 0x0016FFFF, 3, LPC.LNKG, Zero },
229
230                Package () { 0x0017FFFF, 0, LPC.LNKE, Zero },
231                Package () { 0x0017FFFF, 1, LPC.LNKF, Zero },
232                Package () { 0x0017FFFF, 2, LPC.LNKG, Zero },
233                Package () { 0x0017FFFF, 3, LPC.LNKH, Zero },
234
235                Package () { 0x0018FFFF, 0, LPC.LNKF, Zero },
236                Package () { 0x0018FFFF, 1, LPC.LNKG, Zero },
237                Package () { 0x0018FFFF, 2, LPC.LNKH, Zero },
238                Package () { 0x0018FFFF, 3, LPC.LNKA, Zero },
239
240                Package () { 0x0019FFFF, 0, LPC.LNKG, Zero },
241                Package () { 0x0019FFFF, 1, LPC.LNKH, Zero },
242                Package () { 0x0019FFFF, 2, LPC.LNKA, Zero },
243                Package () { 0x0019FFFF, 3, LPC.LNKB, Zero },
244
245                Package () { 0x001AFFFF, 0, LPC.LNKH, Zero },
246                Package () { 0x001AFFFF, 1, LPC.LNKA, Zero },
247                Package () { 0x001AFFFF, 2, LPC.LNKB, Zero },
248                Package () { 0x001AFFFF, 3, LPC.LNKC, Zero },
249
250                Package () { 0x001BFFFF, 0, LPC.LNKA, Zero },
251                Package () { 0x001BFFFF, 1, LPC.LNKB, Zero },
252                Package () { 0x001BFFFF, 2, LPC.LNKC, Zero },
253                Package () { 0x001BFFFF, 3, LPC.LNKD, Zero },
254
255                Package () { 0x001CFFFF, 0, LPC.LNKB, Zero },
256                Package () { 0x001CFFFF, 1, LPC.LNKC, Zero },
257                Package () { 0x001CFFFF, 2, LPC.LNKD, Zero },
258                Package () { 0x001CFFFF, 3, LPC.LNKE, Zero },
259
260                Package () { 0x001DFFFF, 0, LPC.LNKC, Zero },
261                Package () { 0x001DFFFF, 1, LPC.LNKD, Zero },
262                Package () { 0x001DFFFF, 2, LPC.LNKE, Zero },
263                Package () { 0x001DFFFF, 3, LPC.LNKF, Zero },
264
265                Package () { 0x001EFFFF, 0, LPC.LNKD, Zero },
266                Package () { 0x001EFFFF, 1, LPC.LNKE, Zero },
267                Package () { 0x001EFFFF, 2, LPC.LNKF, Zero },
268                Package () { 0x001EFFFF, 3, LPC.LNKG, Zero },
269
270                Package () { 0x001FFFFF, 0, LPC.LNKE, Zero },
271                Package () { 0x001FFFFF, 1, LPC.LNKF, Zero },
272                Package () { 0x001FFFFF, 2, LPC.LNKG, Zero },
273                Package () { 0x001FFFFF, 3, LPC.LNKH, Zero }
274            })
275            Name (APRT, Package ()
276            {
277                Package () { 0x0000FFFF, 0, Zero, 0x15 },
278                Package () { 0x0000FFFF, 1, Zero, 0x16 },
279                Package () { 0x0000FFFF, 2, Zero, 0x17 },
280                Package () { 0x0000FFFF, 3, Zero, 0x10 },
281
282                Package () { 0x0001FFFF, 0, Zero, 0x16 },
283                Package () { 0x0001FFFF, 1, Zero, 0x17 },
284                Package () { 0x0001FFFF, 2, Zero, 0x10 },
285                Package () { 0x0001FFFF, 3, Zero, 0x11 },
286
287                Package () { 0x0002FFFF, 0, Zero, 0x17 },
288                Package () { 0x0002FFFF, 1, Zero, 0x10 },
289                Package () { 0x0002FFFF, 2, Zero, 0x11 },
290                Package () { 0x0002FFFF, 3, Zero, 0x12 },
291
292                Package () { 0x0003FFFF, 0, Zero, 0x10 },
293                Package () { 0x0003FFFF, 1, Zero, 0x11 },
294                Package () { 0x0003FFFF, 2, Zero, 0x12 },
295                Package () { 0x0003FFFF, 3, Zero, 0x13 },
296
297                Package () { 0x0004FFFF, 0, Zero, 0x11 },
298                Package () { 0x0004FFFF, 1, Zero, 0x12 },
299                Package () { 0x0004FFFF, 2, Zero, 0x13 },
300                Package () { 0x0004FFFF, 3, Zero, 0x14 },
301
302                Package () { 0x0005FFFF, 0, Zero, 0x12 },
303                Package () { 0x0005FFFF, 1, Zero, 0x13 },
304                Package () { 0x0005FFFF, 2, Zero, 0x14 },
305                Package () { 0x0005FFFF, 3, Zero, 0x15 },
306
307                Package () { 0x0006FFFF, 0, Zero, 0x13 },
308                Package () { 0x0006FFFF, 1, Zero, 0x14 },
309                Package () { 0x0006FFFF, 2, Zero, 0x15 },
310                Package () { 0x0006FFFF, 3, Zero, 0x16 },
311
312                Package () { 0x0007FFFF, 0, Zero, 0x14 },
313                Package () { 0x0007FFFF, 1, Zero, 0x15 },
314                Package () { 0x0007FFFF, 2, Zero, 0x16 },
315                Package () { 0x0007FFFF, 3, Zero, 0x17 },
316
317                Package () { 0x0008FFFF, 0, Zero, 0x15 },
318                Package () { 0x0008FFFF, 1, Zero, 0x16 },
319                Package () { 0x0008FFFF, 2, Zero, 0x17 },
320                Package () { 0x0008FFFF, 3, Zero, 0x10 },
321
322                Package () { 0x0009FFFF, 0, Zero, 0x16 },
323                Package () { 0x0009FFFF, 1, Zero, 0x17 },
324                Package () { 0x0009FFFF, 2, Zero, 0x10 },
325                Package () { 0x0009FFFF, 3, Zero, 0x11 },
326
327                Package () { 0x000AFFFF, 0, Zero, 0x17 },
328                Package () { 0x000AFFFF, 1, Zero, 0x10 },
329                Package () { 0x000AFFFF, 2, Zero, 0x11 },
330                Package () { 0x000AFFFF, 3, Zero, 0x12 },
331
332                Package () { 0x000BFFFF, 0, Zero, 0x10 },
333                Package () { 0x000BFFFF, 1, Zero, 0x11 },
334                Package () { 0x000BFFFF, 2, Zero, 0x12 },
335                Package () { 0x000BFFFF, 3, Zero, 0x13 },
336
337                Package () { 0x000CFFFF, 0, Zero, 0x11 },
338                Package () { 0x000CFFFF, 1, Zero, 0x12 },
339                Package () { 0x000CFFFF, 2, Zero, 0x13 },
340                Package () { 0x000CFFFF, 3, Zero, 0x14 },
341
342                Package () { 0x000DFFFF, 0, Zero, 0x12 },
343                Package () { 0x000DFFFF, 1, Zero, 0x13 },
344                Package () { 0x000DFFFF, 2, Zero, 0x14 },
345                Package () { 0x000DFFFF, 3, Zero, 0x15 },
346
347                Package () { 0x000EFFFF, 0, Zero, 0x13 },
348                Package () { 0x000EFFFF, 1, Zero, 0x14 },
349                Package () { 0x000EFFFF, 2, Zero, 0x15 },
350                Package () { 0x000EFFFF, 3, Zero, 0x16 },
351
352                Package () { 0x000FFFFF, 0, Zero, 0x14 },
353                Package () { 0x000FFFFF, 1, Zero, 0x15 },
354                Package () { 0x000FFFFF, 2, Zero, 0x16 },
355                Package () { 0x000FFFFF, 3, Zero, 0x17 },
356
357                Package () { 0x0010FFFF, 0, Zero, 0x15 },
358                Package () { 0x0010FFFF, 1, Zero, 0x16 },
359                Package () { 0x0010FFFF, 2, Zero, 0x17 },
360                Package () { 0x0010FFFF, 3, Zero, 0x10 },
361
362                Package () { 0x0011FFFF, 0, Zero, 0x16 },
363                Package () { 0x0011FFFF, 1, Zero, 0x17 },
364                Package () { 0x0011FFFF, 2, Zero, 0x10 },
365                Package () { 0x0011FFFF, 3, Zero, 0x11 },
366
367                Package () { 0x0012FFFF, 0, Zero, 0x17 },
368                Package () { 0x0012FFFF, 1, Zero, 0x10 },
369                Package () { 0x0012FFFF, 2, Zero, 0x11 },
370                Package () { 0x0012FFFF, 3, Zero, 0x12 },
371
372                Package () { 0x0013FFFF, 0, Zero, 0x10 },
373                Package () { 0x0013FFFF, 1, Zero, 0x11 },
374                Package () { 0x0013FFFF, 2, Zero, 0x12 },
375                Package () { 0x0013FFFF, 3, Zero, 0x13 },
376
377                Package () { 0x0014FFFF, 0, Zero, 0x11 },
378                Package () { 0x0014FFFF, 1, Zero, 0x12 },
379                Package () { 0x0014FFFF, 2, Zero, 0x13 },
380                Package () { 0x0014FFFF, 3, Zero, 0x14 },
381
382                Package () { 0x0015FFFF, 0, Zero, 0x12 },
383                Package () { 0x0015FFFF, 1, Zero, 0x13 },
384                Package () { 0x0015FFFF, 2, Zero, 0x14 },
385                Package () { 0x0015FFFF, 3, Zero, 0x15 },
386
387                Package () { 0x0016FFFF, 0, Zero, 0x13 },
388                Package () { 0x0016FFFF, 1, Zero, 0x14 },
389                Package () { 0x0016FFFF, 2, Zero, 0x15 },
390                Package () { 0x0016FFFF, 3, Zero, 0x16 },
391
392                Package () { 0x0017FFFF, 0, Zero, 0x14 },
393                Package () { 0x0017FFFF, 1, Zero, 0x15 },
394                Package () { 0x0017FFFF, 2, Zero, 0x16 },
395                Package () { 0x0017FFFF, 3, Zero, 0x17 },
396
397                Package () { 0x0018FFFF, 0, Zero, 0x15 },
398                Package () { 0x0018FFFF, 1, Zero, 0x16 },
399                Package () { 0x0018FFFF, 2, Zero, 0x17 },
400                Package () { 0x0018FFFF, 3, Zero, 0x10 },
401
402                Package () { 0x0019FFFF, 0, Zero, 0x16 },
403                Package () { 0x0019FFFF, 1, Zero, 0x17 },
404                Package () { 0x0019FFFF, 2, Zero, 0x10 },
405                Package () { 0x0019FFFF, 3, Zero, 0x11 },
406
407                Package () { 0x001AFFFF, 0, Zero, 0x17 },
408                Package () { 0x001AFFFF, 1, Zero, 0x10 },
409                Package () { 0x001AFFFF, 2, Zero, 0x11 },
410                Package () { 0x001AFFFF, 3, Zero, 0x12 },
411
412                Package () { 0x001BFFFF, 0, Zero, 0x10 },
413                Package () { 0x001BFFFF, 1, Zero, 0x11 },
414                Package () { 0x001BFFFF, 2, Zero, 0x12 },
415                Package () { 0x001BFFFF, 3, Zero, 0x13 },
416
417                Package () { 0x001CFFFF, 0, Zero, 0x11 },
418                Package () { 0x001CFFFF, 1, Zero, 0x12 },
419                Package () { 0x001CFFFF, 2, Zero, 0x13 },
420                Package () { 0x001CFFFF, 3, Zero, 0x14 },
421
422                Package () { 0x001DFFFF, 0, Zero, 0x12 },
423                Package () { 0x001DFFFF, 1, Zero, 0x13 },
424                Package () { 0x001DFFFF, 2, Zero, 0x14 },
425                Package () { 0x001DFFFF, 3, Zero, 0x15 },
426
427                Package () { 0x001EFFFF, 0, Zero, 0x13 },
428                Package () { 0x001EFFFF, 1, Zero, 0x14 },
429                Package () { 0x001EFFFF, 2, Zero, 0x15 },
430                Package () { 0x001EFFFF, 3, Zero, 0x16 },
431
432                Package () { 0x001FFFFF, 0, Zero, 0x14 },
433                Package () { 0x001FFFFF, 1, Zero, 0x15 },
434                Package () { 0x001FFFFF, 2, Zero, 0x16 },
435                Package () { 0x001FFFFF, 3, Zero, 0x17 }
436            })
437            Method (_PRT, 0, NotSerialized)
438            {
439                If (PICM)
440                {
441                    Return (APRT)
442                }
443                Else
444                {
445                    Return (PPRT)
446                }
447            }
448
449            Device (LPC)
450            {
451                Name (_ADR, 0x001F0000)
452                OperationRegion (LPCR, PCI_Config, Zero, 0x0100)
453                Field (LPCR, AnyAcc, NoLock, Preserve)
454                {
455                    Offset (0x60),
456                    PIRA,   8,
457                    PIRB,   8,
458                    PIRC,   8,
459                    PIRD,   8,
460                    Offset (0x68),
461                    PIRE,   8,
462                    PIRF,   8,
463                    PIRG,   8,
464                    PIRH,   8
465                }
466
467                Device (KBD)
468                {
469                  Name (_HID, EISAID ("PNP0303"))
470                  Name (_CID, EISAID ("PNP030B"))
471                  Name (_CRS, ResourceTemplate ()
472                  {
473                    IO (Decode16,
474                        0x0060,             // Range Minimum
475                        0x0060,             // Range Maximum
476                        0x00,               // Alignment
477                        0x01,               // Length
478                        )
479                    IO (Decode16,
480                        0x0064,             // Range Minimum
481                        0x0064,             // Range Maximum
482                        0x00,               // Alignment
483                        0x01,               // Length
484                        )
485                    IRQNoFlags ()
486                        {1}
487                  })
488                }
489
490                Device (MOU)
491                {
492                  Name (_HID, EISAID ("PNP0F03"))
493                  Name (_CID, EISAID ("PNP0F13"))
494                  Name (_CRS, ResourceTemplate ()
495                  {
496                    IRQNoFlags ()
497                        {12}
498                  })
499                }
500
501                Method (PIRV, 1, NotSerialized)
502                {
503                    If (And (Arg0, 0x80))
504                    {
505                        Return (Zero)
506                    }
507
508                    And (Arg0, 0x0F, Local0)
509                    If (LLess (Local0, 0x03))
510                    {
511                        Return (Zero)
512                    }
513
514                    If (LEqual (Local0, 0x08))
515                    {
516                        Return (Zero)
517                    }
518
519                    If (LEqual (Local0, 0x0D))
520                    {
521                        Return (Zero)
522                    }
523
524                    Return (One)
525                }
526
527                Device (LNKA)
528                {
529                    Name (_HID, EisaId ("PNP0C0F"))
530                    Name (_UID, One)
531                    Method (_STA, 0, NotSerialized)
532                    {
533                        If (PIRV (PIRA))
534                        {
535                            Return (0x0B)
536                        }
537                        Else
538                        {
539                            Return (0x09)
540                        }
541                    }
542
543                    Name (_PRS, ResourceTemplate ()
544                    {
545                        IRQ (Level, ActiveLow, Shared, )
546                            {3,4,5,6,7,9,10,11,12,14,15}
547                    })
548                    Name (CB01, ResourceTemplate ()
549                    {
550                        IRQ (Level, ActiveLow, Shared, )
551                            {}
552                    })
553                    CreateWordField (CB01, One, CIRA)
554                    Method (_CRS, 0, NotSerialized)
555                    {
556                        And (PIRA, 0x8F, Local0)
557                        If (PIRV (Local0))
558                        {
559                            ShiftLeft (One, Local0, CIRA)
560                        }
561                        Else
562                        {
563                            Store (Zero, CIRA)
564                        }
565
566                        Return (CB01)
567                    }
568
569                    Method (_DIS, 0, NotSerialized)
570                    {
571                        Store (0x80, PIRA)
572                    }
573
574                    Method (_SRS, 1, NotSerialized)
575                    {
576                        CreateWordField (Arg0, One, SIRA)
577                        FindSetRightBit (SIRA, Local0)
578                        Store (Decrement (Local0), PIRA)
579                    }
580                }
581
582                Device (LNKB)
583                {
584                    Name (_HID, EisaId ("PNP0C0F"))
585                    Name (_UID, 0x02)
586                    Method (_STA, 0, NotSerialized)
587                    {
588                        If (PIRV (PIRB))
589                        {
590                            Return (0x0B)
591                        }
592                        Else
593                        {
594                            Return (0x09)
595                        }
596                    }
597
598                    Name (_PRS, ResourceTemplate ()
599                    {
600                        IRQ (Level, ActiveLow, Shared, )
601                            {3,4,5,6,7,9,10,11,12,14,15}
602                    })
603                    Name (CB02, ResourceTemplate ()
604                    {
605                        IRQ (Level, ActiveLow, Shared, )
606                            {}
607                    })
608                    CreateWordField (CB02, One, CIRB)
609                    Method (_CRS, 0, NotSerialized)
610                    {
611                        And (PIRB, 0x8F, Local0)
612                        If (PIRV (Local0))
613                        {
614                            ShiftLeft (One, Local0, CIRB)
615                        }
616                        Else
617                        {
618                            Store (Zero, CIRB)
619                        }
620
621                        Return (CB02)
622                    }
623
624                    Method (_DIS, 0, NotSerialized)
625                    {
626                        Store (0x80, PIRB)
627                    }
628
629                    Method (_SRS, 1, NotSerialized)
630                    {
631                        CreateWordField (Arg0, One, SIRB)
632                        FindSetRightBit (SIRB, Local0)
633                        Store (Decrement (Local0), PIRB)
634                    }
635                }
636
637                Device (LNKC)
638                {
639                    Name (_HID, EisaId ("PNP0C0F"))
640                    Name (_UID, 0x03)
641                    Method (_STA, 0, NotSerialized)
642                    {
643                        If (PIRV (PIRC))
644                        {
645                            Return (0x0B)
646                        }
647                        Else
648                        {
649                            Return (0x09)
650                        }
651                    }
652
653                    Name (_PRS, ResourceTemplate ()
654                    {
655                        IRQ (Level, ActiveLow, Shared, )
656                            {3,4,5,6,7,9,10,11,12,14,15}
657                    })
658                    Name (CB03, ResourceTemplate ()
659                    {
660                        IRQ (Level, ActiveLow, Shared, )
661                            {}
662                    })
663                    CreateWordField (CB03, One, CIRC)
664                    Method (_CRS, 0, NotSerialized)
665                    {
666                        And (PIRC, 0x8F, Local0)
667                        If (PIRV (Local0))
668                        {
669                            ShiftLeft (One, Local0, CIRC)
670                        }
671                        Else
672                        {
673                            Store (Zero, CIRC)
674                        }
675
676                        Return (CB03)
677                    }
678
679                    Method (_DIS, 0, NotSerialized)
680                    {
681                        Store (0x80, PIRC)
682                    }
683
684                    Method (_SRS, 1, NotSerialized)
685                    {
686                        CreateWordField (Arg0, One, SIRC)
687                        FindSetRightBit (SIRC, Local0)
688                        Store (Decrement (Local0), PIRC)
689                    }
690                }
691
692                Device (LNKD)
693                {
694                    Name (_HID, EisaId ("PNP0C0F"))
695                    Name (_UID, 0x04)
696                    Method (_STA, 0, NotSerialized)
697                    {
698                        If (PIRV (PIRD))
699                        {
700                            Return (0x0B)
701                        }
702                        Else
703                        {
704                            Return (0x09)
705                        }
706                    }
707
708                    Name (_PRS, ResourceTemplate ()
709                    {
710                        IRQ (Level, ActiveLow, Shared, )
711                            {3,4,5,6,7,9,10,11,12,14,15}
712                    })
713                    Name (CB04, ResourceTemplate ()
714                    {
715                        IRQ (Level, ActiveLow, Shared, )
716                            {}
717                    })
718                    CreateWordField (CB04, One, CIRD)
719                    Method (_CRS, 0, NotSerialized)
720                    {
721                        And (PIRD, 0x8F, Local0)
722                        If (PIRV (Local0))
723                        {
724                            ShiftLeft (One, Local0, CIRD)
725                        }
726                        Else
727                        {
728                            Store (Zero, CIRD)
729                        }
730
731                        Return (CB04)
732                    }
733
734                    Method (_DIS, 0, NotSerialized)
735                    {
736                        Store (0x80, PIRD)
737                    }
738
739                    Method (_SRS, 1, NotSerialized)
740                    {
741                        CreateWordField (Arg0, One, SIRD)
742                        FindSetRightBit (SIRD, Local0)
743                        Store (Decrement (Local0), PIRD)
744                    }
745                }
746
747                Device (LNKE)
748                {
749                    Name (_HID, EisaId ("PNP0C0F"))
750                    Name (_UID, 0x05)
751                    Method (_STA, 0, NotSerialized)
752                    {
753                        If (PIRV (PIRE))
754                        {
755                            Return (0x0B)
756                        }
757                        Else
758                        {
759                            Return (0x09)
760                        }
761                    }
762
763                    Name (_PRS, ResourceTemplate ()
764                    {
765                        IRQ (Level, ActiveLow, Shared, )
766                            {3,4,5,6,7,9,10,11,12,14,15}
767                    })
768                    Name (CB05, ResourceTemplate ()
769                    {
770                        IRQ (Level, ActiveLow, Shared, )
771                            {}
772                    })
773                    CreateWordField (CB05, One, CIRE)
774                    Method (_CRS, 0, NotSerialized)
775                    {
776                        And (PIRE, 0x8F, Local0)
777                        If (PIRV (Local0))
778                        {
779                            ShiftLeft (One, Local0, CIRE)
780                        }
781                        Else
782                        {
783                            Store (Zero, CIRE)
784                        }
785
786                        Return (CB05)
787                    }
788
789                    Method (_DIS, 0, NotSerialized)
790                    {
791                        Store (0x80, PIRE)
792                    }
793
794                    Method (_SRS, 1, NotSerialized)
795                    {
796                        CreateWordField (Arg0, One, SIRE)
797                        FindSetRightBit (SIRE, Local0)
798                        Store (Decrement (Local0), PIRE)
799                    }
800                }
801
802                Device (LNKF)
803                {
804                    Name (_HID, EisaId ("PNP0C0F"))
805                    Name (_UID, 0x06)
806                    Method (_STA, 0, NotSerialized)
807                    {
808                        If (PIRV (PIRF))
809                        {
810                            Return (0x0B)
811                        }
812                        Else
813                        {
814                            Return (0x09)
815                        }
816                    }
817
818                    Name (_PRS, ResourceTemplate ()
819                    {
820                        IRQ (Level, ActiveLow, Shared, )
821                            {3,4,5,6,7,9,10,11,12,14,15}
822                    })
823                    Name (CB06, ResourceTemplate ()
824                    {
825                        IRQ (Level, ActiveLow, Shared, )
826                            {}
827                    })
828                    CreateWordField (CB06, One, CIRF)
829                    Method (_CRS, 0, NotSerialized)
830                    {
831                        And (PIRF, 0x8F, Local0)
832                        If (PIRV (Local0))
833                        {
834                            ShiftLeft (One, Local0, CIRF)
835                        }
836                        Else
837                        {
838                            Store (Zero, CIRF)
839                        }
840
841                        Return (CB06)
842                    }
843
844                    Method (_DIS, 0, NotSerialized)
845                    {
846                        Store (0x80, PIRF)
847                    }
848
849                    Method (_SRS, 1, NotSerialized)
850                    {
851                        CreateWordField (Arg0, One, SIRF)
852                        FindSetRightBit (SIRF, Local0)
853                        Store (Decrement (Local0), PIRF)
854                    }
855                }
856
857                Device (LNKG)
858                {
859                    Name (_HID, EisaId ("PNP0C0F"))
860                    Name (_UID, 0x07)
861                    Method (_STA, 0, NotSerialized)
862                    {
863                        If (PIRV (PIRG))
864                        {
865                            Return (0x0B)
866                        }
867                        Else
868                        {
869                            Return (0x09)
870                        }
871                    }
872
873                    Name (_PRS, ResourceTemplate ()
874                    {
875                        IRQ (Level, ActiveLow, Shared, )
876                            {3,4,5,6,7,9,10,11,12,14,15}
877                    })
878                    Name (CB07, ResourceTemplate ()
879                    {
880                        IRQ (Level, ActiveLow, Shared, )
881                            {}
882                    })
883                    CreateWordField (CB07, One, CIRG)
884                    Method (_CRS, 0, NotSerialized)
885                    {
886                        And (PIRG, 0x8F, Local0)
887                        If (PIRV (Local0))
888                        {
889                            ShiftLeft (One, Local0, CIRG)
890                        }
891                        Else
892                        {
893                            Store (Zero, CIRG)
894                        }
895
896                        Return (CB07)
897                    }
898
899                    Method (_DIS, 0, NotSerialized)
900                    {
901                        Store (0x80, PIRG)
902                    }
903
904                    Method (_SRS, 1, NotSerialized)
905                    {
906                        CreateWordField (Arg0, One, SIRG)
907                        FindSetRightBit (SIRG, Local0)
908                        Store (Decrement (Local0), PIRG)
909                    }
910                }
911
912                Device (LNKH)
913                {
914                    Name (_HID, EisaId ("PNP0C0F"))
915                    Name (_UID, 0x08)
916                    Method (_STA, 0, NotSerialized)
917                    {
918                        If (PIRV (PIRH))
919                        {
920                            Return (0x0B)
921                        }
922                        Else
923                        {
924                            Return (0x09)
925                        }
926                    }
927
928                    Name (_PRS, ResourceTemplate ()
929                    {
930                        IRQ (Level, ActiveLow, Shared, )
931                            {3,4,5,6,7,9,10,11,12,14,15}
932                    })
933                    Name (CB08, ResourceTemplate ()
934                    {
935                        IRQ (Level, ActiveLow, Shared, )
936                            {}
937                    })
938                    CreateWordField (CB08, One, CIRH)
939                    Method (_CRS, 0, NotSerialized)
940                    {
941                        And (PIRH, 0x8F, Local0)
942                        If (PIRV (Local0))
943                        {
944                            ShiftLeft (One, Local0, CIRH)
945                        }
946                        Else
947                        {
948                            Store (Zero, CIRH)
949                        }
950
951                        Return (CB08)
952                    }
953
954                    Method (_DIS, 0, NotSerialized)
955                    {
956                        Store (0x80, PIRH)
957                    }
958
959                    Method (_SRS, 1, NotSerialized)
960                    {
961                        CreateWordField (Arg0, One, SIRH)
962                        FindSetRightBit (SIRH, Local0)
963                        Store (Decrement (Local0), PIRH)
964                    }
965                }
966
967                Device (SIO)
968                {
969                    Name (_HID, EisaId ("PNP0C02"))
970                    Name (_CRS, ResourceTemplate ()
971                    {
972                        IO (Decode16,
973                            0x0220,             // Range Minimum
974                            0x0220,             // Range Maximum
975                            0x01,               // Alignment
976                            0x04,               // Length
977                            )
978                        IO (Decode16,
979                            0x0224,             // Range Minimum
980                            0x0224,             // Range Maximum
981                            0x01,               // Alignment
982                            0x04,               // Length
983                            )
984                        Memory32Fixed (ReadWrite,
985                            0xE0000000,         // Address Base
986                            0x10000000,         // Address Length
987                            )
988                        IO (Decode16,
989                            0x04D0,             // Range Minimum
990                            0x04D0,             // Range Maximum
991                            0x01,               // Alignment
992                            0x02,               // Length
993                            )
994                        IO (Decode16,
995                            0x0061,             // Range Minimum
996                            0x0061,             // Range Maximum
997                            0x01,               // Alignment
998                            0x01,               // Length
999                            )
1000                        IO (Decode16,
1001                            0x0400,             // Range Minimum
1002                            0x0400,             // Range Maximum
1003                            0x01,               // Alignment
1004                            0x08,               // Length
1005                            )
1006                        IO (Decode16,
1007                            0x00B2,             // Range Minimum
1008                            0x00B2,             // Range Maximum
1009                            0x01,               // Alignment
1010                            0x01,               // Length
1011                            )
1012                        IO (Decode16,
1013                            0x0084,             // Range Minimum
1014                            0x0084,             // Range Maximum
1015                            0x01,               // Alignment
1016                            0x01,               // Length
1017                            )
1018                        IO (Decode16,
1019                            0x0072,             // Range Minimum
1020                            0x0072,             // Range Maximum
1021                            0x01,               // Alignment
1022                            0x06,               // Length
1023                            )
1024                    })
1025                }
1026
1027                Device (COM1)
1028                {
1029                    Name (_HID, EisaId ("PNP0501"))
1030                    Name (_UID, One)
1031                    Name (_CRS, ResourceTemplate ()
1032                    {
1033                        IO (Decode16,
1034                            0x03F8,             // Range Minimum
1035                            0x03F8,             // Range Maximum
1036                            0x01,               // Alignment
1037                            0x08,               // Length
1038                            )
1039                        IRQNoFlags ()
1040                            {4}
1041                    })
1042                }
1043
1044                Device (COM2)
1045                {
1046                    Name (_HID, EisaId ("PNP0501"))
1047                    Name (_UID, 0x02)
1048                    Name (_CRS, ResourceTemplate ()
1049                    {
1050                        IO (Decode16,
1051                            0x02F8,             // Range Minimum
1052                            0x02F8,             // Range Maximum
1053                            0x01,               // Alignment
1054                            0x08,               // Length
1055                            )
1056                        IRQNoFlags ()
1057                            {3}
1058                    })
1059                }
1060
1061                Device (RTC)
1062                {
1063                    Name (_HID, EisaId ("PNP0B00"))
1064                    Name (_CRS, ResourceTemplate ()
1065                    {
1066                        IO (Decode16,
1067                            0x0070,             // Range Minimum
1068                            0x0070,             // Range Maximum
1069                            0x00,               // Alignment
1070                            0x02,               // Length
1071                            )
1072                        IRQNoFlags ()
1073                            {8}
1074                        IO (Decode16,
1075                            0x0072,             // Range Minimum
1076                            0x0072,             // Range Maximum
1077                            0x02,               // Alignment
1078                            0x06,               // Length
1079                            )
1080                    })
1081                }
1082
1083                Device (PIC)
1084                {
1085                    Name (_HID, EisaId ("PNP0000"))
1086                    Name (_CRS, ResourceTemplate ()
1087                    {
1088                        IO (Decode16,
1089                            0x0020,             // Range Minimum
1090                            0x0020,             // Range Maximum
1091                            0x01,               // Alignment
1092                            0x02,               // Length
1093                            )
1094                        IO (Decode16,
1095                            0x00A0,             // Range Minimum
1096                            0x00A0,             // Range Maximum
1097                            0x01,               // Alignment
1098                            0x02,               // Length
1099                            )
1100                        IRQNoFlags ()
1101                            {2}
1102                    })
1103                }
1104
1105                Device (TIMR)
1106                {
1107                    Name (_HID, EisaId ("PNP0100"))
1108                    Name (_CRS, ResourceTemplate ()
1109                    {
1110                        IO (Decode16,
1111                            0x0040,             // Range Minimum
1112                            0x0040,             // Range Maximum
1113                            0x01,               // Alignment
1114                            0x04,               // Length
1115                            )
1116                        IRQNoFlags ()
1117                            {0}
1118                    })
1119                }
1120            }
1121        }
1122    }
1123
1124    Scope (_SB.PC00)
1125    {
1126        Device (HPET)
1127        {
1128            Name (_HID, EisaId ("PNP0103"))
1129            Name (_UID, Zero)
1130            Name (_CRS, ResourceTemplate ()
1131            {
1132                Memory32Fixed (ReadWrite,
1133                    0xFED00000,         // Address Base
1134                    0x00000400,         // Address Length
1135                    )
1136            })
1137        }
1138    }
1139}
1140
1141