summaryrefslogtreecommitdiff
path: root/src/northbridge/intel/sandybridge/Kconfig
blob: 34a09394557decbdbe6a52f29a0529902d89429c (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
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
## SPDX-License-Identifier: GPL-2.0-only

config NORTHBRIDGE_INTEL_SANDYBRIDGE
	bool
	select CACHE_MRC_SETTINGS
	select CPU_INTEL_MODEL_206AX
	select HAVE_DEBUG_RAM_SETUP
	select INTEL_GMA_ACPI
	select USE_DDR3

if NORTHBRIDGE_INTEL_SANDYBRIDGE

config CHIPSET_DEVICETREE
	default "northbridge/intel/sandybridge/chipset.cb"

config SANDYBRIDGE_VBOOT_IN_ROMSTAGE
	bool
	default n
	help
	  Selected by boards to force VBOOT_STARTS_IN_ROMSTAGE.

config SANDYBRIDGE_VBOOT_IN_BOOTBLOCK
	depends on VBOOT
	depends on !SANDYBRIDGE_VBOOT_IN_ROMSTAGE
	bool "Start verstage in bootblock"
	default y
	select VBOOT_STARTS_IN_BOOTBLOCK
	help
	  Sandy Bridge can either start verstage in a separate stage
	  right after the bootblock has run or it can start it
	  after romstage for compatibility reasons.
	  Sandy Bridge 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 VBOOT
	select VBOOT_MUST_REQUEST_DISPLAY
	select VBOOT_STARTS_IN_ROMSTAGE if !SANDYBRIDGE_VBOOT_IN_BOOTBLOCK

config USE_NATIVE_RAMINIT
	bool "Use native raminit"
	default y
	help
	  Select if you want to use coreboot implementation of raminit rather than
	  System Agent/MRC.bin. You should answer Y.

config NATIVE_RAMINIT_IGNORE_MAX_MEM_FUSES
	bool "[OVERCLOCK] Ignore CAPID fuses that limit max DRAM frequency"
	default n
	depends on USE_NATIVE_RAMINIT
	help
	  Ignore the CAPID fuses that might limit the maximum DRAM frequency
	  on overclocking-capable parts. By selecting this option, the fuse
	  values will be ignored and the only limits on DRAM frequency are
	  determined by SPD values, per-board devicetree settings and hard
	  limits in the northbridge's MPLL. Disabled by default as it can
	  cause instability.
	  Consider this to be an overclocking option. Handle with care!

config NATIVE_RAMINIT_IGNORE_XMP_MAX_DIMMS
	bool "[OVERCLOCK] Ignore XMP max DIMMs per channel"
	default n
	depends on USE_NATIVE_RAMINIT
	help
	  The more DIMMs are in a channel, the more signal integrity worsens.
	  Because of this, some DIMMs only support running at XMP timings if
	  the number of DIMMs in the channel is below a limit. This limit is
	  usually 1, i.e. there must be no other DIMMs in the channel to use
	  XMP timings. Otherwise, non-XMP timings are used.
	  When this option is enabled, the max DIMMs per channel restriction
	  in XMP is ignored. Depending on available margins, this could work
	  but it can also result in system instability.
	  Consider this to be an overclocking option. Handle with care!

config NATIVE_RAMINIT_IGNORE_XMP_REQUESTED_VOLTAGE
	bool "Ignore XMP profile requested voltage"
	default n
	depends on USE_NATIVE_RAMINIT
	help
	  Native raminit only supports 1.5V operation, but there are DIMMs
	  which request 1.65V operation in XMP profiles. This option allows
	  raminit to use these XMP profiles anyway, instead of falling back
	  to non-XMP settings.
	  Disabled by default because it allows forcing memory to run out of
	  specification. Consider this to be an overclocking option.
	  Handle with care!

config CBFS_SIZE
	default 0x100000

config VGA_BIOS_ID
	string
	default "8086,0106"

config ECAM_MMCONF_BASE_ADDRESS
	default 0xf0000000
	help
	  The MRC blob requires it to be at 0xf0000000.

config ECAM_MMCONF_BUS_NUMBER
	int
	default 64

config DCACHE_RAM_BASE
	hex
	default 0xfefe0000

config DCACHE_BSP_STACK_SIZE
	hex
	default 0x10000
	help
	  The amount of BSP stack anticipated in bootblock and
	  other stages.

if USE_NATIVE_RAMINIT

config DCACHE_RAM_SIZE
	hex
	default 0x20000

config DCACHE_RAM_MRC_VAR_SIZE
	hex
	default 0x0

config RAMINIT_ALWAYS_ALLOW_DLL_OFF
	bool "Also enable memory DLL-off mode on desktops and servers"
	default n
	help
	  If enabled, allow enabling DLL-off mode for platforms other than
	  mobile. Saves power at the expense of higher exit latencies. Has
	  no effect on mobile platforms, where DLL-off is always allowed.
	  Power down is disabled for stability when running at high clocks.

config RAMINIT_ENABLE_ECC
	bool "Enable ECC if supported"
	default y
	help
	  Enable ECC if supported by both, host and RAM.

endif # USE_NATIVE_RAMINIT

if !USE_NATIVE_RAMINIT

config DCACHE_RAM_SIZE
	hex
	default 0x17000

config DCACHE_RAM_MRC_VAR_SIZE
	hex
	default 0x9000

config MRC_FILE
	string "Intel System Agent path and filename"
	default "3rdparty/blobs/northbridge/intel/sandybridge/systemagent-r6.bin"
	help
	  The path and filename of the file to use as System Agent
	  binary.

endif # !USE_NATIVE_RAMINIT

config INTEL_GMA_BCLV_OFFSET
	default 0x48254

config FIXED_MCHBAR_MMIO_BASE
	default 0xfed10000

config FIXED_DMIBAR_MMIO_BASE
	default 0xfed18000

config FIXED_EPBAR_MMIO_BASE
	default 0xfed19000

config PRERAM_CBFS_CACHE_SIZE
	default 0x0

endif