From af97d33ec426b9414133fd82d958cf9ab52a390f Mon Sep 17 00:00:00 2001 From: Patrick Georgi Date: Mon, 8 Feb 2010 15:46:37 +0000 Subject: Clean up ACPI: - unify all iasl related rules into the toplevel Makefile - build a filesystem standard for ACPI files and use it - pass ACPI sources through cpp, so constants can be shared between C and ACPI more easily - use cpp's #include instead of ACPI's Include() so cpp gets the whole picture Signed-off-by: Patrick Georgi Acked-by: Stefan Reinauer git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5094 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1 --- src/mainboard/intel/d945gclf/Makefile.inc | 8 - src/mainboard/intel/eagleheights/Makefile.inc | 7 - src/mainboard/intel/eagleheights/dsdt.asl | 1079 +++++++++++++++++++++++++ src/mainboard/intel/eagleheights/dsdt.dsl | 1079 ------------------------- 4 files changed, 1079 insertions(+), 1094 deletions(-) create mode 100644 src/mainboard/intel/eagleheights/dsdt.asl delete mode 100644 src/mainboard/intel/eagleheights/dsdt.dsl (limited to 'src/mainboard/intel') diff --git a/src/mainboard/intel/d945gclf/Makefile.inc b/src/mainboard/intel/d945gclf/Makefile.inc index 944aa3d5f4..e84032adf5 100644 --- a/src/mainboard/intel/d945gclf/Makefile.inc +++ b/src/mainboard/intel/d945gclf/Makefile.inc @@ -51,14 +51,6 @@ ldscripts += $(src)/arch/i386/lib/failover.lds ifdef POST_EVALUATION -$(obj)/dsdt.c: $(src)/mainboard/$(MAINBOARDDIR)/dsdt.asl - $(CPP) -D__ACPI__ -P $(CPPFLAGS) -include $(obj)/config.h -I$(src)/mainboard/$(MAINBOARDDIR) $(src)/mainboard/$(MAINBOARDDIR)/dsdt.asl -o $(obj)/dsdt.asl - iasl -p $(obj)/dsdt -tc $(obj)/dsdt.asl - mv $(obj)/dsdt.hex $@ - -$(obj)/mainboard/$(MAINBOARDDIR)/dsdt.o: $(obj)/dsdt.c - $(CC) $(DISTRO_CFLAGS) $(CFLAGS) $(CPPFLAGS) $(DEBUG_CFLAGS) -I$(src) -I. -c $< -o $@ - $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc: $(src)/mainboard/$(MAINBOARDDIR)/romstage.c $(obj)/option_table.h $(CC) $(DISTRO_CFLAGS) $(CFLAGS) $(CPPFLAGS) $(DEBUG_CFLAGS) -I$(src) -I. -c -S $(src)/mainboard/$(MAINBOARDDIR)/romstage.c -o $@ perl -e 's/\.rodata/.rom.data/g' -pi $@ diff --git a/src/mainboard/intel/eagleheights/Makefile.inc b/src/mainboard/intel/eagleheights/Makefile.inc index af1b217509..0ff563086e 100644 --- a/src/mainboard/intel/eagleheights/Makefile.inc +++ b/src/mainboard/intel/eagleheights/Makefile.inc @@ -26,13 +26,6 @@ ldscripts += $(src)/arch/i386/lib/failover.lds ifdef POST_EVALUATION -$(obj)/mainboard/$(MAINBOARDDIR)/dsdt.c: $(src)/mainboard/$(MAINBOARDDIR)/dsdt.dsl - iasl -p $(obj)/mainboard/$(MAINBOARDDIR)/dsdt -tc $(src)/mainboard/$(MAINBOARDDIR)/dsdt.dsl - mv $(obj)/mainboard/$(MAINBOARDDIR)/dsdt.hex $@ - -$(obj)/mainboard/$(MAINBOARDDIR)/dsdt.o: $(obj)/mainboard/$(MAINBOARDDIR)/dsdt.c - $(CC) $(DISTRO_CFLAGS) $(CFLAGS) $(CPPFLAGS) $(DEBUG_CFLAGS) -I$(src) -I. -c $< -o $@ - $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc: $(src)/mainboard/$(MAINBOARDDIR)/romstage.c $(obj)/option_table.h $(CC) $(DISTRO_CFLAGS) $(CFLAGS) $(CPPFLAGS) $(DEBUG_CFLAGS) -I$(src) -I. -c -S $(src)/mainboard/$(MAINBOARDDIR)/romstage.c -o $@ perl -e 's/\.rodata/.rom.data/g' -pi $@ 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 + * + * 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) + } + } + } +} + + diff --git a/src/mainboard/intel/eagleheights/dsdt.dsl b/src/mainboard/intel/eagleheights/dsdt.dsl deleted file mode 100644 index 507d250191..0000000000 --- a/src/mainboard/intel/eagleheights/dsdt.dsl +++ /dev/null @@ -1,1079 +0,0 @@ -/* - * This file is part of the coreboot project. - * - * Copyright (C) 2009 Thomas Jourdan - * - * 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) - } - } - } -} - - -- cgit v1.2.3