blob: 5da8a3354cc13c86e4c46da22e34c4b511b6ad1f [file] [log] [blame]
Duncan Lauriec88c54c2014-04-30 16:36:13 -07001config SOC_INTEL_BROADWELL
2 bool
3 help
4 Intel Broadwell and Haswell ULT support.
5
6if SOC_INTEL_BROADWELL
7
8config CPU_SPECIFIC_OPTIONS
9 def_bool y
10 select ARCH_BOOTBLOCK_X86_32
Stefan Reinauer77b16552015-01-14 19:51:47 +010011 select ARCH_VERSTAGE_X86_32
Duncan Lauriec88c54c2014-04-30 16:36:13 -070012 select ARCH_ROMSTAGE_X86_32
13 select ARCH_RAMSTAGE_X86_32
Duncan Laurie61680272014-05-05 12:42:35 -050014 select ALWAYS_LOAD_OPROM
Duncan Lauriec88c54c2014-04-30 16:36:13 -070015 select BACKUP_DEFAULT_SMM_REGION
16 select CACHE_MRC_BIN
17 select CACHE_MRC_SETTINGS
Duncan Laurief059b242015-01-15 15:42:43 -080018 select MRC_SETTINGS_PROTECT
Duncan Lauriec88c54c2014-04-30 16:36:13 -070019 select CACHE_RELOCATED_RAMSTAGE_OUTSIDE_CBMEM
Duncan Lauriec88c54c2014-04-30 16:36:13 -070020 select CPU_INTEL_FIRMWARE_INTERFACE_TABLE
Kyösti Mälkki4851bf22014-12-27 12:57:06 +020021 select SUPPORT_CPU_UCODE_IN_CBFS
Duncan Lauriec88c54c2014-04-30 16:36:13 -070022 select HAVE_MONOTONIC_TIMER
23 select HAVE_SMI_HANDLER
24 select HAVE_HARD_RESET
25 select HAVE_USBDEBUG
26 select IOAPIC
27 select MMCONF_SUPPORT
28 select MMCONF_SUPPORT_DEFAULT
29 select RELOCATABLE_MODULES
Marc Jonesa6354a12014-12-26 22:11:14 -070030 select RELOCATABLE_RAMSTAGE
Duncan Lauriec88c54c2014-04-30 16:36:13 -070031 select REG_SCRIPT
32 select PARALLEL_MP
33 select PCIEXP_ASPM
34 select PCIEXP_COMMON_CLOCK
Kane Chen96044742014-10-01 13:22:52 +080035 select PCIEXP_CLK_PM
Kenji Chenb71d9b82014-10-10 03:08:15 +080036 select PCIEXP_L1_SUB_STATE
Duncan Lauriec88c54c2014-04-30 16:36:13 -070037 select SMM_TSEG
38 select SMP
39 select SPI_FLASH
40 select SSE2
Marc Jonesa6354a12014-12-26 22:11:14 -070041 select SUPPORT_CPU_UCODE_IN_CBFS
Duncan Lauriec88c54c2014-04-30 16:36:13 -070042 select TSC_CONSTANT_RATE
43 select TSC_SYNC_MFENCE
44 select UDELAY_TSC
Stefan Reinauer9616f3c2015-04-29 10:45:22 -070045 select SOC_INTEL_COMMON
Duncan Lauriec88c54c2014-04-30 16:36:13 -070046
47config BOOTBLOCK_CPU_INIT
48 string
49 default "soc/intel/broadwell/bootblock/cpu.c"
50
51config BOOTBLOCK_NORTHBRIDGE_INIT
52 string
53 default "soc/intel/broadwell/bootblock/systemagent.c"
54
55config BOOTBLOCK_SOUTHBRIDGE_INIT
56 string
57 default "soc/intel/broadwell/bootblock/pch.c"
58
Duncan Lauriec88c54c2014-04-30 16:36:13 -070059
60config MMCONF_BASE_ADDRESS
61 hex
62 default 0xf0000000
63
64config SERIAL_CPU_INIT
65 bool
66 default n
67
68config SMM_TSEG_SIZE
69 hex
70 default 0x800000
71
72config IED_REGION_SIZE
73 hex
74 default 0x400000
75
76config SMM_RESERVED_SIZE
77 hex
78 default 0x100000
79
80config VGA_BIOS_ID
81 string
82 default "8086,0406"
83
84config CACHE_MRC_SIZE_KB
85 int
86 default 512
87
88config DCACHE_RAM_BASE
89 hex
90 default 0xff7c0000
91
92config DCACHE_RAM_SIZE
93 hex
94 default 0x10000
95 help
96 The size of the cache-as-ram region required during bootblock
97 and/or romstage. Note DCACHE_RAM_SIZE and DCACHE_RAM_MRC_VAR_SIZE
98 must add up to a power of 2.
99
100config DCACHE_RAM_MRC_VAR_SIZE
101 hex
102 default 0x30000
103 help
104 The amount of cache-as-ram region required by the reference code.
105
106config DCACHE_RAM_ROMSTAGE_STACK_SIZE
107 hex
108 default 0x2000
109 help
110 The amount of anticipated stack usage from the data cache
111 during pre-ram rom stage execution.
112
113config HAVE_MRC
114 bool "Add a Memory Reference Code binary"
115 help
116 Select this option to add a Memory Reference Code binary to
117 the resulting coreboot image.
118
119 Note: Without this binary coreboot will not work
120
121if HAVE_MRC
122
123config MRC_FILE
124 string "Intel Memory Reference Code path and filename"
125 depends on HAVE_MRC
126 default "mrc.bin"
127 help
128 The filename of the file to use as Memory Reference Code binary.
129
130config MRC_BIN_ADDRESS
131 hex
132 default 0xfffa0000
133
134config CACHE_MRC_SETTINGS
135 bool "Save cached MRC settings"
136 default y
137
138endif # HAVE_MRC
139
Duncan Lauriec88c54c2014-04-30 16:36:13 -0700140config PRE_GRAPHICS_DELAY
141 int "Graphics initialization delay in ms"
142 default 0
143 help
144 On some systems, coreboot boots so fast that connected monitors
145 (mostly TVs) won't be able to wake up fast enough to talk to the
146 VBIOS. On those systems we need to wait for a bit before executing
147 the VBIOS.
148
149config RESET_ON_INVALID_RAMSTAGE_CACHE
150 bool "Reset the system on S3 wake when ramstage cache invalid."
151 default n
152 depends on RELOCATABLE_RAMSTAGE
153 help
154 The romstage code caches the loaded ramstage program in SMM space.
155 On S3 wake the romstage will copy over a fresh ramstage that was
156 cached in the SMM space. This option determines the action to take
157 when the ramstage cache is invalid. If selected the system will
158 reset otherwise the ramstage will be reloaded from cbfs.
159
Duncan Laurie61680272014-05-05 12:42:35 -0500160config INTEL_PCH_UART_CONSOLE
161 bool "Use Serial IO UART for console"
162 default n
Martin Rothdf02c332015-07-01 23:09:42 -0600163 select DRIVERS_UART_8250MEM
Duncan Laurie61680272014-05-05 12:42:35 -0500164
165config INTEL_PCH_UART_CONSOLE_NUMBER
166 hex "Serial IO UART number to use for console"
167 default "0x0"
168 depends on INTEL_PCH_UART_CONSOLE
169
170config TTYS0_BASE
171 hex
172 default 0xd6000000
173 depends on INTEL_PCH_UART_CONSOLE
174
Duncan Lauriec88c54c2014-04-30 16:36:13 -0700175config EHCI_BAR
176 hex
177 default 0xd8000000
178
179config EHCI_DEBUG_OFFSET
180 hex
181 default 0xa0
182
183config SERIRQ_CONTINUOUS_MODE
184 bool
185 default y
186 help
187 If you set this option to y, the serial IRQ machine will be
188 operated in continuous mode.
Patrick Georgie6e94932015-06-22 22:26:45 +0200189
190config HAVE_REFCODE_BLOB
191 depends on ARCH_X86
192 bool "An external reference code blob should be put into cbfs."
193 default n
194 help
195 The reference code blob will be placed into cbfs.
196
197if HAVE_REFCODE_BLOB
198
199config REFCODE_BLOB_FILE
200 string "Path and filename to reference code blob."
201 default "refcode.elf"
202 help
203 The path and filename to the file to be added to cbfs.
204
205endif # HAVE_REFCODE_BLOB
206
Marc Jonesa6354a12014-12-26 22:11:14 -0700207config HAVE_ME_BIN
208 bool "Add Intel Management Engine firmware"
209 default y
210 help
211 The Intel processor in the selected system requires a special firmware
212 for an integrated controller called Management Engine (ME). The ME
Patrick Georgi26e24cc2015-05-05 22:27:25 +0200213 firmware might be provided in coreboot's 3rdparty/blobs repository. If
Marc Jonesa6354a12014-12-26 22:11:14 -0700214 not and if you don't have the firmware elsewhere, you can still
215 build coreboot without it. In this case however, you'll have to make
216 sure that you don't overwrite your ME firmware on your flash ROM.
217
218config ME_BIN_PATH
219 string "Path to management engine firmware"
220 depends on HAVE_ME_BIN
Patrick Georgi26e24cc2015-05-05 22:27:25 +0200221 default "3rdparty/blobs/mainboard/$(MAINBOARDDIR)/me.bin"
Marc Jonesa6354a12014-12-26 22:11:14 -0700222
223config HAVE_IFD_BIN
Patrick Georgi405bd692015-04-30 21:31:17 +0200224 bool "Use Intel Firmware Descriptor from existing binary"
Marc Jonesa6354a12014-12-26 22:11:14 -0700225 default n
226
227config BUILD_WITH_FAKE_IFD
228 bool "Build with a fake IFD"
229 default y if !HAVE_IFD_BIN
230 help
231 If you don't have an Intel Firmware Descriptor (ifd.bin) for your
232 board, you can select this option and coreboot will build without it.
233 Though, the resulting coreboot.rom will not contain all parts required
234 to get coreboot running on your board. You can however write only the
235 BIOS section to your board's flash ROM and keep the other sections
236 untouched. Unfortunately the current version of flashrom doesn't
237 support this yet. But there is a patch pending [1].
238
239 WARNING: Never write a complete coreboot.rom to your flash ROM if it
240 was built with a fake IFD. It just won't work.
241
242 [1] http://www.flashrom.org/pipermail/flashrom/2013-June/011083.html
243
244config IFD_BIOS_SECTION
245 depends on BUILD_WITH_FAKE_IFD
246 string
247 default ""
248
249config IFD_ME_SECTION
250 depends on BUILD_WITH_FAKE_IFD
251 string
252 default ""
253
254config IFD_PLATFORM_SECTION
255 depends on BUILD_WITH_FAKE_IFD
256 string
257 default ""
258
259config IFD_BIN_PATH
260 string "Path to intel firmware descriptor"
261 depends on !BUILD_WITH_FAKE_IFD
Patrick Georgi26e24cc2015-05-05 22:27:25 +0200262 default "3rdparty/blobs/mainboard/$(MAINBOARDDIR)/descriptor.bin"
Duncan Lauriec88c54c2014-04-30 16:36:13 -0700263
Duncan Lauriec88c54c2014-04-30 16:36:13 -0700264config LOCK_MANAGEMENT_ENGINE
265 bool "Lock Management Engine section"
266 default n
267 help
268 The Intel Management Engine supports preventing write accesses
269 from the host to the Management Engine section in the firmware
270 descriptor. If the ME section is locked, it can only be overwritten
271 with an external SPI flash programmer. You will want this if you
272 want to increase security of your ROM image once you are sure
273 that the ME firmware is no longer going to change.
274
275 If unsure, say N.
276
277endif