1/*
2 * Bochs/QEMU ACPI DSDT ASL definition
3 *
4 * Copyright (c) 2006 Fabrice Bellard
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License version 2 as published by the Free Software Foundation.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
18 */
19DefinitionBlock (
20    "acpi-dsdt.aml",    // Output Filename
21    "DSDT",             // Signature
22    0x01,               // DSDT Compliance Revision
23    "BXPC",             // OEMID
24    "BXDSDT",           // TABLE ID
25    0x1                 // OEM Revision
26    )
27{
28    Scope (\)
29    {
30        /* Debug Output */
31        OperationRegion (DBG, SystemIO, 0xb044, 0x04)
32        Field (DBG, DWordAcc, NoLock, Preserve)
33        {
34            DBGL,   32,
35        }
36    }
37
38
39    /* PCI Bus definition */
40    Scope(\_SB) {
41        Device(PCI0) {
42            Name (_HID, EisaId ("PNP0A03"))
43            Name (_ADR, 0x00)
44            Name (_UID, 1)
45            Name(_PRT, Package() {
46                /* PCI IRQ routing table, example from ACPI 2.0a specification,
47                   section 6.2.8.1 */
48                /* Note: we provide the same info as the PCI routing
49                   table of the Bochs BIOS */
50#define prt_slot(nr, lnk0, lnk1, lnk2, lnk3) \
51       Package() { nr##ffff, 0, lnk0, 0 }, \
52       Package() { nr##ffff, 1, lnk1, 0 }, \
53       Package() { nr##ffff, 2, lnk2, 0 }, \
54       Package() { nr##ffff, 3, lnk3, 0 }
55
56#define prt_slot0(nr) prt_slot(nr, LNKD, LNKA, LNKB, LNKC)
57#define prt_slot1(nr) prt_slot(nr, LNKA, LNKB, LNKC, LNKD)
58#define prt_slot2(nr) prt_slot(nr, LNKB, LNKC, LNKD, LNKA)
59#define prt_slot3(nr) prt_slot(nr, LNKC, LNKD, LNKA, LNKB)
60               prt_slot0(0x0000),
61               prt_slot1(0x0001),
62               prt_slot2(0x0002),
63               prt_slot3(0x0003),
64               prt_slot0(0x0004),
65               prt_slot1(0x0005),
66               prt_slot2(0x0006),
67               prt_slot3(0x0007),
68               prt_slot0(0x0008),
69               prt_slot1(0x0009),
70               prt_slot2(0x000a),
71               prt_slot3(0x000b),
72               prt_slot0(0x000c),
73               prt_slot1(0x000d),
74               prt_slot2(0x000e),
75               prt_slot3(0x000f),
76               prt_slot0(0x0010),
77               prt_slot1(0x0011),
78               prt_slot2(0x0012),
79               prt_slot3(0x0013),
80               prt_slot0(0x0014),
81               prt_slot1(0x0015),
82               prt_slot2(0x0016),
83               prt_slot3(0x0017),
84               prt_slot0(0x0018),
85               prt_slot1(0x0019),
86               prt_slot2(0x001a),
87               prt_slot3(0x001b),
88               prt_slot0(0x001c),
89               prt_slot1(0x001d),
90               prt_slot2(0x001e),
91               prt_slot3(0x001f),
92            })
93
94            OperationRegion(PCST, SystemIO, 0xae00, 0x08)
95            Field (PCST, DWordAcc, NoLock, WriteAsZeros)
96            {
97                PCIU, 32,
98                PCID, 32,
99            }
100
101            OperationRegion(SEJ, SystemIO, 0xae08, 0x04)
102            Field (SEJ, DWordAcc, NoLock, WriteAsZeros)
103            {
104                B0EJ, 32,
105            }
106
107#define hotplug_slot(name, nr) \
108            Device (S##name) {                    \
109               Name (_ADR, nr##0000)              \
110               Method (_EJ0,1) {                  \
111                    Store(ShiftLeft(1, nr), B0EJ) \
112                    Return (0x0)                  \
113               }                                  \
114               Name (_SUN, name)                  \
115            }
116
117	    hotplug_slot(1, 0x0001)
118	    hotplug_slot(2, 0x0002)
119	    hotplug_slot(3, 0x0003)
120	    hotplug_slot(4, 0x0004)
121	    hotplug_slot(5, 0x0005)
122	    hotplug_slot(6, 0x0006)
123	    hotplug_slot(7, 0x0007)
124	    hotplug_slot(8, 0x0008)
125	    hotplug_slot(9, 0x0009)
126	    hotplug_slot(10, 0x000a)
127	    hotplug_slot(11, 0x000b)
128	    hotplug_slot(12, 0x000c)
129	    hotplug_slot(13, 0x000d)
130	    hotplug_slot(14, 0x000e)
131	    hotplug_slot(15, 0x000f)
132	    hotplug_slot(16, 0x0010)
133	    hotplug_slot(17, 0x0011)
134	    hotplug_slot(18, 0x0012)
135	    hotplug_slot(19, 0x0013)
136	    hotplug_slot(20, 0x0014)
137	    hotplug_slot(21, 0x0015)
138	    hotplug_slot(22, 0x0016)
139	    hotplug_slot(23, 0x0017)
140	    hotplug_slot(24, 0x0018)
141	    hotplug_slot(25, 0x0019)
142	    hotplug_slot(26, 0x001a)
143	    hotplug_slot(27, 0x001b)
144	    hotplug_slot(28, 0x001c)
145	    hotplug_slot(29, 0x001d)
146	    hotplug_slot(30, 0x001e)
147	    hotplug_slot(31, 0x001f)
148
149            Name (_CRS, ResourceTemplate ()
150            {
151                WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
152                    0x0000,             // Address Space Granularity
153                    0x0000,             // Address Range Minimum
154                    0x00FF,             // Address Range Maximum
155                    0x0000,             // Address Translation Offset
156                    0x0100,             // Address Length
157                    ,, )
158                IO (Decode16,
159                    0x0CF8,             // Address Range Minimum
160                    0x0CF8,             // Address Range Maximum
161                    0x01,               // Address Alignment
162                    0x08,               // Address Length
163                    )
164                WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
165                    0x0000,             // Address Space Granularity
166                    0x0000,             // Address Range Minimum
167                    0x0CF7,             // Address Range Maximum
168                    0x0000,             // Address Translation Offset
169                    0x0CF8,             // Address Length
170                    ,, , TypeStatic)
171                WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
172                    0x0000,             // Address Space Granularity
173                    0x0D00,             // Address Range Minimum
174                    0xFFFF,             // Address Range Maximum
175                    0x0000,             // Address Translation Offset
176                    0xF300,             // Address Length
177                    ,, , TypeStatic)
178                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
179                    0x00000000,         // Address Space Granularity
180                    0x000A0000,         // Address Range Minimum
181                    0x000BFFFF,         // Address Range Maximum
182                    0x00000000,         // Address Translation Offset
183                    0x00020000,         // Address Length
184                    ,, , AddressRangeMemory, TypeStatic)
185                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
186                    0x00000000,         // Address Space Granularity
187                    0xE0000000,         // Address Range Minimum
188                    0xFEBFFFFF,         // Address Range Maximum
189                    0x00000000,         // Address Translation Offset
190                    0x1EC00000,         // Address Length
191                    ,, , AddressRangeMemory, TypeStatic)
192            })
193        }
194#ifdef BX_QEMU
195        Device(HPET) {
196            Name(_HID,  EISAID("PNP0103"))
197            Name(_UID, 0)
198            Method (_STA, 0, NotSerialized) {
199                    Return(0x0F)
200            }
201            Name(_CRS, ResourceTemplate() {
202                DWordMemory(
203                    ResourceConsumer, PosDecode, MinFixed, MaxFixed,
204                    NonCacheable, ReadWrite,
205                    0x00000000,
206                    0xFED00000,
207                    0xFED003FF,
208                    0x00000000,
209                    0x00000400 /* 1K memory: FED00000 - FED003FF */
210                )
211            })
212        }
213#endif
214    }
215
216    Scope(\_SB.PCI0) {
217        Device (VGA) {
218                 Name (_ADR, 0x00020000)
219                 Method (_S1D, 0, NotSerialized)
220                 {
221                         Return (0x00)
222                 }
223                 Method (_S2D, 0, NotSerialized)
224                 {
225                         Return (0x00)
226                 }
227                 Method (_S3D, 0, NotSerialized)
228                 {
229                         Return (0x00)
230                 }
231        }
232
233	/* PIIX3 ISA bridge */
234        Device (ISA) {
235            Name (_ADR, 0x00010000)
236
237            /* PIIX PCI to ISA irq remapping */
238            OperationRegion (P40C, PCI_Config, 0x60, 0x04)
239
240            /* Real-time clock */
241            Device (RTC)
242            {
243                Name (_HID, EisaId ("PNP0B00"))
244                Name (_CRS, ResourceTemplate ()
245                {
246                    IO (Decode16, 0x0070, 0x0070, 0x10, 0x02)
247                    IRQNoFlags () {8}
248                    IO (Decode16, 0x0072, 0x0072, 0x02, 0x06)
249                })
250            }
251
252            /* Keyboard seems to be important for WinXP install */
253            Device (KBD)
254            {
255                Name (_HID, EisaId ("PNP0303"))
256                Method (_STA, 0, NotSerialized)
257                {
258                    Return (0x0f)
259                }
260
261                Method (_CRS, 0, NotSerialized)
262                {
263                     Name (TMP, ResourceTemplate ()
264                     {
265                    IO (Decode16,
266                        0x0060,             // Address Range Minimum
267                        0x0060,             // Address Range Maximum
268                        0x01,               // Address Alignment
269                        0x01,               // Address Length
270                        )
271                    IO (Decode16,
272                        0x0064,             // Address Range Minimum
273                        0x0064,             // Address Range Maximum
274                        0x01,               // Address Alignment
275                        0x01,               // Address Length
276                        )
277                    IRQNoFlags ()
278                        {1}
279                    })
280                    Return (TMP)
281                }
282            }
283
284	    /* PS/2 mouse */
285            Device (MOU)
286            {
287                Name (_HID, EisaId ("PNP0F13"))
288                Method (_STA, 0, NotSerialized)
289                {
290                    Return (0x0f)
291                }
292
293                Method (_CRS, 0, NotSerialized)
294                {
295                    Name (TMP, ResourceTemplate ()
296                    {
297                         IRQNoFlags () {12}
298                    })
299                    Return (TMP)
300                }
301            }
302
303	    /* PS/2 floppy controller */
304	    Device (FDC0)
305	    {
306	        Name (_HID, EisaId ("PNP0700"))
307		Method (_STA, 0, NotSerialized)
308		{
309		    Return (0x0F)
310		}
311		Method (_CRS, 0, NotSerialized)
312		{
313		    Name (BUF0, ResourceTemplate ()
314                    {
315                        IO (Decode16, 0x03F2, 0x03F2, 0x00, 0x04)
316                        IO (Decode16, 0x03F7, 0x03F7, 0x00, 0x01)
317                        IRQNoFlags () {6}
318                        DMA (Compatibility, NotBusMaster, Transfer8) {2}
319                    })
320		    Return (BUF0)
321		}
322	    }
323
324	    /* Parallel port */
325	    Device (LPT)
326	    {
327	        Name (_HID, EisaId ("PNP0400"))
328		Method (_STA, 0, NotSerialized)
329		{
330		    Store (\_SB.PCI0.PX13.DRSA, Local0)
331		    And (Local0, 0x80000000, Local0)
332		    If (LEqual (Local0, 0))
333		    {
334			Return (0x00)
335		    }
336		    Else
337		    {
338			Return (0x0F)
339		    }
340		}
341		Method (_CRS, 0, NotSerialized)
342		{
343		    Name (BUF0, ResourceTemplate ()
344                    {
345			IO (Decode16, 0x0378, 0x0378, 0x08, 0x08)
346			IRQNoFlags () {7}
347		    })
348		    Return (BUF0)
349		}
350	    }
351
352	    /* Serial Ports */
353	    Device (COM1)
354	    {
355	        Name (_HID, EisaId ("PNP0501"))
356		Name (_UID, 0x01)
357		Method (_STA, 0, NotSerialized)
358		{
359		    Store (\_SB.PCI0.PX13.DRSC, Local0)
360		    And (Local0, 0x08000000, Local0)
361		    If (LEqual (Local0, 0))
362		    {
363			Return (0x00)
364		    }
365		    Else
366		    {
367			Return (0x0F)
368		    }
369		}
370		Method (_CRS, 0, NotSerialized)
371		{
372		    Name (BUF0, ResourceTemplate ()
373                    {
374			IO (Decode16, 0x03F8, 0x03F8, 0x00, 0x08)
375                	IRQNoFlags () {4}
376		    })
377		    Return (BUF0)
378		}
379	    }
380
381	    Device (COM2)
382	    {
383	        Name (_HID, EisaId ("PNP0501"))
384		Name (_UID, 0x02)
385		Method (_STA, 0, NotSerialized)
386		{
387		    Store (\_SB.PCI0.PX13.DRSC, Local0)
388		    And (Local0, 0x80000000, Local0)
389		    If (LEqual (Local0, 0))
390		    {
391			Return (0x00)
392		    }
393		    Else
394		    {
395			Return (0x0F)
396		    }
397		}
398		Method (_CRS, 0, NotSerialized)
399		{
400		    Name (BUF0, ResourceTemplate ()
401                    {
402			IO (Decode16, 0x02F8, 0x02F8, 0x00, 0x08)
403                	IRQNoFlags () {3}
404		    })
405		    Return (BUF0)
406		}
407	    }
408        }
409
410	/* PIIX4 PM */
411        Device (PX13) {
412	    Name (_ADR, 0x00010003)
413
414	    OperationRegion (P13C, PCI_Config, 0x5c, 0x24)
415	    Field (P13C, DWordAcc, NoLock, Preserve)
416	    {
417		DRSA, 32,
418		DRSB, 32,
419		DRSC, 32,
420		DRSE, 32,
421		DRSF, 32,
422		DRSG, 32,
423		DRSH, 32,
424		DRSI, 32,
425		DRSJ, 32
426	    }
427	}
428    }
429
430    /* PCI IRQs */
431    Scope(\_SB) {
432         Field (\_SB.PCI0.ISA.P40C, ByteAcc, NoLock, Preserve)
433         {
434             PRQ0,   8,
435             PRQ1,   8,
436             PRQ2,   8,
437             PRQ3,   8
438         }
439
440        Device(LNKA){
441                Name(_HID, EISAID("PNP0C0F"))     // PCI interrupt link
442                Name(_UID, 1)
443                Name(_PRS, ResourceTemplate(){
444                    IRQ (Level, ActiveLow, Shared)
445                        {3,4,5,6,7,9,10,11,12}
446                })
447                Method (_STA, 0, NotSerialized)
448                {
449                    Store (0x0B, Local0)
450                    If (And (0x80, PRQ0, Local1))
451                    {
452                         Store (0x09, Local0)
453                    }
454                    Return (Local0)
455                }
456                Method (_DIS, 0, NotSerialized)
457                {
458                    Or (PRQ0, 0x80, PRQ0)
459                }
460                Method (_CRS, 0, NotSerialized)
461                {
462                    Name (PRR0, ResourceTemplate ()
463                    {
464                        IRQ (Level, ActiveLow, Shared)
465                            {1}
466                    })
467                    CreateWordField (PRR0, 0x01, TMP)
468                    Store (PRQ0, Local0)
469                    If (LLess (Local0, 0x80))
470                    {
471                        ShiftLeft (One, Local0, TMP)
472                    }
473                    Else
474                    {
475                        Store (Zero, TMP)
476                    }
477                    Return (PRR0)
478                }
479                Method (_SRS, 1, NotSerialized)
480                {
481                    CreateWordField (Arg0, 0x01, TMP)
482                    FindSetRightBit (TMP, Local0)
483                    Decrement (Local0)
484                    Store (Local0, PRQ0)
485                }
486        }
487        Device(LNKB){
488                Name(_HID, EISAID("PNP0C0F"))     // PCI interrupt link
489                Name(_UID, 2)
490                Name(_PRS, ResourceTemplate(){
491                    IRQ (Level, ActiveLow, Shared)
492                        {3,4,5,6,7,9,10,11,12}
493                })
494                Method (_STA, 0, NotSerialized)
495                {
496                    Store (0x0B, Local0)
497                    If (And (0x80, PRQ1, Local1))
498                    {
499                         Store (0x09, Local0)
500                    }
501                    Return (Local0)
502                }
503                Method (_DIS, 0, NotSerialized)
504                {
505                    Or (PRQ1, 0x80, PRQ1)
506                }
507                Method (_CRS, 0, NotSerialized)
508                {
509                    Name (PRR0, ResourceTemplate ()
510                    {
511                        IRQ (Level, ActiveLow, Shared)
512                            {1}
513                    })
514                    CreateWordField (PRR0, 0x01, TMP)
515                    Store (PRQ1, Local0)
516                    If (LLess (Local0, 0x80))
517                    {
518                        ShiftLeft (One, Local0, TMP)
519                    }
520                    Else
521                    {
522                        Store (Zero, TMP)
523                    }
524                    Return (PRR0)
525                }
526                Method (_SRS, 1, NotSerialized)
527                {
528                    CreateWordField (Arg0, 0x01, TMP)
529                    FindSetRightBit (TMP, Local0)
530                    Decrement (Local0)
531                    Store (Local0, PRQ1)
532                }
533        }
534        Device(LNKC){
535                Name(_HID, EISAID("PNP0C0F"))     // PCI interrupt link
536                Name(_UID, 3)
537                Name(_PRS, ResourceTemplate(){
538                    IRQ (Level, ActiveLow, Shared)
539                        {3,4,5,6,7,9,10,11,12}
540                })
541                Method (_STA, 0, NotSerialized)
542                {
543                    Store (0x0B, Local0)
544                    If (And (0x80, PRQ2, Local1))
545                    {
546                         Store (0x09, Local0)
547                    }
548                    Return (Local0)
549                }
550                Method (_DIS, 0, NotSerialized)
551                {
552                    Or (PRQ2, 0x80, PRQ2)
553                }
554                Method (_CRS, 0, NotSerialized)
555                {
556                    Name (PRR0, ResourceTemplate ()
557                    {
558                        IRQ (Level, ActiveLow, Shared)
559                            {1}
560                    })
561                    CreateWordField (PRR0, 0x01, TMP)
562                    Store (PRQ2, Local0)
563                    If (LLess (Local0, 0x80))
564                    {
565                        ShiftLeft (One, Local0, TMP)
566                    }
567                    Else
568                    {
569                        Store (Zero, TMP)
570                    }
571                    Return (PRR0)
572                }
573                Method (_SRS, 1, NotSerialized)
574                {
575                    CreateWordField (Arg0, 0x01, TMP)
576                    FindSetRightBit (TMP, Local0)
577                    Decrement (Local0)
578                    Store (Local0, PRQ2)
579                }
580        }
581        Device(LNKD){
582                Name(_HID, EISAID("PNP0C0F"))     // PCI interrupt link
583                Name(_UID, 4)
584                Name(_PRS, ResourceTemplate(){
585                    IRQ (Level, ActiveLow, Shared)
586                        {3,4,5,6,7,9,10,11,12}
587                })
588                Method (_STA, 0, NotSerialized)
589                {
590                    Store (0x0B, Local0)
591                    If (And (0x80, PRQ3, Local1))
592                    {
593                         Store (0x09, Local0)
594                    }
595                    Return (Local0)
596                }
597                Method (_DIS, 0, NotSerialized)
598                {
599                    Or (PRQ3, 0x80, PRQ3)
600                }
601                Method (_CRS, 0, NotSerialized)
602                {
603                    Name (PRR0, ResourceTemplate ()
604                    {
605                        IRQ (Level, ActiveLow, Shared)
606                            {1}
607                    })
608                    CreateWordField (PRR0, 0x01, TMP)
609                    Store (PRQ3, Local0)
610                    If (LLess (Local0, 0x80))
611                    {
612                        ShiftLeft (One, Local0, TMP)
613                    }
614                    Else
615                    {
616                        Store (Zero, TMP)
617                    }
618                    Return (PRR0)
619                }
620                Method (_SRS, 1, NotSerialized)
621                {
622                    CreateWordField (Arg0, 0x01, TMP)
623                    FindSetRightBit (TMP, Local0)
624                    Decrement (Local0)
625                    Store (Local0, PRQ3)
626                }
627        }
628    }
629
630    /*
631     * S3 (suspend-to-ram), S4 (suspend-to-disk) and S5 (power-off) type codes:
632     * must match piix4 emulation.
633     */
634    Name (\_S3, Package (0x04)
635    {
636        0x01,  /* PM1a_CNT.SLP_TYP */
637        0x01,  /* PM1b_CNT.SLP_TYP */
638        Zero,  /* reserved */
639        Zero   /* reserved */
640    })
641    Name (\_S4, Package (0x04)
642    {
643        Zero,  /* PM1a_CNT.SLP_TYP */
644        Zero,  /* PM1b_CNT.SLP_TYP */
645        Zero,  /* reserved */
646        Zero   /* reserved */
647    })
648    Name (\_S5, Package (0x04)
649    {
650        Zero,  /* PM1a_CNT.SLP_TYP */
651        Zero,  /* PM1b_CNT.SLP_TYP */
652        Zero,  /* reserved */
653        Zero   /* reserved */
654    })
655
656    Scope (\_GPE)
657    {
658        Name(_HID, "ACPI0006")
659
660        Method(_L00) {
661            Return(0x01)
662        }
663
664#define gen_pci_hotplug(nr)                                       \
665            If (And(\_SB.PCI0.PCIU, ShiftLeft(1, nr))) {          \
666                Notify(\_SB.PCI0.S##nr, 1)                        \
667            }                                                     \
668            If (And(\_SB.PCI0.PCID, ShiftLeft(1, nr))) {          \
669                Notify(\_SB.PCI0.S##nr, 3)                        \
670            }
671
672        Method(_L01) {
673            gen_pci_hotplug(1)
674            gen_pci_hotplug(2)
675            gen_pci_hotplug(3)
676            gen_pci_hotplug(4)
677            gen_pci_hotplug(5)
678            gen_pci_hotplug(6)
679            gen_pci_hotplug(7)
680            gen_pci_hotplug(8)
681            gen_pci_hotplug(9)
682            gen_pci_hotplug(10)
683            gen_pci_hotplug(11)
684            gen_pci_hotplug(12)
685            gen_pci_hotplug(13)
686            gen_pci_hotplug(14)
687            gen_pci_hotplug(15)
688            gen_pci_hotplug(16)
689            gen_pci_hotplug(17)
690            gen_pci_hotplug(18)
691            gen_pci_hotplug(19)
692            gen_pci_hotplug(20)
693            gen_pci_hotplug(21)
694            gen_pci_hotplug(22)
695            gen_pci_hotplug(23)
696            gen_pci_hotplug(24)
697            gen_pci_hotplug(25)
698            gen_pci_hotplug(26)
699            gen_pci_hotplug(27)
700            gen_pci_hotplug(28)
701            gen_pci_hotplug(29)
702            gen_pci_hotplug(30)
703            gen_pci_hotplug(31)
704
705            Return (0x01)
706
707        }
708        Method(_L02) {
709            Return(0x01)
710        }
711        Method(_L03) {
712            Return(0x01)
713        }
714        Method(_L04) {
715            Return(0x01)
716        }
717        Method(_L05) {
718            Return(0x01)
719        }
720        Method(_L06) {
721            Return(0x01)
722        }
723        Method(_L07) {
724            Return(0x01)
725        }
726        Method(_L08) {
727            Return(0x01)
728        }
729        Method(_L09) {
730            Return(0x01)
731        }
732        Method(_L0A) {
733            Return(0x01)
734        }
735        Method(_L0B) {
736            Return(0x01)
737        }
738        Method(_L0C) {
739            Return(0x01)
740        }
741        Method(_L0D) {
742            Return(0x01)
743        }
744        Method(_L0E) {
745            Return(0x01)
746        }
747        Method(_L0F) {
748            Return(0x01)
749        }
750    }
751
752}
753