1/* SPDX-License-Identifier: GPL-2.0-only */ 2 3#include <soc/iomap.h> 4#include <soc/irq.h> 5 6Scope(\) 7{ 8 /* Intel Legacy Block */ 9 OperationRegion(ILBS, SystemMemory, ILB_BASE_ADDRESS, ILB_BASE_SIZE) 10 Field (ILBS, AnyAcc, NoLock, Preserve) 11 { 12 Offset (0x8), 13 PRTA, 8, 14 PRTB, 8, 15 PRTC, 8, 16 PRTD, 8, 17 PRTE, 8, 18 PRTF, 8, 19 PRTG, 8, 20 PRTH, 8, 21 } 22} 23 24External (\TOLM, IntObj) 25 26Name(_HID,EISAID("PNP0A08")) /* PCIe */ 27Name(_CID,EISAID("PNP0A03")) /* PCI */ 28 29Name(_BBN, 0) 30 31Name (MCRS, ResourceTemplate() 32{ 33 /* Bus Numbers */ 34 WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode, 35 0x0000, 0x0000, 0x00ff, 0x0000, 0x0100,,, PB00) 36 37 /* IO Region 0 */ 38 DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, 39 0x0000, 0x0000, 0x0cf7, 0x0000, 0x0cf8,,, PI00) 40 41 /* PCI Config Space */ 42 Io (Decode16, 0x0cf8, 0x0cf8, 0x0001, 0x0008) 43 44 /* IO Region 1 */ 45 DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, 46 0x0000, 0x0d00, 0xffff, 0x0000, 0xf300,,, PI01) 47 48 /* VGA memory (0xa0000-0xbffff) */ 49 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, 50 Cacheable, ReadWrite, 51 0x00000000, 0x000a0000, 0x000bffff, 0x00000000, 52 0x00020000,,, ASEG) 53 54 /* OPROM reserved (0xc0000-0xc3fff) */ 55 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, 56 Cacheable, ReadWrite, 57 0x00000000, 0x000c0000, 0x000c3fff, 0x00000000, 58 0x00004000,,, OPR0) 59 60 /* OPROM reserved (0xc4000-0xc7fff) */ 61 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, 62 Cacheable, ReadWrite, 63 0x00000000, 0x000c4000, 0x000c7fff, 0x00000000, 64 0x00004000,,, OPR1) 65 66 /* OPROM reserved (0xc8000-0xcbfff) */ 67 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, 68 Cacheable, ReadWrite, 69 0x00000000, 0x000c8000, 0x000cbfff, 0x00000000, 70 0x00004000,,, OPR2) 71 72 /* OPROM reserved (0xcc000-0xcffff) */ 73 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, 74 Cacheable, ReadWrite, 75 0x00000000, 0x000cc000, 0x000cffff, 0x00000000, 76 0x00004000,,, OPR3) 77 78 /* OPROM reserved (0xd0000-0xd3fff) */ 79 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, 80 Cacheable, ReadWrite, 81 0x00000000, 0x000d0000, 0x000d3fff, 0x00000000, 82 0x00004000,,, OPR4) 83 84 /* OPROM reserved (0xd4000-0xd7fff) */ 85 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, 86 Cacheable, ReadWrite, 87 0x00000000, 0x000d4000, 0x000d7fff, 0x00000000, 88 0x00004000,,, OPR5) 89 90 /* OPROM reserved (0xd8000-0xdbfff) */ 91 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, 92 Cacheable, ReadWrite, 93 0x00000000, 0x000d8000, 0x000dbfff, 0x00000000, 94 0x00004000,,, OPR6) 95 96 /* OPROM reserved (0xdc000-0xdffff) */ 97 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, 98 Cacheable, ReadWrite, 99 0x00000000, 0x000dc000, 0x000dffff, 0x00000000, 100 0x00004000,,, OPR7) 101 102 /* BIOS Extension (0xe0000-0xe3fff) */ 103 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, 104 Cacheable, ReadWrite, 105 0x00000000, 0x000e0000, 0x000e3fff, 0x00000000, 106 0x00004000,,, ESG0) 107 108 /* BIOS Extension (0xe4000-0xe7fff) */ 109 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, 110 Cacheable, ReadWrite, 111 0x00000000, 0x000e4000, 0x000e7fff, 0x00000000, 112 0x00004000,,, ESG1) 113 114 /* BIOS Extension (0xe8000-0xebfff) */ 115 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, 116 Cacheable, ReadWrite, 117 0x00000000, 0x000e8000, 0x000ebfff, 0x00000000, 118 0x00004000,,, ESG2) 119 120 /* BIOS Extension (0xec000-0xeffff) */ 121 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, 122 Cacheable, ReadWrite, 123 0x00000000, 0x000ec000, 0x000effff, 0x00000000, 124 0x00004000,,, ESG3) 125 126 /* System BIOS (0xf0000-0xfffff) */ 127 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, 128 Cacheable, ReadWrite, 129 0x00000000, 0x000f0000, 0x000fffff, 0x00000000, 130 0x00010000,,, FSEG) 131 132 /* LPEA Memory Region (0x20000000-0x201FFFFF) */ 133 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, 134 Cacheable, ReadWrite, 135 0x00000000, 0x00000000, 0x00000000, 0x00000000, 136 0x00000000,,, LMEM) 137 138 /* PCI Memory Region (Top of memory-CONFIG_ECAM_MMCONF_BASE_ADDRESS) */ 139 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, 140 Cacheable, ReadWrite, 141 0x00000000, 0x00000000, 0x00000000, 0x00000000, 142 0x00000000,,, PMEM) 143 144 /* TPM Area (0xfed40000-0xfed44fff) */ 145 DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, 146 Cacheable, ReadWrite, 147 0x00000000, 0xfed40000, 0xfed44fff, 0x00000000, 148 0x00005000,,, TPMR) 149}) 150 151Method (_CRS, 0, Serialized) 152{ 153 154 /* Update LPEA resource area */ 155 CreateDWordField (MCRS, ^LMEM._MIN, LMIN) 156 CreateDWordField (MCRS, ^LMEM._MAX, LMAX) 157 CreateDWordField (MCRS, ^LMEM._LEN, LLEN) 158 If (LPFW != 0 && LPEN == 1) 159 { 160 LMIN = LPFW 161 LLEN = 0x00100000 162 LMAX = LMIN + LLEN - 1 163 } 164 Else 165 { 166 LMIN = 0 167 LMAX = 0 168 LLEN = 0 169 } 170 171 /* Update PCI resource area */ 172 CreateDWordField (MCRS, ^PMEM._MIN, PMIN) 173 CreateDWordField (MCRS, ^PMEM._MAX, PMAX) 174 CreateDWordField (MCRS, ^PMEM._LEN, PLEN) 175 176 /* TOLM is BMBOUND accessible from IOSF so is saved in NVS */ 177 PMIN = \TOLM 178 PMAX = CONFIG_ECAM_MMCONF_BASE_ADDRESS - 1 179 PLEN = PMAX - PMIN + 1 180 181 Return (MCRS) 182} 183 184/* Device Resource Consumption */ 185Device (PDRC) 186{ 187 Name (_HID, EISAID("PNP0C02")) 188 Name (_UID, 1) 189 190 Name (PDRS, ResourceTemplate() { 191 Memory32Fixed(ReadWrite, ABORT_BASE_ADDRESS, ABORT_BASE_SIZE) 192 Memory32Fixed(ReadWrite, PMC_BASE_ADDRESS, PMC_BASE_SIZE) 193 Memory32Fixed(ReadWrite, ILB_BASE_ADDRESS, ILB_BASE_SIZE) 194 Memory32Fixed(ReadWrite, SPI_BASE_ADDRESS, SPI_BASE_SIZE) 195 Memory32Fixed(ReadWrite, MPHY_BASE_ADDRESS, MPHY_BASE_SIZE) 196 Memory32Fixed(ReadWrite, PUNIT_BASE_ADDRESS, PUNIT_BASE_SIZE) 197 Memory32Fixed(ReadWrite, RCBA_BASE_ADDRESS, RCBA_BASE_SIZE) 198 }) 199 200 /* Current Resource Settings */ 201 Method (_CRS, 0, Serialized) 202 { 203 Return(PDRS) 204 } 205} 206 207Method (_OSC, 4) 208{ 209 /* Check for proper GUID */ 210 If (Arg0 == ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766")) 211 { 212 /* Let OS control everything */ 213 Return (Arg3) 214 } 215 Else 216 { 217 /* Unrecognized UUID */ 218 CreateDWordField (Arg3, 0, CDW1) 219 CDW1 |= 4 220 Return (Arg3) 221 } 222} 223 224/* IOSF MBI Interface for kernel access */ 225Device (IOSF) 226{ 227 Name (_HID, "INT33BD") 228 Name (_CID, "INT33BD") 229 Name (_UID, 1) 230 231 Name (RBUF, ResourceTemplate () 232 { 233 /* MCR / MDR / MCRX */ 234 Memory32Fixed (ReadWrite, 0, 12, RBAR) 235 }) 236 237 Method (_CRS) 238 { 239 CreateDwordField (^RBUF, ^RBAR._BAS, RBAS) 240 RBAS = CONFIG_ECAM_MMCONF_BASE_ADDRESS + 0xD0 241 Return (^RBUF) 242 } 243 244 Method (_STA) 245 { 246#if CONFIG(CHROMEOS) 247 Return (0xF) 248#else 249 Return (0x0) 250#endif 251 } 252} 253 254/* LPC Bridge 0:1f.0 */ 255#include "lpc.asl" 256 257/* USB XHCI 0:14.0 */ 258#include "xhci.asl" 259 260/* IRQ routing for each PCI device */ 261#include "irqroute.asl" 262 263/* PCI Express Ports 0:1c.x */ 264#include "pcie.asl" 265 266Scope (\_SB) 267{ 268 /* GPIO Devices */ 269 #include "gpio.asl" 270} 271 272Scope (\_SB.PCI0) 273{ 274 /* LPSS Devices */ 275 #include "lpss.asl" 276 277 /* SCC Devices */ 278 #include "scc.asl" 279 280 /* LPE Device */ 281 #include "lpe.asl" 282} 283 284/* Integrated graphics 0:2.0 */ 285#include <drivers/intel/gma/acpi/gfx.asl> 286