blob: c153a74388053ddf5259210d2662fe42805ea2cb [file] [log] [blame]
Stefan Reinauer425b61e2015-03-15 04:29:35 +01001##
2## This file is part of the coreboot project.
3##
4## Copyright (C) 2009-2010 coresystems GmbH
5##
6## This program is free software; you can redistribute it and/or modify
7## it under the terms of the GNU General Public License as published by
8## the Free Software Foundation; version 2 of the License.
9##
10## This program is distributed in the hope that it will be useful,
11## but WITHOUT ANY WARRANTY; without even the implied warranty of
12## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13## GNU General Public License for more details.
14##
15
Stefan Reinauera48ca842015-04-04 01:58:28 +020016config ARCH_X86
17 bool
18 default n
19 select PCI
20
Stefan Reinauer68671202015-03-15 04:34:03 +010021# stage selectors for x86
22
Furquan Shaikh99ac98f2014-04-23 10:18:48 -070023config ARCH_BOOTBLOCK_X86_32
Gabe Black5fbfc912013-07-07 13:52:37 -070024 bool
Furquan Shaikh99ac98f2014-04-23 10:18:48 -070025 default n
26 select ARCH_X86
Andrey Petrov3bc543a2016-02-08 17:46:31 -080027 select BOOTBLOCK_CUSTOM if !C_ENVIRONMENT_BOOTBLOCK
Furquan Shaikh99ac98f2014-04-23 10:18:48 -070028
Stefan Reinauer77b16552015-01-14 19:51:47 +010029config ARCH_VERSTAGE_X86_32
30 bool
31 default n
32
Furquan Shaikh99ac98f2014-04-23 10:18:48 -070033config ARCH_ROMSTAGE_X86_32
34 bool
35 default n
36
37config ARCH_RAMSTAGE_X86_32
38 bool
39 default n
Gabe Black5fbfc912013-07-07 13:52:37 -070040
Stefan Reinauer68671202015-03-15 04:34:03 +010041# stage selectors for x64
42
43config ARCH_BOOTBLOCK_X86_64
44 bool
45 default n
46 select ARCH_X86
Andrey Petrov3bc543a2016-02-08 17:46:31 -080047 select BOOTBLOCK_CUSTOM if !C_ENVIRONMENT_BOOTBLOCK
Stefan Reinauer68671202015-03-15 04:34:03 +010048
49config ARCH_VERSTAGE_X86_64
50 bool
51 default n
52
53config ARCH_ROMSTAGE_X86_64
54 bool
55 default n
56
57config ARCH_RAMSTAGE_X86_64
58 bool
59 default n
60
Martin Roth0cd9ff82016-02-01 17:33:37 -070061config USE_MARCH_586
62 def_bool n
63 help
64 Allow a platform or processor to select to be compiled using
65 the '-march=i586' option instead of the typical '-march=i686'
66
Uwe Hermann168b11b2009-10-07 16:15:40 +000067# This is an SMP option. It relates to starting up APs.
68# It is usually set in mainboard/*/Kconfig.
69# TODO: Improve description.
Sven Schnelle51676b12012-07-29 19:18:03 +020070config AP_IN_SIPI_WAIT
71 bool
72 default n
Stefan Reinauer2a6f3902012-10-15 13:38:09 -070073 depends on ARCH_X86 && SMP
Ronald G. Minnich6ed39d92009-08-29 02:59:35 +000074
Kyösti Mälkkif8c7c232012-04-06 04:03:50 +030075# Aligns 16bit entry code in bootblock so that hyper-threading CPUs
76# can boot AP CPUs to enable their shared caches.
77config SIPI_VECTOR_IN_ROM
78 bool
79 default n
80 depends on ARCH_X86
81
Patrick Georgi0588d192009-08-12 15:00:51 +000082config RAMBASE
83 hex
84 default 0x100000
85
Kyösti Mälkkibec853e2016-06-15 02:25:00 +030086config RAMTOP
87 hex
88 default 0x200000
89 depends on ARCH_X86
90
Alexandru Gagniuc6a622312015-10-27 10:27:30 -070091# Traditionally BIOS region on SPI flash boot media was memory mapped right below
92# 4G and it was the last region in the IFD. This way translation between CPU
93# address space to flash address was trivial. However some IFDs on newer SoCs
94# have BIOS region sandwiched between descriptor and other regions. Turning off
95# this option enables soc code to provide custom mmap_boot.c which can be used to
96# implement complex translation.
97config X86_TOP4G_BOOTMEDIA_MAP
98 bool
99 default y
100
Ronald G. Minnichb5e777c2013-07-22 20:17:18 +0200101# This is something you almost certainly don't want to mess with.
102# How many SIPIs do we send when starting up APs and cores?
103# The answer in 2000 or so was '2'. Nowadays, on many systems,
104# it is 1. Set a safe default here, and you can override it
105# on reasonable platforms.
106config NUM_IPI_STARTS
107 int
108 default 2
109
Patrick Georgi2063197a2010-02-09 12:21:10 +0000110config ROMCC
111 bool
112 default n
113
Kyösti Mälkki91fac612014-12-31 20:55:19 +0200114config LATE_CBMEM_INIT
115 def_bool n
Kyösti Mälkki91fac612014-12-31 20:55:19 +0200116 help
117 Enable this in chipset's Kconfig if northbridge does not implement
118 early get_top_of_ram() call for romstage. CBMEM tables will be
119 allocated late in ramstage, after PCI devices resources are known.
120
Naresh G Solanki04bb4802016-12-13 21:16:46 +0530121config PRERAM_CBMEM_CONSOLE_SIZE
122 hex
123 default 0xc00
124 help
125 Increase this value if preram cbmem console is getting truncated
126
Stefan Reinauer8aedcbc2010-12-16 23:37:17 +0000127config PC80_SYSTEM
128 bool
Furquan Shaikh99ac98f2014-04-23 10:18:48 -0700129 default y if ARCH_X86
Stefan Reinauer8aedcbc2010-12-16 23:37:17 +0000130
Lee Leahyfdc8c8b2016-06-07 08:45:17 -0700131config BOOTBLOCK_DEBUG_SPINLOOP
132 bool
133 default n
134 help
135 Add a spin (JMP .) in bootblock_crt0.S during early bootblock to wait
136 for a JTAG debugger to break into the execution sequence.
137
Kyösti Mälkki48e21ec2012-11-14 08:08:50 +0200138config BOOTBLOCK_MAINBOARD_INIT
139 string
140
Patrick Georgi1bb68282009-12-31 12:56:53 +0000141config BOOTBLOCK_NORTHBRIDGE_INIT
142 string
143
Lee Leahy5f31f492015-02-09 21:09:49 -0800144config BOOTBLOCK_RESETS
145 string
146
Lee Leahy2030d252016-06-05 18:41:00 -0700147config BOOTBLOCK_SAVE_BIST_AND_TIMESTAMP
148 bool
149 default n
150 help
151 Select this value to provide a routine to save the BIST and timestamp
152 values. The default code places the BIST value in MM0 and the
153 timestamp value in MM2:MM1. Another file is necessary when the CPU
154 does not support the MMx register set.
155
Patrick Georgia865b172011-01-14 07:40:24 +0000156config HAVE_CMOS_DEFAULT
157 def_bool n
Martin Rothf76303e2016-11-16 15:45:22 -0700158 depends on HAVE_OPTION_TABLE
Patrick Georgia865b172011-01-14 07:40:24 +0000159
160config CMOS_DEFAULT_FILE
161 string
Denis 'GNUtoo' Carikli29a43552013-05-28 13:46:12 +0200162 default "src/mainboard/$(MAINBOARDDIR)/cmos.default"
Patrick Georgia865b172011-01-14 07:40:24 +0000163 depends on HAVE_CMOS_DEFAULT
164
Patrick Georgi1bb68282009-12-31 12:56:53 +0000165config BOOTBLOCK_SOUTHBRIDGE_INIT
166 string
Stefan Reinauer1b342262011-01-05 02:27:53 +0000167
Patrick Georgid4d5e4d2012-03-16 19:28:15 +0100168config IOAPIC_INTERRUPTS_ON_FSB
169 bool
170 default y if !IOAPIC_INTERRUPTS_ON_APIC_SERIAL_BUS
171
172config IOAPIC_INTERRUPTS_ON_APIC_SERIAL_BUS
173 bool
174 default n
175
Patrick Georgi9aeb6942012-10-05 21:54:38 +0200176config HPET_ADDRESS
177 hex
178 default 0xfed00000 if !HPET_ADDRESS_OVERRIDE
179
Stefan Reinauer84833442012-11-13 15:04:12 -0800180config ID_SECTION_OFFSET
181 hex
182 default 0x80
Patrick Georgic32a52c2015-06-22 21:10:34 +0200183
Aaron Durbin65ac3d82016-02-11 14:36:19 -0600184# 64KiB default bootblock size when employing C_ENVIRONMENT_BOOTBLOCK.
185config C_ENV_BOOTBLOCK_SIZE
186 hex
187 default 0x10000
Andrey Petrovccd300b2016-02-28 22:04:51 -0800188
189# Default address romstage is to be linked at
190config ROMSTAGE_ADDR
191 hex
192 default 0x2000000
193
194# Default address verstage is to be linked at
195config VERSTAGE_ADDR
196 hex
197 default 0x2000000
Aaron Durbin7f8afe02016-03-18 12:21:23 -0500198
199# Use the post CAR infrastructure for tearing down cache-as-ram
Elyes HAOUAS777ea892016-07-29 07:40:41 +0200200# from a program loaded in RAM and subsequently loading ramstage.
Aaron Durbin7f8afe02016-03-18 12:21:23 -0500201config POSTCAR_STAGE
202 def_bool n
Lee Leahyd131ea32016-06-08 13:40:08 -0700203
204config VERSTAGE_DEBUG_SPINLOOP
205 bool
206 default n
207 help
208 Add a spin (JMP .) in assembly_entry.S during early verstage to wait
209 for a JTAG debugger to break into the execution sequence.
210
211config ROMSTAGE_DEBUG_SPINLOOP
212 bool
213 default n
214 help
215 Add a spin (JMP .) in assembly_entry.S during early romstage to wait
216 for a JTAG debugger to break into the execution sequence.
Martin Roth408fda72016-12-15 16:04:55 -0700217
218choice
219 prompt "Bootblock behaviour"
220 default BOOTBLOCK_SIMPLE
221
222config BOOTBLOCK_SIMPLE
223 bool "Always load fallback"
224
225config BOOTBLOCK_NORMAL
226 bool "Switch to normal if CMOS says so"
227
228endchoice
229
230config BOOTBLOCK_SOURCE
231 string
232 default "bootblock_simple.c" if BOOTBLOCK_SIMPLE
233 default "bootblock_normal.c" if BOOTBLOCK_NORMAL
234
235config SKIP_MAX_REBOOT_CNT_CLEAR
236 bool "Do not clear reboot count after successful boot"
237 depends on BOOTBLOCK_NORMAL
238 help
239 Do not clear the reboot count immediately after successful boot.
240 Set to allow the payload to control normal/fallback image recovery.
241 Note that it is the responsibility of the payload to reset the
242 normal boot bit to 1 after each successsful boot.