menu "VPL options" depends on VPL config VPL_BANNER_PRINT bool "Enable output of the VPL banner 'U-Boot VPL ...'" default y help If this option is enabled, VPL will print the banner with version info. Disabling this option could be useful to reduce VPL boot time (e.g. approx. 6 ms faster, when output on i.MX6 with 115200 baud). config VPL_BOARD_INIT bool "Call board-specific initialization in VPL" help If this option is enabled, U-Boot will call the function spl_board_init() from board_init_r(). This function should be provided by the board. config VPL_CACHE depends on CACHE bool "Support cache drivers in VPL" help Enable support for cache drivers in VPL. config VPL_CRC32 bool "Support CRC32 in VPL" default y if VPL_ENV_SUPPORT || VPL_BLOBLIST help Enable this to support CRC32 in uImages or FIT images within VPL. This is a 32-bit checksum value that can be used to verify images. For FIT images, this is the least secure type of checksum, suitable for detected accidental image corruption. For secure applications you should consider SHA1 or SHA256. config VPL_DM_SPI bool "Support SPI DM drivers in VPL" help Enable support for SPI DM drivers in VPL. config VPL_DM_SPI_FLASH bool "Support SPI DM FLASH drivers in VPL" help Enable support for SPI DM flash drivers in VPL. config VPL_FRAMEWORK bool "Support VPL based upon the common SPL framework" default y help Enable the SPL framework under common/spl/ for VPL builds. This framework supports MMC, NAND and YMODEM and other methods loading of U-Boot's next stage. If unsure, say Y. config VPL_HANDOFF bool "Pass hand-off information from VPL to SPL" depends on HANDOFF && VPL_BLOBLIST default y help This option enables VPL to write handoff information. This can be used to pass information like the size of SDRAM from VPL to SPL. Also VPL can receive information from TPL in the same place if that is enabled. config VPL_LIBCOMMON_SUPPORT bool "Support common libraries" default y if SPL_LIBCOMMON_SUPPORT help Enable support for common U-Boot libraries within VPL. See SPL_LIBCOMMON_SUPPORT for details. config VPL_LIBGENERIC_SUPPORT bool "Support generic libraries" default y if SPL_LIBGENERIC_SUPPORT help Enable support for generic U-Boot libraries within VPL. These libraries include generic code to deal with device tree, hashing, printf(), compression and the like. This option is enabled on many boards. Enable this option to build the code in lib/ as part of a VPL build. config VPL_DRIVERS_MISC bool "Support misc drivers" default y if TPL_DRIVERS_MISC help Enable miscellaneous drivers in VPL. These drivers perform various tasks that don't fall nicely into other categories, Enable this option to build the drivers in drivers/misc as part of a VPL build, for those that support building in VPL (not all drivers do). config VPL_ENV_SUPPORT bool "Support an environment" help Enable environment support in VPL. The U-Boot environment provides a number of settings (essentially name/value pairs) which can control many aspects of U-Boot's operation. Enabling this option will make env_get() and env_set() available in VSPL. config VPL_GPIO bool "Support GPIO in VPL" default y if SPL_GPIO help Enable support for GPIOs (General-purpose Input/Output) in VPL. GPIOs allow U-Boot to read the state of an input line (high or low) and set the state of an output line. This can be used to drive LEDs, control power to various system parts and read user input. GPIOs can be useful in VPL to enable a 'sign-of-life' LED, for example. Enable this option to build the drivers in drivers/gpio as part of a VPL build. config VPL_HANDOFF bool "Pass hand-off information from VPL to SPL and U-Boot proper" depends on HANDOFF && VPL_BLOBLIST default y help This option enables VPL to write handoff information. This can be used to pass information like the size of SDRAM from VPL to U-Boot proper. The information is also available to VPL if it is useful there. config VPL_HASH bool "Support hashing drivers in VPL" select SHA1 select SHA256 help Enable hashing drivers in VPL. These drivers can be used to accelerate secure boot processing in secure applications. Enable this option to build system-specific drivers for hash acceleration as part of a VPL build. config VPL_I2C_SUPPORT bool "Support I2C in VPL" default y if SPL_I2C_SUPPORT help Enable support for the I2C bus in VPL. Vee SPL_I2C_SUPPORT for details. config VPL_MMC bool "Support MMC in VPL" depends on VPL && MMC default y if MMC help Enable support for MMC (Multimedia Card) within VPL This enables the MMC protocol implementation and allows any enabled drivers to be used within VPL. MMC can be used with or without disk partition support depending on the application (SPL_LIBDISK_SUPPORT). Enable this option to build the drivers in drivers/mmc as part of an VPL build. config VPL_DM_MMC bool "Enable MMC controllers using Driver Model in VPL" depends on VPL_DM && DM_MMC default y help This enables the MultiMediaCard (MMC) uclass which supports MMC and Secure Digital I/O (SDIO) cards. Both removable (SD, micro-SD, etc.) and non-removable (e.g. eMMC chip) devices are supported. These appear as block devices in U-Boot and can support filesystems such as EXT4 and FAT. config VPL_MMC_WRITE bool "MMC/SD/SDIO card support for write operations in VPL" depends on VPL_MMC default y help Enable write access to MMC and SD Cards in VPL config VPL_PCH_SUPPORT bool "Support PCH drivers" default y if TPL_PCH_SUPPORT help Enable support for PCH (Platform Controller Hub) devices in VPL. These are used to set up GPIOs and the SPI peripheral early in boot. This enables the drivers in drivers/pch as part of a VPL build. config VPL_PCI bool "Support PCI drivers" default y if SPL_PCI help Enable support for PCI in VPL. For platforms that need PCI to boot, or must perform some init using PCI in VPL, this provides the necessary driver support. This enables the drivers in drivers/pci as part of a VPL build. config VPL_RTC bool "Support RTC drivers" help Enable RTC (Real-time Clock) support in VPL. This includes support for reading and setting the time. Some RTC devices also have some non-volatile (battery-backed) memory which is accessible if needed. This enables the drivers in drivers/rtc as part of a VPL build. config VPL_SERIAL bool "Support serial" default y if TPL_SERIAL select VPL_PRINTF select VPL_STRTO help Enable support for serial in VPL. See SPL_SERIAL for details. config VPL_SIZE_LIMIT hex "Maximum size of VPL image" default 0x0 help Specifies the maximum length of the U-Boot VPL image. If this value is zero, it is ignored. config VPL_SPI bool "Support SPI drivers" help Enable support for using SPI in VPL. See SPL_SPI_SUPPORT for details. config VPL_SPI_FLASH_SUPPORT bool "Support SPI flash drivers" help Enable support for using SPI flash in VPL, and loading U-Boot from SPI flash. SPI flash (Serial Peripheral Bus flash) is named after the SPI bus that is used to connect it to a system. It is a simple but fast bidirectional 4-wire bus (clock, chip select and two data lines). This enables the drivers in drivers/mtd/spi as part of a VPL build. This normally requires VPL_SPI_SUPPORT. config VPL_TEXT_BASE hex "VPL Text Base" default 0x0 help The address in memory that VPL will be running from. config VPL_BINMAN_SYMBOLS bool "Declare binman symbols in VPL" depends on VPL_FRAMEWORK && BINMAN default y help This enables use of symbols in VPL which refer to other entries in the same binman image as the VPL. These can be declared with the binman_sym_declare(type, entry, prop) macro and accessed by the binman_sym(type, entry, prop) macro defined in binman_sym.h. See tools/binman/binman.rst for a detailed explanation. config VPL_BINMAN_UBOOT_SYMBOLS bool "Declare binman symbols for U-Boot phases in VPL" depends on VPL_BINMAN_SYMBOLS default n if ARCH_IMX8M default y help This enables use of symbols in VPL which refer to U-Boot phases, enabling VPL to obtain the location and size of its next phase simply by calling spl_get_image_pos() and spl_get_image_size(). For this to work, you must have all U-Boot phases in the same binman image, so binman can update VPL with the locations of everything. endmenu