1menu "x86 architecture" 2 depends on X86 3 4config SYS_ARCH 5 default "x86" 6 7choice 8 prompt "Run U-Boot in 32/64-bit mode" 9 default X86_RUN_32BIT 10 help 11 U-Boot can be built as a 32-bit binary which runs in 32-bit mode 12 even on 64-bit machines. In this case SPL is not used, and U-Boot 13 runs directly from the reset vector (via 16-bit start-up). 14 15 Alternatively it can be run as a 64-bit binary, thus requiring a 16 64-bit machine. In this case SPL runs in 32-bit mode (via 16-bit 17 start-up) then jumps to U-Boot in 64-bit mode. 18 19 For now, 32-bit mode is recommended, as 64-bit is still 20 experimental and is missing a lot of features. 21 22config X86_RUN_32BIT 23 bool "32-bit" 24 help 25 Build U-Boot as a 32-bit binary with no SPL. This is the currently 26 supported normal setup. U-Boot will stay in 32-bit mode even on 27 64-bit machines. When booting a 64-bit kernel, U-Boot will switch 28 to 64-bit just before starting the kernel. Only the bottom 4GB of 29 memory can be accessed through normal means, although 30 arch_phys_memset() can be used for basic access to other memory. 31 32config X86_RUN_64BIT 33 bool "32-bit SPL followed by 64-bit U-Boot" 34 select X86_64 35 select SPL if !EFI_APP 36 select SPL_SEPARATE_BSS if !EFI_APP 37 help 38 Build U-Boot as a 64-bit binary with a 32-bit SPL. This is 39 experimental and many features are missing. U-Boot SPL starts up, 40 runs through the 16-bit and 32-bit init, then switches to 64-bit 41 mode and jumps to U-Boot proper. 42 43config X86_RUN_64BIT_NO_SPL 44 bool "64-bit" 45 select X86_64 46 help 47 Build U-Boot as a 64-bit binary without SPL. As U-Boot enters 48 in 64-bit mode, the assumption is that the silicon is fully 49 initialized (MP, page tables, etc.). 50 51endchoice 52 53config X86_64 54 bool 55 select 64BIT 56 57config SPL_X86_64 58 bool 59 depends on SPL 60 61choice 62 prompt "Mainboard vendor" 63 default VENDOR_EMULATION 64 65config VENDOR_ADVANTECH 66 bool "advantech" 67 68config VENDOR_CONGATEC 69 bool "congatec" 70 71config VENDOR_COREBOOT 72 bool "coreboot" 73 74config VENDOR_DFI 75 bool "dfi" 76 77config VENDOR_EFI 78 bool "efi" 79 80config VENDOR_EMULATION 81 bool "emulation" 82 83config VENDOR_GOOGLE 84 bool "Google" 85 86config VENDOR_INTEL 87 bool "Intel" 88 89endchoice 90 91# subarchitectures-specific options below 92config INTEL_MID 93 bool "Intel MID platform support" 94 select REGMAP 95 select SYSCON 96 help 97 Select to build a U-Boot capable of supporting Intel MID 98 (Mobile Internet Device) platform systems which do not have 99 the PCI legacy interfaces. 100 101 If you are building for a PC class system say N here. 102 103 Intel MID platforms are based on an Intel processor and 104 chipset which consume less power than most of the x86 105 derivatives. 106 107# board-specific options below 108source "board/advantech/Kconfig" 109source "board/congatec/Kconfig" 110source "board/coreboot/Kconfig" 111source "board/dfi/Kconfig" 112source "board/efi/Kconfig" 113source "board/emulation/Kconfig" 114source "board/google/Kconfig" 115source "board/intel/Kconfig" 116 117# platform-specific options below 118source "arch/x86/cpu/apollolake/Kconfig" 119source "arch/x86/cpu/baytrail/Kconfig" 120source "arch/x86/cpu/braswell/Kconfig" 121source "arch/x86/cpu/broadwell/Kconfig" 122source "arch/x86/cpu/coreboot/Kconfig" 123source "arch/x86/cpu/ivybridge/Kconfig" 124source "arch/x86/cpu/efi/Kconfig" 125source "arch/x86/cpu/qemu/Kconfig" 126source "arch/x86/cpu/quark/Kconfig" 127source "arch/x86/cpu/queensbay/Kconfig" 128source "arch/x86/cpu/slimbootloader/Kconfig" 129source "arch/x86/cpu/tangier/Kconfig" 130 131# architecture-specific options below 132 133config AHCI 134 default y 135 136config SYS_MALLOC_F_LEN 137 default 0x800 138 139config RAMBASE 140 hex 141 default 0x100000 142 143config XIP_ROM_SIZE 144 hex 145 depends on X86_RESET_VECTOR 146 default ROM_SIZE 147 148config CPU_ADDR_BITS 149 int 150 default 36 151 152config HPET_ADDRESS 153 hex 154 default 0xfed00000 if !HPET_ADDRESS_OVERRIDE 155 156config SMM_TSEG 157 bool 158 159config SMM_TSEG_SIZE 160 hex 161 162config X86_RESET_VECTOR 163 bool 164 select BINMAN 165 166# The following options control where the 16-bit and 32-bit init lies 167# If SPL is enabled then it normally holds this init code, and U-Boot proper 168# is normally a 64-bit build. 169# 170# The 16-bit init refers to the reset vector and the small amount of code to 171# get the processor into 32-bit mode. It may be in SPL or in U-Boot proper, 172# or missing altogether if U-Boot is started from EFI or coreboot. 173# 174# The 32-bit init refers to processor init, running binary blobs including 175# FSP, setting up interrupts and anything else that needs to be done in 176# 32-bit code. It is normally in the same place as 16-bit init if that is 177# enabled (i.e. they are both in SPL, or both in U-Boot proper). 178config X86_16BIT_INIT 179 bool 180 depends on X86_RESET_VECTOR 181 default y if X86_RESET_VECTOR && !SPL 182 help 183 This is enabled when 16-bit init is in U-Boot proper 184 185config SPL_X86_16BIT_INIT 186 bool 187 depends on X86_RESET_VECTOR 188 default y if X86_RESET_VECTOR && SPL && !TPL 189 help 190 This is enabled when 16-bit init is in SPL 191 192config TPL_X86_16BIT_INIT 193 bool 194 depends on X86_RESET_VECTOR 195 default y if X86_RESET_VECTOR && TPL 196 help 197 This is enabled when 16-bit init is in TPL 198 199config X86_32BIT_INIT 200 bool 201 depends on X86_RESET_VECTOR 202 default y if X86_RESET_VECTOR && !SPL 203 help 204 This is enabled when 32-bit init is in U-Boot proper 205 206config SPL_X86_32BIT_INIT 207 bool 208 depends on X86_RESET_VECTOR 209 default y if X86_RESET_VECTOR && SPL 210 help 211 This is enabled when 32-bit init is in SPL 212 213config USE_EARLY_BOARD_INIT 214 bool 215 216config RESET_SEG_START 217 hex 218 depends on X86_RESET_VECTOR 219 default 0xffff0000 220 221config RESET_VEC_LOC 222 hex 223 depends on X86_RESET_VECTOR 224 default 0xfffffff0 225 226config SYS_X86_START16 227 hex 228 depends on X86_RESET_VECTOR 229 default 0xfffff800 230 231config HAVE_X86_FIT 232 bool 233 help 234 Enable inclusion of an Intel Firmware Interface Table (FIT) into the 235 image. This table is supposed to point to microcode and the like. So 236 far it is just a fixed table with the minimum set of headers, so that 237 it is actually present. 238 239config X86_LOAD_FROM_32_BIT 240 bool "Boot from a 32-bit program" 241 help 242 Define this to boot U-Boot from a 32-bit program which sets 243 the GDT differently. This can be used to boot directly from 244 any stage of coreboot, for example, bypassing the normal 245 payload-loading feature. 246 247config BOARD_ROMSIZE_KB_512 248 bool 249config BOARD_ROMSIZE_KB_1024 250 bool 251config BOARD_ROMSIZE_KB_2048 252 bool 253config BOARD_ROMSIZE_KB_4096 254 bool 255config BOARD_ROMSIZE_KB_8192 256 bool 257config BOARD_ROMSIZE_KB_16384 258 bool 259 260choice 261 prompt "ROM chip size" 262 depends on X86_RESET_VECTOR 263 default UBOOT_ROMSIZE_KB_512 if BOARD_ROMSIZE_KB_512 264 default UBOOT_ROMSIZE_KB_1024 if BOARD_ROMSIZE_KB_1024 265 default UBOOT_ROMSIZE_KB_2048 if BOARD_ROMSIZE_KB_2048 266 default UBOOT_ROMSIZE_KB_4096 if BOARD_ROMSIZE_KB_4096 267 default UBOOT_ROMSIZE_KB_8192 if BOARD_ROMSIZE_KB_8192 268 default UBOOT_ROMSIZE_KB_16384 if BOARD_ROMSIZE_KB_16384 269 help 270 Select the size of the ROM chip you intend to flash U-Boot on. 271 272 The build system will take care of creating a u-boot.rom file 273 of the matching size. 274 275config UBOOT_ROMSIZE_KB_512 276 bool "512 KB" 277 help 278 Choose this option if you have a 512 KB ROM chip. 279 280config UBOOT_ROMSIZE_KB_1024 281 bool "1024 KB (1 MB)" 282 help 283 Choose this option if you have a 1024 KB (1 MB) ROM chip. 284 285config UBOOT_ROMSIZE_KB_2048 286 bool "2048 KB (2 MB)" 287 help 288 Choose this option if you have a 2048 KB (2 MB) ROM chip. 289 290config UBOOT_ROMSIZE_KB_4096 291 bool "4096 KB (4 MB)" 292 help 293 Choose this option if you have a 4096 KB (4 MB) ROM chip. 294 295config UBOOT_ROMSIZE_KB_8192 296 bool "8192 KB (8 MB)" 297 help 298 Choose this option if you have a 8192 KB (8 MB) ROM chip. 299 300config UBOOT_ROMSIZE_KB_16384 301 bool "16384 KB (16 MB)" 302 help 303 Choose this option if you have a 16384 KB (16 MB) ROM chip. 304 305endchoice 306 307# Map the config names to an integer (KB). 308config UBOOT_ROMSIZE_KB 309 int 310 default 512 if UBOOT_ROMSIZE_KB_512 311 default 1024 if UBOOT_ROMSIZE_KB_1024 312 default 2048 if UBOOT_ROMSIZE_KB_2048 313 default 4096 if UBOOT_ROMSIZE_KB_4096 314 default 8192 if UBOOT_ROMSIZE_KB_8192 315 default 16384 if UBOOT_ROMSIZE_KB_16384 316 317# Map the config names to a hex value (bytes). 318config ROM_SIZE 319 hex 320 default 0x80000 if UBOOT_ROMSIZE_KB_512 321 default 0x100000 if UBOOT_ROMSIZE_KB_1024 322 default 0x200000 if UBOOT_ROMSIZE_KB_2048 323 default 0x400000 if UBOOT_ROMSIZE_KB_4096 324 default 0x800000 if UBOOT_ROMSIZE_KB_8192 325 default 0xc00000 if UBOOT_ROMSIZE_KB_12288 326 default 0x1000000 if UBOOT_ROMSIZE_KB_16384 327 328config HAVE_INTEL_ME 329 bool "Platform requires Intel Management Engine" 330 help 331 Newer higher-end devices have an Intel Management Engine (ME) 332 which is a very large binary blob (typically 1.5MB) which is 333 required for the platform to work. This enforces a particular 334 SPI flash format. You will need to supply the me.bin file in 335 your board directory. 336 337config X86_RAMTEST 338 bool "Perform a simple RAM test after SDRAM initialisation" 339 help 340 If there is something wrong with SDRAM then the platform will 341 often crash within U-Boot or the kernel. This option enables a 342 very simple RAM test that quickly checks whether the SDRAM seems 343 to work correctly. It is not exhaustive but can save time by 344 detecting obvious failures. 345 346config FLASH_DESCRIPTOR_FILE 347 string "Flash descriptor binary filename" 348 depends on HAVE_INTEL_ME || FSP_VERSION2 349 default "descriptor.bin" 350 help 351 The filename of the file to use as flash descriptor in the 352 board directory. 353 354config INTEL_ME_FILE 355 string "Intel Management Engine binary filename" 356 depends on HAVE_INTEL_ME 357 default "me.bin" 358 help 359 The filename of the file to use as Intel Management Engine in the 360 board directory. 361 362config USE_HOB 363 bool "Use HOB (Hand-Off Block)" 364 help 365 Select this option to access HOB (Hand-Off Block) data structures 366 and parse HOBs. This HOB infra structure can be reused with 367 different solutions across different platforms. 368 369config HAVE_FSP 370 bool "Add an Firmware Support Package binary" 371 depends on !EFI_CLIENT 372 select USE_HOB 373 select HAS_ROM 374 help 375 Select this option to add an Firmware Support Package binary to 376 the resulting U-Boot image. It is a binary blob which U-Boot uses 377 to set up SDRAM and other chipset specific initialization. 378 379 Note: Without this binary U-Boot will not be able to set up its 380 SDRAM so will not boot. 381 382config USE_CAR 383 bool "Use Cache-As-RAM (CAR) to get temporary RAM at start-up" 384 default y if !HAVE_FSP 385 help 386 Select this option if your board uses CAR init code, typically in a 387 car.S file, to get some initial memory for code execution. This is 388 common with Intel CPUs which don't use FSP. 389 390choice 391 prompt "FSP version" 392 depends on HAVE_FSP 393 default FSP_VERSION2 if INTEL_APOLLOLAKE 394 default FSP_VERSION1 395 help 396 Selects the FSP version to use. Intel has published several versions 397 of the FSP External Architecture Specification and this allows 398 selection of the version number used by a particular SoC. 399 400config FSP_VERSION1 401 bool "FSP version 1.x" 402 help 403 This covers versions 1.0 and 1.1a. See here for details: 404 https://github.com/IntelFsp/fsp/wiki 405 406config FSP_VERSION2 407 bool "FSP version 2.x" 408 select DM_EVENT 409 help 410 This covers versions 2.0 and 2.1. See here for details: 411 https://github.com/IntelFsp/fsp/wiki 412 413endchoice 414 415config FSP_FILE 416 string "Firmware Support Package binary filename" 417 depends on FSP_VERSION1 418 default "fsp.bin" 419 help 420 The filename of the file to use as Firmware Support Package binary 421 in the board directory. 422 423config FSP_ADDR 424 hex "Firmware Support Package binary location" 425 depends on FSP_VERSION1 426 default 0xfffc0000 427 help 428 FSP is not Position Independent Code (PIC) and the whole FSP has to 429 be rebased if it is placed at a location which is different from the 430 perferred base address specified during the FSP build. Use Intel's 431 Binary Configuration Tool (BCT) to do the rebase. 432 433 The default base address of 0xfffc0000 indicates that the binary must 434 be located at offset 0xc0000 from the beginning of a 1MB flash device. 435 436if FSP_VERSION2 437 438config FSP_FILE_T 439 string "Firmware Support Package binary filename (Temp RAM)" 440 default "fsp_t.bin" 441 help 442 The filename of the file to use for the temporary-RAM init phase from 443 the Firmware Support Package binary. Put this in the board directory. 444 It is used to set up an initial area of RAM which can be used for the 445 stack and other purposes, while bringing up the main system DRAM. 446 447config FSP_ADDR_T 448 hex "Firmware Support Package binary location (Temp RAM)" 449 default 0xffff8000 450 help 451 FSP is not Position-Independent Code (PIC) and FSP components have to 452 be rebased if placed at a location which is different from the 453 perferred base address specified during the FSP build. Use Intel's 454 Binary Configuration Tool (BCT) to do the rebase. 455 456config FSP_FILE_M 457 string "Firmware Support Package binary filename (Memory Init)" 458 default "fsp_m.bin" 459 help 460 The filename of the file to use for the RAM init phase from the 461 Firmware Support Package binary. Put this in the board directory. 462 It is used to set up the main system DRAM and runs in SPL, once 463 temporary RAM (CAR) is working. 464 465config FSP_FILE_S 466 string "Firmware Support Package binary filename (Silicon Init)" 467 default "fsp_s.bin" 468 help 469 The filename of the file to use for the Silicon init phase from the 470 Firmware Support Package binary. Put this in the board directory. 471 It is used to set up the silicon to work correctly and must be 472 executed after DRAM is running. 473 474config IFWI_INPUT_FILE 475 string "Filename containing FIT (Firmware Interface Table) with IFWI" 476 default "fitimage.bin" 477 help 478 The IFWI is obtained by running a tool on this file to extract the 479 IFWI. Put this in the board directory. The IFWI contains U-Boot TPL, 480 microcode and other internal items. 481 482endif 483 484config FSP_TEMP_RAM_ADDR 485 hex 486 depends on FSP_VERSION1 487 default 0x2000000 488 help 489 Stack top address which is used in fsp_init() after DRAM is ready and 490 CAR is disabled. 491 492config FSP_SYS_MALLOC_F_LEN 493 hex 494 depends on FSP_VERSION1 495 default 0x100000 496 help 497 Additional size of malloc() pool before relocation. 498 499config FSP_USE_UPD 500 bool 501 depends on FSP_VERSION1 502 default y if !NORTHBRIDGE_INTEL_IVYBRIDGE 503 help 504 Most FSPs use UPD data region for some FSP customization. But there 505 are still some FSPs that might not even have UPD. For such FSPs, 506 override this to n in their platform Kconfig files. 507 508config FSP_BROKEN_HOB 509 bool 510 depends on FSP_VERSION1 511 help 512 Indicate some buggy FSPs that does not report memory used by FSP 513 itself as reserved in the resource descriptor HOB. Select this to 514 tell U-Boot to do some additional work to ensure U-Boot relocation 515 do not overwrite the important boot service data which is used by 516 FSP, otherwise the subsequent call to fsp_notify() will fail. 517 518config ENABLE_MRC_CACHE 519 bool "Enable MRC cache" 520 depends on !EFI_CLIENT && !SYS_COREBOOT 521 help 522 Enable this feature to cause MRC data to be cached in NV storage 523 to be used for speeding up boot time on future reboots and/or 524 power cycles. 525 526 For platforms that use Intel FSP for the memory initialization, 527 please check FSP output HOB via U-Boot command 'fsp hob' to see 528 if there is FSP_NON_VOLATILE_STORAGE_HOB_GUID (asm/fsp1/fsp_hob.h). 529 If such GUID does not exist, MRC cache is not available on such 530 platform (eg: Intel Queensbay), which means selecting this option 531 here does not make any difference. 532 533config HAVE_MRC 534 bool "Add a System Agent binary" 535 select HAS_ROM 536 depends on !HAVE_FSP 537 help 538 Select this option to add a System Agent binary to 539 the resulting U-Boot image. MRC stands for Memory Reference Code. 540 It is a binary blob which U-Boot uses to set up SDRAM. 541 542 Note: Without this binary U-Boot will not be able to set up its 543 SDRAM so will not boot. 544 545config CACHE_MRC_BIN 546 bool 547 depends on HAVE_MRC 548 help 549 Enable caching for the memory reference code binary. This uses an 550 MTRR (memory type range register) to turn on caching for the section 551 of SPI flash that contains the memory reference code. This makes 552 SDRAM init run faster. 553 554config CACHE_MRC_SIZE_KB 555 int 556 depends on HAVE_MRC 557 default 512 558 help 559 Sets the size of the cached area for the memory reference code. 560 This ends at the end of SPI flash (address 0xffffffff) and is 561 measured in KB. Typically this is set to 512, providing for 0.5MB 562 of cached space. 563 564config DCACHE_RAM_BASE 565 hex 566 depends on HAVE_MRC 567 help 568 Sets the base of the data cache area in memory space. This is the 569 start address of the cache-as-RAM (CAR) area and the address varies 570 depending on the CPU. Once CAR is set up, read/write memory becomes 571 available at this address and can be used temporarily until SDRAM 572 is working. 573 574config DCACHE_RAM_SIZE 575 hex 576 depends on HAVE_MRC 577 default 0x40000 578 help 579 Sets the total size of the data cache area in memory space. This 580 sets the size of the cache-as-RAM (CAR) area. Note that much of the 581 CAR space is required by the MRC. The CAR space available to U-Boot 582 is normally at the start and typically extends to 1/4 or 1/2 of the 583 available size. 584 585config DCACHE_RAM_MRC_VAR_SIZE 586 hex 587 depends on HAVE_MRC 588 help 589 This is the amount of CAR (Cache as RAM) reserved for use by the 590 memory reference code. This depends on the implementation of the 591 memory reference code and must be set correctly or the board will 592 not boot. 593 594config HAVE_REFCODE 595 bool "Add a Reference Code binary" 596 help 597 Select this option to add a Reference Code binary to the resulting 598 U-Boot image. This is an Intel binary blob that handles system 599 initialisation, in this case the PCH and System Agent. 600 601 Note: Without this binary (on platforms that need it such as 602 broadwell) U-Boot will be missing some critical setup steps. 603 Various peripherals may fail to work. 604 605config HAVE_MICROCODE 606 bool "Board requires a microcode binary" 607 default y if !FSP_VERSION2 608 help 609 Enable this if the board requires microcode to be loaded on boot. 610 Typically this is handed by the FSP for modern boards, but for 611 some older boards, it must be programmed by U-Boot, and that form 612 part of the image. 613 614config SMP 615 bool "Enable Symmetric Multiprocessing" 616 help 617 Enable use of more than one CPU in U-Boot and the Operating System 618 when loaded. Each CPU will be started up and information can be 619 obtained using the 'cpu' command. If this option is disabled, then 620 only one CPU will be enabled regardless of the number of CPUs 621 available. 622 623config SMP_AP_WORK 624 bool 625 depends on SMP 626 help 627 Allow APs to do other work after initialisation instead of going 628 to sleep. 629 630config MAX_CPUS 631 int "Maximum number of CPUs permitted" 632 depends on SMP 633 default 4 634 help 635 When using multi-CPU chips it is possible for U-Boot to start up 636 more than one CPU. The stack memory used by all of these CPUs is 637 pre-allocated so at present U-Boot wants to know the maximum 638 number of CPUs that may be present. Set this to at least as high 639 as the number of CPUs in your system (it uses about 4KB of RAM for 640 each CPU). 641 642config AP_STACK_SIZE 643 hex 644 depends on SMP 645 default 0x1000 646 help 647 Each additional CPU started by U-Boot requires its own stack. This 648 option sets the stack size used by each CPU and directly affects 649 the memory used by this initialisation process. Typically 4KB is 650 enough space. 651 652config CPU_INTEL_TURBO_NOT_PACKAGE_SCOPED 653 bool 654 help 655 This option indicates that the turbo mode setting is not package 656 scoped. i.e. turbo_enable() needs to be called on not just the 657 bootstrap processor (BSP). 658 659config HAVE_VGA_BIOS 660 bool "Add a VGA BIOS image" 661 help 662 Select this option if you have a VGA BIOS image that you would 663 like to add to your ROM. 664 665config VGA_BIOS_FILE 666 string "VGA BIOS image filename" 667 depends on HAVE_VGA_BIOS 668 default "vga.bin" 669 help 670 The filename of the VGA BIOS image in the board directory. 671 672config VGA_BIOS_ADDR 673 hex "VGA BIOS image location" 674 depends on HAVE_VGA_BIOS 675 default 0xfff90000 676 help 677 The location of VGA BIOS image in the SPI flash. For example, base 678 address of 0xfff90000 indicates that the image will be put at offset 679 0x90000 from the beginning of a 1MB flash device. 680 681config HAVE_VBT 682 bool "Add a Video BIOS Table (VBT) image" 683 depends on HAVE_FSP 684 help 685 Select this option if you have a Video BIOS Table (VBT) image that 686 you would like to add to your ROM. This is normally required if you 687 are using an Intel FSP firmware that is complaint with spec 1.1 or 688 later to initialize the integrated graphics device (IGD). 689 690 Video BIOS Table, or VBT, provides platform and board specific 691 configuration information to the driver that is not discoverable 692 or available through other means. By other means the most used 693 method here is to read EDID table from the attached monitor, over 694 Display Data Channel (DDC) using two pin I2C serial interface. VBT 695 configuration is related to display hardware and is available via 696 the ACPI OpRegion or, on older systems, in the PCI ROM (Option ROM). 697 698config VBT_FILE 699 string "Video BIOS Table (VBT) image filename" 700 depends on HAVE_VBT 701 default "vbt.bin" 702 help 703 The filename of the file to use as Video BIOS Table (VBT) image 704 in the board directory. 705 706config VBT_ADDR 707 hex "Video BIOS Table (VBT) image location" 708 depends on HAVE_VBT 709 default 0xfff90000 710 help 711 The location of Video BIOS Table (VBT) image in the SPI flash. For 712 example, base address of 0xfff90000 indicates that the image will 713 be put at offset 0x90000 from the beginning of a 1MB flash device. 714 715config VIDEO_FSP 716 bool "Enable FSP framebuffer driver support" 717 depends on HAVE_VBT && VIDEO 718 help 719 Turn on this option to enable a framebuffer driver when U-Boot is 720 using Video BIOS Table (VBT) image for FSP firmware to initialize 721 the integrated graphics device. 722 723config ROM_TABLE_ADDR 724 hex 725 default 0xf0000 726 help 727 All x86 tables happen to like the address range from 0x0f0000 728 to 0x100000. We use 0xf0000 as the starting address to store 729 those tables, including PIRQ routing table, Multi-Processor 730 table and ACPI table. 731 732config ROM_TABLE_SIZE 733 hex 734 default 0x10000 735 736config X86_HARDFP 737 bool "Support hardware floating point" 738 help 739 U-Boot generally does not make use of floating point. Where this is 740 needed, it can be enabled using this option. This adjusts the 741 start-up code for 64-bit mode and changes the compiler options for 742 64-bit to enable SSE. 743 744config HAVE_ITSS 745 bool "Enable ITSS" 746 help 747 Select this to include the driver for the Interrupt Timer 748 Subsystem (ITSS) which is found on several Intel devices. 749 750config HAVE_P2SB 751 bool "Enable P2SB" 752 depends on P2SB 753 help 754 Select this to include the driver for the Primary to 755 Sideband Bridge (P2SB) which is found on several Intel 756 devices. 757 758menu "System tables" 759 depends on !EFI_CLIENT && !SYS_COREBOOT 760 761config GENERATE_PIRQ_TABLE 762 bool "Generate a PIRQ table" 763 help 764 Generate a PIRQ routing table for this board. The PIRQ routing table 765 is generated by U-Boot in the system memory from 0xf0000 to 0xfffff 766 at every 16-byte boundary with a PCI IRQ routing signature ("$PIR"). 767 It specifies the interrupt router information as well how all the PCI 768 devices' interrupt pins are wired to PIRQs. 769 770config GENERATE_SFI_TABLE 771 bool "Generate a SFI (Simple Firmware Interface) table" 772 help 773 The Simple Firmware Interface (SFI) provides a lightweight method 774 for platform firmware to pass information to the operating system 775 via static tables in memory. Kernel SFI support is required to 776 boot on SFI-only platforms. If you have ACPI tables then these are 777 used instead. 778 779 U-Boot writes this table in write_sfi_table() just before booting 780 the OS. 781 782 For more information, see http://simplefirmware.org 783 784config GENERATE_MP_TABLE 785 bool "Generate an MP (Multi-Processor) table" 786 help 787 Generate an MP (Multi-Processor) table for this board. The MP table 788 provides a way for the operating system to support for symmetric 789 multiprocessing as well as symmetric I/O interrupt handling with 790 the local APIC and I/O APIC. 791 792config ACPI_GNVS_EXTERNAL 793 bool 794 help 795 Put the GNVS (Global Non-Volatile Sleeping) table separate from the 796 DSDT and add a pointer to the table from the DSDT. This allows 797 U-Boot to better control the address of the GNVS. 798 799endmenu 800 801config HAVE_ACPI_RESUME 802 bool "Enable ACPI S3 resume" 803 select ENABLE_MRC_CACHE 804 help 805 Select this to enable ACPI S3 resume. S3 is an ACPI-defined sleeping 806 state where all system context is lost except system memory. U-Boot 807 is responsible for restoring the machine state as it was before sleep. 808 It needs restore the memory controller, without overwriting memory 809 which is not marked as reserved. For the peripherals which lose their 810 registers, U-Boot needs to write the original value. When everything 811 is done, U-Boot needs to find out the wakeup vector provided by OSes 812 and jump there. 813 814config S3_VGA_ROM_RUN 815 bool "Re-run VGA option ROMs on S3 resume" 816 depends on HAVE_ACPI_RESUME 817 help 818 Execute VGA option ROMs in U-Boot when resuming from S3. Normally 819 this is needed when graphics console is being used in the kernel. 820 821 Turning it off can reduce some resume time, but be aware that your 822 graphics console won't work without VGA options ROMs. Set it to N 823 if your kernel is only on a serial console. 824 825config STACK_SIZE_RESUME 826 hex 827 depends on HAVE_ACPI_RESUME 828 default 0x1000 829 help 830 Estimated U-Boot's runtime stack size that needs to be reserved 831 during an ACPI S3 resume. 832 833config MAX_PIRQ_LINKS 834 int 835 default 8 836 help 837 This variable specifies the number of PIRQ interrupt links which are 838 routable. On most older chipsets, this is 4, PIRQA through PIRQD. 839 Some newer chipsets offer more than four links, commonly up to PIRQH. 840 841config IRQ_SLOT_COUNT 842 int 843 default 128 844 help 845 U-Boot can support up to 254 IRQ slot info in the PIRQ routing table 846 which in turns forms a table of exact 4KiB. The default value 128 847 should be enough for most boards. If this does not fit your board, 848 change it according to your needs. 849 850config PCIE_ECAM_BASE 851 hex 852 default 0xe0000000 853 help 854 This is the memory-mapped address of PCI configuration space, which 855 is only available through the Enhanced Configuration Access 856 Mechanism (ECAM) with PCI Express. It can be set up almost 857 anywhere. Before it is set up, it is possible to access PCI 858 configuration space through I/O access, but memory access is more 859 convenient. Using this, PCI can be scanned and configured. This 860 should be set to a region that does not conflict with memory 861 assigned to PCI devices - i.e. the memory and prefetch regions, as 862 passed to pci_set_region(). 863 864config PCIE_ECAM_SIZE 865 hex 866 default 0x10000000 867 help 868 This is the size of memory-mapped address of PCI configuration space, 869 which is only available through the Enhanced Configuration Access 870 Mechanism (ECAM) with PCI Express. Each bus consumes 1 MiB memory, 871 so a default 0x10000000 size covers all of the 256 buses which is the 872 maximum number of PCI buses as defined by the PCI specification. 873 874config I8259_PIC 875 bool "Enable Intel 8259 compatible interrupt controller" 876 default y 877 help 878 Intel 8259 ISA compatible chipset incorporates two 8259 (master and 879 slave) interrupt controllers. Include this to have U-Boot set up 880 the interrupt correctly. 881 882config APIC 883 bool "Enable Intel Advanced Programmable Interrupt Controller" 884 default y 885 help 886 The (A)dvanced (P)rogrammable (I)nterrupt (C)ontroller is responsible 887 for catching interrupts and distributing them to one or more CPU 888 cores. In most cases there are some LAPICs (local) for each core and 889 one I/O APIC. This conjunction is found on most modern x86 systems. 890 891config PINCTRL_ICH6 892 bool 893 help 894 Intel ICH6 compatible chipset pinctrl driver. It needs to work 895 together with the ICH6 compatible gpio driver. 896 897config I8254_TIMER 898 bool 899 default y 900 help 901 Intel 8254 timer contains three counters which have fixed uses. 902 Include this to have U-Boot set up the timer correctly. 903 904config SEABIOS 905 bool "Support booting SeaBIOS" 906 help 907 SeaBIOS is an open source implementation of a 16-bit X86 BIOS. 908 It can run in an emulator or natively on X86 hardware with the use 909 of coreboot/U-Boot. By turning on this option, U-Boot prepares 910 all the configuration tables that are necessary to boot SeaBIOS. 911 912 Check http://www.seabios.org/SeaBIOS for details. 913 914config HIGH_TABLE_SIZE 915 hex "Size of configuration tables which reside in high memory" 916 default 0x10000 917 depends on SEABIOS 918 help 919 SeaBIOS itself resides in E seg and F seg, where U-Boot puts all 920 configuration tables like PIRQ/MP/ACPI. To avoid conflicts, U-Boot 921 puts a copy of configuration tables in high memory region which 922 is reserved on the stack before relocation. The region size is 923 determined by this option. 924 925 Increse it if the default size does not fit the board's needs. 926 This is most likely due to a large ACPI DSDT table is used. 927 928config INTEL_CAR_CQOS 929 bool "Support Intel Cache Quality of Service" 930 help 931 Cache Quality of Service allows more fine-grained control of cache 932 usage. As result, it is possible to set up a portion of L2 cache for 933 CAR and use the remainder for actual caching. 934 935# 936# Each bit in QOS mask controls this many bytes. This is calculated as: 937# (CACHE_WAYS / CACHE_BITS_PER_MASK) * CACHE_LINE_SIZE * CACHE_SETS 938# 939config CACHE_QOS_SIZE_PER_BIT 940 hex 941 depends on INTEL_CAR_CQOS 942 default 0x20000 # 128 KB 943 944config X86_OFFSET_U_BOOT 945 hex "Offset of U-Boot in ROM image" 946 depends on HAVE_TEXT_BASE 947 default TEXT_BASE 948 949config X86_OFFSET_SPL 950 hex "Offset of SPL in ROM image" 951 depends on SPL && X86 952 default SPL_TEXT_BASE 953 954config ACPI_GPE 955 bool "Support ACPI general-purpose events" 956 help 957 Enable a driver for ACPI GPEs to allow peripherals to send interrupts 958 via ACPI to the OS. In U-Boot this is only used when U-Boot itself 959 needs access to these interrupts. This can happen when it uses a 960 peripheral that is set up to use GPEs and so cannot use the normal 961 GPIO mechanism for polling an input. 962 963 See https://queue.acm.org/blogposting.cfm?id=18977 for more info 964 965config SPL_ACPI_GPE 966 bool "Support ACPI general-purpose events in SPL" 967 depends on SPL 968 help 969 Enable a driver for ACPI GPEs to allow peripherals to send interrupts 970 via ACPI to the OS. In U-Boot this is only used when U-Boot itself 971 needs access to these interrupts. This can happen when it uses a 972 peripheral that is set up to use GPEs and so cannot use the normal 973 GPIO mechanism for polling an input. 974 975 See https://queue.acm.org/blogposting.cfm?id=18977 for more info 976 977config TPL_ACPI_GPE 978 bool "Support ACPI general-purpose events in TPL" 979 depends on TPL 980 help 981 Enable a driver for ACPI GPEs to allow peripherals to send interrupts 982 via ACPI to the OS. In U-Boot this is only used when U-Boot itself 983 needs access to these interrupts. This can happen when it uses a 984 peripheral that is set up to use GPEs and so cannot use the normal 985 GPIO mechanism for polling an input. 986 987 See https://queue.acm.org/blogposting.cfm?id=18977 for more info 988 989config SA_PCIEX_LENGTH 990 hex 991 default 0x10000000 if (PCIEX_LENGTH_256MB) 992 default 0x8000000 if (PCIEX_LENGTH_128MB) 993 default 0x4000000 if (PCIEX_LENGTH_64MB) 994 default 0x10000000 995 help 996 This option allows you to select length of PCIEX region. 997 998config PCIEX_LENGTH_256MB 999 bool 1000 1001config PCIEX_LENGTH_128MB 1002 bool 1003 1004config PCIEX_LENGTH_64MB 1005 bool 1006 1007config INTEL_SOC 1008 bool 1009 help 1010 This is enabled on Intel SoCs that can support various advanced 1011 features such as power management (requiring asm/arch/pm.h), system 1012 agent (asm/arch/systemagent.h) and an I/O map for ACPI 1013 (asm/arch/iomap.h). 1014 1015 This cannot be selected in a defconfig file. It must be enabled by a 1016 'select' in the SoC's Kconfig. 1017 1018if INTEL_SOC 1019 1020config INTEL_ACPIGEN 1021 bool "Support ACPI table generation for Intel SoCs" 1022 depends on ACPIGEN 1023 help 1024 This option adds some functions used for programmatic generation of 1025 ACPI tables on Intel SoCs. This provides features for writing CPU 1026 information such as P states and T stages. Also included is a way 1027 to create a GNVS table and set it up. 1028 1029config INTEL_GMA_ACPI 1030 bool "Generate ACPI table for Intel GMA graphics" 1031 help 1032 The Intel GMA graphics driver in Linux expects an ACPI table 1033 which describes the layout of the registers and the display 1034 connected to the device. Enable this option to create this 1035 table so that graphics works correctly. 1036 1037config INTEL_GENERIC_WIFI 1038 bool "Enable generation of ACPI tables for Intel WiFi" 1039 help 1040 Select this option to provide code to a build generic WiFi ACPI table 1041 for Intel WiFi devices. This is not a WiFi driver and offers no 1042 network functionality. It is only here to generate the ACPI tables 1043 required by Linux. 1044 1045config INTEL_GMA_SWSMISCI 1046 bool 1047 help 1048 Select this option for Atom-based platforms which use the SWSMISCI 1049 register (0xe0) rather than the SWSCI register (0xe8). 1050 1051endif # INTEL_SOC 1052 1053config COREBOOT_SYSINFO 1054 bool "Support reading coreboot sysinfo" 1055 default y if SYS_COREBOOT 1056 help 1057 Select this option to read the coreboot sysinfo table on start-up, 1058 if present. This is written by coreboot before it exits and provides 1059 various pieces of information about the running system, including 1060 display, memory and build information. It is stored in 1061 struct sysinfo_t after parsing by get_coreboot_info(). 1062 1063config SPL_COREBOOT_SYSINFO 1064 bool "Support reading coreboot sysinfo" 1065 depends on SPL 1066 default y if COREBOOT_SYSINFO 1067 help 1068 Select this option to read the coreboot sysinfo table in SPL, 1069 if present. This is written by coreboot before it exits and provides 1070 various pieces of information about the running system, including 1071 display, memory and build information. It is stored in 1072 struct sysinfo_t after parsing by get_coreboot_info(). 1073 1074config ZBOOT 1075 bool "Support the zImage format" 1076 default y 1077 help 1078 Enable this to support booting the x86-specific zImage format. This 1079 uses a special, binary format containing information about the Linux 1080 format to boot. 1081 1082endmenu 1083