1menu "SPL / TPL" 2 3config SUPPORT_SPL 4 bool 5 6config SUPPORT_TPL 7 bool 8 9config SPL 10 bool 11 depends on SUPPORT_SPL 12 prompt "Enable SPL" 13 help 14 If you want to build SPL as well as the normal image, say Y. 15 16config SPL_RAW_IMAGE_SUPPORT 17 bool "Support SPL loading and booting of RAW images" 18 depends on SPL 19 default n if (ARCH_MX6 && (SPL_MMC_SUPPORT || SPL_SATA_SUPPORT)) 20 default y 21 help 22 SPL will support loading and booting a RAW image when this option 23 is y. If this is not set, SPL will move on to other available 24 boot media to find a suitable image. 25 26config SPL_SYS_MALLOC_SIMPLE 27 bool 28 depends on SPL 29 prompt "Only use malloc_simple functions in the SPL" 30 help 31 Say Y here to only use the *_simple malloc functions from 32 malloc_simple.c, rather then using the versions from dlmalloc.c; 33 this will make the SPL binary smaller at the cost of more heap 34 usage as the *_simple malloc functions do not re-use free-ed mem. 35 36config SPL_STACK_R 37 depends on SPL 38 bool "Enable SDRAM location for SPL stack" 39 help 40 SPL starts off execution in SRAM and thus typically has only a small 41 stack available. Since SPL sets up DRAM while in its board_init_f() 42 function, it is possible for the stack to move there before 43 board_init_r() is reached. This option enables a special SDRAM 44 location for the SPL stack. U-Boot SPL switches to this after 45 board_init_f() completes, and before board_init_r() starts. 46 47config SPL_STACK_R_ADDR 48 depends on SPL_STACK_R 49 hex "SDRAM location for SPL stack" 50 help 51 Specify the address in SDRAM for the SPL stack. This will be set up 52 before board_init_r() is called. 53 54config SPL_STACK_R_MALLOC_SIMPLE_LEN 55 depends on SPL_STACK_R && SPL_SYS_MALLOC_SIMPLE 56 hex "Size of malloc_simple heap after switching to DRAM SPL stack" 57 default 0x100000 58 help 59 Specify the amount of the stack to use as memory pool for 60 malloc_simple after switching the stack to DRAM. This may be set 61 to give board_init_r() a larger heap then the initial heap in 62 SRAM which is limited to SYS_MALLOC_F_LEN bytes. 63 64config SPL_SEPARATE_BSS 65 depends on SPL 66 bool "BSS section is in a different memory region from text" 67 help 68 Some platforms need a large BSS region in SPL and can provide this 69 because RAM is already set up. In this case BSS can be moved to RAM. 70 This option should then be enabled so that the correct device tree 71 location is used. Normally we put the device tree at the end of BSS 72 but with this option enabled, it goes at _image_binary_end. 73 74config SPL_DISPLAY_PRINT 75 depends on SPL 76 bool "Display a board-specific message in SPL" 77 help 78 If this option is enabled, U-Boot will call the function 79 spl_display_print() immediately after displaying the SPL console 80 banner ("U-Boot SPL ..."). This function should be provided by 81 the board. 82 83config SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR 84 bool "MMC raw mode: by sector" 85 depends on SPL 86 default y if ARCH_SUNXI || ARCH_DAVINCI || ARCH_UNIPHIER ||ARCH_MX6 || \ 87 ARCH_ROCKCHIP || ARCH_MVEBU || ARCH_SOCFPGA || \ 88 ARCH_AT91 || ARCH_ZYNQ || ARCH_KEYSTONE || OMAP34XX || \ 89 OMAP44XX || OMAP54XX || AM33XX || AM43XX 90 help 91 Use sector number for specifying U-Boot location on MMC/SD in 92 raw mode. 93 94config SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR 95 hex "Address on the MMC to load U-Boot from" 96 depends on SPL && SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR 97 default 0x50 if ARCH_SUNXI 98 default 0x75 if ARCH_DAVINCI 99 default 0x8a if ARCH_MX6 100 default 0x100 if ARCH_ROCKCHIP || ARCH_UNIPHIER 101 default 0x140 if ARCH_MVEBU 102 default 0x200 if ARCH_SOCFPGA || ARCH_AT91 103 default 0x300 if ARCH_ZYNQ || ARCH_KEYSTONE || OMAP34XX || OMAP44XX || \ 104 OMAP54XX || AM33XX || AM43XX 105 help 106 Address on the MMC to load U-Boot from, when the MMC is being used 107 in raw mode. Units: MMC sectors (1 sector = 512 bytes). 108 109config SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION 110 bool "MMC Raw mode: by partition" 111 depends on SPL 112 help 113 Use a partition for loading U-Boot when using MMC/SD in raw mode. 114 115config SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION 116 hex "Partition to use to load U-Boot from" 117 depends on SPL && SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION 118 default 1 119 help 120 Partition on the MMC to load U-Boot from when the MMC is being 121 used in raw mode 122 123config SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION_TYPE 124 bool "MMC raw mode: by partition type" 125 depends on SPL && DOS_PARTITION && \ 126 SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION 127 help 128 Use partition type for specifying U-Boot partition on MMC/SD in 129 raw mode. U-Boot will be loaded from the first partition of this 130 type to be found. 131 132config SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION_TYPE 133 hex "Partition Type on the MMC to load U-Boot from" 134 depends on SPL && SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION_TYPE 135 help 136 Partition Type on the MMC to load U-Boot from, when the MMC is being 137 used in raw mode. 138 139config TPL 140 bool 141 depends on SPL && SUPPORT_TPL 142 prompt "Enable TPL" 143 help 144 If you want to build TPL as well as the normal image and SPL, say Y. 145 146config SPL_CRC32_SUPPORT 147 bool "Support CRC32" 148 depends on SPL_FIT 149 help 150 Enable this to support CRC32 in FIT images within SPL. This is a 151 32-bit checksum value that can be used to verify images. This is 152 the least secure type of checksum, suitable for detected 153 accidental image corruption. For secure applications you should 154 consider SHA1 or SHA256. 155 156config SPL_MD5_SUPPORT 157 bool "Support MD5" 158 depends on SPL_FIT 159 help 160 Enable this to support MD5 in FIT images within SPL. An MD5 161 checksum is a 128-bit hash value used to check that the image 162 contents have not been corrupted. Note that MD5 is not considered 163 secure as it is possible (with a brute-force attack) to adjust the 164 image while still retaining the same MD5 hash value. For secure 165 applications where images may be changed maliciously, you should 166 consider SHA1 or SHA256. 167 168config SPL_SHA1_SUPPORT 169 bool "Support SHA1" 170 depends on SPL_FIT 171 help 172 Enable this to support SHA1 in FIT images within SPL. A SHA1 173 checksum is a 160-bit (20-byte) hash value used to check that the 174 image contents have not been corrupted or maliciously altered. 175 While SHA1 is fairly secure it is coming to the end of its life 176 due to the expanding computing power avaiable to brute-force 177 attacks. For more security, consider SHA256. 178 179config SPL_SHA256_SUPPORT 180 bool "Support SHA256" 181 depends on SPL_FIT 182 help 183 Enable this to support SHA256 in FIT images within SPL. A SHA256 184 checksum is a 256-bit (32-byte) hash value used to check that the 185 image contents have not been corrupted. SHA256 is recommended for 186 use in secure applications since (as at 2016) there is no known 187 feasible attack that could produce a 'collision' with differing 188 input data. Use this for the highest security. Note that only the 189 SHA256 variant is supported: SHA512 and others are not currently 190 supported in U-Boot. 191 192config SPL_CPU_SUPPORT 193 bool "Support CPU drivers" 194 depends on SPL 195 help 196 Enable this to support CPU drivers in SPL. These drivers can set 197 up CPUs and provide information about them such as the model and 198 name. This can be useful in SPL since setting up the CPUs earlier 199 may improve boot performance. Enable this option to build the 200 drivers in drivers/cpu as part of an SPL build. 201 202config SPL_CRYPTO_SUPPORT 203 bool "Support crypto drivers" 204 depends on SPL 205 help 206 Enable crypto drivers in SPL. These drivers can be used to 207 accelerate secure boot processing in secure applications. Enable 208 this option to build the drivers in drivers/crypto as part of an 209 SPL build. 210 211config SPL_HASH_SUPPORT 212 bool "Support hashing drivers" 213 depends on SPL 214 help 215 Enable hashing drivers in SPL. These drivers can be used to 216 accelerate secure boot processing in secure applications. Enable 217 this option to build system-specific drivers for hash acceleration 218 as part of an SPL build. 219 220config SPL_DMA_SUPPORT 221 bool "Support DMA drivers" 222 depends on SPL 223 help 224 Enable DMA (direct-memory-access) drivers in SPL. These drivers 225 can be used to handle memory-to-peripheral data transfer without 226 the CPU moving the data. Enable this option to build the drivers 227 in drivers/dma as part of an SPL build. 228 229config SPL_DRIVERS_MISC_SUPPORT 230 bool "Support misc drivers" 231 depends on SPL 232 help 233 Enable miscellaneous drivers in SPL. These drivers perform various 234 tasks that don't fall nicely into other categories, Enable this 235 option to build the drivers in drivers/misc as part of an SPL 236 build, for those that support building in SPL (not all drivers do). 237 238config SPL_ENV_SUPPORT 239 bool "Support an environment" 240 depends on SPL 241 help 242 Enable environment support in SPL. The U-Boot environment provides 243 a number of settings (essentially name/value pairs) which can 244 control many aspects of U-Boot's operation. Normally this is not 245 needed in SPL as it has a much simpler task with less 246 configuration. But some boards use this to support 'Falcon' boot 247 on EXT2 and FAT, where SPL boots directly into Linux without 248 starting U-Boot first. Enabling this option will make getenv() 249 and setenv() available in SPL. 250 251config SPL_SAVEENV 252 bool "Support save environment" 253 depends on SPL && SPL_ENV_SUPPORT 254 help 255 Enable save environment support in SPL after setenv. By default 256 the saveenv option is not provided in SPL, but some boards need 257 this support in 'Falcon' boot, where SPL need to boot from 258 different images based on environment variable set by OS. For 259 example OS may set "reboot_image" environment variable to 260 "recovery" inorder to boot recovery image by SPL. The SPL read 261 "reboot_image" and act accordingly and change the reboot_image 262 to default mode using setenv and save the environemnt. 263 264config SPL_ETH_SUPPORT 265 bool "Support Ethernet" 266 depends on SPL_ENV_SUPPORT 267 help 268 Enable access to the network subsystem and associated Ethernet 269 drivers in SPL. This permits SPL to load U-Boot over an Ethernet 270 link rather than from an on-board peripheral. Environment support 271 is required since the network stack uses a number of environment 272 variables. See also SPL_NET_SUPPORT. 273 274config SPL_EXT_SUPPORT 275 bool "Support EXT filesystems" 276 depends on SPL 277 help 278 Enable support for EXT2/3/4 filesystems with SPL. This permits 279 U-Boot (or Linux in Falcon mode) to be loaded from an EXT 280 filesystem from within SPL. Support for the underlying block 281 device (e.g. MMC or USB) must be enabled separately. 282 283config SPL_FAT_SUPPORT 284 bool "Support FAT filesystems" 285 depends on SPL 286 help 287 Enable support for FAT and VFAT filesystems with SPL. This 288 permits U-Boot (or Linux in Falcon mode) to be loaded from a FAT 289 filesystem from within SPL. Support for the underlying block 290 device (e.g. MMC or USB) must be enabled separately. 291 292config SPL_FPGA_SUPPORT 293 bool "Support FPGAs" 294 depends on SPL 295 help 296 Enable support for FPGAs in SPL. Field-programmable Gate Arrays 297 provide software-configurable hardware which is typically used to 298 implement peripherals (such as UARTs, LCD displays, MMC) or 299 accelerate custom processing functions, such as image processing 300 or machine learning. Sometimes it is useful to program the FPGA 301 as early as possible during boot, and this option can enable that 302 within SPL. 303 304config SPL_GPIO_SUPPORT 305 bool "Support GPIO" 306 depends on SPL 307 help 308 Enable support for GPIOs (General-purpose Input/Output) in SPL. 309 GPIOs allow U-Boot to read the state of an input line (high or 310 low) and set the state of an output line. This can be used to 311 drive LEDs, control power to various system parts and read user 312 input. GPIOs can be useful in SPL to enable a 'sign-of-life' LED, 313 for example. Enable this option to build the drivers in 314 drivers/gpio as part of an SPL build. 315 316config SPL_I2C_SUPPORT 317 bool "Support I2C" 318 depends on SPL 319 help 320 Enable support for the I2C (Inter-Integrated Circuit) bus in SPL. 321 I2C works with a clock and data line which can be driven by a 322 one or more masters or slaves. It is a fairly complex bus but is 323 widely used as it only needs two lines for communication. Speeds of 324 400kbps are typical but up to 3.4Mbps is supported by some 325 hardware. I2C can be useful in SPL to configure power management 326 ICs (PMICs) before raising the CPU clock speed, for example. 327 Enable this option to build the drivers in drivers/i2c as part of 328 an SPL build. 329 330config SPL_LIBCOMMON_SUPPORT 331 bool "Support common libraries" 332 depends on SPL 333 help 334 Enable support for common U-Boot libraries within SPL. These 335 libraries include common code to deal with U-Boot images, 336 environment and USB, for example. This option is enabled on many 337 boards. Enable this option to build the code in common/ as part of 338 an SPL build. 339 340config SPL_LIBDISK_SUPPORT 341 bool "Support disk paritions" 342 depends on SPL 343 help 344 Enable support for disk partitions within SPL. 'Disk' is something 345 of a misnomer as it includes non-spinning media such as flash (as 346 used in MMC and USB sticks). Partitions provide a way for a disk 347 to be split up into separate regions, with a partition table placed 348 at the start or end which describes the location and size of each 349 'partition'. These partitions are typically uses as individual block 350 devices, typically with an EXT2 or FAT filesystem in each. This 351 option enables whatever partition support has been enabled in 352 U-Boot to also be used in SPL. It brings in the code in disk/. 353 354config SPL_LIBGENERIC_SUPPORT 355 bool "Support generic libraries" 356 depends on SPL 357 help 358 Enable support for generic U-Boot libraries within SPL. These 359 libraries include generic code to deal with device tree, hashing, 360 printf(), compression and the like. This option is enabled on many 361 boards. Enable this option to build the code in lib/ as part of an 362 SPL build. 363 364config SPL_MMC_SUPPORT 365 bool "Support MMC" 366 depends on SPL 367 help 368 Enable support for MMC (Multimedia Card) within SPL. This enables 369 the MMC protocol implementation and allows any enabled drivers to 370 be used within SPL. MMC can be used with or without disk partition 371 support depending on the application (SPL_LIBDISK_SUPPORT). Enable 372 this option to build the drivers in drivers/mmc as part of an SPL 373 build. 374 375config SPL_MPC8XXX_INIT_DDR_SUPPORT 376 bool "Support MPC8XXX DDR init" 377 depends on SPL 378 help 379 Enable support for DDR-SDRAM (double-data-rate synchronous dynamic 380 random-access memory) on the MPC8XXX family within SPL. This 381 allows DRAM to be set up before loading U-Boot into that DRAM, 382 where it can run. 383 384config SPL_MTD_SUPPORT 385 bool "Support MTD drivers" 386 depends on SPL 387 help 388 Enable support for MTD (Memory Technology Device) within SPL. MTD 389 provides a block interface over raw NAND and can also be used with 390 SPI flash. This allows SPL to load U-Boot from supported MTD 391 devices. See SPL_NAND_SUPPORT and SPL_ONENAND_SUPPORT for how 392 to enable specific MTD drivers. 393 394config SPL_MUSB_NEW_SUPPORT 395 bool "Support new Mentor Graphics USB" 396 depends on SPL 397 help 398 Enable support for Mentor Graphics USB in SPL. This is a new 399 driver used by some boards. Enable this option to build 400 the drivers in drivers/usb/musb-new as part of an SPL build. The 401 old drivers are in drivers/usb/musb. 402 403config SPL_NAND_SUPPORT 404 bool "Support NAND flash" 405 depends on SPL 406 help 407 Enable support for NAND (Negative AND) flash in SPL. NAND flash 408 can be used to allow SPL to load U-Boot from supported devices. 409 This enables the drivers in drivers/mtd/nand as part of an SPL 410 build. 411 412config SPL_NET_SUPPORT 413 bool "Support networking" 414 depends on SPL 415 help 416 Enable support for network devices (such as Ethernet) in SPL. 417 This permits SPL to load U-Boot over a network link rather than 418 from an on-board peripheral. Environment support is required since 419 the network stack uses a number of environment variables. See also 420 SPL_ETH_SUPPORT. 421 422if SPL_NET_SUPPORT 423config SPL_NET_VCI_STRING 424 string "BOOTP Vendor Class Identifier string sent by SPL" 425 help 426 As defined by RFC 2132 the vendor class identifier field can be 427 sent by the client to identify the vendor type and configuration 428 of a client. This is often used in practice to allow for the DHCP 429 server to specify different files to load depending on if the ROM, 430 SPL or U-Boot itself makes the request 431endif # if SPL_NET_SUPPORT 432 433config SPL_NO_CPU_SUPPORT 434 bool "Drop CPU code in SPL" 435 depends on SPL 436 help 437 This is specific to the ARM926EJ-S CPU. It disables the standard 438 start.S start-up code, presumably so that a replacement can be 439 used on that CPU. You should not enable it unless you know what 440 you are doing. 441 442config SPL_NOR_SUPPORT 443 bool "Support NOR flash" 444 depends on SPL 445 help 446 Enable support for loading U-Boot from memory-mapped NOR (Negative 447 OR) flash in SPL. NOR flash is slow to write but fast to read, and 448 a memory-mapped device makes it very easy to access. Loading from 449 NOR is typically achieved with just a memcpy(). 450 451config SPL_ONENAND_SUPPORT 452 bool "Support OneNAND flash" 453 depends on SPL 454 help 455 Enable support for OneNAND (Negative AND) flash in SPL. OneNAND is 456 a type of NAND flash and therefore can be used to allow SPL to 457 load U-Boot from supported devices. This enables the drivers in 458 drivers/mtd/onenand as part of an SPL build. 459 460config SPL_OS_BOOT 461 bool "Activate Falcon Mode" 462 depends on SPL && !TI_SECURE_DEVICE 463 default n 464 help 465 Enable booting directly to an OS from SPL. 466 for more info read doc/README.falcon 467 468if SPL_OS_BOOT 469config SYS_OS_BASE 470 hex "addr, where OS is found" 471 depends on SPL && SPL_NOR_SUPPORT 472 help 473 Specify the address, where the OS image is found, which 474 gets booted. 475 476endif # SPL_OS_BOOT 477 478config SPL_PCI_SUPPORT 479 bool "Support PCI drivers" 480 depends on SPL 481 help 482 Enable support for PCI in SPL. For platforms that need PCI to boot, 483 or must perform some init using PCI in SPL, this provides the 484 necessary driver support. This enables the drivers in drivers/pci 485 as part of an SPL build. 486 487config SPL_PCH_SUPPORT 488 bool "Support PCH drivers" 489 depends on SPL 490 help 491 Enable support for PCH (Platform Controller Hub) devices in SPL. 492 These are used to set up GPIOs and the SPI peripheral early in 493 boot. This enables the drivers in drivers/pch as part of an SPL 494 build. 495 496config SPL_POST_MEM_SUPPORT 497 bool "Support POST drivers" 498 depends on SPL 499 help 500 Enable support for POST (Power-on Self Test) in SPL. POST is a 501 procedure that checks that the hardware (CPU or board) appears to 502 be functionally correctly. It is a sanity check that can be 503 performed before booting. This enables the drivers in post/drivers 504 as part of an SPL build. 505 506config SPL_POWER_SUPPORT 507 bool "Support power drivers" 508 depends on SPL 509 help 510 Enable support for power control in SPL. This includes support 511 for PMICs (Power-management Integrated Circuits) and some of the 512 features provided by PMICs. In particular, voltage regulators can 513 be used to enable/disable power and vary its voltage. That can be 514 useful in SPL to turn on boot peripherals and adjust CPU voltage 515 so that the clock speed can be increased. This enables the drivers 516 in drivers/power, drivers/power/pmic and drivers/power/regulator 517 as part of an SPL build. 518 519config SPL_RAM_SUPPORT 520 bool "Support booting from RAM" 521 depends on SPL 522 default y if MICROBLAZE || ARCH_SOCFPGA || TEGRA || ARCH_ZYNQ 523 help 524 Enable booting of an image in RAM. The image can be preloaded or 525 it can be loaded by SPL directly into RAM (e.g. using USB). 526 527config SPL_RAM_DEVICE 528 bool "Support booting from preloaded image in RAM" 529 depends on SPL_RAM_SUPPORT 530 default y if MICROBLAZE || ARCH_SOCFPGA || TEGRA || ARCH_ZYNQ 531 help 532 Enable booting of an image already loaded in RAM. The image has to 533 be already in memory when SPL takes over, e.g. loaded by the boot 534 ROM. 535 536config SPL_RTC_SUPPORT 537 bool "Support RTC drivers" 538 depends on SPL 539 help 540 Enable RTC (Real-time Clock) support in SPL. This includes support 541 for reading and setting the time. Some RTC devices also have some 542 non-volatile (battery-backed) memory which is accessible if 543 needed. This enables the drivers in drivers/rtc as part of an SPL 544 build. 545 546config SPL_SATA_SUPPORT 547 bool "Support loading from SATA" 548 depends on SPL 549 help 550 Enable support for SATA (Serial AT attachment) in SPL. This allows 551 use of SATA devices such as hard drives and flash drivers for 552 loading U-Boot. SATA is used in higher-end embedded systems and 553 can provide higher performance than MMC , at somewhat higher 554 expense and power consumption. This enables loading from SATA 555 using a configured device. 556 557config SPL_SERIAL_SUPPORT 558 bool "Support serial" 559 depends on SPL 560 help 561 Enable support for serial in SPL. This allows use of a serial UART 562 for displaying messages while SPL is running. It also brings in 563 printf() and panic() functions. This should normally be enabled 564 unless there are space reasons not to. Even then, consider 565 enabling USE_TINY_PRINTF which is a small printf() version. 566 567config SPL_SPI_FLASH_SUPPORT 568 bool "Support SPI flash drivers" 569 depends on SPL 570 help 571 Enable support for using SPI flash in SPL, and loading U-Boot from 572 SPI flash. SPI flash (Serial Peripheral Bus flash) is named after 573 the SPI bus that is used to connect it to a system. It is a simple 574 but fast bidirectional 4-wire bus (clock, chip select and two data 575 lines). This enables the drivers in drivers/mtd/spi as part of an 576 SPL build. This normally requires SPL_SPI_SUPPORT. 577 578config SPL_SPI_SUPPORT 579 bool "Support SPI drivers" 580 depends on SPL 581 help 582 Enable support for using SPI in SPL. This is used for connecting 583 to SPI flash for loading U-Boot. See SPL_SPI_FLASH_SUPPORT for 584 more details on that. The SPI driver provides the transport for 585 data between the SPI flash and the CPU. This option can be used to 586 enable SPI drivers that are needed for other purposes also, such 587 as a SPI PMIC. 588 589config SPL_TIMER_SUPPORT 590 bool "Support timer drivers" 591 depends on SPL 592 help 593 Enable support for timer drivers in SPL. These can be used to get 594 a timer value when in SPL, or perhaps for implementing a delay 595 function. This enables the drivers in drivers/timer as part of an 596 SPL build. 597 598config SPL_USB_HOST_SUPPORT 599 bool "Support USB host drivers" 600 depends on SPL 601 help 602 Enable access to USB (Universal Serial Bus) host devices so that 603 SPL can load U-Boot from a connected USB peripheral, such as a USB 604 flash stick. While USB takes a little longer to start up than most 605 buses, it is very flexible since many different types of storage 606 device can be attached. This option enables the drivers in 607 drivers/usb/host as part of an SPL build. 608 609config SPL_USB_SUPPORT 610 bool "Support loading from USB" 611 depends on SPL_USB_HOST_SUPPORT 612 help 613 Enable support for USB devices in SPL. This allows use of USB 614 devices such as hard drives and flash drivers for loading U-Boot. 615 The actual drivers are enabled separately using the normal U-Boot 616 config options. This enables loading from USB using a configured 617 device. 618 619config SPL_USB_GADGET_SUPPORT 620 bool "Suppport USB Gadget drivers" 621 depends on SPL 622 help 623 Enable USB Gadget API which allows to enable USB device functions 624 in SPL. 625 626if SPL_USB_GADGET_SUPPORT 627 628config SPL_USBETH_SUPPORT 629 bool "Support USB Ethernet drivers" 630 help 631 Enable access to the USB network subsystem and associated 632 drivers in SPL. This permits SPL to load U-Boot over a 633 USB-connected Ethernet link (such as a USB Ethernet dongle) rather 634 than from an onboard peripheral. Environment support is required 635 since the network stack uses a number of environment variables. 636 See also SPL_NET_SUPPORT and SPL_ETH_SUPPORT. 637 638config SPL_DFU_SUPPORT 639 bool "Support DFU (Device Firmware Upgarde)" 640 select SPL_HASH_SUPPORT 641 help 642 This feature enables the DFU (Device Firmware Upgarde) in SPL with 643 RAM memory device support. The ROM code will load and execute 644 the SPL built with dfu. The user can load binaries (u-boot/kernel) to 645 selected device partition from host-pc using dfu-utils. 646 This feature is useful to flash the binaries to factory or bare-metal 647 boards using USB interface. 648 649choice 650 bool "DFU device selection" 651 depends on SPL_DFU_SUPPORT 652 653config SPL_DFU_RAM 654 bool "RAM device" 655 depends on SPL_DFU_SUPPORT && SPL_RAM_SUPPORT 656 help 657 select RAM/DDR memory device for loading binary images 658 (u-boot/kernel) to the selected device partition using 659 DFU and execute the u-boot/kernel from RAM. 660 661endchoice 662 663endif 664 665config SPL_WATCHDOG_SUPPORT 666 bool "Support watchdog drivers" 667 depends on SPL 668 help 669 Enable support for watchdog drivers in SPL. A watchdog is 670 typically a hardware peripheral which can reset the system when it 671 detects no activity for a while (such as a software crash). This 672 enables the drivers in drivers/watchdog as part of an SPL build. 673 674config SPL_YMODEM_SUPPORT 675 bool "Support loading using Ymodem" 676 depends on SPL 677 help 678 While loading from serial is slow it can be a useful backup when 679 there is no other option. The Ymodem protocol provides a reliable 680 means of transmitting U-Boot over a serial line for using in SPL, 681 with a checksum to ensure correctness. 682 683config TPL_ENV_SUPPORT 684 bool "Support an environment" 685 depends on TPL 686 help 687 Enable environment support in TPL. See SPL_ENV_SUPPORT for details. 688 689config TPL_I2C_SUPPORT 690 bool "Support I2C" 691 depends on TPL 692 help 693 Enable support for the I2C bus in SPL. See SPL_I2C_SUPPORT for 694 details. 695 696config TPL_LIBCOMMON_SUPPORT 697 bool "Support common libraries" 698 depends on TPL 699 help 700 Enable support for common U-Boot libraries within TPL. See 701 SPL_LIBCOMMON_SUPPORT for details. 702 703config TPL_LIBGENERIC_SUPPORT 704 bool "Support generic libraries" 705 depends on TPL 706 help 707 Enable support for generic U-Boot libraries within TPL. See 708 SPL_LIBGENERIC_SUPPORT for details. 709 710config TPL_MPC8XXX_INIT_DDR_SUPPORT 711 bool "Support MPC8XXX DDR init" 712 depends on TPL 713 help 714 Enable support for DDR-SDRAM on the MPC8XXX family within TPL. See 715 SPL_MPC8XXX_INIT_DDR_SUPPORT for details. 716 717config TPL_MMC_SUPPORT 718 bool "Support MMC" 719 depends on TPL 720 help 721 Enable support for MMC within TPL. See SPL_MMC_SUPPORT for details. 722 723config TPL_NAND_SUPPORT 724 bool "Support NAND flash" 725 depends on TPL 726 help 727 Enable support for NAND in SPL. See SPL_NAND_SUPPORT for details. 728 729config TPL_SERIAL_SUPPORT 730 bool "Support serial" 731 depends on TPL 732 help 733 Enable support for serial in SPL. See SPL_SERIAL_SUPPORT for 734 details. 735 736config TPL_SPI_FLASH_SUPPORT 737 bool "Support SPI flash drivers" 738 depends on TPL 739 help 740 Enable support for using SPI flash in SPL. See SPL_SPI_FLASH_SUPPORT 741 for details. 742 743config TPL_SPI_SUPPORT 744 bool "Support SPI drivers" 745 depends on TPL 746 help 747 Enable support for using SPI in SPL. See SPL_SPI_SUPPORT for 748 details. 749 750endmenu 751