blob: 7e6e89c23176b1e10cbcfbece6bb9581adc2afc0 [file] [log] [blame]
Masahiro Yamadadd840582014-07-30 14:08:14 +09001menu "x86 architecture"
2 depends on X86
3
4config SYS_ARCH
Masahiro Yamadadd840582014-07-30 14:08:14 +09005 default "x86"
6
Masahiro Yamadadd840582014-07-30 14:08:14 +09007choice
Bin Meng65c4ac02015-04-27 23:22:24 +08008 prompt "Mainboard vendor"
Bin Meng99a309f2015-05-07 21:34:09 +08009 default VENDOR_EMULATION
Masahiro Yamadadd840582014-07-30 14:08:14 +090010
Bin Meng65c4ac02015-04-27 23:22:24 +080011config VENDOR_COREBOOT
12 bool "coreboot"
Simon Glass8ef07572014-11-12 22:42:07 -070013
Ben Stoltz3dcdd172015-08-04 12:33:46 -060014config VENDOR_EFI
15 bool "efi"
16
Bin Menga65b25d2015-05-07 21:34:08 +080017config VENDOR_EMULATION
18 bool "emulation"
19
Bin Meng65c4ac02015-04-27 23:22:24 +080020config VENDOR_GOOGLE
21 bool "Google"
Masahiro Yamadadd840582014-07-30 14:08:14 +090022
Bin Meng65c4ac02015-04-27 23:22:24 +080023config VENDOR_INTEL
24 bool "Intel"
Bin Mengef46bea2015-02-02 22:35:29 +080025
Masahiro Yamadadd840582014-07-30 14:08:14 +090026endchoice
27
Bin Meng65c4ac02015-04-27 23:22:24 +080028# board-specific options below
29source "board/coreboot/Kconfig"
Bin Menga65b25d2015-05-07 21:34:08 +080030source "board/emulation/Kconfig"
Bin Meng65c4ac02015-04-27 23:22:24 +080031source "board/google/Kconfig"
32source "board/intel/Kconfig"
33
Bin Meng029194a2015-04-27 23:22:25 +080034# platform-specific options below
35source "arch/x86/cpu/baytrail/Kconfig"
36source "arch/x86/cpu/coreboot/Kconfig"
37source "arch/x86/cpu/ivybridge/Kconfig"
Bin Menga65b25d2015-05-07 21:34:08 +080038source "arch/x86/cpu/qemu/Kconfig"
Bin Meng029194a2015-04-27 23:22:25 +080039source "arch/x86/cpu/quark/Kconfig"
40source "arch/x86/cpu/queensbay/Kconfig"
41
42# architecture-specific options below
43
Simon Glassb724bd72015-02-11 16:32:59 -070044config SYS_MALLOC_F_LEN
45 default 0x800
46
Simon Glass70a09c62014-11-12 22:42:10 -070047config RAMBASE
48 hex
49 default 0x100000
50
Simon Glass70a09c62014-11-12 22:42:10 -070051config XIP_ROM_SIZE
52 hex
Bin Meng7698d362015-01-06 22:14:16 +080053 depends on X86_RESET_VECTOR
Simon Glassbbd43d62015-01-01 16:17:54 -070054 default ROM_SIZE
Simon Glass70a09c62014-11-12 22:42:10 -070055
56config CPU_ADDR_BITS
57 int
58 default 36
59
Simon Glass65dd74a2014-11-12 22:42:28 -070060config HPET_ADDRESS
61 hex
62 default 0xfed00000 if !HPET_ADDRESS_OVERRIDE
63
64config SMM_TSEG
65 bool
66 default n
67
68config SMM_TSEG_SIZE
69 hex
70
Bin Meng8cb20cc2015-01-06 22:14:15 +080071config X86_RESET_VECTOR
72 bool
73 default n
74
Bin Meng343fb992015-06-07 11:33:12 +080075config RESET_SEG_START
76 hex
77 depends on X86_RESET_VECTOR
78 default 0xffff0000
79
80config RESET_SEG_SIZE
81 hex
82 depends on X86_RESET_VECTOR
83 default 0x10000
84
85config RESET_VEC_LOC
86 hex
87 depends on X86_RESET_VECTOR
88 default 0xfffffff0
89
Bin Meng8cb20cc2015-01-06 22:14:15 +080090config SYS_X86_START16
91 hex
92 depends on X86_RESET_VECTOR
93 default 0xfffff800
94
Bin Meng64542f42014-12-12 21:05:19 +080095config BOARD_ROMSIZE_KB_512
96 bool
97config BOARD_ROMSIZE_KB_1024
98 bool
99config BOARD_ROMSIZE_KB_2048
100 bool
101config BOARD_ROMSIZE_KB_4096
102 bool
103config BOARD_ROMSIZE_KB_8192
104 bool
105config BOARD_ROMSIZE_KB_16384
106 bool
107
108choice
109 prompt "ROM chip size"
Bin Meng7698d362015-01-06 22:14:16 +0800110 depends on X86_RESET_VECTOR
Bin Meng64542f42014-12-12 21:05:19 +0800111 default UBOOT_ROMSIZE_KB_512 if BOARD_ROMSIZE_KB_512
112 default UBOOT_ROMSIZE_KB_1024 if BOARD_ROMSIZE_KB_1024
113 default UBOOT_ROMSIZE_KB_2048 if BOARD_ROMSIZE_KB_2048
114 default UBOOT_ROMSIZE_KB_4096 if BOARD_ROMSIZE_KB_4096
115 default UBOOT_ROMSIZE_KB_8192 if BOARD_ROMSIZE_KB_8192
116 default UBOOT_ROMSIZE_KB_16384 if BOARD_ROMSIZE_KB_16384
117 help
118 Select the size of the ROM chip you intend to flash U-Boot on.
119
120 The build system will take care of creating a u-boot.rom file
121 of the matching size.
122
123config UBOOT_ROMSIZE_KB_512
124 bool "512 KB"
125 help
126 Choose this option if you have a 512 KB ROM chip.
127
128config UBOOT_ROMSIZE_KB_1024
129 bool "1024 KB (1 MB)"
130 help
131 Choose this option if you have a 1024 KB (1 MB) ROM chip.
132
133config UBOOT_ROMSIZE_KB_2048
134 bool "2048 KB (2 MB)"
135 help
136 Choose this option if you have a 2048 KB (2 MB) ROM chip.
137
138config UBOOT_ROMSIZE_KB_4096
139 bool "4096 KB (4 MB)"
140 help
141 Choose this option if you have a 4096 KB (4 MB) ROM chip.
142
143config UBOOT_ROMSIZE_KB_8192
144 bool "8192 KB (8 MB)"
145 help
146 Choose this option if you have a 8192 KB (8 MB) ROM chip.
147
148config UBOOT_ROMSIZE_KB_16384
149 bool "16384 KB (16 MB)"
150 help
151 Choose this option if you have a 16384 KB (16 MB) ROM chip.
152
153endchoice
154
155# Map the config names to an integer (KB).
156config UBOOT_ROMSIZE_KB
157 int
158 default 512 if UBOOT_ROMSIZE_KB_512
159 default 1024 if UBOOT_ROMSIZE_KB_1024
160 default 2048 if UBOOT_ROMSIZE_KB_2048
161 default 4096 if UBOOT_ROMSIZE_KB_4096
162 default 8192 if UBOOT_ROMSIZE_KB_8192
163 default 16384 if UBOOT_ROMSIZE_KB_16384
164
165# Map the config names to a hex value (bytes).
Simon Glassfce7b272014-11-12 22:42:08 -0700166config ROM_SIZE
167 hex
Bin Meng64542f42014-12-12 21:05:19 +0800168 default 0x80000 if UBOOT_ROMSIZE_KB_512
169 default 0x100000 if UBOOT_ROMSIZE_KB_1024
170 default 0x200000 if UBOOT_ROMSIZE_KB_2048
171 default 0x400000 if UBOOT_ROMSIZE_KB_4096
172 default 0x800000 if UBOOT_ROMSIZE_KB_8192
173 default 0xc00000 if UBOOT_ROMSIZE_KB_12288
174 default 0x1000000 if UBOOT_ROMSIZE_KB_16384
Simon Glassfce7b272014-11-12 22:42:08 -0700175
176config HAVE_INTEL_ME
177 bool "Platform requires Intel Management Engine"
178 help
179 Newer higher-end devices have an Intel Management Engine (ME)
180 which is a very large binary blob (typically 1.5MB) which is
181 required for the platform to work. This enforces a particular
182 SPI flash format. You will need to supply the me.bin file in
183 your board directory.
184
Simon Glass65dd74a2014-11-12 22:42:28 -0700185config X86_RAMTEST
186 bool "Perform a simple RAM test after SDRAM initialisation"
187 help
188 If there is something wrong with SDRAM then the platform will
189 often crash within U-Boot or the kernel. This option enables a
190 very simple RAM test that quickly checks whether the SDRAM seems
191 to work correctly. It is not exhaustive but can save time by
192 detecting obvious failures.
193
Simon Glass8ce24cd2015-01-27 22:13:41 -0700194config HAVE_FSP
195 bool "Add an Firmware Support Package binary"
196 help
197 Select this option to add an Firmware Support Package binary to
198 the resulting U-Boot image. It is a binary blob which U-Boot uses
199 to set up SDRAM and other chipset specific initialization.
200
201 Note: Without this binary U-Boot will not be able to set up its
202 SDRAM so will not boot.
203
204config FSP_FILE
205 string "Firmware Support Package binary filename"
206 depends on HAVE_FSP
207 default "fsp.bin"
208 help
209 The filename of the file to use as Firmware Support Package binary
210 in the board directory.
211
212config FSP_ADDR
213 hex "Firmware Support Package binary location"
214 depends on HAVE_FSP
215 default 0xfffc0000
216 help
217 FSP is not Position Independent Code (PIC) and the whole FSP has to
218 be rebased if it is placed at a location which is different from the
219 perferred base address specified during the FSP build. Use Intel's
220 Binary Configuration Tool (BCT) to do the rebase.
221
222 The default base address of 0xfffc0000 indicates that the binary must
223 be located at offset 0xc0000 from the beginning of a 1MB flash device.
224
225config FSP_TEMP_RAM_ADDR
226 hex
Bin Mengd04e30b2015-06-01 21:07:23 +0800227 depends on HAVE_FSP
Simon Glass8ce24cd2015-01-27 22:13:41 -0700228 default 0x2000000
229 help
230 Stack top address which is used in FspInit after DRAM is ready and
231 CAR is disabled.
232
Simon Glass45b5a372015-04-29 22:25:59 -0600233config SMP
234 bool "Enable Symmetric Multiprocessing"
235 default n
236 help
237 Enable use of more than one CPU in U-Boot and the Operating System
238 when loaded. Each CPU will be started up and information can be
239 obtained using the 'cpu' command. If this option is disabled, then
240 only one CPU will be enabled regardless of the number of CPUs
241 available.
242
Bin Meng4c713222015-06-12 14:52:23 +0800243config MAX_CPUS
244 int "Maximum number of CPUs permitted"
245 depends on SMP
246 default 4
247 help
248 When using multi-CPU chips it is possible for U-Boot to start up
249 more than one CPU. The stack memory used by all of these CPUs is
250 pre-allocated so at present U-Boot wants to know the maximum
251 number of CPUs that may be present. Set this to at least as high
252 as the number of CPUs in your system (it uses about 4KB of RAM for
253 each CPU).
254
Simon Glass45b5a372015-04-29 22:25:59 -0600255config AP_STACK_SIZE
256 hex
Bin Meng063374d2015-06-12 14:52:22 +0800257 depends on SMP
Simon Glass45b5a372015-04-29 22:25:59 -0600258 default 0x1000
259 help
260 Each additional CPU started by U-Boot requires its own stack. This
261 option sets the stack size used by each CPU and directly affects
262 the memory used by this initialisation process. Typically 4KB is
263 enough space.
264
Bin Mengf56aeaa2015-02-05 23:42:20 +0800265config TSC_CALIBRATION_BYPASS
266 bool "Bypass Time-Stamp Counter (TSC) calibration"
267 default n
268 help
269 By default U-Boot automatically calibrates Time-Stamp Counter (TSC)
270 running frequency via Model-Specific Register (MSR) and Programmable
271 Interval Timer (PIT). If the calibration does not work on your board,
272 select this option and provide a hardcoded TSC running frequency with
273 CONFIG_TSC_FREQ_IN_MHZ below.
274
275 Normally this option should be turned on in a simulation environment
276 like qemu.
277
278config TSC_FREQ_IN_MHZ
279 int "Time-Stamp Counter (TSC) running frequency in MHz"
280 depends on TSC_CALIBRATION_BYPASS
281 default 1000
282 help
283 The running frequency in MHz of Time-Stamp Counter (TSC).
284
Bin Meng786a08e2015-07-06 16:31:33 +0800285config HAVE_VGA_BIOS
286 bool "Add a VGA BIOS image"
287 help
288 Select this option if you have a VGA BIOS image that you would
289 like to add to your ROM.
290
291config VGA_BIOS_FILE
292 string "VGA BIOS image filename"
293 depends on HAVE_VGA_BIOS
294 default "vga.bin"
295 help
296 The filename of the VGA BIOS image in the board directory.
297
298config VGA_BIOS_ADDR
299 hex "VGA BIOS image location"
300 depends on HAVE_VGA_BIOS
301 default 0xfff90000
302 help
303 The location of VGA BIOS image in the SPI flash. For example, base
304 address of 0xfff90000 indicates that the image will be put at offset
305 0x90000 from the beginning of a 1MB flash device.
306
Bin Mengb5b6b012015-04-24 18:10:05 +0800307menu "System tables"
308
309config GENERATE_PIRQ_TABLE
310 bool "Generate a PIRQ table"
311 default n
312 help
313 Generate a PIRQ routing table for this board. The PIRQ routing table
314 is generated by U-Boot in the system memory from 0xf0000 to 0xfffff
315 at every 16-byte boundary with a PCI IRQ routing signature ("$PIR").
316 It specifies the interrupt router information as well how all the PCI
317 devices' interrupt pins are wired to PIRQs.
318
Simon Glass6388e352015-04-28 20:25:10 -0600319config GENERATE_SFI_TABLE
320 bool "Generate a SFI (Simple Firmware Interface) table"
321 help
322 The Simple Firmware Interface (SFI) provides a lightweight method
323 for platform firmware to pass information to the operating system
324 via static tables in memory. Kernel SFI support is required to
325 boot on SFI-only platforms. If you have ACPI tables then these are
326 used instead.
327
328 U-Boot writes this table in write_sfi_table() just before booting
329 the OS.
330
331 For more information, see http://simplefirmware.org
332
Bin Meng07545d82015-06-23 12:18:52 +0800333config GENERATE_MP_TABLE
334 bool "Generate an MP (Multi-Processor) table"
335 default n
336 help
337 Generate an MP (Multi-Processor) table for this board. The MP table
338 provides a way for the operating system to support for symmetric
339 multiprocessing as well as symmetric I/O interrupt handling with
340 the local APIC and I/O APIC.
341
Bin Mengb5b6b012015-04-24 18:10:05 +0800342endmenu
343
344config MAX_PIRQ_LINKS
345 int
346 default 8
347 help
348 This variable specifies the number of PIRQ interrupt links which are
349 routable. On most older chipsets, this is 4, PIRQA through PIRQD.
350 Some newer chipsets offer more than four links, commonly up to PIRQH.
351
352config IRQ_SLOT_COUNT
353 int
354 default 128
355 help
356 U-Boot can support up to 254 IRQ slot info in the PIRQ routing table
357 which in turns forms a table of exact 4KiB. The default value 128
358 should be enough for most boards. If this does not fit your board,
359 change it according to your needs.
360
Simon Glass2d934e52015-01-27 22:13:33 -0700361config PCIE_ECAM_BASE
362 hex
Bin Mengba877ef2015-02-02 21:25:09 +0800363 default 0xe0000000
Simon Glass2d934e52015-01-27 22:13:33 -0700364 help
365 This is the memory-mapped address of PCI configuration space, which
366 is only available through the Enhanced Configuration Access
367 Mechanism (ECAM) with PCI Express. It can be set up almost
368 anywhere. Before it is set up, it is possible to access PCI
369 configuration space through I/O access, but memory access is more
370 convenient. Using this, PCI can be scanned and configured. This
371 should be set to a region that does not conflict with memory
372 assigned to PCI devices - i.e. the memory and prefetch regions, as
373 passed to pci_set_region().
374
Bin Meng1ed66482015-07-22 01:21:15 -0700375config PCIE_ECAM_SIZE
376 hex
377 default 0x10000000
378 help
379 This is the size of memory-mapped address of PCI configuration space,
380 which is only available through the Enhanced Configuration Access
381 Mechanism (ECAM) with PCI Express. Each bus consumes 1 MiB memory,
382 so a default 0x10000000 size covers all of the 256 buses which is the
383 maximum number of PCI buses as defined by the PCI specification.
384
Masahiro Yamadadd840582014-07-30 14:08:14 +0900385endmenu