summaryrefslogtreecommitdiff
path: root/src/mainboard/intel/eagleheights/dsdt.dsl
diff options
context:
space:
mode:
Diffstat (limited to 'src/mainboard/intel/eagleheights/dsdt.dsl')
-rw-r--r--src/mainboard/intel/eagleheights/dsdt.dsl1079
1 files changed, 1079 insertions, 0 deletions
diff --git a/src/mainboard/intel/eagleheights/dsdt.dsl b/src/mainboard/intel/eagleheights/dsdt.dsl
new file mode 100644
index 0000000000..507d250191
--- /dev/null
+++ b/src/mainboard/intel/eagleheights/dsdt.dsl
@@ -0,0 +1,1079 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2009 Thomas Jourdan <thomas.jourdan@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; version 2 of
+ * the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+ * MA 02110-1301 USA
+ */
+
+DefinitionBlock ("DSDT", "DSDT", 1, "EAGLE", "COREBOOT", 0x0000001)
+{
+ Scope (\_PR)
+ {
+ Processor (CPU1, 0x01, 0x00000810, 0x06)
+ {
+ OperationRegion (STBL, SystemMemory, 0xFFFF0000, 0xFFFF)
+ Name (NCPU, 0x80)
+ Name (TYPE, 0x80000000)
+ Name (HNDL, 0x80000000)
+ Name (CFGD, 0x80000000)
+ Name (TBLD, 0x80)
+ Method (_PDC, 1, NotSerialized)
+ {
+ }
+ }
+ }
+
+ Scope (\_PR)
+ {
+ Processor (CPU2, 0x02, 0x00000000, 0x00)
+ {
+ OperationRegion (STBL, SystemMemory, 0xFFFF0000, 0xFFFF)
+ Name (NCPU, 0x80)
+ Name (TYPE, 0x80000000)
+ Name (HNDL, 0x80000000)
+ Name (CFGD, 0x80000000)
+ Name (TBLD, 0x80)
+ Method (_PDC, 1, NotSerialized)
+ {
+ }
+ }
+ }
+
+ /* For now only define 2 power states:
+ * - S0 which is fully on
+ * - S5 which is soft off
+ * Any others would involve declaring the wake up methods.
+ */
+ Name (\_S0, Package () { 0x00, 0x00, 0x00, 0x00 })
+ Name (\_S5, Package () { 0x02, 0x02, 0x00, 0x00 })
+
+ Name (PICM, 0x00)
+ Method (_PIC, 1, NotSerialized)
+ {
+ Store (Arg0, PICM)
+ }
+
+ /* System bus */
+ Scope (\_SB)
+ {
+ /* Routing PCI0 */
+ Name (PR00, Package (0x0E)
+ {
+ Package (0x04){0x0001FFFF,0x00,LNKA,0x00}, /* EDMA INTA# */
+ Package (0x04){0x0002FFFF,0x00,LNKA,0x00}, /* PCIe port A */
+ Package (0x04){0x0002FFFF,0x01,LNKB,0x00},
+ Package (0x04){0x0002FFFF,0x02,LNKC,0x00},
+ Package (0x04){0x0002FFFF,0x03,LNKD,0x00},
+ Package (0x04){0x0003FFFF,0x00,LNKA,0x00}, /* PCIe port A1 */
+ Package (0x04){0x0003FFFF,0x01,LNKB,0x00},
+ Package (0x04){0x0003FFFF,0x02,LNKC,0x00},
+ Package (0x04){0x0003FFFF,0x03,LNKD,0x00},
+ Package (0x04){0x001CFFFF,0x00,LNKE,0x00}, /* PCIe port B */
+ Package (0x04){0x001DFFFF,0x00,LNKH,0x00}, /* UHCI/EHCI INTA# */
+ Package (0x04){0x001DFFFF,0x01,LNKD,0x00}, /* UHCI INTB# */
+ Package (0x04){0x001FFFFF,0x01,LNKD,0x00}, /* SATA/SMBUS INTB# */
+ Package (0x04){0x001FFFFF,0x03,LNKA,0x00} /* CHAP INTD# */
+ })
+ Name (AR00, Package (0x0E)
+ {
+ Package (0x04){0x0001FFFF,0x00,0x00,0x10}, /* EDMA INTA# */
+ Package (0x04){0x0002FFFF,0x00,0x00,0x10}, /* PCIe port A0 */
+ Package (0x04){0x0002FFFF,0x01,0x00,0x11},
+ Package (0x04){0x0002FFFF,0x02,0x00,0x12},
+ Package (0x04){0x0002FFFF,0x03,0x00,0x13},
+ Package (0x04){0x0003FFFF,0x00,0x00,0x10}, /* PCIe port A1 */
+ Package (0x04){0x0003FFFF,0x01,0x00,0x11},
+ Package (0x04){0x0003FFFF,0x02,0x00,0x12},
+ Package (0x04){0x0003FFFF,0x03,0x00,0x13},
+ Package (0x04){0x001CFFFF,0x00,0x00,0x14}, /* PCIe port B */
+ Package (0x04){0x001DFFFF,0x00,0x00,0x17}, /* UHCI/EHCI INTA# */
+ Package (0x04){0x001DFFFF,0x01,0x00,0x13}, /* UHCI INTB# */
+ Package (0x04){0x001FFFFF,0x01,0x00,0x13}, /* SATA/SMBUS INTB# */
+ Package (0x04){0x001FFFFF,0x0D,0x00,0x10} /* CHAP INTD# */
+ })
+ /* Routing PCIe Port A */
+ Name (PR0A, Package (0x04)
+ {
+ Package (0x04){0xFFFF,0x00,LNKA,0x00},
+ Package (0x04){0xFFFF,0x01,LNKB,0x00},
+ Package (0x04){0xFFFF,0x02,LNKC,0x00},
+ Package (0x04){0xFFFF,0x03,LNKD,0x00}
+ })
+ Name (AR0A, Package (0x04)
+ {
+ Package (0x04){0xFFFF,0x00,0x00,0x10},
+ Package (0x04){0xFFFF,0x01,0x00,0x11},
+ Package (0x04){0xFFFF,0x02,0x00,0x12},
+ Package (0x04){0xFFFF,0x03,0x00,0x13}
+ })
+ /* Routing PCIe Port B */
+ Name (PR0B, Package (0x04)
+ {
+ Package (0x04){0xFFFF,0x00,LNKA,0x00},
+ Package (0x04){0xFFFF,0x01,LNKB,0x00},
+ Package (0x04){0xFFFF,0x02,LNKC,0x00},
+ Package (0x04){0xFFFF,0x03,LNKD,0x00}
+ })
+ Name (AR0B, Package (0x04)
+ {
+ Package (0x04){0xFFFF,0x00,0x00,0x10},
+ Package (0x04){0xFFFF,0x01,0x00,0x11},
+ Package (0x04){0xFFFF,0x02,0x00,0x12},
+ Package (0x04){0xFFFF,0x03,0x00,0x13}
+ })
+ /* Routing Bus PCI */
+ Name (PR01, Package (0x04)
+ {
+ Package (0x04){0x0000FFFF,0x00,LNKA,0x00},
+ Package (0x04){0x0000FFFF,0x01,LNKB,0x00},
+ Package (0x04){0x0000FFFF,0x02,LNKC,0x00},
+ Package (0x04){0x0000FFFF,0x03,LNKD,0x00},
+ })
+ Name (AR01, Package (0x04)
+ {
+ Package (0x04){0x0000FFFF,0x00,0x00,0x10},
+ Package (0x04){0x0000FFFF,0x01,0x00,0x11},
+ Package (0x04){0x0000FFFF,0x02,0x00,0x12},
+ Package (0x04){0x0000FFFF,0x03,0x00,0x13},
+ })
+
+ Name (PRSA, ResourceTemplate ()
+ {
+ IRQ (Level, ActiveLow, Shared, )
+ {3,4,5,6,7,10,11,12,14,15}
+ })
+ Alias (PRSA, PRSB)
+ Alias (PRSA, PRSC)
+ Alias (PRSA, PRSD)
+ Alias (PRSA, PRSE)
+ Alias (PRSA, PRSF)
+ Alias (PRSA, PRSG)
+ Alias (PRSA, PRSH)
+
+ Device (PCI0)
+ {
+ Name (_HID, EisaId ("PNP0A08"))
+ Name (_CID, EisaId ("PNP0A03"))
+ Name (_ADR, 0x00)
+ Name (_SEG, 0x00)
+ Name (_UID, 0x00)
+ Name (_BBN, 0x00)
+
+ Name (SUPP, 0) /* PCI _OSC Support Field Value */
+ Name (CTRL, 0) /* PCI _OSC Control Field Value */
+
+ Method (_OSC, 4)
+ {
+ /* Check for proper GUID */
+ If (LEqual (Arg0, ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766")))
+ {
+ /* Create DWORD-adressable field from the Capabilities Buffer */
+ CreateDWordField (Arg3, 0, CDW1)
+ CreateDWordField (Arg3, 4, CDW2)
+ CreateDWordField (Arg3, 8, CDW3)
+
+ /* Save Capabilities DWord 2 & 3 */
+ Store (CDW2, SUPP)
+ Store (CDW3, CTRL)
+
+ /* Don't care of OS capabilites */
+ /* We support nothing (maybe we should add PCIe Capability Structure Control) */
+ And (CTRL, 0x00, CTRL)
+
+ /* Query flag clear ? */
+ If (Not (And (CDW1, 1)))
+ {
+ /* Nothing to do */
+ }
+
+ /* Unknown revision ? */
+ If (LNotEqual (Arg1, One))
+ {
+ Or (CDW1, 0x08, CDW1)
+ }
+
+ /* Capabilities bits masked ? */
+ If (LNotEqual (CDW3, CTRL))
+ {
+ Or (CDW1, 0x10, CDW1)
+ }
+
+ /* Update DWORD3 in the buffer */
+ Store (CTRL, CDW3)
+
+ Return (Arg3)
+ }
+ Else
+ {
+ /* Unrecognized UUID */
+ Or (CDW1, 4, CDW1)
+ Return (Arg3)
+ }
+ } /* End _OSC */
+
+ Method (_PRT, 0, NotSerialized)
+ {
+ If (PICM)
+ {
+ Return (AR00)
+ }
+
+ Return (PR00)
+ }
+
+ /* PCI Express Port A */
+ Device (EPA0)
+ {
+ Name (_ADR, 0x00020000)
+ Method (_PRT, 0, NotSerialized)
+ {
+ If (PICM)
+ {
+ Return (AR0A)
+ }
+
+ Return (PR0A)
+ }
+ }
+
+ /* PCI Express Port A1 */
+ Device (EPA1)
+ {
+ Name (_ADR, 0x00030000)
+ Method (_PRT, 0, NotSerialized)
+ {
+ If (PICM)
+ {
+ Return (AR0A)
+ }
+
+ Return (PR0A)
+ }
+ }
+
+ /* PCI Express Port B0 */
+ Device (EPB0)
+ {
+ Name (_ADR, 0x001C0000)
+ Method (_PRT, 0, NotSerialized)
+ {
+ If (PICM)
+ {
+ Return (AR0B)
+ }
+
+ Return (PR0B)
+ }
+ }
+
+ /* PCI Bridge */
+ Device (P0P1)
+ {
+ Name (_ADR, 0x001E0000)
+
+ Method (_PRT, 0, NotSerialized)
+ {
+ If (PICM)
+ {
+ Return (AR01)
+ }
+
+ Return (PR01)
+ }
+ }
+
+ /* LPC I/F Bridge */
+ Device (ISA) {
+ Name (_ADR, 0x001F0000)
+
+ /* MMCONF */
+ Device (^PCIE)
+ {
+ Name (_HID, EisaId ("PNP0C02"))
+ Name (_UID, 0x11)
+ Name (CRS, ResourceTemplate ()
+ {
+ Memory32Fixed (ReadOnly,
+ 0xE0000000, // Address Base
+ 0x10000000, // Address Length
+ _Y10)
+ })
+ Method (_CRS, 0, NotSerialized)
+ {
+ CreateDWordField (CRS, \_SB.PCI0.PCIE._Y10._BAS, BAS1)
+ CreateDWordField (CRS, \_SB.PCI0.PCIE._Y10._LEN, LEN1)
+ Store (0xE0000000, BAS1)
+ Store (0x10000000, LEN1)
+ Return (CRS)
+ }
+ }
+
+ /* PIC */
+ Device (PIC)
+ {
+ Name (_HID, EisaId ("PNP0000"))
+ Name (_CRS, ResourceTemplate()
+ {
+ IO (Decode16,
+ 0x0020,
+ 0x0020,
+ 0x00,
+ 0x02,
+ )
+ IO (Decode16,
+ 0x00A0,
+ 0x00A0,
+ 0x00,
+ 0x02,
+ )
+ IRQNoFlags ()
+ {2}
+ })
+ }
+
+ /* Real time clock */
+ Device (RTC0)
+ {
+ Name (_HID, EisaId ("PNP0B00"))
+ Name (_CRS, ResourceTemplate ()
+ {
+ IO (Decode16,
+ 0x0070,
+ 0x0070,
+ 0x00,
+ 0x02)
+ IRQNoFlags ()
+ {8}
+ })
+ }
+
+ Device (UAR1)
+ {
+ Name (_UID, 0x01)
+ Name (_HID, EisaId ("PNP0501"))
+
+ Method (_PRS, 0, NotSerialized)
+ {
+ Return (CMPR)
+ }
+
+ Name (CMPR, ResourceTemplate ()
+ {
+ StartDependentFn (0x00, 0x00)
+ {
+ IO (Decode16,0x03F8,0x03F8,0x01,0x08)
+ IRQNoFlags () {4}
+ DMA (Compatibility, NotBusMaster, Transfer8) {}
+ }
+ StartDependentFnNoPri ()
+ {
+ IO (Decode16,0x03F8,0x03F8,0x01,0x08)
+ IRQNoFlags () {3,4,5,6,7,10,11,12}
+ DMA (Compatibility, NotBusMaster, Transfer8) {}
+ }
+ StartDependentFnNoPri ()
+ {
+ IO (Decode16,0x02F8,0x02F8,0x01,0x08)
+ IRQNoFlags () {3,4,5,6,7,10,11,12}
+ DMA (Compatibility, NotBusMaster, Transfer8) {}
+ }
+ StartDependentFnNoPri ()
+ {
+ IO (Decode16,0x03E8,0x03E8,0x01,0x08)
+ IRQNoFlags () {3,4,5,6,7,10,11,12}
+ DMA (Compatibility, NotBusMaster, Transfer8) {}
+ }
+ StartDependentFnNoPri ()
+ {
+ IO (Decode16,0x02E8,0x02E8,0x01,0x08)
+ IRQNoFlags () {3,4,5,6,7,10,11,12}
+ DMA (Compatibility, NotBusMaster, Transfer8) {}
+ }
+ EndDependentFn ()
+ })
+ }
+
+ /* PS/2 keyboard (seems to be important for WinXP install) */
+ Device (KBD)
+ {
+ Name (_HID, EisaId ("PNP0303"))
+ Method (_STA, 0, NotSerialized)
+ {
+ Return (0x0f)
+ }
+ Method (_CRS, 0, NotSerialized)
+ {
+ Name (TMP, ResourceTemplate () {
+ IO (Decode16, 0x0060, 0x0060, 0x01, 0x01)
+ IO (Decode16, 0x0064, 0x0064, 0x01, 0x01)
+ IRQNoFlags () {1}
+ })
+ Return (TMP)
+ }
+ }
+
+ /* PS/2 mouse */
+ Device (MOU)
+ {
+ Name (_HID, EisaId ("PNP0F13"))
+ Method (_STA, 0, NotSerialized)
+ {
+ Return (0x0f)
+ }
+ Method (_CRS, 0, NotSerialized)
+ {
+ Name (TMP, ResourceTemplate () {
+ IRQNoFlags () {12}
+ })
+ Return (TMP)
+ }
+ }
+
+ /* COM ports of SIO */
+ Device(SIO) {
+ OperationRegion (PT4E, SystemIO, 0x4E, 0x02)
+ Field (PT4E, ByteAcc, NoLock, Preserve)
+ {
+ PO4E, 8,
+ PO4F, 8
+ }
+
+ IndexField (PO4E, PO4F, ByteAcc, NoLock, Preserve)
+ {
+ Offset (0x07),
+ ILDN, 8,
+ Offset (0x28),
+ SIUI, 8,
+ SIUC, 8,
+ Offset (0x30),
+ IACT, 8,
+ Offset (0x60),
+ IIOH, 8,
+ IIOL, 8,
+ Offset (0x70),
+ IINT, 8
+ }
+
+ Method (IENF, 0, NotSerialized)
+ {
+ Store (0x80, PO4E)
+ Store (0x86, PO4E)
+ }
+
+ Method (IEXF, 0, NotSerialized)
+ {
+ Store (0x68, PO4E)
+ Store (0x08, PO4E)
+ }
+
+ Device (COM1)
+ {
+ Name (_UID, 0x03)
+ Name (_HID, EisaId ("PNP0501"))
+ Method (_STA, 0, NotSerialized)
+ {
+ IENF ()
+ Store (0x04, ILDN)
+ Store (IACT, Local0)
+ IEXF ()
+ If (LEqual (Local0, 0xFF))
+ {
+ Return (0x00)
+ }
+
+ If (LEqual (Local0, One))
+ {
+ Return (0x0F)
+ }
+ Else
+ {
+ Return (0x0D)
+ }
+ }
+
+ Method (_DIS, 0, NotSerialized)
+ {
+ IENF ()
+ Store (0x04, ILDN)
+ Store (Zero, IACT)
+ IEXF ()
+ }
+
+ Method (_CRS, 0, NotSerialized)
+ {
+ Name (BFU1, ResourceTemplate ()
+ {
+ IO (Decode16,
+ 0x03F8, // Range Minimum
+ 0x03F8, // Range Maximum
+ 0x08, // Alignment
+ 0x08, // Length
+ _Y03)
+ IRQNoFlags (_Y04)
+ {5}
+ })
+ CreateWordField (BFU1, \_SB.PCI0.ISA.SIO.COM1._CRS._Y03._MIN, IMIN)
+ CreateWordField (BFU1, \_SB.PCI0.ISA.SIO.COM1._CRS._Y03._MAX, IMAX)
+ CreateWordField (BFU1, \_SB.PCI0.ISA.SIO.COM1._CRS._Y04._INT, IRQ0)
+ IENF ()
+ Store (0x04, ILDN)
+ Store (IIOH, Local0)
+ ShiftLeft (Local0, 0x08, Local1)
+ Store (IIOL, Local0)
+ Add (Local1, Local0, Local0)
+ Store (Local0, IMIN)
+ Store (Local0, IMAX)
+ Store (IINT, Local0)
+ IEXF ()
+ Store (0x01, Local1)
+ ShiftLeft (Local1, Local0, IRQ0)
+ Return (BFU1)
+ }
+
+ Name (_PRS, ResourceTemplate ()
+ {
+ StartDependentFnNoPri ()
+ {
+ IO (Decode16,
+ 0x03F8, // Range Minimum
+ 0x03F8, // Range Maximum
+ 0x08, // Alignment
+ 0x08, // Length
+ )
+ IRQNoFlags ()
+ {5}
+ }
+ StartDependentFnNoPri ()
+ {
+ IO (Decode16,
+ 0x02F8, // Range Minimum
+ 0x02F8, // Range Maximum
+ 0x08, // Alignment
+ 0x08, // Length
+ )
+ IRQNoFlags ()
+ {9}
+ }
+ EndDependentFn ()
+ })
+ Method (_SRS, 1, NotSerialized)
+ {
+ CreateByteField (Arg0, 0x02, IOLO)
+ CreateByteField (Arg0, 0x03, IOHI)
+ CreateWordField (Arg0, 0x09, IRQ0)
+ IENF ()
+ Store (0x04, ILDN)
+ Store (Zero, IACT)
+ Store (IOLO, IIOL)
+ Store (IOHI, IIOH)
+ FindSetRightBit (IRQ0, Local0)
+ If (LGreater (Local0, 0x00))
+ {
+ Decrement (Local0)
+ }
+
+ Store (Local0, IINT)
+ Store (One, IACT)
+ IEXF ()
+ }
+ } /* COM1 */
+
+ Device (COM2)
+ {
+ Name (_UID, 0x04)
+ Name (_HID, EisaId ("PNP0501"))
+ Method (_STA, 0, NotSerialized)
+ {
+ IENF ()
+ Store (0x05, ILDN)
+ Store (IACT, Local0)
+ IEXF ()
+ If (LEqual (Local0, 0xFF))
+ {
+ Return (0x00)
+ }
+
+ If (LEqual (Local0, One))
+ {
+ Return (0x0F)
+ }
+ Else
+ {
+ Return (0x0D)
+ }
+ }
+
+ Method (_DIS, 0, NotSerialized)
+ {
+ IENF ()
+ Store (0x05, ILDN)
+ Store (Zero, IACT)
+ IEXF ()
+ }
+
+ Method (_CRS, 0, NotSerialized)
+ {
+ Name (BFU1, ResourceTemplate ()
+ {
+ IO (Decode16,
+ 0x03F8, // Range Minimum
+ 0x03F8, // Range Maximum
+ 0x08, // Alignment
+ 0x08, // Length
+ _Y05)
+ IRQNoFlags (_Y06)
+ {9}
+ })
+ CreateWordField (BFU1, \_SB.PCI0.ISA.SIO.COM2._CRS._Y05._MIN, IMIN)
+ CreateWordField (BFU1, \_SB.PCI0.ISA.SIO.COM2._CRS._Y05._MAX, IMAX)
+ CreateWordField (BFU1, \_SB.PCI0.ISA.SIO.COM2._CRS._Y06._INT, IRQ0)
+ IENF ()
+ Store (0x05, ILDN)
+ Store (IIOH, Local0)
+ ShiftLeft (Local0, 0x08, Local1)
+ Store (IIOL, Local0)
+ Add (Local1, Local0, Local0)
+ Store (Local0, IMIN)
+ Store (Local0, IMAX)
+ Store (IINT, Local0)
+ IEXF ()
+ Store (0x01, Local1)
+ ShiftLeft (Local1, Local0, IRQ0)
+ Return (BFU1)
+ }
+
+ Name (_PRS, ResourceTemplate ()
+ {
+ StartDependentFnNoPri ()
+ {
+ IO (Decode16,
+ 0x03F8, // Range Minimum
+ 0x03F8, // Range Maximum
+ 0x08, // Alignment
+ 0x08, // Length
+ )
+ IRQNoFlags ()
+ {5}
+ }
+ StartDependentFnNoPri ()
+ {
+ IO (Decode16,
+ 0x02F8, // Range Minimum
+ 0x02F8, // Range Maximum
+ 0x08, // Alignment
+ 0x08, // Length
+ )
+ IRQNoFlags ()
+ {9}
+ }
+ EndDependentFn ()
+ })
+ Method (_SRS, 1, NotSerialized)
+ {
+ CreateByteField (Arg0, 0x02, IOLO)
+ CreateByteField (Arg0, 0x03, IOHI)
+ CreateWordField (Arg0, 0x09, IRQ0)
+ IENF ()
+ Store (0x05, ILDN)
+ Store (Zero, IACT)
+ Store (IOLO, IIOL)
+ Store (IOHI, IIOH)
+ FindSetRightBit (IRQ0, Local0)
+ If (LGreater (Local0, 0x00))
+ {
+ Decrement (Local0)
+ }
+
+ Store (Local0, IINT)
+ Store (One, IACT)
+ IEXF ()
+ }
+ } /* COM2 */
+ } /* Device SIO */
+ } /* Device ISA */
+ } /* Device PCI 0*/
+ } /* Scope SB */
+
+ OperationRegion (_SB.PCI0.ISA.PIX0, PCI_Config, 0x60, 0x0C)
+ Field (\_SB.PCI0.ISA.PIX0, ByteAcc, NoLock, Preserve)
+ {
+ PIRA, 8,
+ PIRB, 8,
+ PIRC, 8,
+ PIRD, 8,
+ Offset (0x08),
+ PIRE, 8,
+ PIRF, 8,
+ PIRG, 8,
+ PIRH, 8
+ }
+
+ Scope (_SB)
+ {
+ Name (BUFA, ResourceTemplate ()
+ {
+ IRQ (Level, ActiveLow, Shared, _Y1C)
+ {15}
+ })
+ CreateWordField (BUFA, \_SB._Y1C._INT, IRA0)
+ Device (LNKA)
+ {
+ Name (_HID, EisaId ("PNP0C0F"))
+ Name (_UID, 0x01)
+ Method (_STA, 0, NotSerialized)
+ {
+ And (PIRA, 0x80, Local0)
+ If (Local0)
+ {
+ Return (0x09)
+ }
+ Else
+ {
+ Return (0x0B)
+ }
+ }
+
+ Method (_PRS, 0, NotSerialized)
+ {
+ Return (PRSA)
+ }
+
+ Method (_DIS, 0, NotSerialized)
+ {
+ Or (PIRA, 0x80, PIRA)
+ }
+
+ Method (_CRS, 0, NotSerialized)
+ {
+ And (PIRA, 0x0F, Local0)
+ ShiftLeft (0x01, Local0, IRA0)
+ Return (BUFA)
+ }
+
+ Method (_SRS, 1, NotSerialized)
+ {
+ CreateWordField (Arg0, 0x01, IRA)
+ FindSetRightBit (IRA, Local0)
+ Decrement (Local0)
+ Store (Local0, PIRA)
+ }
+ }
+
+ Device (LNKB)
+ {
+ Name (_HID, EisaId ("PNP0C0F"))
+ Name (_UID, 0x02)
+ Method (_STA, 0, NotSerialized)
+ {
+ And (PIRB, 0x80, Local0)
+ If (Local0)
+ {
+ Return (0x09)
+ }
+ Else
+ {
+ Return (0x0B)
+ }
+ }
+
+ Method (_PRS, 0, NotSerialized)
+ {
+ Return (PRSB)
+ }
+
+ Method (_DIS, 0, NotSerialized)
+ {
+ Or (PIRB, 0x80, PIRB)
+ }
+
+ Method (_CRS, 0, NotSerialized)
+ {
+ And (PIRB, 0x0F, Local0)
+ ShiftLeft (0x01, Local0, IRA0)
+ Return (BUFA)
+ }
+
+ Method (_SRS, 1, NotSerialized)
+ {
+ CreateWordField (Arg0, 0x01, IRA)
+ FindSetRightBit (IRA, Local0)
+ Decrement (Local0)
+ Store (Local0, PIRB)
+ }
+ }
+
+ Device (LNKC)
+ {
+ Name (_HID, EisaId ("PNP0C0F"))
+ Name (_UID, 0x03)
+ Method (_STA, 0, NotSerialized)
+ {
+ And (PIRC, 0x80, Local0)
+ If (Local0)
+ {
+ Return (0x09)
+ }
+ Else
+ {
+ Return (0x0B)
+ }
+ }
+
+ Method (_PRS, 0, NotSerialized)
+ {
+ Return (PRSC)
+ }
+
+ Method (_DIS, 0, NotSerialized)
+ {
+ Or (PIRC, 0x80, PIRC)
+ }
+
+ Method (_CRS, 0, NotSerialized)
+ {
+ And (PIRC, 0x0F, Local0)
+ ShiftLeft (0x01, Local0, IRA0)
+ Return (BUFA)
+ }
+
+ Method (_SRS, 1, NotSerialized)
+ {
+ CreateWordField (Arg0, 0x01, IRA)
+ FindSetRightBit (IRA, Local0)
+ Decrement (Local0)
+ Store (Local0, PIRC)
+ }
+ }
+
+ Device (LNKD)
+ {
+ Name (_HID, EisaId ("PNP0C0F"))
+ Name (_UID, 0x04)
+ Method (_STA, 0, NotSerialized)
+ {
+ And (PIRD, 0x80, Local0)
+ If (Local0)
+ {
+ Return (0x09)
+ }
+ Else
+ {
+ Return (0x0B)
+ }
+ }
+
+ Method (_PRS, 0, NotSerialized)
+ {
+ Return (PRSD)
+ }
+
+ Method (_DIS, 0, NotSerialized)
+ {
+ Or (PIRD, 0x80, PIRD)
+ }
+
+ Method (_CRS, 0, NotSerialized)
+ {
+ And (PIRD, 0x0F, Local0)
+ ShiftLeft (0x01, Local0, IRA0)
+ Return (BUFA)
+ }
+
+ Method (_SRS, 1, NotSerialized)
+ {
+ CreateWordField (Arg0, 0x01, IRA)
+ FindSetRightBit (IRA, Local0)
+ Decrement (Local0)
+ Store (Local0, PIRD)
+ }
+ }
+
+ Device (LNKE)
+ {
+ Name (_HID, EisaId ("PNP0C0F"))
+ Name (_UID, 0x05)
+ Method (_STA, 0, NotSerialized)
+ {
+ And (PIRE, 0x80, Local0)
+ If (Local0)
+ {
+ Return (0x09)
+ }
+ Else
+ {
+ Return (0x0B)
+ }
+ }
+
+ Method (_PRS, 0, NotSerialized)
+ {
+ Return (PRSE)
+ }
+
+ Method (_DIS, 0, NotSerialized)
+ {
+ Or (PIRE, 0x80, PIRE)
+ }
+
+ Method (_CRS, 0, NotSerialized)
+ {
+ And (PIRE, 0x0F, Local0)
+ ShiftLeft (0x01, Local0, IRA0)
+ Return (BUFA)
+ }
+
+ Method (_SRS, 1, NotSerialized)
+ {
+ CreateWordField (Arg0, 0x01, IRA)
+ FindSetRightBit (IRA, Local0)
+ Decrement (Local0)
+ Store (Local0, PIRE)
+ }
+ }
+
+ Device (LNKF)
+ {
+ Name (_HID, EisaId ("PNP0C0F"))
+ Name (_UID, 0x06)
+ Method (_STA, 0, NotSerialized)
+ {
+ And (PIRF, 0x80, Local0)
+ If (Local0)
+ {
+ Return (0x09)
+ }
+ Else
+ {
+ Return (0x0B)
+ }
+ }
+
+ Method (_PRS, 0, NotSerialized)
+ {
+ Return (PRSF)
+ }
+
+ Method (_DIS, 0, NotSerialized)
+ {
+ Or (PIRF, 0x80, PIRF)
+ }
+
+ Method (_CRS, 0, NotSerialized)
+ {
+ And (PIRF, 0x0F, Local0)
+ ShiftLeft (0x01, Local0, IRA0)
+ Return (BUFA)
+ }
+
+ Method (_SRS, 1, NotSerialized)
+ {
+ CreateWordField (Arg0, 0x01, IRA)
+ FindSetRightBit (IRA, Local0)
+ Decrement (Local0)
+ Store (Local0, PIRF)
+ }
+ }
+
+ Device (LNKG)
+ {
+ Name (_HID, EisaId ("PNP0C0F"))
+ Name (_UID, 0x07)
+ Method (_STA, 0, NotSerialized)
+ {
+ And (PIRG, 0x80, Local0)
+ If (Local0)
+ {
+ Return (0x09)
+ }
+ Else
+ {
+ Return (0x0B)
+ }
+ }
+
+ Method (_PRS, 0, NotSerialized)
+ {
+ Return (PRSG)
+ }
+
+ Method (_DIS, 0, NotSerialized)
+ {
+ Or (PIRG, 0x80, PIRG)
+ }
+
+ Method (_CRS, 0, NotSerialized)
+ {
+ And (PIRG, 0x0F, Local0)
+ ShiftLeft (0x01, Local0, IRA0)
+ Return (BUFA)
+ }
+
+ Method (_SRS, 1, NotSerialized)
+ {
+ CreateWordField (Arg0, 0x01, IRA)
+ FindSetRightBit (IRA, Local0)
+ Decrement (Local0)
+ Store (Local0, PIRG)
+ }
+ }
+
+ Device (LNKH)
+ {
+ Name (_HID, EisaId ("PNP0C0F"))
+ Name (_UID, 0x08)
+ Method (_STA, 0, NotSerialized)
+ {
+ And (PIRH, 0x80, Local0)
+ If (Local0)
+ {
+ Return (0x09)
+ }
+ Else
+ {
+ Return (0x0B)
+ }
+ }
+
+ Method (_PRS, 0, NotSerialized)
+ {
+ Return (PRSH)
+ }
+
+ Method (_DIS, 0, NotSerialized)
+ {
+ Or (PIRH, 0x80, PIRH)
+ }
+
+ Method (_CRS, 0, NotSerialized)
+ {
+ And (PIRH, 0x0F, Local0)
+ ShiftLeft (0x01, Local0, IRA0)
+ Return (BUFA)
+ }
+
+ Method (_SRS, 1, NotSerialized)
+ {
+ CreateWordField (Arg0, 0x01, IRA)
+ FindSetRightBit (IRA, Local0)
+ Decrement (Local0)
+ Store (Local0, PIRH)
+ }
+ }
+ }
+}
+
+