summaryrefslogtreecommitdiff
path: root/ReferenceCode/AcpiTables/Dsdt/LPC_DEV.ASL
diff options
context:
space:
mode:
Diffstat (limited to 'ReferenceCode/AcpiTables/Dsdt/LPC_DEV.ASL')
-rw-r--r--ReferenceCode/AcpiTables/Dsdt/LPC_DEV.ASL302
1 files changed, 302 insertions, 0 deletions
diff --git a/ReferenceCode/AcpiTables/Dsdt/LPC_DEV.ASL b/ReferenceCode/AcpiTables/Dsdt/LPC_DEV.ASL
new file mode 100644
index 0000000..6908a3e
--- /dev/null
+++ b/ReferenceCode/AcpiTables/Dsdt/LPC_DEV.ASL
@@ -0,0 +1,302 @@
+/**************************************************************************;
+;* *;
+;* Intel Confidential *;
+;* *;
+;* Intel Corporation - ACPI Reference Code for the Haswell *;
+;* Family of Customer Reference Boards. *;
+;* *;
+;* *;
+;* Copyright (c) 1999 - 2012 Intel Corporation. All rights reserved *;
+;* This software and associated documentation (if any) is furnished *;
+;* under a license and may only be used or copied in accordance *;
+;* with the terms of the license. Except as permitted by such *;
+;* license, no part of this software or documentation may be *;
+;* reproduced, stored in a retrieval system, or transmitted in any *;
+;* form or by any means without the express written consent of *;
+;* Intel Corporation. *;
+;* *;
+;* *;
+;**************************************************************************/
+/*++
+ This file contains a 'Sample Driver' and is licensed as such
+ under the terms of your license agreement with Intel or your
+ vendor. This file may be modified by the user, subject to
+ the additional terms of the license agreement
+--*/
+
+Device(DMAC) // DMA Controller
+{
+ Name(_HID,EISAID("PNP0200"))
+
+ Name(_CRS,ResourceTemplate()
+ {
+ IO(Decode16,0x00,0x00,0x01,0x20)
+ IO(Decode16,0x81,0x81,0x01,0x11)
+ IO(Decode16,0x93,0x93,0x01,0x0D)
+ IO(Decode16,0xC0,0xC0,0x01,0x20)
+ DMA(Compatibility,NotBusMaster,Transfer8_16) {4}
+ })
+}
+
+Device(FWHD) // Firmware Hub Device
+{
+ Name(_HID,EISAID("INT0800"))
+
+ Name(_CRS,ResourceTemplate()
+ {
+ Memory32Fixed(ReadOnly,0xFF000000,0x1000000)
+ })
+}
+
+
+Device(HPET) // High Performance Event Timer
+{
+ Name(_HID,EISAID("PNP0103"))
+ Name(_UID, 0)
+
+ Name(BUF0,ResourceTemplate()
+ {
+ Memory32Fixed(ReadWrite,0xFED00000,0x400,FED0)
+ })
+
+ Method(_STA,0)
+ {
+ // Show this Device only if the OS is WINXP or beyond.
+
+ If(LGreaterEqual(OSYS,2001))
+ {
+ If(HPAE)
+ {
+ Return(0x000F) // Enabled, do Display.
+ }
+ }
+ Else
+ {
+ // OS = WIN98, WINME, or WIN2000.
+
+ If(HPAE)
+ {
+ Return(0x000B) // Enabled, don't Display.
+ }
+ }
+
+ Return(0x0000) // Return Nothing.
+ }
+
+ Method(_CRS,0,Serialized)
+ {
+ If(HPAE)
+ {
+ // Check if HPETimer Base should be modified.
+
+ CreateDwordField(BUF0,^FED0._BAS,HPT0)
+
+ If(LEqual(HPAS,1))
+ {
+ Store(0xFED01000,HPT0)
+ }
+
+ If(LEqual(HPAS,2))
+ {
+ Store(0xFED02000,HPT0)
+ }
+
+ If(LEqual(HPAS,3))
+ {
+ Store(0xFED03000,HPT0)
+ }
+ }
+
+ Return(BUF0)
+ }
+}
+
+Device(IPIC) // 8259 PIC
+{
+ Name(_HID,EISAID("PNP0000"))
+
+ Name(_CRS,ResourceTemplate()
+ {
+ IO(Decode16,0x20,0x20,0x01,0x02)
+ IO(Decode16,0x24,0x24,0x01,0x02)
+ IO(Decode16,0x28,0x28,0x01,0x02)
+ IO(Decode16,0x2C,0x2C,0x01,0x02)
+ IO(Decode16,0x30,0x30,0x01,0x02)
+ IO(Decode16,0x34,0x34,0x01,0x02)
+ IO(Decode16,0x38,0x38,0x01,0x02)
+ IO(Decode16,0x3C,0x3C,0x01,0x02)
+ IO(Decode16,0xA0,0xA0,0x01,0x02)
+ IO(Decode16,0xA4,0xA4,0x01,0x02)
+ IO(Decode16,0xA8,0xA8,0x01,0x02)
+ IO(Decode16,0xAC,0xAC,0x01,0x02)
+ IO(Decode16,0xB0,0xB0,0x01,0x02)
+ IO(Decode16,0xB4,0xB4,0x01,0x02)
+ IO(Decode16,0xB8,0xB8,0x01,0x02)
+ IO(Decode16,0xBC,0xBC,0x01,0x02)
+ IO(Decode16,0x4D0,0x4D0,0x01,0x02)
+ IRQNoFlags() {2}
+ })
+}
+
+#ifdef TRAD_FLAG
+Device(MATH) // Math Co-Processor
+{
+ Name(_HID,EISAID("PNP0C04"))
+
+ Name(_CRS,ResourceTemplate()
+ {
+ IO(Decode16,0xF0,0xF0,0x01,0x01)
+ IRQNoFlags() {13}
+ })
+
+ //
+ // Report device present for LPT-H.
+ //
+ Method (_STA, 0x0, NotSerialized)
+ {
+ // LPT-H Chipset DID start with 0x8xxx while LPT-LP start with 0x9xxx
+ If(LEqual(And(CDID,0xF000), 0x8000)) {
+ Return(0x1F)
+ } else {
+ Return(0x0)
+ }
+ }
+}
+#endif // TRAD_FLAG
+
+Device(LDRC) // LPC Device Resource Consumption
+{
+ Name(_HID,EISAID("PNP0C02"))
+
+ Name(_UID,2)
+
+#if 0
+ Name(_CRS,ResourceTemplate() // This is for Cougar Point
+ {
+ IO(Decode16,0x2E,0x2E,0x1,0x02) // SIO Access.
+ IO(Decode16,0x4E,0x4E,0x1,0x02) // LPC Slot Access.
+ IO(Decode16,0x61,0x61,0x1,0x1) // NMI Status.
+ IO(Decode16,0x63,0x63,0x1,0x1) // Processor I/F.
+ IO(Decode16,0x65,0x65,0x1,0x1) // Processor I/F.
+ IO(Decode16,0x67,0x67,0x1,0x1) // Processor I/F.
+ IO(Decode16,0x70,0x70,0x1,0x1) // NMI Enable.
+ IO(Decode16,0x80,0x80,0x1,0x1) // Port 80h.
+ IO(Decode16,0x92,0x92,0x1,0x1) // Processor I/F.
+ IO(Decode16,0xB2,0xB2,0x01,0x02) // Software SMI.
+ IO(Decode16,0x680,0x680,0x1,0x20) // 32 Byte I/O.
+ IO(Decode16,0xFFFF,0xFFFF,0x1,0x1) // ACPI IO Trap.
+ IO(Decode16,0xFFFF,0xFFFF,0x1,0x1) // DTS IO Trap.
+ IO(Decode16,0xFFFF,0xFFFF,0x1,0x1) // HotKey IO Trap.
+
+ IO(Decode16, 0x800,0x800,0x1,0xFF) // PCH GPIO Base.
+ IO(Decode16, 0x900,0x900,0x1,0xFF) // PCH GPIO Base.
+ IO(Decode16, 0xA00,0xA00,0x1,0xFF) // PCH GPIO Base.
+ IO(Decode16, 0xB00,0xB00,0x1,0xFF) // PCH GPIO Base.
+ IO(Decode16, 0x1800,0x1800,0x1,0xFF) // PCH ACPI Base
+
+ IO(Decode16,0x164e,0x164e,0x1,0x02) // 16 Byte I/O.
+ })
+#else
+ Name(BUF0,ResourceTemplate() // This is for Cougar Point
+ {
+ IO(Decode16,0x2E,0x2E,0x1,0x02) // SIO Access.
+ IO(Decode16,0x4E,0x4E,0x1,0x02) // LPC Slot Access.
+ IO(Decode16,0x61,0x61,0x1,0x1) // NMI Status.
+ IO(Decode16,0x63,0x63,0x1,0x1) // Processor I/F.
+ IO(Decode16,0x65,0x65,0x1,0x1) // Processor I/F.
+ IO(Decode16,0x67,0x67,0x1,0x1) // Processor I/F.
+ IO(Decode16,0x70,0x70,0x1,0x1) // NMI Enable.
+ IO(Decode16,0x80,0x80,0x1,0x1) // Port 80h.
+ IO(Decode16,0x92,0x92,0x1,0x1) // Processor I/F.
+ IO(Decode16,0xB2,0xB2,0x01,0x02) // Software SMI.
+ IO(Decode16,0x680,0x680,0x1,0x20) // 32 Byte I/O.
+ IO(Decode16,0xFFFF,0xFFFF,0x1,0x1) // ACPI IO Trap.
+ IO(Decode16,0xFFFF,0xFFFF,0x1,0x1) // DTS IO Trap.
+ IO(Decode16,0xFFFF,0xFFFF,0x1,0x1) // HotKey IO Trap.
+
+ IO(Decode16, 0x800,0x800,0x1,0xFF, GIO0) // PCH GPIO Base.
+ IO(Decode16, 0x900,0x900,0x1,0xFF, GIO1) // PCH GPIO Base.
+ IO(Decode16, 0xA00,0xA00,0x1,0xFF, GIO2) // PCH GPIO Base.
+ IO(Decode16, 0xB00,0xB00,0x1,0xFF, GIO3) // PCH GPIO Base.
+ IO(Decode16, 0x1800,0x1800,0x1,0xFF) // PCH ACPI Base
+
+ IO(Decode16,0x164e,0x164e,0x1,0x02) // 16 Byte I/O.
+ })
+
+ Method(_CRS,0)
+ {
+ CreateWordField(BUF0, ^GIO0._MIN, IO0M)
+ CreateWordField(BUF0, ^GIO0._MAX, IO0X)
+ Store(GPBS, IO0M)
+ Store(GPBS, IO0X)
+
+ CreateWordField(BUF0, ^GIO1._MIN, IO1M)
+ CreateWordField(BUF0, ^GIO1._MAX, IO1X)
+ Store(Add(GPBS, 0x100), IO1M)
+ Store(Add(GPBS, 0x100), IO1X)
+
+ CreateWordField(BUF0, ^GIO2._MIN, IO2M)
+ CreateWordField(BUF0, ^GIO2._MAX, IO2X)
+ Store(Add(GPBS, 0x200), IO2M)
+ Store(Add(GPBS, 0x200), IO2X)
+
+ CreateWordField(BUF0, ^GIO3._MIN, IO3M)
+ CreateWordField(BUF0, ^GIO3._MAX, IO3X)
+ Store(Add(GPBS, 0x300), IO3M)
+ Store(Add(GPBS, 0x300), IO3X)
+
+ Return(BUF0)
+ }
+#endif
+}
+
+Device(RTC) // RTC
+{
+ Name(_HID,EISAID("PNP0B00"))
+
+ Name(_CRS,ResourceTemplate()
+ {
+ IO(Decode16,0x70,0x70,0x01,0x08)
+ IRQNoFlags() {8}
+ })
+}
+
+Device(TIMR) // 8254 Timer
+{
+ Name(_HID,EISAID("PNP0100"))
+
+ Name(_CRS,ResourceTemplate()
+ {
+ IO(Decode16,0x40,0x40,0x01,0x04)
+ IO(Decode16,0x50,0x50,0x10,0x04)
+ IRQNoFlags() {0}
+ })
+}
+
+Device(CWDT)
+{
+ Name(_HID,EISAID("INT3F0D"))
+ Name(_CID,EISAID("PNP0C02"))
+ Name(BUF0,ResourceTemplate()
+ {
+ IO(Decode16, 0x1854, 0x1854, 0x4, 0x4) // PMBS 0x1800 + Offset 0x54
+ }
+ )
+
+ Method(_STA,0,Serialized)
+ {
+ If(LEqual(WDTE,1))
+ {
+ Return(0x0F)
+ }
+ Else
+ {
+ Return(0x00)
+ }
+ }
+
+ Method(_CRS,0,Serialized)
+ {
+ Return(BUF0)
+ }
+}