1*4882a593Smuzhiyunmenu "x86 architecture" 2*4882a593Smuzhiyun depends on X86 3*4882a593Smuzhiyun 4*4882a593Smuzhiyunconfig SYS_ARCH 5*4882a593Smuzhiyun default "x86" 6*4882a593Smuzhiyun 7*4882a593Smuzhiyunchoice 8*4882a593Smuzhiyun prompt "Run U-Boot in 32/64-bit mode" 9*4882a593Smuzhiyun default X86_RUN_32BIT 10*4882a593Smuzhiyun help 11*4882a593Smuzhiyun U-Boot can be built as a 32-bit binary which runs in 32-bit mode 12*4882a593Smuzhiyun even on 64-bit machines. In this case SPL is not used, and U-Boot 13*4882a593Smuzhiyun runs directly from the reset vector (via 16-bit start-up). 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun Alternatively it can be run as a 64-bit binary, thus requiring a 16*4882a593Smuzhiyun 64-bit machine. In this case SPL runs in 32-bit mode (via 16-bit 17*4882a593Smuzhiyun start-up) then jumps to U-Boot in 64-bit mode. 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun For now, 32-bit mode is recommended, as 64-bit is still 20*4882a593Smuzhiyun experimental and is missing a lot of features. 21*4882a593Smuzhiyun 22*4882a593Smuzhiyunconfig X86_RUN_32BIT 23*4882a593Smuzhiyun bool "32-bit" 24*4882a593Smuzhiyun help 25*4882a593Smuzhiyun Build U-Boot as a 32-bit binary with no SPL. This is the currently 26*4882a593Smuzhiyun supported normal setup. U-Boot will stay in 32-bit mode even on 27*4882a593Smuzhiyun 64-bit machines. When booting a 64-bit kernel, U-Boot will switch 28*4882a593Smuzhiyun to 64-bit just before starting the kernel. Only the bottom 4GB of 29*4882a593Smuzhiyun memory can be accessed through normal means, although 30*4882a593Smuzhiyun arch_phys_memset() can be used for basic access to other memory. 31*4882a593Smuzhiyun 32*4882a593Smuzhiyunconfig X86_RUN_64BIT 33*4882a593Smuzhiyun bool "64-bit" 34*4882a593Smuzhiyun select X86_64 35*4882a593Smuzhiyun select SUPPORT_SPL 36*4882a593Smuzhiyun select SPL 37*4882a593Smuzhiyun select SPL_SEPARATE_BSS 38*4882a593Smuzhiyun help 39*4882a593Smuzhiyun Build U-Boot as a 64-bit binary with a 32-bit SPL. This is 40*4882a593Smuzhiyun experimental and many features are missing. U-Boot SPL starts up, 41*4882a593Smuzhiyun runs through the 16-bit and 32-bit init, then switches to 64-bit 42*4882a593Smuzhiyun mode and jumps to U-Boot proper. 43*4882a593Smuzhiyun 44*4882a593Smuzhiyunendchoice 45*4882a593Smuzhiyun 46*4882a593Smuzhiyunconfig X86_64 47*4882a593Smuzhiyun bool 48*4882a593Smuzhiyun 49*4882a593Smuzhiyunconfig SPL_X86_64 50*4882a593Smuzhiyun bool 51*4882a593Smuzhiyun depends on SPL 52*4882a593Smuzhiyun 53*4882a593Smuzhiyunchoice 54*4882a593Smuzhiyun prompt "Mainboard vendor" 55*4882a593Smuzhiyun default VENDOR_EMULATION 56*4882a593Smuzhiyun 57*4882a593Smuzhiyunconfig VENDOR_ADVANTECH 58*4882a593Smuzhiyun bool "advantech" 59*4882a593Smuzhiyun 60*4882a593Smuzhiyunconfig VENDOR_CONGATEC 61*4882a593Smuzhiyun bool "congatec" 62*4882a593Smuzhiyun 63*4882a593Smuzhiyunconfig VENDOR_COREBOOT 64*4882a593Smuzhiyun bool "coreboot" 65*4882a593Smuzhiyun 66*4882a593Smuzhiyunconfig VENDOR_DFI 67*4882a593Smuzhiyun bool "dfi" 68*4882a593Smuzhiyun 69*4882a593Smuzhiyunconfig VENDOR_EFI 70*4882a593Smuzhiyun bool "efi" 71*4882a593Smuzhiyun 72*4882a593Smuzhiyunconfig VENDOR_EMULATION 73*4882a593Smuzhiyun bool "emulation" 74*4882a593Smuzhiyun 75*4882a593Smuzhiyunconfig VENDOR_GOOGLE 76*4882a593Smuzhiyun bool "Google" 77*4882a593Smuzhiyun 78*4882a593Smuzhiyunconfig VENDOR_INTEL 79*4882a593Smuzhiyun bool "Intel" 80*4882a593Smuzhiyun 81*4882a593Smuzhiyunendchoice 82*4882a593Smuzhiyun 83*4882a593Smuzhiyun# subarchitectures-specific options below 84*4882a593Smuzhiyunconfig INTEL_MID 85*4882a593Smuzhiyun bool "Intel MID platform support" 86*4882a593Smuzhiyun select REGMAP 87*4882a593Smuzhiyun select SYSCON 88*4882a593Smuzhiyun help 89*4882a593Smuzhiyun Select to build a U-Boot capable of supporting Intel MID 90*4882a593Smuzhiyun (Mobile Internet Device) platform systems which do not have 91*4882a593Smuzhiyun the PCI legacy interfaces. 92*4882a593Smuzhiyun 93*4882a593Smuzhiyun If you are building for a PC class system say N here. 94*4882a593Smuzhiyun 95*4882a593Smuzhiyun Intel MID platforms are based on an Intel processor and 96*4882a593Smuzhiyun chipset which consume less power than most of the x86 97*4882a593Smuzhiyun derivatives. 98*4882a593Smuzhiyun 99*4882a593Smuzhiyun# board-specific options below 100*4882a593Smuzhiyunsource "board/advantech/Kconfig" 101*4882a593Smuzhiyunsource "board/congatec/Kconfig" 102*4882a593Smuzhiyunsource "board/coreboot/Kconfig" 103*4882a593Smuzhiyunsource "board/dfi/Kconfig" 104*4882a593Smuzhiyunsource "board/efi/Kconfig" 105*4882a593Smuzhiyunsource "board/emulation/Kconfig" 106*4882a593Smuzhiyunsource "board/google/Kconfig" 107*4882a593Smuzhiyunsource "board/intel/Kconfig" 108*4882a593Smuzhiyun 109*4882a593Smuzhiyun# platform-specific options below 110*4882a593Smuzhiyunsource "arch/x86/cpu/baytrail/Kconfig" 111*4882a593Smuzhiyunsource "arch/x86/cpu/broadwell/Kconfig" 112*4882a593Smuzhiyunsource "arch/x86/cpu/coreboot/Kconfig" 113*4882a593Smuzhiyunsource "arch/x86/cpu/ivybridge/Kconfig" 114*4882a593Smuzhiyunsource "arch/x86/cpu/qemu/Kconfig" 115*4882a593Smuzhiyunsource "arch/x86/cpu/quark/Kconfig" 116*4882a593Smuzhiyunsource "arch/x86/cpu/queensbay/Kconfig" 117*4882a593Smuzhiyunsource "arch/x86/cpu/tangier/Kconfig" 118*4882a593Smuzhiyun 119*4882a593Smuzhiyun# architecture-specific options below 120*4882a593Smuzhiyun 121*4882a593Smuzhiyunconfig AHCI 122*4882a593Smuzhiyun default y 123*4882a593Smuzhiyun 124*4882a593Smuzhiyunconfig SYS_MALLOC_F_LEN 125*4882a593Smuzhiyun default 0x800 126*4882a593Smuzhiyun 127*4882a593Smuzhiyunconfig RAMBASE 128*4882a593Smuzhiyun hex 129*4882a593Smuzhiyun default 0x100000 130*4882a593Smuzhiyun 131*4882a593Smuzhiyunconfig XIP_ROM_SIZE 132*4882a593Smuzhiyun hex 133*4882a593Smuzhiyun depends on X86_RESET_VECTOR 134*4882a593Smuzhiyun default ROM_SIZE 135*4882a593Smuzhiyun 136*4882a593Smuzhiyunconfig CPU_ADDR_BITS 137*4882a593Smuzhiyun int 138*4882a593Smuzhiyun default 36 139*4882a593Smuzhiyun 140*4882a593Smuzhiyunconfig HPET_ADDRESS 141*4882a593Smuzhiyun hex 142*4882a593Smuzhiyun default 0xfed00000 if !HPET_ADDRESS_OVERRIDE 143*4882a593Smuzhiyun 144*4882a593Smuzhiyunconfig SMM_TSEG 145*4882a593Smuzhiyun bool 146*4882a593Smuzhiyun default n 147*4882a593Smuzhiyun 148*4882a593Smuzhiyunconfig SMM_TSEG_SIZE 149*4882a593Smuzhiyun hex 150*4882a593Smuzhiyun 151*4882a593Smuzhiyunconfig X86_RESET_VECTOR 152*4882a593Smuzhiyun bool 153*4882a593Smuzhiyun default n 154*4882a593Smuzhiyun select BINMAN 155*4882a593Smuzhiyun 156*4882a593Smuzhiyun# The following options control where the 16-bit and 32-bit init lies 157*4882a593Smuzhiyun# If SPL is enabled then it normally holds this init code, and U-Boot proper 158*4882a593Smuzhiyun# is normally a 64-bit build. 159*4882a593Smuzhiyun# 160*4882a593Smuzhiyun# The 16-bit init refers to the reset vector and the small amount of code to 161*4882a593Smuzhiyun# get the processor into 32-bit mode. It may be in SPL or in U-Boot proper, 162*4882a593Smuzhiyun# or missing altogether if U-Boot is started from EFI or coreboot. 163*4882a593Smuzhiyun# 164*4882a593Smuzhiyun# The 32-bit init refers to processor init, running binary blobs including 165*4882a593Smuzhiyun# FSP, setting up interrupts and anything else that needs to be done in 166*4882a593Smuzhiyun# 32-bit code. It is normally in the same place as 16-bit init if that is 167*4882a593Smuzhiyun# enabled (i.e. they are both in SPL, or both in U-Boot proper). 168*4882a593Smuzhiyunconfig X86_16BIT_INIT 169*4882a593Smuzhiyun bool 170*4882a593Smuzhiyun depends on X86_RESET_VECTOR 171*4882a593Smuzhiyun default y if X86_RESET_VECTOR && !SPL 172*4882a593Smuzhiyun help 173*4882a593Smuzhiyun This is enabled when 16-bit init is in U-Boot proper 174*4882a593Smuzhiyun 175*4882a593Smuzhiyunconfig SPL_X86_16BIT_INIT 176*4882a593Smuzhiyun bool 177*4882a593Smuzhiyun depends on X86_RESET_VECTOR 178*4882a593Smuzhiyun default y if X86_RESET_VECTOR && SPL 179*4882a593Smuzhiyun help 180*4882a593Smuzhiyun This is enabled when 16-bit init is in SPL 181*4882a593Smuzhiyun 182*4882a593Smuzhiyunconfig X86_32BIT_INIT 183*4882a593Smuzhiyun bool 184*4882a593Smuzhiyun depends on X86_RESET_VECTOR 185*4882a593Smuzhiyun default y if X86_RESET_VECTOR && !SPL 186*4882a593Smuzhiyun help 187*4882a593Smuzhiyun This is enabled when 32-bit init is in U-Boot proper 188*4882a593Smuzhiyun 189*4882a593Smuzhiyunconfig SPL_X86_32BIT_INIT 190*4882a593Smuzhiyun bool 191*4882a593Smuzhiyun depends on X86_RESET_VECTOR 192*4882a593Smuzhiyun default y if X86_RESET_VECTOR && SPL 193*4882a593Smuzhiyun help 194*4882a593Smuzhiyun This is enabled when 32-bit init is in SPL 195*4882a593Smuzhiyun 196*4882a593Smuzhiyunconfig RESET_SEG_START 197*4882a593Smuzhiyun hex 198*4882a593Smuzhiyun depends on X86_RESET_VECTOR 199*4882a593Smuzhiyun default 0xffff0000 200*4882a593Smuzhiyun 201*4882a593Smuzhiyunconfig RESET_SEG_SIZE 202*4882a593Smuzhiyun hex 203*4882a593Smuzhiyun depends on X86_RESET_VECTOR 204*4882a593Smuzhiyun default 0x10000 205*4882a593Smuzhiyun 206*4882a593Smuzhiyunconfig RESET_VEC_LOC 207*4882a593Smuzhiyun hex 208*4882a593Smuzhiyun depends on X86_RESET_VECTOR 209*4882a593Smuzhiyun default 0xfffffff0 210*4882a593Smuzhiyun 211*4882a593Smuzhiyunconfig SYS_X86_START16 212*4882a593Smuzhiyun hex 213*4882a593Smuzhiyun depends on X86_RESET_VECTOR 214*4882a593Smuzhiyun default 0xfffff800 215*4882a593Smuzhiyun 216*4882a593Smuzhiyunconfig X86_LOAD_FROM_32_BIT 217*4882a593Smuzhiyun bool "Boot from a 32-bit program" 218*4882a593Smuzhiyun help 219*4882a593Smuzhiyun Define this to boot U-Boot from a 32-bit program which sets 220*4882a593Smuzhiyun the GDT differently. This can be used to boot directly from 221*4882a593Smuzhiyun any stage of coreboot, for example, bypassing the normal 222*4882a593Smuzhiyun payload-loading feature. 223*4882a593Smuzhiyun 224*4882a593Smuzhiyunconfig BOARD_ROMSIZE_KB_512 225*4882a593Smuzhiyun bool 226*4882a593Smuzhiyunconfig BOARD_ROMSIZE_KB_1024 227*4882a593Smuzhiyun bool 228*4882a593Smuzhiyunconfig BOARD_ROMSIZE_KB_2048 229*4882a593Smuzhiyun bool 230*4882a593Smuzhiyunconfig BOARD_ROMSIZE_KB_4096 231*4882a593Smuzhiyun bool 232*4882a593Smuzhiyunconfig BOARD_ROMSIZE_KB_8192 233*4882a593Smuzhiyun bool 234*4882a593Smuzhiyunconfig BOARD_ROMSIZE_KB_16384 235*4882a593Smuzhiyun bool 236*4882a593Smuzhiyun 237*4882a593Smuzhiyunchoice 238*4882a593Smuzhiyun prompt "ROM chip size" 239*4882a593Smuzhiyun depends on X86_RESET_VECTOR 240*4882a593Smuzhiyun default UBOOT_ROMSIZE_KB_512 if BOARD_ROMSIZE_KB_512 241*4882a593Smuzhiyun default UBOOT_ROMSIZE_KB_1024 if BOARD_ROMSIZE_KB_1024 242*4882a593Smuzhiyun default UBOOT_ROMSIZE_KB_2048 if BOARD_ROMSIZE_KB_2048 243*4882a593Smuzhiyun default UBOOT_ROMSIZE_KB_4096 if BOARD_ROMSIZE_KB_4096 244*4882a593Smuzhiyun default UBOOT_ROMSIZE_KB_8192 if BOARD_ROMSIZE_KB_8192 245*4882a593Smuzhiyun default UBOOT_ROMSIZE_KB_16384 if BOARD_ROMSIZE_KB_16384 246*4882a593Smuzhiyun help 247*4882a593Smuzhiyun Select the size of the ROM chip you intend to flash U-Boot on. 248*4882a593Smuzhiyun 249*4882a593Smuzhiyun The build system will take care of creating a u-boot.rom file 250*4882a593Smuzhiyun of the matching size. 251*4882a593Smuzhiyun 252*4882a593Smuzhiyunconfig UBOOT_ROMSIZE_KB_512 253*4882a593Smuzhiyun bool "512 KB" 254*4882a593Smuzhiyun help 255*4882a593Smuzhiyun Choose this option if you have a 512 KB ROM chip. 256*4882a593Smuzhiyun 257*4882a593Smuzhiyunconfig UBOOT_ROMSIZE_KB_1024 258*4882a593Smuzhiyun bool "1024 KB (1 MB)" 259*4882a593Smuzhiyun help 260*4882a593Smuzhiyun Choose this option if you have a 1024 KB (1 MB) ROM chip. 261*4882a593Smuzhiyun 262*4882a593Smuzhiyunconfig UBOOT_ROMSIZE_KB_2048 263*4882a593Smuzhiyun bool "2048 KB (2 MB)" 264*4882a593Smuzhiyun help 265*4882a593Smuzhiyun Choose this option if you have a 2048 KB (2 MB) ROM chip. 266*4882a593Smuzhiyun 267*4882a593Smuzhiyunconfig UBOOT_ROMSIZE_KB_4096 268*4882a593Smuzhiyun bool "4096 KB (4 MB)" 269*4882a593Smuzhiyun help 270*4882a593Smuzhiyun Choose this option if you have a 4096 KB (4 MB) ROM chip. 271*4882a593Smuzhiyun 272*4882a593Smuzhiyunconfig UBOOT_ROMSIZE_KB_8192 273*4882a593Smuzhiyun bool "8192 KB (8 MB)" 274*4882a593Smuzhiyun help 275*4882a593Smuzhiyun Choose this option if you have a 8192 KB (8 MB) ROM chip. 276*4882a593Smuzhiyun 277*4882a593Smuzhiyunconfig UBOOT_ROMSIZE_KB_16384 278*4882a593Smuzhiyun bool "16384 KB (16 MB)" 279*4882a593Smuzhiyun help 280*4882a593Smuzhiyun Choose this option if you have a 16384 KB (16 MB) ROM chip. 281*4882a593Smuzhiyun 282*4882a593Smuzhiyunendchoice 283*4882a593Smuzhiyun 284*4882a593Smuzhiyun# Map the config names to an integer (KB). 285*4882a593Smuzhiyunconfig UBOOT_ROMSIZE_KB 286*4882a593Smuzhiyun int 287*4882a593Smuzhiyun default 512 if UBOOT_ROMSIZE_KB_512 288*4882a593Smuzhiyun default 1024 if UBOOT_ROMSIZE_KB_1024 289*4882a593Smuzhiyun default 2048 if UBOOT_ROMSIZE_KB_2048 290*4882a593Smuzhiyun default 4096 if UBOOT_ROMSIZE_KB_4096 291*4882a593Smuzhiyun default 8192 if UBOOT_ROMSIZE_KB_8192 292*4882a593Smuzhiyun default 16384 if UBOOT_ROMSIZE_KB_16384 293*4882a593Smuzhiyun 294*4882a593Smuzhiyun# Map the config names to a hex value (bytes). 295*4882a593Smuzhiyunconfig ROM_SIZE 296*4882a593Smuzhiyun hex 297*4882a593Smuzhiyun default 0x80000 if UBOOT_ROMSIZE_KB_512 298*4882a593Smuzhiyun default 0x100000 if UBOOT_ROMSIZE_KB_1024 299*4882a593Smuzhiyun default 0x200000 if UBOOT_ROMSIZE_KB_2048 300*4882a593Smuzhiyun default 0x400000 if UBOOT_ROMSIZE_KB_4096 301*4882a593Smuzhiyun default 0x800000 if UBOOT_ROMSIZE_KB_8192 302*4882a593Smuzhiyun default 0xc00000 if UBOOT_ROMSIZE_KB_12288 303*4882a593Smuzhiyun default 0x1000000 if UBOOT_ROMSIZE_KB_16384 304*4882a593Smuzhiyun 305*4882a593Smuzhiyunconfig HAVE_INTEL_ME 306*4882a593Smuzhiyun bool "Platform requires Intel Management Engine" 307*4882a593Smuzhiyun help 308*4882a593Smuzhiyun Newer higher-end devices have an Intel Management Engine (ME) 309*4882a593Smuzhiyun which is a very large binary blob (typically 1.5MB) which is 310*4882a593Smuzhiyun required for the platform to work. This enforces a particular 311*4882a593Smuzhiyun SPI flash format. You will need to supply the me.bin file in 312*4882a593Smuzhiyun your board directory. 313*4882a593Smuzhiyun 314*4882a593Smuzhiyunconfig X86_RAMTEST 315*4882a593Smuzhiyun bool "Perform a simple RAM test after SDRAM initialisation" 316*4882a593Smuzhiyun help 317*4882a593Smuzhiyun If there is something wrong with SDRAM then the platform will 318*4882a593Smuzhiyun often crash within U-Boot or the kernel. This option enables a 319*4882a593Smuzhiyun very simple RAM test that quickly checks whether the SDRAM seems 320*4882a593Smuzhiyun to work correctly. It is not exhaustive but can save time by 321*4882a593Smuzhiyun detecting obvious failures. 322*4882a593Smuzhiyun 323*4882a593Smuzhiyunconfig FLASH_DESCRIPTOR_FILE 324*4882a593Smuzhiyun string "Flash descriptor binary filename" 325*4882a593Smuzhiyun depends on HAVE_INTEL_ME 326*4882a593Smuzhiyun default "descriptor.bin" 327*4882a593Smuzhiyun help 328*4882a593Smuzhiyun The filename of the file to use as flash descriptor in the 329*4882a593Smuzhiyun board directory. 330*4882a593Smuzhiyun 331*4882a593Smuzhiyunconfig INTEL_ME_FILE 332*4882a593Smuzhiyun string "Intel Management Engine binary filename" 333*4882a593Smuzhiyun depends on HAVE_INTEL_ME 334*4882a593Smuzhiyun default "me.bin" 335*4882a593Smuzhiyun help 336*4882a593Smuzhiyun The filename of the file to use as Intel Management Engine in the 337*4882a593Smuzhiyun board directory. 338*4882a593Smuzhiyun 339*4882a593Smuzhiyunconfig HAVE_FSP 340*4882a593Smuzhiyun bool "Add an Firmware Support Package binary" 341*4882a593Smuzhiyun depends on !EFI 342*4882a593Smuzhiyun help 343*4882a593Smuzhiyun Select this option to add an Firmware Support Package binary to 344*4882a593Smuzhiyun the resulting U-Boot image. It is a binary blob which U-Boot uses 345*4882a593Smuzhiyun to set up SDRAM and other chipset specific initialization. 346*4882a593Smuzhiyun 347*4882a593Smuzhiyun Note: Without this binary U-Boot will not be able to set up its 348*4882a593Smuzhiyun SDRAM so will not boot. 349*4882a593Smuzhiyun 350*4882a593Smuzhiyunconfig FSP_FILE 351*4882a593Smuzhiyun string "Firmware Support Package binary filename" 352*4882a593Smuzhiyun depends on HAVE_FSP 353*4882a593Smuzhiyun default "fsp.bin" 354*4882a593Smuzhiyun help 355*4882a593Smuzhiyun The filename of the file to use as Firmware Support Package binary 356*4882a593Smuzhiyun in the board directory. 357*4882a593Smuzhiyun 358*4882a593Smuzhiyunconfig FSP_ADDR 359*4882a593Smuzhiyun hex "Firmware Support Package binary location" 360*4882a593Smuzhiyun depends on HAVE_FSP 361*4882a593Smuzhiyun default 0xfffc0000 362*4882a593Smuzhiyun help 363*4882a593Smuzhiyun FSP is not Position Independent Code (PIC) and the whole FSP has to 364*4882a593Smuzhiyun be rebased if it is placed at a location which is different from the 365*4882a593Smuzhiyun perferred base address specified during the FSP build. Use Intel's 366*4882a593Smuzhiyun Binary Configuration Tool (BCT) to do the rebase. 367*4882a593Smuzhiyun 368*4882a593Smuzhiyun The default base address of 0xfffc0000 indicates that the binary must 369*4882a593Smuzhiyun be located at offset 0xc0000 from the beginning of a 1MB flash device. 370*4882a593Smuzhiyun 371*4882a593Smuzhiyunconfig FSP_TEMP_RAM_ADDR 372*4882a593Smuzhiyun hex 373*4882a593Smuzhiyun depends on HAVE_FSP 374*4882a593Smuzhiyun default 0x2000000 375*4882a593Smuzhiyun help 376*4882a593Smuzhiyun Stack top address which is used in fsp_init() after DRAM is ready and 377*4882a593Smuzhiyun CAR is disabled. 378*4882a593Smuzhiyun 379*4882a593Smuzhiyunconfig FSP_SYS_MALLOC_F_LEN 380*4882a593Smuzhiyun hex 381*4882a593Smuzhiyun depends on HAVE_FSP 382*4882a593Smuzhiyun default 0x100000 383*4882a593Smuzhiyun help 384*4882a593Smuzhiyun Additional size of malloc() pool before relocation. 385*4882a593Smuzhiyun 386*4882a593Smuzhiyunconfig FSP_USE_UPD 387*4882a593Smuzhiyun bool 388*4882a593Smuzhiyun depends on HAVE_FSP 389*4882a593Smuzhiyun default y 390*4882a593Smuzhiyun help 391*4882a593Smuzhiyun Most FSPs use UPD data region for some FSP customization. But there 392*4882a593Smuzhiyun are still some FSPs that might not even have UPD. For such FSPs, 393*4882a593Smuzhiyun override this to n in their platform Kconfig files. 394*4882a593Smuzhiyun 395*4882a593Smuzhiyunconfig FSP_BROKEN_HOB 396*4882a593Smuzhiyun bool 397*4882a593Smuzhiyun depends on HAVE_FSP 398*4882a593Smuzhiyun help 399*4882a593Smuzhiyun Indicate some buggy FSPs that does not report memory used by FSP 400*4882a593Smuzhiyun itself as reserved in the resource descriptor HOB. Select this to 401*4882a593Smuzhiyun tell U-Boot to do some additional work to ensure U-Boot relocation 402*4882a593Smuzhiyun do not overwrite the important boot service data which is used by 403*4882a593Smuzhiyun FSP, otherwise the subsequent call to fsp_notify() will fail. 404*4882a593Smuzhiyun 405*4882a593Smuzhiyunconfig FSP_LOCKDOWN_SPI 406*4882a593Smuzhiyun bool 407*4882a593Smuzhiyun depends on HAVE_FSP 408*4882a593Smuzhiyun help 409*4882a593Smuzhiyun Some Intel FSP (like Braswell) does SPI lock-down during the call 410*4882a593Smuzhiyun to fsp_notify(INIT_PHASE_BOOT). This option should be turned on 411*4882a593Smuzhiyun for such FSP and U-Boot will configure the SPI opcode registers 412*4882a593Smuzhiyun before the lock-down. 413*4882a593Smuzhiyun 414*4882a593Smuzhiyunconfig ENABLE_MRC_CACHE 415*4882a593Smuzhiyun bool "Enable MRC cache" 416*4882a593Smuzhiyun depends on !EFI && !SYS_COREBOOT 417*4882a593Smuzhiyun help 418*4882a593Smuzhiyun Enable this feature to cause MRC data to be cached in NV storage 419*4882a593Smuzhiyun to be used for speeding up boot time on future reboots and/or 420*4882a593Smuzhiyun power cycles. 421*4882a593Smuzhiyun 422*4882a593Smuzhiyun For platforms that use Intel FSP for the memory initialization, 423*4882a593Smuzhiyun please check FSP output HOB via U-Boot command 'fsp hob' to see 424*4882a593Smuzhiyun if there is FSP_NON_VOLATILE_STORAGE_HOB_GUID (asm/fsp/fsp_hob.h). 425*4882a593Smuzhiyun If such GUID does not exist, MRC cache is not avaiable on such 426*4882a593Smuzhiyun platform (eg: Intel Queensbay), which means selecting this option 427*4882a593Smuzhiyun here does not make any difference. 428*4882a593Smuzhiyun 429*4882a593Smuzhiyunconfig HAVE_MRC 430*4882a593Smuzhiyun bool "Add a System Agent binary" 431*4882a593Smuzhiyun depends on !HAVE_FSP 432*4882a593Smuzhiyun help 433*4882a593Smuzhiyun Select this option to add a System Agent binary to 434*4882a593Smuzhiyun the resulting U-Boot image. MRC stands for Memory Reference Code. 435*4882a593Smuzhiyun It is a binary blob which U-Boot uses to set up SDRAM. 436*4882a593Smuzhiyun 437*4882a593Smuzhiyun Note: Without this binary U-Boot will not be able to set up its 438*4882a593Smuzhiyun SDRAM so will not boot. 439*4882a593Smuzhiyun 440*4882a593Smuzhiyunconfig CACHE_MRC_BIN 441*4882a593Smuzhiyun bool 442*4882a593Smuzhiyun depends on HAVE_MRC 443*4882a593Smuzhiyun default n 444*4882a593Smuzhiyun help 445*4882a593Smuzhiyun Enable caching for the memory reference code binary. This uses an 446*4882a593Smuzhiyun MTRR (memory type range register) to turn on caching for the section 447*4882a593Smuzhiyun of SPI flash that contains the memory reference code. This makes 448*4882a593Smuzhiyun SDRAM init run faster. 449*4882a593Smuzhiyun 450*4882a593Smuzhiyunconfig CACHE_MRC_SIZE_KB 451*4882a593Smuzhiyun int 452*4882a593Smuzhiyun depends on HAVE_MRC 453*4882a593Smuzhiyun default 512 454*4882a593Smuzhiyun help 455*4882a593Smuzhiyun Sets the size of the cached area for the memory reference code. 456*4882a593Smuzhiyun This ends at the end of SPI flash (address 0xffffffff) and is 457*4882a593Smuzhiyun measured in KB. Typically this is set to 512, providing for 0.5MB 458*4882a593Smuzhiyun of cached space. 459*4882a593Smuzhiyun 460*4882a593Smuzhiyunconfig DCACHE_RAM_BASE 461*4882a593Smuzhiyun hex 462*4882a593Smuzhiyun depends on HAVE_MRC 463*4882a593Smuzhiyun help 464*4882a593Smuzhiyun Sets the base of the data cache area in memory space. This is the 465*4882a593Smuzhiyun start address of the cache-as-RAM (CAR) area and the address varies 466*4882a593Smuzhiyun depending on the CPU. Once CAR is set up, read/write memory becomes 467*4882a593Smuzhiyun available at this address and can be used temporarily until SDRAM 468*4882a593Smuzhiyun is working. 469*4882a593Smuzhiyun 470*4882a593Smuzhiyunconfig DCACHE_RAM_SIZE 471*4882a593Smuzhiyun hex 472*4882a593Smuzhiyun depends on HAVE_MRC 473*4882a593Smuzhiyun default 0x40000 474*4882a593Smuzhiyun help 475*4882a593Smuzhiyun Sets the total size of the data cache area in memory space. This 476*4882a593Smuzhiyun sets the size of the cache-as-RAM (CAR) area. Note that much of the 477*4882a593Smuzhiyun CAR space is required by the MRC. The CAR space available to U-Boot 478*4882a593Smuzhiyun is normally at the start and typically extends to 1/4 or 1/2 of the 479*4882a593Smuzhiyun available size. 480*4882a593Smuzhiyun 481*4882a593Smuzhiyunconfig DCACHE_RAM_MRC_VAR_SIZE 482*4882a593Smuzhiyun hex 483*4882a593Smuzhiyun depends on HAVE_MRC 484*4882a593Smuzhiyun help 485*4882a593Smuzhiyun This is the amount of CAR (Cache as RAM) reserved for use by the 486*4882a593Smuzhiyun memory reference code. This depends on the implementation of the 487*4882a593Smuzhiyun memory reference code and must be set correctly or the board will 488*4882a593Smuzhiyun not boot. 489*4882a593Smuzhiyun 490*4882a593Smuzhiyunconfig HAVE_REFCODE 491*4882a593Smuzhiyun bool "Add a Reference Code binary" 492*4882a593Smuzhiyun help 493*4882a593Smuzhiyun Select this option to add a Reference Code binary to the resulting 494*4882a593Smuzhiyun U-Boot image. This is an Intel binary blob that handles system 495*4882a593Smuzhiyun initialisation, in this case the PCH and System Agent. 496*4882a593Smuzhiyun 497*4882a593Smuzhiyun Note: Without this binary (on platforms that need it such as 498*4882a593Smuzhiyun broadwell) U-Boot will be missing some critical setup steps. 499*4882a593Smuzhiyun Various peripherals may fail to work. 500*4882a593Smuzhiyun 501*4882a593Smuzhiyunconfig SMP 502*4882a593Smuzhiyun bool "Enable Symmetric Multiprocessing" 503*4882a593Smuzhiyun default n 504*4882a593Smuzhiyun help 505*4882a593Smuzhiyun Enable use of more than one CPU in U-Boot and the Operating System 506*4882a593Smuzhiyun when loaded. Each CPU will be started up and information can be 507*4882a593Smuzhiyun obtained using the 'cpu' command. If this option is disabled, then 508*4882a593Smuzhiyun only one CPU will be enabled regardless of the number of CPUs 509*4882a593Smuzhiyun available. 510*4882a593Smuzhiyun 511*4882a593Smuzhiyunconfig MAX_CPUS 512*4882a593Smuzhiyun int "Maximum number of CPUs permitted" 513*4882a593Smuzhiyun depends on SMP 514*4882a593Smuzhiyun default 4 515*4882a593Smuzhiyun help 516*4882a593Smuzhiyun When using multi-CPU chips it is possible for U-Boot to start up 517*4882a593Smuzhiyun more than one CPU. The stack memory used by all of these CPUs is 518*4882a593Smuzhiyun pre-allocated so at present U-Boot wants to know the maximum 519*4882a593Smuzhiyun number of CPUs that may be present. Set this to at least as high 520*4882a593Smuzhiyun as the number of CPUs in your system (it uses about 4KB of RAM for 521*4882a593Smuzhiyun each CPU). 522*4882a593Smuzhiyun 523*4882a593Smuzhiyunconfig AP_STACK_SIZE 524*4882a593Smuzhiyun hex 525*4882a593Smuzhiyun depends on SMP 526*4882a593Smuzhiyun default 0x1000 527*4882a593Smuzhiyun help 528*4882a593Smuzhiyun Each additional CPU started by U-Boot requires its own stack. This 529*4882a593Smuzhiyun option sets the stack size used by each CPU and directly affects 530*4882a593Smuzhiyun the memory used by this initialisation process. Typically 4KB is 531*4882a593Smuzhiyun enough space. 532*4882a593Smuzhiyun 533*4882a593Smuzhiyunconfig CPU_INTEL_TURBO_NOT_PACKAGE_SCOPED 534*4882a593Smuzhiyun bool 535*4882a593Smuzhiyun help 536*4882a593Smuzhiyun This option indicates that the turbo mode setting is not package 537*4882a593Smuzhiyun scoped. i.e. turbo_enable() needs to be called on not just the 538*4882a593Smuzhiyun bootstrap processor (BSP). 539*4882a593Smuzhiyun 540*4882a593Smuzhiyunconfig HAVE_VGA_BIOS 541*4882a593Smuzhiyun bool "Add a VGA BIOS image" 542*4882a593Smuzhiyun help 543*4882a593Smuzhiyun Select this option if you have a VGA BIOS image that you would 544*4882a593Smuzhiyun like to add to your ROM. 545*4882a593Smuzhiyun 546*4882a593Smuzhiyunconfig VGA_BIOS_FILE 547*4882a593Smuzhiyun string "VGA BIOS image filename" 548*4882a593Smuzhiyun depends on HAVE_VGA_BIOS 549*4882a593Smuzhiyun default "vga.bin" 550*4882a593Smuzhiyun help 551*4882a593Smuzhiyun The filename of the VGA BIOS image in the board directory. 552*4882a593Smuzhiyun 553*4882a593Smuzhiyunconfig VGA_BIOS_ADDR 554*4882a593Smuzhiyun hex "VGA BIOS image location" 555*4882a593Smuzhiyun depends on HAVE_VGA_BIOS 556*4882a593Smuzhiyun default 0xfff90000 557*4882a593Smuzhiyun help 558*4882a593Smuzhiyun The location of VGA BIOS image in the SPI flash. For example, base 559*4882a593Smuzhiyun address of 0xfff90000 indicates that the image will be put at offset 560*4882a593Smuzhiyun 0x90000 from the beginning of a 1MB flash device. 561*4882a593Smuzhiyun 562*4882a593Smuzhiyunconfig ROM_TABLE_ADDR 563*4882a593Smuzhiyun hex 564*4882a593Smuzhiyun default 0xf0000 565*4882a593Smuzhiyun help 566*4882a593Smuzhiyun All x86 tables happen to like the address range from 0x0f0000 567*4882a593Smuzhiyun to 0x100000. We use 0xf0000 as the starting address to store 568*4882a593Smuzhiyun those tables, including PIRQ routing table, Multi-Processor 569*4882a593Smuzhiyun table and ACPI table. 570*4882a593Smuzhiyun 571*4882a593Smuzhiyunconfig ROM_TABLE_SIZE 572*4882a593Smuzhiyun hex 573*4882a593Smuzhiyun default 0x10000 574*4882a593Smuzhiyun 575*4882a593Smuzhiyunmenu "System tables" 576*4882a593Smuzhiyun depends on !EFI && !SYS_COREBOOT 577*4882a593Smuzhiyun 578*4882a593Smuzhiyunconfig GENERATE_PIRQ_TABLE 579*4882a593Smuzhiyun bool "Generate a PIRQ table" 580*4882a593Smuzhiyun default n 581*4882a593Smuzhiyun help 582*4882a593Smuzhiyun Generate a PIRQ routing table for this board. The PIRQ routing table 583*4882a593Smuzhiyun is generated by U-Boot in the system memory from 0xf0000 to 0xfffff 584*4882a593Smuzhiyun at every 16-byte boundary with a PCI IRQ routing signature ("$PIR"). 585*4882a593Smuzhiyun It specifies the interrupt router information as well how all the PCI 586*4882a593Smuzhiyun devices' interrupt pins are wired to PIRQs. 587*4882a593Smuzhiyun 588*4882a593Smuzhiyunconfig GENERATE_SFI_TABLE 589*4882a593Smuzhiyun bool "Generate a SFI (Simple Firmware Interface) table" 590*4882a593Smuzhiyun help 591*4882a593Smuzhiyun The Simple Firmware Interface (SFI) provides a lightweight method 592*4882a593Smuzhiyun for platform firmware to pass information to the operating system 593*4882a593Smuzhiyun via static tables in memory. Kernel SFI support is required to 594*4882a593Smuzhiyun boot on SFI-only platforms. If you have ACPI tables then these are 595*4882a593Smuzhiyun used instead. 596*4882a593Smuzhiyun 597*4882a593Smuzhiyun U-Boot writes this table in write_sfi_table() just before booting 598*4882a593Smuzhiyun the OS. 599*4882a593Smuzhiyun 600*4882a593Smuzhiyun For more information, see http://simplefirmware.org 601*4882a593Smuzhiyun 602*4882a593Smuzhiyunconfig GENERATE_MP_TABLE 603*4882a593Smuzhiyun bool "Generate an MP (Multi-Processor) table" 604*4882a593Smuzhiyun default n 605*4882a593Smuzhiyun help 606*4882a593Smuzhiyun Generate an MP (Multi-Processor) table for this board. The MP table 607*4882a593Smuzhiyun provides a way for the operating system to support for symmetric 608*4882a593Smuzhiyun multiprocessing as well as symmetric I/O interrupt handling with 609*4882a593Smuzhiyun the local APIC and I/O APIC. 610*4882a593Smuzhiyun 611*4882a593Smuzhiyunconfig GENERATE_ACPI_TABLE 612*4882a593Smuzhiyun bool "Generate an ACPI (Advanced Configuration and Power Interface) table" 613*4882a593Smuzhiyun default n 614*4882a593Smuzhiyun select QFW if QEMU 615*4882a593Smuzhiyun help 616*4882a593Smuzhiyun The Advanced Configuration and Power Interface (ACPI) specification 617*4882a593Smuzhiyun provides an open standard for device configuration and management 618*4882a593Smuzhiyun by the operating system. It defines platform-independent interfaces 619*4882a593Smuzhiyun for configuration and power management monitoring. 620*4882a593Smuzhiyun 621*4882a593Smuzhiyunendmenu 622*4882a593Smuzhiyun 623*4882a593Smuzhiyunconfig HAVE_ACPI_RESUME 624*4882a593Smuzhiyun bool "Enable ACPI S3 resume" 625*4882a593Smuzhiyun help 626*4882a593Smuzhiyun Select this to enable ACPI S3 resume. S3 is an ACPI-defined sleeping 627*4882a593Smuzhiyun state where all system context is lost except system memory. U-Boot 628*4882a593Smuzhiyun is responsible for restoring the machine state as it was before sleep. 629*4882a593Smuzhiyun It needs restore the memory controller, without overwriting memory 630*4882a593Smuzhiyun which is not marked as reserved. For the peripherals which lose their 631*4882a593Smuzhiyun registers, U-Boot needs to write the original value. When everything 632*4882a593Smuzhiyun is done, U-Boot needs to find out the wakeup vector provided by OSes 633*4882a593Smuzhiyun and jump there. 634*4882a593Smuzhiyun 635*4882a593Smuzhiyunconfig S3_VGA_ROM_RUN 636*4882a593Smuzhiyun bool "Re-run VGA option ROMs on S3 resume" 637*4882a593Smuzhiyun depends on HAVE_ACPI_RESUME 638*4882a593Smuzhiyun default y if HAVE_ACPI_RESUME 639*4882a593Smuzhiyun help 640*4882a593Smuzhiyun Execute VGA option ROMs in U-Boot when resuming from S3. Normally 641*4882a593Smuzhiyun this is needed when graphics console is being used in the kernel. 642*4882a593Smuzhiyun 643*4882a593Smuzhiyun Turning it off can reduce some resume time, but be aware that your 644*4882a593Smuzhiyun graphics console won't work without VGA options ROMs. Set it to N 645*4882a593Smuzhiyun if your kernel is only on a serial console. 646*4882a593Smuzhiyun 647*4882a593Smuzhiyunconfig STACK_SIZE 648*4882a593Smuzhiyun hex 649*4882a593Smuzhiyun depends on HAVE_ACPI_RESUME 650*4882a593Smuzhiyun default 0x1000 651*4882a593Smuzhiyun help 652*4882a593Smuzhiyun Estimated U-Boot's runtime stack size that needs to be reserved 653*4882a593Smuzhiyun during an ACPI S3 resume. 654*4882a593Smuzhiyun 655*4882a593Smuzhiyunconfig MAX_PIRQ_LINKS 656*4882a593Smuzhiyun int 657*4882a593Smuzhiyun default 8 658*4882a593Smuzhiyun help 659*4882a593Smuzhiyun This variable specifies the number of PIRQ interrupt links which are 660*4882a593Smuzhiyun routable. On most older chipsets, this is 4, PIRQA through PIRQD. 661*4882a593Smuzhiyun Some newer chipsets offer more than four links, commonly up to PIRQH. 662*4882a593Smuzhiyun 663*4882a593Smuzhiyunconfig IRQ_SLOT_COUNT 664*4882a593Smuzhiyun int 665*4882a593Smuzhiyun default 128 666*4882a593Smuzhiyun help 667*4882a593Smuzhiyun U-Boot can support up to 254 IRQ slot info in the PIRQ routing table 668*4882a593Smuzhiyun which in turns forms a table of exact 4KiB. The default value 128 669*4882a593Smuzhiyun should be enough for most boards. If this does not fit your board, 670*4882a593Smuzhiyun change it according to your needs. 671*4882a593Smuzhiyun 672*4882a593Smuzhiyunconfig PCIE_ECAM_BASE 673*4882a593Smuzhiyun hex 674*4882a593Smuzhiyun default 0xe0000000 675*4882a593Smuzhiyun help 676*4882a593Smuzhiyun This is the memory-mapped address of PCI configuration space, which 677*4882a593Smuzhiyun is only available through the Enhanced Configuration Access 678*4882a593Smuzhiyun Mechanism (ECAM) with PCI Express. It can be set up almost 679*4882a593Smuzhiyun anywhere. Before it is set up, it is possible to access PCI 680*4882a593Smuzhiyun configuration space through I/O access, but memory access is more 681*4882a593Smuzhiyun convenient. Using this, PCI can be scanned and configured. This 682*4882a593Smuzhiyun should be set to a region that does not conflict with memory 683*4882a593Smuzhiyun assigned to PCI devices - i.e. the memory and prefetch regions, as 684*4882a593Smuzhiyun passed to pci_set_region(). 685*4882a593Smuzhiyun 686*4882a593Smuzhiyunconfig PCIE_ECAM_SIZE 687*4882a593Smuzhiyun hex 688*4882a593Smuzhiyun default 0x10000000 689*4882a593Smuzhiyun help 690*4882a593Smuzhiyun This is the size of memory-mapped address of PCI configuration space, 691*4882a593Smuzhiyun which is only available through the Enhanced Configuration Access 692*4882a593Smuzhiyun Mechanism (ECAM) with PCI Express. Each bus consumes 1 MiB memory, 693*4882a593Smuzhiyun so a default 0x10000000 size covers all of the 256 buses which is the 694*4882a593Smuzhiyun maximum number of PCI buses as defined by the PCI specification. 695*4882a593Smuzhiyun 696*4882a593Smuzhiyunconfig I8259_PIC 697*4882a593Smuzhiyun bool 698*4882a593Smuzhiyun default y 699*4882a593Smuzhiyun help 700*4882a593Smuzhiyun Intel 8259 ISA compatible chipset incorporates two 8259 (master and 701*4882a593Smuzhiyun slave) interrupt controllers. Include this to have U-Boot set up 702*4882a593Smuzhiyun the interrupt correctly. 703*4882a593Smuzhiyun 704*4882a593Smuzhiyunconfig I8254_TIMER 705*4882a593Smuzhiyun bool 706*4882a593Smuzhiyun default y 707*4882a593Smuzhiyun help 708*4882a593Smuzhiyun Intel 8254 timer contains three counters which have fixed uses. 709*4882a593Smuzhiyun Include this to have U-Boot set up the timer correctly. 710*4882a593Smuzhiyun 711*4882a593Smuzhiyunconfig SEABIOS 712*4882a593Smuzhiyun bool "Support booting SeaBIOS" 713*4882a593Smuzhiyun help 714*4882a593Smuzhiyun SeaBIOS is an open source implementation of a 16-bit X86 BIOS. 715*4882a593Smuzhiyun It can run in an emulator or natively on X86 hardware with the use 716*4882a593Smuzhiyun of coreboot/U-Boot. By turning on this option, U-Boot prepares 717*4882a593Smuzhiyun all the configuration tables that are necessary to boot SeaBIOS. 718*4882a593Smuzhiyun 719*4882a593Smuzhiyun Check http://www.seabios.org/SeaBIOS for details. 720*4882a593Smuzhiyun 721*4882a593Smuzhiyunconfig HIGH_TABLE_SIZE 722*4882a593Smuzhiyun hex "Size of configuration tables which reside in high memory" 723*4882a593Smuzhiyun default 0x10000 724*4882a593Smuzhiyun depends on SEABIOS 725*4882a593Smuzhiyun help 726*4882a593Smuzhiyun SeaBIOS itself resides in E seg and F seg, where U-Boot puts all 727*4882a593Smuzhiyun configuration tables like PIRQ/MP/ACPI. To avoid conflicts, U-Boot 728*4882a593Smuzhiyun puts a copy of configuration tables in high memory region which 729*4882a593Smuzhiyun is reserved on the stack before relocation. The region size is 730*4882a593Smuzhiyun determined by this option. 731*4882a593Smuzhiyun 732*4882a593Smuzhiyun Increse it if the default size does not fit the board's needs. 733*4882a593Smuzhiyun This is most likely due to a large ACPI DSDT table is used. 734*4882a593Smuzhiyun 735*4882a593Smuzhiyunsource "arch/x86/lib/efi/Kconfig" 736*4882a593Smuzhiyun 737*4882a593Smuzhiyunendmenu 738