summaryrefslogtreecommitdiff
path: root/src/northbridge/intel/haswell/Kconfig
blob: 4b83a25bc14326a061ad987982842e962c3235ef (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
# SPDX-License-Identifier: GPL-2.0-only

config NORTHBRIDGE_INTEL_HASWELL
	bool
	select CPU_INTEL_HASWELL
	select CACHE_MRC_SETTINGS
	select INTEL_DDI
	select INTEL_GMA_ACPI
	select USE_DDR3

if NORTHBRIDGE_INTEL_HASWELL

config USE_NATIVE_RAMINIT
	bool "[NOT WORKING] Use native raminit"
	default n
	select HAVE_DEBUG_RAM_SETUP
	help
	  Select if you want to use coreboot implementation of raminit rather than
	  MRC.bin. Currently incomplete and does not boot.

config HASWELL_VBOOT_IN_BOOTBLOCK
	depends on VBOOT
	bool "Start verstage in bootblock"
	default y
	select VBOOT_STARTS_IN_BOOTBLOCK
	help
	  Haswell can either start verstage in a separate stage
	  right after the bootblock has run or it can start it
	  after romstage for compatibility reasons.
	  Haswell however uses a mrc.bin to initialize memory which
	  needs to be located at a fixed offset. Therefore even with
	  a separate verstage starting after the bootblock that same
	  binary is used meaning a jump is made from RW to the RO region
	  and back to the RW region after the binary is done.

config USE_BROADWELL_MRC
	bool "Use Broadwell MRC.bin"
	depends on !USE_NATIVE_RAMINIT
	help
	  Haswell MRC.bin has several limitations: it does not support
	  Broadwell CPUs nor 9-series PCHs, it does not initialise PEG
	  ports properly and it can't use more than one SPD file entry
	  at the same time (which would be useful for memory overclock
	  when using different DIMMs, without patching SPD EEPROMs). A
	  workaround for some of these limitations is to use Broadwell
	  MRC.bin instead.

config VBOOT
	select VBOOT_MUST_REQUEST_DISPLAY
	select VBOOT_STARTS_IN_ROMSTAGE if !HASWELL_VBOOT_IN_BOOTBLOCK

config VGA_BIOS_ID
	string
	default "8086,0166"

config ECAM_MMCONF_BASE_ADDRESS
	default 0xf0000000

config ECAM_MMCONF_BUS_NUMBER
	int
	default 64

config DCACHE_RAM_BASE
	hex
	default 0xff7c0000

config DCACHE_RAM_SIZE
	hex
	default 0x40000 if USE_NATIVE_RAMINIT
	default 0x10000
	help
	  The size of the cache-as-ram region required during bootblock
	  and/or romstage. Note DCACHE_RAM_SIZE and DCACHE_RAM_MRC_VAR_SIZE
	  must add up to a power of 2.

config DCACHE_RAM_MRC_VAR_SIZE
	hex
	default 0x0 if USE_NATIVE_RAMINIT
	default 0x30000
	help
	  The amount of cache-as-ram region required by the reference code.

config DCACHE_BSP_STACK_SIZE
	hex
	default 0x20000 if USE_NATIVE_RAMINIT
	default 0x2000
	help
	  The amount of anticipated stack usage in CAR by bootblock and
	  other stages.

config HAVE_MRC
	bool "Add a System Agent binary"
	depends on !USE_NATIVE_RAMINIT
	help
	  Select this option to add a System Agent binary to
	  the resulting coreboot image.

	  Note: Without this binary coreboot will not work

config MRC_FILE
	string "Intel System Agent path and filename"
	depends on HAVE_MRC
	default "mrc.bin"
	help
	  The path and filename of the file to use as System Agent
	  binary.

config HASWELL_HIDE_PEG_FROM_MRC
	bool "Hide PEG devices from MRC to work around hardcoded MRC behavior"
	depends on !USE_NATIVE_RAMINIT
	default y
	help
	  If set, hides all PEG devices from MRC. This allows the iGPU
	  to be used even when a dedicated graphics card is present.
	  However, it prevents MRC from programming PEG AFE registers,
	  which can make PEG devices unstable. When unsure, choose N.

# The UEFI System Agent binary needs to be at a fixed offset in the flash
# and can therefore only reside in the COREBOOT fmap region
config RO_REGION_ONLY
	string
	depends on VBOOT
	default "mrc.bin"

config INTEL_GMA_BCLV_OFFSET
	default 0x48254

config ENABLE_DDR_2X_REFRESH
	bool "Enable DRAM Refresh 2x support"
	default n
	help
	  When enabled, the memory controller will refresh the DRAM twice as often.
	  This probably only happens when the DRAM gets hot, but what MRC exactly
	  does when this setting is enabled has not been investigated.

config FIXED_MCHBAR_MMIO_BASE
	default 0xfed10000

config FIXED_DMIBAR_MMIO_BASE
	default 0xfed18000

config FIXED_EPBAR_MMIO_BASE
	default 0xfed19000

endif