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 (0xf0), // RCBA
54 #include "../../../southbridge/intel/i82801gx/acpi/irqlinks.asl"
56 #include "acpi/ec.asl"
58 Device (DMAC) // DMA Controller
60 Name(_HID, EISAID("PNP0200"))
61 Name(_CRS, ResourceTemplate()
63 IO (Decode16, 0x00, 0x00, 0x01, 0x20)
64 IO (Decode16, 0x81, 0x81, 0x01, 0x11)
65 IO (Decode16, 0x93, 0x93, 0x01, 0x0d)
66 IO (Decode16, 0xc0, 0xc0, 0x01, 0x20)
67 DMA (Compatibility, NotBusMaster, Transfer8_16) { 4 }
71 Device (FWH) // Firmware Hub
73 Name (_HID, EISAID("INT0800"))
74 Name (_CRS, ResourceTemplate()
76 Memory32Fixed(ReadOnly, 0xff000000, 0x01000000)
82 Name (_HID, EISAID("PNP0103"))
83 Name (_CID, 0x010CD041)
85 Name(BUF0, ResourceTemplate()
87 Memory32Fixed(ReadOnly, 0xfed00000, 0x400, FED0)
90 Method (_STA, 0) // Device Status
93 // Note: Ancient versions of Windows don't want
94 // to see the HPET in order to work right
95 If (LGreaterEqual(OSYS, 2001)) {
96 Return (0xf) // Enable and show device
98 Return (0xb) // Enable and don't show device
102 Return (0x0) // Not enabled, don't show.
105 Method (_CRS, 0, Serialized) // Current resources
108 CreateDWordField(BUF0, \_SB.PCI0.LPCB.HPET.FED0._BAS, HPT0)
109 If (Lequal(HPAS, 1)) {
110 Store(0xfed01000, HPT0)
113 If (Lequal(HPAS, 2)) {
114 Store(0xfed02000, HPT0)
117 If (Lequal(HPAS, 3)) {
118 Store(0xfed03000, HPT0)
126 Device(PIC) // 8259 Interrupt Controller
128 Name(_HID,EISAID("PNP0000"))
129 Name(_CRS, ResourceTemplate()
131 IO (Decode16, 0x20, 0x20, 0x01, 0x02)
132 IO (Decode16, 0x24, 0x24, 0x01, 0x02)
133 IO (Decode16, 0x28, 0x28, 0x01, 0x02)
134 IO (Decode16, 0x2c, 0x2c, 0x01, 0x02)
135 IO (Decode16, 0x30, 0x30, 0x01, 0x02)
136 IO (Decode16, 0x34, 0x34, 0x01, 0x02)
137 IO (Decode16, 0x38, 0x38, 0x01, 0x02)
138 IO (Decode16, 0x3c, 0x3c, 0x01, 0x02)
139 IO (Decode16, 0xa0, 0xa0, 0x01, 0x02)
140 IO (Decode16, 0xa4, 0xa4, 0x01, 0x02)
141 IO (Decode16, 0xa8, 0xa8, 0x01, 0x02)
142 IO (Decode16, 0xac, 0xac, 0x01, 0x02)
143 IO (Decode16, 0xb0, 0xb0, 0x01, 0x02)
144 IO (Decode16, 0xb4, 0xb4, 0x01, 0x02)
145 IO (Decode16, 0xb8, 0xb8, 0x01, 0x02)
146 IO (Decode16, 0xbc, 0xbc, 0x01, 0x02)
147 IO (Decode16, 0x4d0, 0x4d0, 0x01, 0x02)
154 Name (_HID, EISAID("PNP0C04"))
155 Name (_CRS, ResourceTemplate()
157 IO (Decode16, 0xf0, 0xf0, 0x01, 0x01)
162 Device(LDRC) // LPC device: Resource consumption
164 Name (_HID, EISAID("PNP0C02"))
166 Name (_CRS, ResourceTemplate()
168 IO (Decode16, 0x2e, 0x2e, 0x1, 0x02) // First SuperIO
169 IO (Decode16, 0x4e, 0x4e, 0x1, 0x02) // Second SuperIO
170 IO (Decode16, 0x61, 0x61, 0x1, 0x01) // NMI Status
171 IO (Decode16, 0x63, 0x63, 0x1, 0x01) // CPU Reserved
172 IO (Decode16, 0x65, 0x65, 0x1, 0x01) // CPU Reserved
173 IO (Decode16, 0x67, 0x67, 0x1, 0x01) // CPU Reserved
174 IO (Decode16, 0x80, 0x80, 0x1, 0x01) // Port 80 Post
175 IO (Decode16, 0x92, 0x92, 0x1, 0x01) // CPU Reserved
176 IO (Decode16, 0xb2, 0xb2, 0x1, 0x02) // SWSMI
177 IO (Decode16, 0x800, 0x800, 0x1, 0x10) // ACPI I/O trap
178 IO (Decode16, DEFAULT_PMBASE, DEFAULT_PMBASE, 0x1, 0x80) // ICH7-M ACPI
179 IO (Decode16, DEFAULT_GPIOBASE, DEFAULT_GPIOBASE, 0x1, 0x40) // ICH7-M GPIO
183 Device (RTC) // Real Time Clock
185 Name (_HID, EISAID("PNP0B00"))
186 Name (_CRS, ResourceTemplate()
188 IO (Decode16, 0x70, 0x70, 1, 8)
189 // Disable as Windows doesn't like it, and systems don't seem to use it.
190 // IRQNoFlags() { 8 }
194 Device (TIMR) // Intel 8254 timer
196 Name(_HID, EISAID("PNP0100"))
197 Name(_CRS, ResourceTemplate()
199 IO (Decode16, 0x40, 0x40, 0x01, 0x04)
200 IO (Decode16, 0x50, 0x50, 0x10, 0x04)
205 #include "acpi/superio.asl"
208 Device (TPM) // Trusted Platform Module
210 Name(_HID, EISAID("IFX0102"))
211 Name(_CID, 0x310cd041)
222 Name(_CRS, ResourceTemplate() {
223 IO (Decode16, 0x2e, 0x2e, 0x01, 0x02)
224 IO (Decode16, 0x6f0, 0x6f0, 0x01, 0x10)
225 Memory32Fixed (ReadWrite, 0xfed40000, 0x5000)
226 IRQ (Edge, Activehigh, Exclusive) { 6 }
231 Device (PS2K) // Keyboard
233 Name(_HID, EISAID("PNP0303"))
234 Name(_CID, EISAID("PNP030B"))
236 Name(_CRS, ResourceTemplate()
238 IO (Decode16, 0x60, 0x60, 0x01, 0x01)
239 IO (Decode16, 0x64, 0x64, 0x01, 0x01)
240 IRQ (Edge, ActiveHigh, Exclusive) { 0x01 } // IRQ 1
249 Device (PS2M) // Mouse
251 Name(_HID, EISAID("PNP0F13"))
252 Name(_CRS, ResourceTemplate()
254 IRQ (Edge, ActiveHigh, Exclusive) { 0x0c } // IRQ 12
264 Device (FDC0) // Floppy controller
266 Name (_HID, EisaId ("PNP0700"))
267 Method (_STA, 0, NotSerialized)
269 Return (0x0f) // FIXME
272 Name(_CRS, ResourceTemplate()
274 IO (Decode16, 0x03F0, 0x03F0, 0x01, 0x06)
275 IO (Decode16, 0x03F7, 0x03F7, 0x01, 0x01)
277 DMA (Compatibility, NotBusMaster, Transfer8) {2}
280 Name(_PRS, ResourceTemplate()
282 IO (Decode16, 0x03F0, 0x03F0, 0x01, 0x06)
283 IO (Decode16, 0x03F7, 0x03F7, 0x01, 0x01)
285 DMA (Compatibility, NotBusMaster, Transfer8) {2}