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,
23 Name(_HID,EISAID("PNP0A08")) // PCIe
24 Name(_CID,EISAID("PNP0A03")) // PCI
31 Name(_ADR, 0x00000000) // 0:0.0
33 OperationRegion(MCHP, PCI_Config, 0x00, 0x100)
34 Field (MCHP, DWordAcc, NoLock, Preserve)
36 Offset (0x40), // EPBAR
41 Offset (0x44), // MCHBAR
46 Offset (0x48), // PCIe BAR
52 Offset (0x4c), // DMIBAR
59 Offset (0x90), // PAM0
63 Offset (0x91), // PAM1
68 Offset (0x92), // PAM2
73 Offset (0x93), // PAM3
78 Offset (0x94), // PAM4
83 Offset (0x95), // PAM5
88 Offset (0x96), // PAM6
94 Offset (0x9c), // Top of Low Used Memory
98 Offset (0xa0), // Top of Used Memory
105 // Current Resource Settings
107 Method (_CRS, 0, Serialized)
109 Name (MCRS, ResourceTemplate()
112 WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
113 0x0000, 0x0000, 0x00ff, 0x0000, 0x0100,,, PB00)
116 DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
117 0x0000, 0x0000, 0x0cf7, 0x0000, 0x0cf8,,, PI00)
120 Io (Decode16, 0x0cf8, 0x0cf8, 0x0001, 0x0008)
123 DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
124 0x0000, 0x0d00, 0xffff, 0x0000, 0xf300,,, PI01)
126 // VGA memory (0xa0000-0xbffff)
127 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
128 Cacheable, ReadWrite,
129 0x00000000, 0x000a0000, 0x000bffff, 0x00000000,
132 // OPROM reserved (0xc0000-0xc3fff)
133 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
134 Cacheable, ReadWrite,
135 0x00000000, 0x000c0000, 0x000c3fff, 0x00000000,
138 // OPROM reserved (0xc4000-0xc7fff)
139 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
140 Cacheable, ReadWrite,
141 0x00000000, 0x000c4000, 0x000c7fff, 0x00000000,
144 // OPROM reserved (0xc8000-0xcbfff)
145 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
146 Cacheable, ReadWrite,
147 0x00000000, 0x000c8000, 0x000cbfff, 0x00000000,
150 // OPROM reserved (0xcc000-0xcffff)
151 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
152 Cacheable, ReadWrite,
153 0x00000000, 0x000cc000, 0x000cffff, 0x00000000,
156 // OPROM reserved (0xd0000-0xd3fff)
157 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
158 Cacheable, ReadWrite,
159 0x00000000, 0x000d0000, 0x000d3fff, 0x00000000,
162 // OPROM reserved (0xd4000-0xd7fff)
163 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
164 Cacheable, ReadWrite,
165 0x00000000, 0x000d4000, 0x000d7fff, 0x00000000,
168 // OPROM reserved (0xd8000-0xdbfff)
169 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
170 Cacheable, ReadWrite,
171 0x00000000, 0x000d8000, 0x000dbfff, 0x00000000,
174 // OPROM reserved (0xdc000-0xdffff)
175 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
176 Cacheable, ReadWrite,
177 0x00000000, 0x000dc000, 0x000dffff, 0x00000000,
180 // BIOS Extension (0xe0000-0xe3fff)
181 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
182 Cacheable, ReadWrite,
183 0x00000000, 0x000e0000, 0x000e3fff, 0x00000000,
186 // BIOS Extension (0xe4000-0xe7fff)
187 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
188 Cacheable, ReadWrite,
189 0x00000000, 0x000e4000, 0x000e7fff, 0x00000000,
192 // BIOS Extension (0xe8000-0xebfff)
193 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
194 Cacheable, ReadWrite,
195 0x00000000, 0x000e8000, 0x000ebfff, 0x00000000,
198 // BIOS Extension (0xec000-0xeffff)
199 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
200 Cacheable, ReadWrite,
201 0x00000000, 0x000ec000, 0x000effff, 0x00000000,
204 // System BIOS (0xf0000-0xfffff)
205 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
206 Cacheable, ReadWrite,
207 0x00000000, 0x000f0000, 0x000fffff, 0x00000000,
210 // PCI Memory Region (Top of memory-0xfebfffff)
211 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
212 Cacheable, ReadWrite,
213 0x00000000, 0x00000000, 0xfebfffff, 0x00000000,
216 // TPM Area (0xfed40000-0xfed44fff)
217 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
218 Cacheable, ReadWrite,
219 0x00000000, 0xfed40000, 0xfed44fff, 0x00000000,
223 // Find PCI resource area in MCRS
224 CreateDwordField(MCRS, PM01._MIN, PMIN)
225 CreateDwordField(MCRS, PM01._MAX, PMAX)
226 CreateDwordField(MCRS, PM01._LEN, PLEN)
228 // Fix up PCI memory region:
229 // Enter actual TOLUD. The TOLUD register contains bits 27-31 of
230 // the top of memory address.
231 ShiftLeft (^MCHC.TLUD, 27, PMIN)
232 Add(Subtract(PMAX, PMIN), 1, PLEN)
237 /* IRQ assignment is mainboard specific. Get it from mainboard ACPI code */
238 #include "acpi/i945_pci_irqs.asl"