blob: a41971897fbbfd7b8dff79cf16e0e4c624ab57d7 [file] [log] [blame]
Maxim Polyakov1217af52019-02-25 11:06:19 +03001##
2## This file is part of the coreboot project.
3##
Maxim Polyakov1217af52019-02-25 11:06:19 +03004##
Patrick Georgic49d7a32020-05-08 22:50:46 +02005## SPDX-License-Identifier: GPL-2.0-only
Maxim Polyakov1217af52019-02-25 11:06:19 +03006
7chip soc/intel/skylake
8
Maxim Polyakov1217af52019-02-25 11:06:19 +03009 register "deep_s3_enable_ac" = "0"
10 register "deep_s3_enable_dc" = "0"
11 register "deep_s5_enable_ac" = "0"
12 register "deep_s5_enable_dc" = "0"
13 register "deep_sx_config" = "DSX_EN_WAKE_PIN"
14
15 register "eist_enable" = "1"
16
17 # GPE configuration
18 # Note that GPE events called out in ASL code rely on this
19 # route. i.e. If this route changes then the affected GPE
20 # offset bits also need to be changed.
21 register "gpe0_dw0" = "GPP_B"
22 register "gpe0_dw1" = "GPP_D"
23 register "gpe0_dw2" = "GPP_E"
24
Maxim Polyakov7d549f82019-09-11 18:56:24 +030025 # Set @0x280-0x2ff I/O Range for SuperIO HWM
26 register "gen1_dec" = "0x007c0281"
27
Maxim Polyakov1217af52019-02-25 11:06:19 +030028 # Enable "Intel Speed Shift Technology"
29 register "speed_shift_enable" = "1"
30
31 # Enable DPTF
32 register "dptf_enable" = "1"
33
34 # FSP Configuration
35 register "SmbusEnable" = "1"
36 register "ScsEmmcEnabled" = "0"
37 register "ScsEmmcHs400Enabled" = "0"
38 register "ScsSdCardEnabled" = "0"
39 register "HeciEnabled" = "0"
Maxim Polyakov1217af52019-02-25 11:06:19 +030040 register "SkipExtGfxScan" = "0"
Maxim Polyakov0de6c502019-04-03 00:44:28 +030041 register "PrimaryDisplay" = "Display_PEG"
Maxim Polyakov1217af52019-02-25 11:06:19 +030042 register "Device4Enable" = "1"
43 register "SaGv" = "SaGv_Enabled"
44 register "PmTimerDisabled" = "0"
45 register "EnableAzalia" = "1"
46 register "DspEnable" = "0"
Michael Niewöhner62385632019-09-23 14:38:41 +020047 register "PchHdaVcType" = "Vc1"
Maxim Polyakov1217af52019-02-25 11:06:19 +030048
49 register "pirqa_routing" = "PCH_IRQ11"
50 register "pirqb_routing" = "PCH_IRQ10"
51 register "pirqc_routing" = "PCH_IRQ11"
52 register "pirqd_routing" = "PCH_IRQ11"
53 register "pirqe_routing" = "PCH_IRQ11"
54 register "pirqf_routing" = "PCH_IRQ11"
55 register "pirqg_routing" = "PCH_IRQ11"
56 register "pirqh_routing" = "PCH_IRQ11"
57
Maxim Polyakove6a491e2019-06-26 11:17:37 +030058 # Set LPC Serial IRQ mode
59 register "serirq_mode" = "SERIRQ_CONTINUOUS"
60
Maxim Polyakov1217af52019-02-25 11:06:19 +030061 # Enabling SLP_S3#, SLP_S4#, SLP_SUS and SLP_A Stretch
62 # SLP_S3 Minimum Assertion Width. Values 0: 60us, 1: 1ms, 2: 50ms, 3: 2s
63 register "PmConfigSlpS3MinAssert" = "0x02"
64
65 # SLP_S4 Minimum Assertion Width. Values 0: default, 1: 1s, 2: 2s, 3: 3s, 4: 4s
66 register "PmConfigSlpS4MinAssert" = "0x04"
67
68 # SLP_SUS Minimum Assertion Width. Values 0: 0ms, 1: 500ms, 2: 1s, 3: 4s
69 register "PmConfigSlpSusMinAssert" = "0x03"
70
71 # SLP_A Minimum Assertion Width. Values 0: 0ms, 1: 4s, 2: 98ms, 3: 2s
72 register "PmConfigSlpAMinAssert" = "0x03"
73
Maxim Polyakov3a286732019-10-27 15:07:00 +030074 # VR Settings Configuration
75 #+----------------+-------+-------+-------------+-------+
76 #| Domain/Setting | SA | IA | GT Unsliced | GT |
77 #+----------------+-------+-------+-------------+-------+
78 #| Psi1Threshold | 20A | 20A | 20A | 20A |
79 #| Psi2Threshold | 4A | 5A | 5A | 5A |
80 #| Psi3Threshold | 1A | 1A | 1A | 1A |
81 #| Psi3Enable | 1 | 1 | 1 | 1 |
82 #| Psi4Enable | 1 | 1 | 1 | 1 |
83 #| ImonSlope | 0 | 0 | 0 | 0 |
84 #| ImonOffset | 0 | 0 | 0 | 0 |
85 #| IccMax* | 0 | 0 | 0 | 0 |
86 #| VrVoltageLimit | 1.52V | 1.52V | 1.52V | 1.52V |
87 #+----------------+-------+-------+-------------+-------+
88 # * - is set automatically in the vr_config.c
Maxim Polyakov1217af52019-02-25 11:06:19 +030089 register "domain_vr_config[VR_SYSTEM_AGENT]" = "{
90 .vr_config_enable = 1, \
Maxim Polyakov6342c932019-08-21 14:47:59 +030091 .psi1threshold = VR_CFG_AMP(20), \
92 .psi2threshold = VR_CFG_AMP(4), \
93 .psi3threshold = VR_CFG_AMP(1), \
Maxim Polyakov1217af52019-02-25 11:06:19 +030094 .psi3enable = 1, \
95 .psi4enable = 1, \
96 .imon_slope = 0x0, \
97 .imon_offset = 0x0, \
98 .icc_max = 0x0, \
Maxim Polyakova546f112019-08-21 14:21:03 +030099 .voltage_limit = 1520 \
Maxim Polyakov1217af52019-02-25 11:06:19 +0300100 }"
101
102 register "domain_vr_config[VR_IA_CORE]" = "{
103 .vr_config_enable = 1, \
Maxim Polyakov6342c932019-08-21 14:47:59 +0300104 .psi1threshold = VR_CFG_AMP(20), \
105 .psi2threshold = VR_CFG_AMP(5), \
106 .psi3threshold = VR_CFG_AMP(1), \
Maxim Polyakov1217af52019-02-25 11:06:19 +0300107 .psi3enable = 1, \
108 .psi4enable = 1, \
109 .imon_slope = 0x0, \
110 .imon_offset = 0x0, \
111 .icc_max = 0x0, \
Maxim Polyakova546f112019-08-21 14:21:03 +0300112 .voltage_limit = 1520 \
Maxim Polyakov1217af52019-02-25 11:06:19 +0300113 }"
114
115 register "domain_vr_config[VR_GT_UNSLICED]" = "{
116 .vr_config_enable = 1, \
Maxim Polyakov6342c932019-08-21 14:47:59 +0300117 .psi1threshold = VR_CFG_AMP(20), \
118 .psi2threshold = VR_CFG_AMP(5), \
119 .psi3threshold = VR_CFG_AMP(1), \
Maxim Polyakov1217af52019-02-25 11:06:19 +0300120 .psi3enable = 1, \
121 .psi4enable = 1, \
122 .imon_slope = 0x0, \
123 .imon_offset = 0x0, \
124 .icc_max = 0x0 ,\
Maxim Polyakova546f112019-08-21 14:21:03 +0300125 .voltage_limit = 1520 \
Maxim Polyakov1217af52019-02-25 11:06:19 +0300126 }"
127
128 register "domain_vr_config[VR_GT_SLICED]" = "{
129 .vr_config_enable = 1, \
Maxim Polyakov6342c932019-08-21 14:47:59 +0300130 .psi1threshold = VR_CFG_AMP(20), \
131 .psi2threshold = VR_CFG_AMP(5), \
132 .psi3threshold = VR_CFG_AMP(1), \
Maxim Polyakov1217af52019-02-25 11:06:19 +0300133 .psi3enable = 1, \
134 .psi4enable = 1, \
135 .imon_slope = 0x0, \
136 .imon_offset = 0x0, \
137 .icc_max = 0x0, \
Maxim Polyakova546f112019-08-21 14:21:03 +0300138 .voltage_limit = 1520 \
Maxim Polyakov1217af52019-02-25 11:06:19 +0300139 }"
140
141 register "EnableLan" = "0"
Maxim Polyakov1217af52019-02-25 11:06:19 +0300142 register "PmTimerDisabled" = "0"
143
144 # USB
145 register "usb2_ports[0]" = "USB2_PORT_MID(OC0)"
146 register "usb2_ports[1]" = "USB2_PORT_MID(OC0)"
147 register "usb2_ports[2]" = "USB2_PORT_MID(OC4)"
148 register "usb2_ports[3]" = "USB2_PORT_MID(OC4)"
149 register "usb2_ports[4]" = "USB2_PORT_MID(OC2)"
150 register "usb2_ports[5]" = "USB2_PORT_MID(OC2)"
151 register "usb2_ports[6]" = "USB2_PORT_MID(OC0)"
152 register "usb2_ports[7]" = "USB2_PORT_MID(OC0)"
153 register "usb2_ports[8]" = "USB2_PORT_MID(OC0)"
154 register "usb2_ports[9]" = "USB2_PORT_MID(OC0)"
155 register "usb2_ports[10]" = "USB2_PORT_MID(OC1)"
156 register "usb2_ports[11]" = "USB2_PORT_MID(OC1)"
157 register "usb2_ports[12]" = "USB2_PORT_MID(OC_SKIP)"
158 register "usb2_ports[13]" = "USB2_PORT_MID(OC_SKIP)"
159 register "usb3_ports[0]" = "USB3_PORT_DEFAULT(OC0)"
160 register "usb3_ports[1]" = "USB3_PORT_DEFAULT(OC0)"
161 register "usb3_ports[2]" = "USB3_PORT_DEFAULT(OC3)"
162 register "usb3_ports[3]" = "USB3_PORT_DEFAULT(OC3)"
163 register "usb3_ports[4]" = "USB3_PORT_DEFAULT(OC1)"
164 register "usb3_ports[5]" = "USB3_PORT_DEFAULT(OC1)"
165 register "usb3_ports[6]" = "USB3_PORT_DEFAULT(OC_SKIP)"
166 register "usb3_ports[7]" = "USB3_PORT_DEFAULT(OC_SKIP)"
167 register "usb3_ports[8]" = "USB3_PORT_DEFAULT(OC_SKIP)"
168 register "usb3_ports[9]" = "USB3_PORT_DEFAULT(OC_SKIP)"
169
170 # SATA
171 register "EnableSata" = "1"
172 register "SataSalpSupport" = "1"
Maxim Polyakovf0303db2020-02-23 10:51:00 +0300173 # SATA4 and SATA5 are located in the lower right corner of the board,
174 # but they are not populated. This is because the same PCB is used to
175 # make boards with better PCHs, which can have up to six SATA ports.
176 # However, the H110 PCH only has four SATA ports, which explains why
177 # two connectors are missing.
Maxim Polyakov1217af52019-02-25 11:06:19 +0300178 register "SataPortsEnable" = "{ \
179 [0] = 1, \
180 [1] = 1, \
181 [2] = 1, \
182 [3] = 1, \
Maxim Polyakov50f4c5a2019-08-21 19:05:13 +0300183 [4] = 0, \
184 [5] = 0, \
185 [6] = 0, \
186 [7] = 0, \
Maxim Polyakov1217af52019-02-25 11:06:19 +0300187 }"
188
189 # PCH UART, SPI, I2C
190 register "SerialIoDevMode" = "{ \
Maxim Polyakova433da72019-08-21 16:29:07 +0300191 [PchSerialIoIndexI2C0] = PchSerialIoDisabled, \
192 [PchSerialIoIndexI2C1] = PchSerialIoDisabled, \
Maxim Polyakov1217af52019-02-25 11:06:19 +0300193 [PchSerialIoIndexI2C2] = PchSerialIoDisabled, \
194 [PchSerialIoIndexI2C3] = PchSerialIoDisabled, \
195 [PchSerialIoIndexI2C4] = PchSerialIoDisabled, \
196 [PchSerialIoIndexI2C5] = PchSerialIoDisabled, \
Maxim Polyakova433da72019-08-21 16:29:07 +0300197 [PchSerialIoIndexSpi0] = PchSerialIoDisabled, \
Maxim Polyakov1217af52019-02-25 11:06:19 +0300198 [PchSerialIoIndexSpi1] = PchSerialIoDisabled, \
199 [PchSerialIoIndexUart0] = PchSerialIoDisabled, \
200 [PchSerialIoIndexUart1] = PchSerialIoDisabled, \
201 [PchSerialIoIndexUart2] = PchSerialIoDisabled, \
202 }"
203
Maxim Polyakov16a11812019-03-18 10:50:01 +0300204 # Set params for PEG 0:1:0
205 register "Peg0MaxLinkWidth" = "Peg0_x16"
206 # Configure PCIe clockgen in PCH
207 # PEG0 uses SRCCLKREQ0 and CLKSRC0
208 register "PcieRpClkReqSupport[0]" = "1"
209 register "PcieRpClkReqNumber[0]" = "0"
210 register "PcieRpClkSrcNumber[0]" = "0"
211
Maxim Polyakov1217af52019-02-25 11:06:19 +0300212 # Enable Root port 6(x1) for LAN.
213 register "PcieRpEnable[5]" = "1"
Maxim Polyakov2f50d7c2019-12-04 19:38:12 +0300214 # Disable CLKREQ#, since onboard LAN is always present
215 register "PcieRpClkReqSupport[5]" = "0"
Maxim Polyakov1217af52019-02-25 11:06:19 +0300216 # Enable Advanced Error Reporting
217 register "PcieRpAdvancedErrorReporting[5]" = "1"
218 # Enable Latency Tolerance Reporting Mechanism
219 register "PcieRpLtrEnable[5]" = "1"
220 # Use CLK SRC 1
221 register "PcieRpClkSrcNumber[5]" = "1"
222
223 # Enable Root port 5 (x1) for PCIE slot.
224 register "PcieRpEnable[4]" = "1"
225 # Enable CLKREQ#
226 register "PcieRpClkReqSupport[4]" = "1"
227 # Use SRCCLKREQ2#
228 register "PcieRpClkReqNumber[4]" = "2"
229 # Enable Advanced Error Reporting
230 register "PcieRpAdvancedErrorReporting[4]" = "1"
231 # Enable Latency Tolerance Reporting Mechanism
232 register "PcieRpLtrEnable[4]" = "1"
233 # Use CLK SRC 2
234 register "PcieRpClkSrcNumber[4]" = "2"
235 # Use Hot Plug subsystem
236 register "PcieRpHotPlug[4]" = "1"
237
238 # Enable Root port 7(x1) for PCIE slot.
239 register "PcieRpEnable[6]" = "1"
240 # Enable CLKREQ#
241 register "PcieRpClkReqSupport[6]" = "1"
242 # Use SRCCLKREQ3#
243 register "PcieRpClkReqNumber[6]" = "3"
244 # Enable Advanced Error Reporting
245 register "PcieRpAdvancedErrorReporting[6]" = "1"
246 # Enable Latency Tolerance Reporting Mechanism
247 register "PcieRpLtrEnable[6]" = "1"
248 # Use CLK SRC 3
249 register "PcieRpClkSrcNumber[6]" = "3"
250 # Use Hot Plug subsystem
251 register "PcieRpHotPlug[6]" = "1"
252
253 # PL2 override 91W
254 register "tdp_pl2_override" = "91"
255
256 # Send an extra VR mailbox command for the PS4 exit issue
257 register "SendVrMbxCmd" = "2"
258
259 device cpu_cluster 0 on
260 device lapic 0 on end
261 end
262 device domain 0 on
263 device pci 00.0 on # Host Bridge
264 subsystemid 0x1849 0x191f
265 end
266 device pci 01.0 on # PEG
267 subsystemid 0x1849 0x1901
268 end
269 device pci 02.0 on # Integrated Graphics Device
270 subsystemid 0x1849 0x1912
271 end
Maxim Polyakov59613ee2019-08-23 15:16:12 +0300272 device pci 04.0 on end # Thermal Subsystem
273 device pci 08.0 off end # Gaussian Mixture Model
Maxim Polyakov1217af52019-02-25 11:06:19 +0300274 device pci 14.0 on # USB xHCI
275 subsystemid 0x1849 0xa131
276 end
277 device pci 14.1 off end # USB xDCI (OTG)
278 device pci 14.2 on # Thermal Subsystem
279 subsystemid 0x1849 0xa131
280 end
281 device pci 15.0 off end # I2C #0
282 device pci 15.1 off end # I2C #1
283 device pci 15.2 off end # I2C #2
284 device pci 15.3 off end # I2C #3
285 device pci 16.0 on # Management Engine Interface 1
286 subsystemid 0x1849 0xa131
287 end
288 device pci 16.1 off end # Management Engine Interface 2
289 device pci 16.2 off end # Management Engine IDE-R
290 device pci 16.3 off end # Management Engine KT Redirection
291 device pci 16.4 off end # Management Engine Interface 3
292 device pci 17.0 on # SATA
293 subsystemid 0x1849 0xa102
294 end
295 device pci 19.0 off end # UART #2
296 device pci 19.1 off end # I2C #5
297 device pci 19.2 off end # I2C #4
298 device pci 1c.0 on end # PCI Express Port 1
299 device pci 1c.1 off end # PCI Express Port 2
300 device pci 1c.2 off end # PCI Express Port 3
301 device pci 1c.3 off end # PCI Express Port 4
302 device pci 1c.4 on end # PCI Express Port 5
303 device pci 1c.5 on end # PCI Express Port 6
304 device pci 1c.6 on end # PCI Express Port 7
305 device pci 1c.7 off end # PCI Express Port 8
306 device pci 1d.0 off end # PCI Express Port 9
307 device pci 1d.1 off end # PCI Express Port 10
308 device pci 1d.2 off end # PCI Express Port 11
309 device pci 1d.3 off end # PCI Express Port 12
310 device pci 1e.0 off end # UART #0
311 device pci 1e.1 off end # UART #1
312 device pci 1e.2 off end # GSPI #0
313 device pci 1e.3 off end # GSPI #1
314 device pci 1e.4 off end # eMMC
315 device pci 1e.5 off end # SDIO
316 device pci 1e.6 off end # SDCard
317 device pci 1f.0 on # LPC bridge
318 subsystemid 0x1849 0x1a43
Maxim Polyakov66d875a2019-09-12 17:27:10 +0300319
Maxim Polyakovc4f77d92019-10-27 15:07:00 +0300320 chip superio/common
321 device pnp 2e.0 on # passes SIO base addr to SSDT gen
322
323 chip superio/nuvoton/nct6791d
324 device pnp 2e.1 on
325 # Global Control Registers
326 # Device IRQ Polarity
327 irq 0x13 = 0x00
328 irq 0x14 = 0x00
329 # Global Option
330 irq 0x24 = 0xfb
331 irq 0x27 = 0x10
332 # Multi Function
333 irq 0x1a = 0xb0
334 irq 0x1b = 0xe6
335 irq 0x2a = 0x04
336 irq 0x2c = 0x40
337 irq 0x2d = 0x03
338
339 # Parallel Port
340 io 0x60 = 0x0378
341 irq 0x70 = 7
342 drq 0x74 = 4 # No DMA
343 irq 0xf0 = 0x3c # Printer mode
344 end
345 device pnp 2e.2 on # UART A
346 io 0x60 = 0x03f8
347 irq 0x70 = 4
348 end
349 device pnp 2e.3 on # IR
350 io 0x60 = 0x02f8
351 irq 0x70 = 3
352 end
353 device pnp 2e.5 on # PS/2 KBC
354 io 0x60 = 0x0060
355 io 0x62 = 0x0064
356 irq 0x70 = 1 # Keyboard
357 irq 0x72 = 12 # Mouse
358 end
359 device pnp 2e.6 off end # CIR
360 device pnp 2e.7 on # GPIO6
361 irq 0xf6 = 0xff
362 irq 0xf7 = 0xff
363 irq 0xf8 = 0xff
364 end
365 device pnp 2e.107 on # GPIO7
366 irq 0xe0 = 0x7f
367 irq 0xe1 = 0x0d
368 end
369 device pnp 2e.207 on # GPIO8
370 irq 0xe6 = 0xff
371 irq 0xe7 = 0xff
372 irq 0xed = 0xff
373 end
374 device pnp 2e.8 off end # WDT
375 device pnp 2e.108 on end # GPIO0
376 device pnp 2e.308 off end # GPIO base
377 device pnp 2e.408 off end # WDTMEM
378 device pnp 2e.708 on end # GPIO1
379 device pnp 2e.9 on end # GPIO2
380 device pnp 2e.109 on # GPIO3
381 irq 0xe4 = 0x7b
382 irq 0xe5 = 0x02
383 irq 0xea = 0x04
384 end
385 device pnp 2e.209 on # GPIO4
386 irq 0xf0 = 0x7f
387 irq 0xf1 = 0x80
388 end
389 device pnp 2e.309 on # GPIO5
390 irq 0xf4 = 0xdf
391 irq 0xf5 = 0xd5
392 end
393 device pnp 2e.a on
394 # Power RAM in S3 and let the PCH
395 # handle power failure actions
396 irq 0xe4 = 0x70
397 # Set HWM reset source to LRESET#
398 irq 0xe7 = 0x01
399 end # ACPI
400 device pnp 2e.b on # HWM, LED
401 io 0x60 = 0x0290
402 io 0x62 = 0
403 irq 0x70 = 0
404 end
405 device pnp 2e.d off end # BCLK, WDT2, WDT_MEM
406 device pnp 2e.e off end # CIR wake-up
407 device pnp 2e.f off end # GPIO PP/OD
408 device pnp 2e.14 off end # SVID, Port 80 UART
409 device pnp 2e.16 off end # DS5
410 device pnp 2e.116 off end # DS3
411 device pnp 2e.316 on end # PCHDSW
412 device pnp 2e.416 off end # DSWWOPT
413 device pnp 2e.516 on end # DS3OPT
414 device pnp 2e.616 on end # DSDSS
415 device pnp 2e.716 off end # DSPU
416 end # chip superio/nuvoton/nct6791d
417
418 end # device pnp 2e.0
419 end # chip superio/common
420
Maxim Polyakov1217af52019-02-25 11:06:19 +0300421 chip drivers/pc80/tpm
422 device pnp 4e.0 on end # TPM module
423 end
424 end # LPC Interface
425 device pci 1f.1 on end # P2SB
426 device pci 1f.2 on end # Power Management Controller
427 device pci 1f.3 on end # Intel HDA
428 device pci 1f.4 on end # SMBus
429 device pci 1f.5 on end # PCH SPI
430 device pci 1f.6 off end # GbE
431 end
432end