Kconfig 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548
  1. menu "x86 architecture"
  2. depends on X86
  3. config SYS_ARCH
  4. default "x86"
  5. choice
  6. prompt "Mainboard vendor"
  7. default VENDOR_EMULATION
  8. config VENDOR_ADVANTECH
  9. bool "advantech"
  10. config VENDOR_CONGATEC
  11. bool "congatec"
  12. config VENDOR_COREBOOT
  13. bool "coreboot"
  14. config VENDOR_DFI
  15. bool "dfi"
  16. config VENDOR_EFI
  17. bool "efi"
  18. config VENDOR_EMULATION
  19. bool "emulation"
  20. config VENDOR_GOOGLE
  21. bool "Google"
  22. config VENDOR_INTEL
  23. bool "Intel"
  24. endchoice
  25. # board-specific options below
  26. source "board/advantech/Kconfig"
  27. source "board/congatec/Kconfig"
  28. source "board/coreboot/Kconfig"
  29. source "board/dfi/Kconfig"
  30. source "board/efi/Kconfig"
  31. source "board/emulation/Kconfig"
  32. source "board/google/Kconfig"
  33. source "board/intel/Kconfig"
  34. # platform-specific options below
  35. source "arch/x86/cpu/baytrail/Kconfig"
  36. source "arch/x86/cpu/broadwell/Kconfig"
  37. source "arch/x86/cpu/coreboot/Kconfig"
  38. source "arch/x86/cpu/ivybridge/Kconfig"
  39. source "arch/x86/cpu/qemu/Kconfig"
  40. source "arch/x86/cpu/quark/Kconfig"
  41. source "arch/x86/cpu/queensbay/Kconfig"
  42. # architecture-specific options below
  43. config AHCI
  44. default y
  45. config SYS_MALLOC_F_LEN
  46. default 0x800
  47. config RAMBASE
  48. hex
  49. default 0x100000
  50. config XIP_ROM_SIZE
  51. hex
  52. depends on X86_RESET_VECTOR
  53. default ROM_SIZE
  54. config CPU_ADDR_BITS
  55. int
  56. default 36
  57. config HPET_ADDRESS
  58. hex
  59. default 0xfed00000 if !HPET_ADDRESS_OVERRIDE
  60. config SMM_TSEG
  61. bool
  62. default n
  63. config SMM_TSEG_SIZE
  64. hex
  65. config X86_RESET_VECTOR
  66. bool
  67. default n
  68. config RESET_SEG_START
  69. hex
  70. depends on X86_RESET_VECTOR
  71. default 0xffff0000
  72. config RESET_SEG_SIZE
  73. hex
  74. depends on X86_RESET_VECTOR
  75. default 0x10000
  76. config RESET_VEC_LOC
  77. hex
  78. depends on X86_RESET_VECTOR
  79. default 0xfffffff0
  80. config SYS_X86_START16
  81. hex
  82. depends on X86_RESET_VECTOR
  83. default 0xfffff800
  84. config BOARD_ROMSIZE_KB_512
  85. bool
  86. config BOARD_ROMSIZE_KB_1024
  87. bool
  88. config BOARD_ROMSIZE_KB_2048
  89. bool
  90. config BOARD_ROMSIZE_KB_4096
  91. bool
  92. config BOARD_ROMSIZE_KB_8192
  93. bool
  94. config BOARD_ROMSIZE_KB_16384
  95. bool
  96. choice
  97. prompt "ROM chip size"
  98. depends on X86_RESET_VECTOR
  99. default UBOOT_ROMSIZE_KB_512 if BOARD_ROMSIZE_KB_512
  100. default UBOOT_ROMSIZE_KB_1024 if BOARD_ROMSIZE_KB_1024
  101. default UBOOT_ROMSIZE_KB_2048 if BOARD_ROMSIZE_KB_2048
  102. default UBOOT_ROMSIZE_KB_4096 if BOARD_ROMSIZE_KB_4096
  103. default UBOOT_ROMSIZE_KB_8192 if BOARD_ROMSIZE_KB_8192
  104. default UBOOT_ROMSIZE_KB_16384 if BOARD_ROMSIZE_KB_16384
  105. help
  106. Select the size of the ROM chip you intend to flash U-Boot on.
  107. The build system will take care of creating a u-boot.rom file
  108. of the matching size.
  109. config UBOOT_ROMSIZE_KB_512
  110. bool "512 KB"
  111. help
  112. Choose this option if you have a 512 KB ROM chip.
  113. config UBOOT_ROMSIZE_KB_1024
  114. bool "1024 KB (1 MB)"
  115. help
  116. Choose this option if you have a 1024 KB (1 MB) ROM chip.
  117. config UBOOT_ROMSIZE_KB_2048
  118. bool "2048 KB (2 MB)"
  119. help
  120. Choose this option if you have a 2048 KB (2 MB) ROM chip.
  121. config UBOOT_ROMSIZE_KB_4096
  122. bool "4096 KB (4 MB)"
  123. help
  124. Choose this option if you have a 4096 KB (4 MB) ROM chip.
  125. config UBOOT_ROMSIZE_KB_8192
  126. bool "8192 KB (8 MB)"
  127. help
  128. Choose this option if you have a 8192 KB (8 MB) ROM chip.
  129. config UBOOT_ROMSIZE_KB_16384
  130. bool "16384 KB (16 MB)"
  131. help
  132. Choose this option if you have a 16384 KB (16 MB) ROM chip.
  133. endchoice
  134. # Map the config names to an integer (KB).
  135. config UBOOT_ROMSIZE_KB
  136. int
  137. default 512 if UBOOT_ROMSIZE_KB_512
  138. default 1024 if UBOOT_ROMSIZE_KB_1024
  139. default 2048 if UBOOT_ROMSIZE_KB_2048
  140. default 4096 if UBOOT_ROMSIZE_KB_4096
  141. default 8192 if UBOOT_ROMSIZE_KB_8192
  142. default 16384 if UBOOT_ROMSIZE_KB_16384
  143. # Map the config names to a hex value (bytes).
  144. config ROM_SIZE
  145. hex
  146. default 0x80000 if UBOOT_ROMSIZE_KB_512
  147. default 0x100000 if UBOOT_ROMSIZE_KB_1024
  148. default 0x200000 if UBOOT_ROMSIZE_KB_2048
  149. default 0x400000 if UBOOT_ROMSIZE_KB_4096
  150. default 0x800000 if UBOOT_ROMSIZE_KB_8192
  151. default 0xc00000 if UBOOT_ROMSIZE_KB_12288
  152. default 0x1000000 if UBOOT_ROMSIZE_KB_16384
  153. config HAVE_INTEL_ME
  154. bool "Platform requires Intel Management Engine"
  155. help
  156. Newer higher-end devices have an Intel Management Engine (ME)
  157. which is a very large binary blob (typically 1.5MB) which is
  158. required for the platform to work. This enforces a particular
  159. SPI flash format. You will need to supply the me.bin file in
  160. your board directory.
  161. config X86_RAMTEST
  162. bool "Perform a simple RAM test after SDRAM initialisation"
  163. help
  164. If there is something wrong with SDRAM then the platform will
  165. often crash within U-Boot or the kernel. This option enables a
  166. very simple RAM test that quickly checks whether the SDRAM seems
  167. to work correctly. It is not exhaustive but can save time by
  168. detecting obvious failures.
  169. config HAVE_FSP
  170. bool "Add an Firmware Support Package binary"
  171. depends on !EFI
  172. help
  173. Select this option to add an Firmware Support Package binary to
  174. the resulting U-Boot image. It is a binary blob which U-Boot uses
  175. to set up SDRAM and other chipset specific initialization.
  176. Note: Without this binary U-Boot will not be able to set up its
  177. SDRAM so will not boot.
  178. config FSP_FILE
  179. string "Firmware Support Package binary filename"
  180. depends on HAVE_FSP
  181. default "fsp.bin"
  182. help
  183. The filename of the file to use as Firmware Support Package binary
  184. in the board directory.
  185. config FSP_ADDR
  186. hex "Firmware Support Package binary location"
  187. depends on HAVE_FSP
  188. default 0xfffc0000
  189. help
  190. FSP is not Position Independent Code (PIC) and the whole FSP has to
  191. be rebased if it is placed at a location which is different from the
  192. perferred base address specified during the FSP build. Use Intel's
  193. Binary Configuration Tool (BCT) to do the rebase.
  194. The default base address of 0xfffc0000 indicates that the binary must
  195. be located at offset 0xc0000 from the beginning of a 1MB flash device.
  196. config FSP_TEMP_RAM_ADDR
  197. hex
  198. depends on HAVE_FSP
  199. default 0x2000000
  200. help
  201. Stack top address which is used in fsp_init() after DRAM is ready and
  202. CAR is disabled.
  203. config FSP_SYS_MALLOC_F_LEN
  204. hex
  205. depends on HAVE_FSP
  206. default 0x100000
  207. help
  208. Additional size of malloc() pool before relocation.
  209. config FSP_USE_UPD
  210. bool
  211. depends on HAVE_FSP
  212. default y
  213. help
  214. Most FSPs use UPD data region for some FSP customization. But there
  215. are still some FSPs that might not even have UPD. For such FSPs,
  216. override this to n in their platform Kconfig files.
  217. config FSP_BROKEN_HOB
  218. bool
  219. depends on HAVE_FSP
  220. help
  221. Indicate some buggy FSPs that does not report memory used by FSP
  222. itself as reserved in the resource descriptor HOB. Select this to
  223. tell U-Boot to do some additional work to ensure U-Boot relocation
  224. do not overwrite the important boot service data which is used by
  225. FSP, otherwise the subsequent call to fsp_notify() will fail.
  226. config ENABLE_MRC_CACHE
  227. bool "Enable MRC cache"
  228. depends on !EFI && !SYS_COREBOOT
  229. help
  230. Enable this feature to cause MRC data to be cached in NV storage
  231. to be used for speeding up boot time on future reboots and/or
  232. power cycles.
  233. For platforms that use Intel FSP for the memory initialization,
  234. please check FSP output HOB via U-Boot command 'fsp hob' to see
  235. if there is FSP_NON_VOLATILE_STORAGE_HOB_GUID (asm/fsp/fsp_hob.h).
  236. If such GUID does not exist, MRC cache is not avaiable on such
  237. platform (eg: Intel Queensbay), which means selecting this option
  238. here does not make any difference.
  239. config HAVE_MRC
  240. bool "Add a System Agent binary"
  241. depends on !HAVE_FSP
  242. help
  243. Select this option to add a System Agent binary to
  244. the resulting U-Boot image. MRC stands for Memory Reference Code.
  245. It is a binary blob which U-Boot uses to set up SDRAM.
  246. Note: Without this binary U-Boot will not be able to set up its
  247. SDRAM so will not boot.
  248. config CACHE_MRC_BIN
  249. bool
  250. depends on HAVE_MRC
  251. default n
  252. help
  253. Enable caching for the memory reference code binary. This uses an
  254. MTRR (memory type range register) to turn on caching for the section
  255. of SPI flash that contains the memory reference code. This makes
  256. SDRAM init run faster.
  257. config CACHE_MRC_SIZE_KB
  258. int
  259. depends on HAVE_MRC
  260. default 512
  261. help
  262. Sets the size of the cached area for the memory reference code.
  263. This ends at the end of SPI flash (address 0xffffffff) and is
  264. measured in KB. Typically this is set to 512, providing for 0.5MB
  265. of cached space.
  266. config DCACHE_RAM_BASE
  267. hex
  268. depends on HAVE_MRC
  269. help
  270. Sets the base of the data cache area in memory space. This is the
  271. start address of the cache-as-RAM (CAR) area and the address varies
  272. depending on the CPU. Once CAR is set up, read/write memory becomes
  273. available at this address and can be used temporarily until SDRAM
  274. is working.
  275. config DCACHE_RAM_SIZE
  276. hex
  277. depends on HAVE_MRC
  278. default 0x40000
  279. help
  280. Sets the total size of the data cache area in memory space. This
  281. sets the size of the cache-as-RAM (CAR) area. Note that much of the
  282. CAR space is required by the MRC. The CAR space available to U-Boot
  283. is normally at the start and typically extends to 1/4 or 1/2 of the
  284. available size.
  285. config DCACHE_RAM_MRC_VAR_SIZE
  286. hex
  287. depends on HAVE_MRC
  288. help
  289. This is the amount of CAR (Cache as RAM) reserved for use by the
  290. memory reference code. This depends on the implementation of the
  291. memory reference code and must be set correctly or the board will
  292. not boot.
  293. config HAVE_REFCODE
  294. bool "Add a Reference Code binary"
  295. help
  296. Select this option to add a Reference Code binary to the resulting
  297. U-Boot image. This is an Intel binary blob that handles system
  298. initialisation, in this case the PCH and System Agent.
  299. Note: Without this binary (on platforms that need it such as
  300. broadwell) U-Boot will be missing some critical setup steps.
  301. Various peripherals may fail to work.
  302. config SMP
  303. bool "Enable Symmetric Multiprocessing"
  304. default n
  305. help
  306. Enable use of more than one CPU in U-Boot and the Operating System
  307. when loaded. Each CPU will be started up and information can be
  308. obtained using the 'cpu' command. If this option is disabled, then
  309. only one CPU will be enabled regardless of the number of CPUs
  310. available.
  311. config MAX_CPUS
  312. int "Maximum number of CPUs permitted"
  313. depends on SMP
  314. default 4
  315. help
  316. When using multi-CPU chips it is possible for U-Boot to start up
  317. more than one CPU. The stack memory used by all of these CPUs is
  318. pre-allocated so at present U-Boot wants to know the maximum
  319. number of CPUs that may be present. Set this to at least as high
  320. as the number of CPUs in your system (it uses about 4KB of RAM for
  321. each CPU).
  322. config AP_STACK_SIZE
  323. hex
  324. depends on SMP
  325. default 0x1000
  326. help
  327. Each additional CPU started by U-Boot requires its own stack. This
  328. option sets the stack size used by each CPU and directly affects
  329. the memory used by this initialisation process. Typically 4KB is
  330. enough space.
  331. config HAVE_VGA_BIOS
  332. bool "Add a VGA BIOS image"
  333. help
  334. Select this option if you have a VGA BIOS image that you would
  335. like to add to your ROM.
  336. config VGA_BIOS_FILE
  337. string "VGA BIOS image filename"
  338. depends on HAVE_VGA_BIOS
  339. default "vga.bin"
  340. help
  341. The filename of the VGA BIOS image in the board directory.
  342. config VGA_BIOS_ADDR
  343. hex "VGA BIOS image location"
  344. depends on HAVE_VGA_BIOS
  345. default 0xfff90000
  346. help
  347. The location of VGA BIOS image in the SPI flash. For example, base
  348. address of 0xfff90000 indicates that the image will be put at offset
  349. 0x90000 from the beginning of a 1MB flash device.
  350. menu "System tables"
  351. depends on !EFI && !SYS_COREBOOT
  352. config GENERATE_PIRQ_TABLE
  353. bool "Generate a PIRQ table"
  354. default n
  355. help
  356. Generate a PIRQ routing table for this board. The PIRQ routing table
  357. is generated by U-Boot in the system memory from 0xf0000 to 0xfffff
  358. at every 16-byte boundary with a PCI IRQ routing signature ("$PIR").
  359. It specifies the interrupt router information as well how all the PCI
  360. devices' interrupt pins are wired to PIRQs.
  361. config GENERATE_SFI_TABLE
  362. bool "Generate a SFI (Simple Firmware Interface) table"
  363. help
  364. The Simple Firmware Interface (SFI) provides a lightweight method
  365. for platform firmware to pass information to the operating system
  366. via static tables in memory. Kernel SFI support is required to
  367. boot on SFI-only platforms. If you have ACPI tables then these are
  368. used instead.
  369. U-Boot writes this table in write_sfi_table() just before booting
  370. the OS.
  371. For more information, see http://simplefirmware.org
  372. config GENERATE_MP_TABLE
  373. bool "Generate an MP (Multi-Processor) table"
  374. default n
  375. help
  376. Generate an MP (Multi-Processor) table for this board. The MP table
  377. provides a way for the operating system to support for symmetric
  378. multiprocessing as well as symmetric I/O interrupt handling with
  379. the local APIC and I/O APIC.
  380. config GENERATE_ACPI_TABLE
  381. bool "Generate an ACPI (Advanced Configuration and Power Interface) table"
  382. default n
  383. select QFW if QEMU
  384. help
  385. The Advanced Configuration and Power Interface (ACPI) specification
  386. provides an open standard for device configuration and management
  387. by the operating system. It defines platform-independent interfaces
  388. for configuration and power management monitoring.
  389. endmenu
  390. config MAX_PIRQ_LINKS
  391. int
  392. default 8
  393. help
  394. This variable specifies the number of PIRQ interrupt links which are
  395. routable. On most older chipsets, this is 4, PIRQA through PIRQD.
  396. Some newer chipsets offer more than four links, commonly up to PIRQH.
  397. config IRQ_SLOT_COUNT
  398. int
  399. default 128
  400. help
  401. U-Boot can support up to 254 IRQ slot info in the PIRQ routing table
  402. which in turns forms a table of exact 4KiB. The default value 128
  403. should be enough for most boards. If this does not fit your board,
  404. change it according to your needs.
  405. config PCIE_ECAM_BASE
  406. hex
  407. default 0xe0000000
  408. help
  409. This is the memory-mapped address of PCI configuration space, which
  410. is only available through the Enhanced Configuration Access
  411. Mechanism (ECAM) with PCI Express. It can be set up almost
  412. anywhere. Before it is set up, it is possible to access PCI
  413. configuration space through I/O access, but memory access is more
  414. convenient. Using this, PCI can be scanned and configured. This
  415. should be set to a region that does not conflict with memory
  416. assigned to PCI devices - i.e. the memory and prefetch regions, as
  417. passed to pci_set_region().
  418. config PCIE_ECAM_SIZE
  419. hex
  420. default 0x10000000
  421. help
  422. This is the size of memory-mapped address of PCI configuration space,
  423. which is only available through the Enhanced Configuration Access
  424. Mechanism (ECAM) with PCI Express. Each bus consumes 1 MiB memory,
  425. so a default 0x10000000 size covers all of the 256 buses which is the
  426. maximum number of PCI buses as defined by the PCI specification.
  427. config I8259_PIC
  428. bool
  429. default y
  430. help
  431. Intel 8259 ISA compatible chipset incorporates two 8259 (master and
  432. slave) interrupt controllers. Include this to have U-Boot set up
  433. the interrupt correctly.
  434. config I8254_TIMER
  435. bool
  436. default y
  437. help
  438. Intel 8254 timer contains three counters which have fixed uses.
  439. Include this to have U-Boot set up the timer correctly.
  440. config SEABIOS
  441. bool "Support booting SeaBIOS"
  442. help
  443. SeaBIOS is an open source implementation of a 16-bit X86 BIOS.
  444. It can run in an emulator or natively on X86 hardware with the use
  445. of coreboot/U-Boot. By turning on this option, U-Boot prepares
  446. all the configuration tables that are necessary to boot SeaBIOS.
  447. Check http://www.seabios.org/SeaBIOS for details.
  448. config HIGH_TABLE_SIZE
  449. hex "Size of configuration tables which reside in high memory"
  450. default 0x10000
  451. depends on SEABIOS
  452. help
  453. SeaBIOS itself resides in E seg and F seg, where U-Boot puts all
  454. configuration tables like PIRQ/MP/ACPI. To avoid conflicts, U-Boot
  455. puts a copy of configuration tables in high memory region which
  456. is reserved on the stack before relocation. The region size is
  457. determined by this option.
  458. Increse it if the default size does not fit the board's needs.
  459. This is most likely due to a large ACPI DSDT table is used.
  460. source "arch/x86/lib/efi/Kconfig"
  461. endmenu