blob: 80ba6e73bfba2267de99c9e3ea6c43a0c3d6de2d [file] [log] [blame]
Stefan Reinauercc46e732009-03-13 00:44:09 +00001/*
2 * This file is part of the coreboot project.
3 *
4 * Copyright (C) 2007-2009 coresystems GmbH
5 *
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
9 * the License.
10 *
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.
15 *
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,
19 * MA 02110-1301 USA
20 */
21
22// Intel LPC Bus Device - 0:1f.0
23
24Device (LPCB)
25{
26 Name(_ADR, 0x001f0000)
27
28 OperationRegion(LPC0, PCI_Config, 0x00, 0x100)
29 Field (LPC0, AnyAcc, NoLock, Preserve)
30 {
31 Offset (0x40),
32 PMBS, 16, // PMBASE
33 Offset (0x60), // Interrupt Routing Registers
34 PRTA, 8,
35 PRTB, 8,
36 PRTC, 8,
37 PRTD, 8,
38 Offset (0x68),
39 PRTE, 8,
40 PRTF, 8,
41 PRTG, 8,
42 PRTH, 8,
43
44 Offset (0x80), // IO Decode Ranges
45 IOD0, 8,
46 IOD1, 8,
47
48 Offset (0xf0), // RCBA
49 RCEN, 1,
50 , 13,
51 RCBA, 18,
52 }
53
54 Include ("../../../southbridge/intel/i82801gx/acpi/ich7_irqlinks.asl")
55
56 Include ("acpi/ec.asl")
57
58 Device (DMAC) // DMA Controller
59 {
60 Name(_HID, EISAID("PNP0200"))
61 Name(_CRS, ResourceTemplate()
62 {
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 }
68 })
69 }
70
71 Device (FWHD) // Firmware Hub
72 {
73 Name (_HID, EISAID("INT0800"))
74 Name (_CRS, ResourceTemplate()
75 {
76 Memory32Fixed(ReadOnly, 0xff000000, 0x01000000)
77 })
78 }
79
80 Device (HPET)
81 {
82 Name (_HID, EISAID("PNP0103"))
83 Name (_CID, EISAID("PNP0C01"))
84
85 Name(BUF0, ResourceTemplate()
86 {
87 Memory32Fixed(ReadOnly, 0xfed00000, 0x400, FED0)
88 })
89
90 Method (_STA, 0) // Device Status
91 {
92 If (HPTE) {
93 // Note: Ancient versions of Windows don't want
94 // to see the HPET in order to work right
95 // Return (0xb) // Enable and don't show device
96
97 Return (0xf) // Enable and show device
98 }
99
100 Return (0x0) // Not enabled, don't show.
101 }
102
103 Method (_CRS, 0, Serialized)
104 {
105 // Here we could do crazy stuff like move the HPET. Why
106 // should we?
107
108 Return (BUF0)
109 }
110 }
111
112 Device(PIC) // 8259 Interrupt Controller
113 {
114 Name(_HID,EISAID("PNP0000"))
115 Name(_CRS, ResourceTemplate()
116 {
117 IO (Decode16, 0x20, 0x20, 0x01, 0x02)
118 IO (Decode16, 0x24, 0x24, 0x01, 0x02)
119 IO (Decode16, 0x28, 0x28, 0x01, 0x02)
120 IO (Decode16, 0x2c, 0x2c, 0x01, 0x02)
121 IO (Decode16, 0x30, 0x30, 0x01, 0x02)
122 IO (Decode16, 0x34, 0x34, 0x01, 0x02)
123 IO (Decode16, 0x38, 0x38, 0x01, 0x02)
124 IO (Decode16, 0x3c, 0x3c, 0x01, 0x02)
125 IO (Decode16, 0xa0, 0xa0, 0x01, 0x02)
126 IO (Decode16, 0xa4, 0xa4, 0x01, 0x02)
127 IO (Decode16, 0xa8, 0xa8, 0x01, 0x02)
128 IO (Decode16, 0xac, 0xac, 0x01, 0x02)
129 IO (Decode16, 0xb0, 0xb0, 0x01, 0x02)
130 IO (Decode16, 0xb4, 0xb4, 0x01, 0x02)
131 IO (Decode16, 0xb8, 0xb8, 0x01, 0x02)
132 IO (Decode16, 0xbc, 0xbc, 0x01, 0x02)
133 IO (Decode16, 0x4d0, 0x4b0, 0x01, 0x02)
134 IRQNoFlags () { 2 }
135 })
136 }
137
138 Device(MATH) // FPU
139 {
140 Name (_HID, EISAID("PNP0C04"))
141 Name (_CRS, ResourceTemplate()
142 {
143 IO (Decode16, 0xf0, 0xf0, 0x01, 0x01)
144 IRQNoFlags() { 13 }
145 })
146 }
147
148 Device(MISC) // Various other devices
149 {
150 Name (_HID, EISAID("PNP0C02"))
151 Name (_UID, 2)
152 Name (_CRS, ResourceTemplate()
153 {
154 IO (Decode16, 0x2e, 0x2e, 0x1, 0x02) // First SuperIO
155 IO (Decode16, 0x4e, 0x4e, 0x1, 0x02) // Second SuperIO
156 IO (Decode16, 0x61, 0x61, 0x1, 0x1) // NMI Status
157 IO (Decode16, 0x63, 0x63, 0x1, 0x1) // CPU Reserved
158 IO (Decode16, 0x65, 0x65, 0x1, 0x1) // CPU Reserved
159 IO (Decode16, 0x67, 0x67, 0x1, 0x1) // CPU Reserved
160 IO (Decode16, 0x80, 0x80, 0x1, 0x1) // Port 80 Post
161 IO (Decode16, 0x92, 0x92, 0x1, 0x1) // CPU Reserved
162 IO (Decode16, 0xb2, 0xb2, 0x1, 0x02) // SWSMI
163 IO (Decode16, 0x680, 0x680, 0x1, 0x70) // IO ???
164 IO (Decode16, 0x800, 0x800, 0x1, 0x10) // ACPI I/O trap
165 IO (Decode16, 0x0500, 0x0500, 0x1, 0x80) // ICH7-M ACPI
166 IO (Decode16, 0x1180, 0x1180, 0x1, 0x40) // ICH7-M GPIO
167 IO (Decode16, 0x1640, 0x1640, 0x1, 0x10) // IO ???
168 })
169 }
170
171 Device (RTC) // Real Time Clock
172 {
173 Name (_HID, EISAID("PNP0B00"))
174 Name (_CRS, ResourceTemplate()
175 {
176 IO (Decode16, 0x70, 0x70, 1, 8)
177 IRQNoFlags() { 8 }
178 })
179 }
180
181 Device (TIMR) // Intel 8254 timer
182 {
183 Name(_HID, EISAID("PNP0100"))
184 Name(_CRS, ResourceTemplate()
185 {
186 IO (Decode16, 0x40, 0x40, 0x01, 0x04)
187 IO (Decode16, 0x50, 0x50, 0x10, 0x04)
188 IRQNoFlags() {0}
189 })
190 }
191
192 Include ("acpi/superio.asl")
193
194 Device (PS2K) // Keyboard
195 {
196 Name(_HID, EISAID("PNP0303"))
197 Name(_CRS, ResourceTemplate()
198 {
199 IO (Decode16, 0x60, 0x60, 0x01, 0x01)
200 IO (Decode16, 0x64, 0x64, 0x01, 0x01)
201 IRQ (Edge, ActiveHigh, Exclusive) { 0x01 } // IRQ 1
202 })
203 }
204
205 Device (PS2M) // Mouse
206 {
207 Name(_HID, EISAID("PNP0F13"))
208 Name(_CRS, ResourceTemplate()
209 {
210 IRQ (Edge, ActiveHigh, Exclusive) { 0x0c } // IRQ 12
211 })
212 }
213}