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 (0x48), // MCHBAR
46 Offset (0x60), // PCIe BAR
52 Offset (0x68), // DMIBAR
57 Offset (0x70), // ME Base Address
62 Offset (0x80), // PAM0
66 Offset (0x81), // PAM1
71 Offset (0x82), // PAM2
76 Offset (0x83), // PAM3
81 Offset (0x84), // PAM4
86 Offset (0x85), // PAM5
91 Offset (0x86), // PAM6
97 Offset (0xa0), // Top of Used Memory
100 Offset (0xbc), // Top of Low Used Memory
107 // Current Resource Settings
109 Method (_CRS, 0, Serialized)
111 Name (MCRS, ResourceTemplate()
114 WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
115 0x0000, 0x0000, 0x00ff, 0x0000, 0x0100,,, PB00)
118 DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
119 0x0000, 0x0000, 0x0cf7, 0x0000, 0x0cf8,,, PI00)
122 Io (Decode16, 0x0cf8, 0x0cf8, 0x0001, 0x0008)
125 DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
126 0x0000, 0x0d00, 0xffff, 0x0000, 0xf300,,, PI01)
128 // VGA memory (0xa0000-0xbffff)
129 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
130 Cacheable, ReadWrite,
131 0x00000000, 0x000a0000, 0x000bffff, 0x00000000,
134 // OPROM reserved (0xc0000-0xc3fff)
135 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
136 Cacheable, ReadWrite,
137 0x00000000, 0x000c0000, 0x000c3fff, 0x00000000,
140 // OPROM reserved (0xc4000-0xc7fff)
141 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
142 Cacheable, ReadWrite,
143 0x00000000, 0x000c4000, 0x000c7fff, 0x00000000,
146 // OPROM reserved (0xc8000-0xcbfff)
147 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
148 Cacheable, ReadWrite,
149 0x00000000, 0x000c8000, 0x000cbfff, 0x00000000,
152 // OPROM reserved (0xcc000-0xcffff)
153 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
154 Cacheable, ReadWrite,
155 0x00000000, 0x000cc000, 0x000cffff, 0x00000000,
158 // OPROM reserved (0xd0000-0xd3fff)
159 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
160 Cacheable, ReadWrite,
161 0x00000000, 0x000d0000, 0x000d3fff, 0x00000000,
164 // OPROM reserved (0xd4000-0xd7fff)
165 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
166 Cacheable, ReadWrite,
167 0x00000000, 0x000d4000, 0x000d7fff, 0x00000000,
170 // OPROM reserved (0xd8000-0xdbfff)
171 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
172 Cacheable, ReadWrite,
173 0x00000000, 0x000d8000, 0x000dbfff, 0x00000000,
176 // OPROM reserved (0xdc000-0xdffff)
177 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
178 Cacheable, ReadWrite,
179 0x00000000, 0x000dc000, 0x000dffff, 0x00000000,
182 // BIOS Extension (0xe0000-0xe3fff)
183 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
184 Cacheable, ReadWrite,
185 0x00000000, 0x000e0000, 0x000e3fff, 0x00000000,
188 // BIOS Extension (0xe4000-0xe7fff)
189 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
190 Cacheable, ReadWrite,
191 0x00000000, 0x000e4000, 0x000e7fff, 0x00000000,
194 // BIOS Extension (0xe8000-0xebfff)
195 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
196 Cacheable, ReadWrite,
197 0x00000000, 0x000e8000, 0x000ebfff, 0x00000000,
200 // BIOS Extension (0xec000-0xeffff)
201 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
202 Cacheable, ReadWrite,
203 0x00000000, 0x000ec000, 0x000effff, 0x00000000,
206 // System BIOS (0xf0000-0xfffff)
207 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
208 Cacheable, ReadWrite,
209 0x00000000, 0x000f0000, 0x000fffff, 0x00000000,
212 // PCI Memory Region (Top of memory-0xfebfffff)
213 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
214 Cacheable, ReadWrite,
215 0x00000000, 0x00000000, 0xfebfffff, 0x00000000,
218 // TPM Area (0xfed40000-0xfed44fff)
219 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
220 Cacheable, ReadWrite,
221 0x00000000, 0xfed40000, 0xfed44fff, 0x00000000,
225 // Find PCI resource area in MCRS
226 CreateDwordField(MCRS, PM01._MIN, PMIN)
227 CreateDwordField(MCRS, PM01._MAX, PMAX)
228 CreateDwordField(MCRS, PM01._LEN, PLEN)
230 // Fix up PCI memory region
231 // Start with Top of Lower Usable DRAM
232 Store (^MCHC.TLUD, Local0)
233 Store (^MCHC.MEBA, Local1)
235 // Check if ME base is equal
236 If (LEqual (Local0, Local1)) {
237 // Use Top Of Memory instead
238 Store (^MCHC.TOM, Local0)
242 Add(Subtract(PMAX, PMIN), 1, PLEN)
247 /* IRQ assignment is mainboard specific. Get it from mainboard ACPI code */
248 #include "acpi/sandybridge_pci_irqs.asl"