2 * This file is part of the coreboot project.
4 * Copyright (C) 2007-2009 coresystems GmbH
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License as
8 * published by the Free Software Foundation; version 2 of
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
22 // Intel LPC Bus Device - 0:1f.0
26 Name(_ADR, 0x001f0000)
28 OperationRegion(LPC0, PCI_Config, 0x00, 0x100)
29 Field (LPC0, AnyAcc, NoLock, Preserve)
33 Offset (0x60), // Interrupt Routing Registers
44 Offset (0x80), // IO Decode Ranges
48 Offset (0xb8), // GPIO Routing Control
66 Offset (0xf0), // RCBA
72 #include "irqlinks.asl"
74 #include "acpi/ec.asl"
76 Device (DMAC) // DMA Controller
78 Name(_HID, EISAID("PNP0200"))
79 Name(_CRS, ResourceTemplate()
81 IO (Decode16, 0x00, 0x00, 0x01, 0x20)
82 IO (Decode16, 0x81, 0x81, 0x01, 0x11)
83 IO (Decode16, 0x93, 0x93, 0x01, 0x0d)
84 IO (Decode16, 0xc0, 0xc0, 0x01, 0x20)
85 DMA (Compatibility, NotBusMaster, Transfer8_16) { 4 }
89 Device (FWH) // Firmware Hub
91 Name (_HID, EISAID("INT0800"))
92 Name (_CRS, ResourceTemplate()
94 Memory32Fixed(ReadOnly, 0xff000000, 0x01000000)
100 Name (_HID, EISAID("PNP0103"))
101 Name (_CID, 0x010CD041)
103 Name(BUF0, ResourceTemplate()
105 Memory32Fixed(ReadOnly, 0xfed00000, 0x400, FED0)
108 Method (_STA, 0) // Device Status
111 // Note: Ancient versions of Windows don't want
112 // to see the HPET in order to work right
113 If (LGreaterEqual(OSYS, 2001)) {
114 Return (0xf) // Enable and show device
116 Return (0xb) // Enable and don't show device
120 Return (0x0) // Not enabled, don't show.
123 Method (_CRS, 0, Serialized) // Current resources
126 CreateDWordField(BUF0, \_SB.PCI0.LPCB.HPET.FED0._BAS, HPT0)
127 If (Lequal(HPAS, 1)) {
128 Store(0xfed01000, HPT0)
131 If (Lequal(HPAS, 2)) {
132 Store(0xfed02000, HPT0)
135 If (Lequal(HPAS, 3)) {
136 Store(0xfed03000, HPT0)
144 Device(PIC) // 8259 Interrupt Controller
146 Name(_HID,EISAID("PNP0000"))
147 Name(_CRS, ResourceTemplate()
149 IO (Decode16, 0x20, 0x20, 0x01, 0x02)
150 IO (Decode16, 0x24, 0x24, 0x01, 0x02)
151 IO (Decode16, 0x28, 0x28, 0x01, 0x02)
152 IO (Decode16, 0x2c, 0x2c, 0x01, 0x02)
153 IO (Decode16, 0x30, 0x30, 0x01, 0x02)
154 IO (Decode16, 0x34, 0x34, 0x01, 0x02)
155 IO (Decode16, 0x38, 0x38, 0x01, 0x02)
156 IO (Decode16, 0x3c, 0x3c, 0x01, 0x02)
157 IO (Decode16, 0xa0, 0xa0, 0x01, 0x02)
158 IO (Decode16, 0xa4, 0xa4, 0x01, 0x02)
159 IO (Decode16, 0xa8, 0xa8, 0x01, 0x02)
160 IO (Decode16, 0xac, 0xac, 0x01, 0x02)
161 IO (Decode16, 0xb0, 0xb0, 0x01, 0x02)
162 IO (Decode16, 0xb4, 0xb4, 0x01, 0x02)
163 IO (Decode16, 0xb8, 0xb8, 0x01, 0x02)
164 IO (Decode16, 0xbc, 0xbc, 0x01, 0x02)
165 IO (Decode16, 0x4d0, 0x4d0, 0x01, 0x02)
172 Name (_HID, EISAID("PNP0C04"))
173 Name (_CRS, ResourceTemplate()
175 IO (Decode16, 0xf0, 0xf0, 0x01, 0x01)
180 Device(LDRC) // LPC device: Resource consumption
182 Name (_HID, EISAID("PNP0C02"))
184 Name (_CRS, ResourceTemplate()
186 IO (Decode16, 0x2e, 0x2e, 0x1, 0x02) // First SuperIO
187 IO (Decode16, 0x4e, 0x4e, 0x1, 0x02) // Second SuperIO
188 IO (Decode16, 0x61, 0x61, 0x1, 0x01) // NMI Status
189 IO (Decode16, 0x63, 0x63, 0x1, 0x01) // CPU Reserved
190 IO (Decode16, 0x65, 0x65, 0x1, 0x01) // CPU Reserved
191 IO (Decode16, 0x67, 0x67, 0x1, 0x01) // CPU Reserved
192 IO (Decode16, 0x80, 0x80, 0x1, 0x01) // Port 80 Post
193 IO (Decode16, 0x92, 0x92, 0x1, 0x01) // CPU Reserved
194 IO (Decode16, 0xb2, 0xb2, 0x1, 0x02) // SWSMI
195 //IO (Decode16, 0x800, 0x800, 0x1, 0x10) // ACPI I/O trap
196 IO (Decode16, DEFAULT_PMBASE, DEFAULT_PMBASE, 0x1, 0x80) // ICH7-M ACPI
197 IO (Decode16, DEFAULT_GPIOBASE, DEFAULT_GPIOBASE, 0x1, 0x40) // ICH7-M GPIO
201 Device (RTC) // Real Time Clock
203 Name (_HID, EISAID("PNP0B00"))
204 Name (_CRS, ResourceTemplate()
206 IO (Decode16, 0x70, 0x70, 1, 8)
207 // Disable as Windows doesn't like it, and systems don't seem to use it.
208 // IRQNoFlags() { 8 }
212 Device (TIMR) // Intel 8254 timer
214 Name(_HID, EISAID("PNP0100"))
215 Name(_CRS, ResourceTemplate()
217 IO (Decode16, 0x40, 0x40, 0x01, 0x04)
218 IO (Decode16, 0x50, 0x50, 0x10, 0x04)
223 #include "acpi/superio.asl"
226 Device (TPM) // Trusted Platform Module
228 Name(_HID, EISAID("IFX0102"))
229 Name(_CID, 0x310cd041)
240 Name(_CRS, ResourceTemplate() {
241 IO (Decode16, 0x2e, 0x2e, 0x01, 0x02)
242 IO (Decode16, 0x6f0, 0x6f0, 0x01, 0x10)
243 Memory32Fixed (ReadWrite, 0xfed40000, 0x5000)
244 IRQ (Edge, Activehigh, Exclusive) { 6 }