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