1 /* SPDX-License-Identifier: GPL-2.0-only */
8 /* Intel Legacy Block */
9 OperationRegion(ILBS, SystemMemory, ILB_BASE_ADDRESS, ILB_BASE_SIZE)
10 Field (ILBS, AnyAcc, NoLock, Preserve)
24 External (\TOLM, IntObj)
26 Name(_HID,EISAID("PNP0A08")) /* PCIe */
27 Name(_CID,EISAID("PNP0A03")) /* PCI */
31 Method (_CRS, 0, Serialized)
33 Name (MCRS, ResourceTemplate()
36 WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
37 0x0000, 0x0000, 0x00ff, 0x0000, 0x0100,,, PB00)
40 DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
41 0x0000, 0x0000, 0x0cf7, 0x0000, 0x0cf8,,, PI00)
43 /* PCI Config Space */
44 Io (Decode16, 0x0cf8, 0x0cf8, 0x0001, 0x0008)
47 DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
48 0x0000, 0x0d00, 0xffff, 0x0000, 0xf300,,, PI01)
50 /* VGA memory (0xa0000-0xbffff) */
51 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
53 0x00000000, 0x000a0000, 0x000bffff, 0x00000000,
56 /* OPROM reserved (0xc0000-0xc3fff) */
57 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
59 0x00000000, 0x000c0000, 0x000c3fff, 0x00000000,
62 /* OPROM reserved (0xc4000-0xc7fff) */
63 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
65 0x00000000, 0x000c4000, 0x000c7fff, 0x00000000,
68 /* OPROM reserved (0xc8000-0xcbfff) */
69 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
71 0x00000000, 0x000c8000, 0x000cbfff, 0x00000000,
74 /* OPROM reserved (0xcc000-0xcffff) */
75 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
77 0x00000000, 0x000cc000, 0x000cffff, 0x00000000,
80 /* OPROM reserved (0xd0000-0xd3fff) */
81 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
83 0x00000000, 0x000d0000, 0x000d3fff, 0x00000000,
86 /* OPROM reserved (0xd4000-0xd7fff) */
87 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
89 0x00000000, 0x000d4000, 0x000d7fff, 0x00000000,
92 /* OPROM reserved (0xd8000-0xdbfff) */
93 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
95 0x00000000, 0x000d8000, 0x000dbfff, 0x00000000,
98 /* OPROM reserved (0xdc000-0xdffff) */
99 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
100 Cacheable, ReadWrite,
101 0x00000000, 0x000dc000, 0x000dffff, 0x00000000,
104 /* BIOS Extension (0xe0000-0xe3fff) */
105 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
106 Cacheable, ReadWrite,
107 0x00000000, 0x000e0000, 0x000e3fff, 0x00000000,
110 /* BIOS Extension (0xe4000-0xe7fff) */
111 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
112 Cacheable, ReadWrite,
113 0x00000000, 0x000e4000, 0x000e7fff, 0x00000000,
116 /* BIOS Extension (0xe8000-0xebfff) */
117 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
118 Cacheable, ReadWrite,
119 0x00000000, 0x000e8000, 0x000ebfff, 0x00000000,
122 /* BIOS Extension (0xec000-0xeffff) */
123 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
124 Cacheable, ReadWrite,
125 0x00000000, 0x000ec000, 0x000effff, 0x00000000,
128 /* System BIOS (0xf0000-0xfffff) */
129 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
130 Cacheable, ReadWrite,
131 0x00000000, 0x000f0000, 0x000fffff, 0x00000000,
134 /* LPEA Memory Region (0x20000000-0x201FFFFF) */
135 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
136 Cacheable, ReadWrite,
137 0x00000000, 0x20000000, 0x201FFFFF, 0x00000000,
140 /* PCI Memory Region (Top of memory-CONFIG_ECAM_MMCONF_BASE_ADDRESS) */
141 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
142 Cacheable, ReadWrite,
143 0x00000000, 0x00000000, 0x00000000, 0x00000000,
146 /* TPM Area (0xfed40000-0xfed44fff) */
147 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed,
148 Cacheable, ReadWrite,
149 0x00000000, 0xfed40000, 0xfed44fff, 0x00000000,
153 /* Update LPEA resource area */
154 CreateDWordField (MCRS, LMEM._MIN, LMIN)
155 CreateDWordField (MCRS, LMEM._MAX, LMAX)
156 CreateDWordField (MCRS, LMEM._LEN, LLEN)
157 If (LPFW != 0 && LPEN == 1)
160 LMAX = LMIN + 0x001FFFFF
170 /* Update PCI resource area */
171 CreateDwordField(MCRS, PMEM._MIN, PMIN)
172 CreateDwordField(MCRS, PMEM._MAX, PMAX)
173 CreateDwordField(MCRS, PMEM._LEN, PLEN)
175 /* TOLM is BMBOUND accessible from IOSF so is saved in NVS */
177 PMAX = CONFIG_ECAM_MMCONF_BASE_ADDRESS - 1
178 PLEN = PMAX - PMIN + 1
183 /* Device Resource Consumption */
186 Name (_HID, EISAID("PNP0C02"))
189 Name (PDRS, ResourceTemplate() {
190 Memory32Fixed(ReadWrite, ABORT_BASE_ADDRESS, ABORT_BASE_SIZE)
191 Memory32Fixed(ReadWrite, PMC_BASE_ADDRESS, PMC_BASE_SIZE)
192 Memory32Fixed(ReadWrite, ILB_BASE_ADDRESS, ILB_BASE_SIZE)
193 Memory32Fixed(ReadWrite, SPI_BASE_ADDRESS, SPI_BASE_SIZE)
194 Memory32Fixed(ReadWrite, MPHY_BASE_ADDRESS, MPHY_BASE_SIZE)
195 Memory32Fixed(ReadWrite, PUNIT_BASE_ADDRESS, PUNIT_BASE_SIZE)
196 Memory32Fixed(ReadWrite, RCBA_BASE_ADDRESS, RCBA_BASE_SIZE)
199 /* Current Resource Settings */
200 Method (_CRS, 0, Serialized)
208 /* Check for proper GUID */
209 If (Arg0 == ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766"))
211 /* Let OS control everything */
216 /* Unrecognized UUID */
217 CreateDWordField (Arg3, 0, CDW1)
223 /* IOSF MBI Interface for kernel access */
226 Name (_HID, "INT33BD")
227 Name (_CID, "INT33BD")
230 Name (RBUF, ResourceTemplate ()
232 /* MCR / MDR / MCRX */
233 Memory32Fixed (ReadWrite, 0, 12, RBAR)
238 CreateDwordField (^RBUF, ^RBAR._BAS, RBAS)
239 RBAS = CONFIG_ECAM_MMCONF_BASE_ADDRESS + 0xD0
253 /* LPC Bridge 0:1f.0 */
256 /* USB XHCI 0:14.0 */
259 /* IRQ routing for each PCI device */
260 #include "irqroute.asl"
277 /* Integrated graphics 0:2.0 */
278 #include <drivers/intel/gma/acpi/gfx.asl>