diff options
Diffstat (limited to 'src/mainboard/intel/eagleheights/dsdt.asl')
-rw-r--r-- | src/mainboard/intel/eagleheights/dsdt.asl | 1079 |
1 files changed, 1079 insertions, 0 deletions
diff --git a/src/mainboard/intel/eagleheights/dsdt.asl b/src/mainboard/intel/eagleheights/dsdt.asl new file mode 100644 index 0000000000..507d250191 --- /dev/null +++ b/src/mainboard/intel/eagleheights/dsdt.asl @@ -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) + } + } + } +} + + |