occurrence of non 0xaa bytes.
This default implementation works for stacks growing down only.
+config SPL_SHOW_ERRORS
+ bool "Show more information when something goes wrong"
+ help
+ This enabled more verbose error messages and checking when something
+ goes wrong in SPL. For example, it shows the error code when U-Boot
+ cannot be located. This can help to diagnose the problem and figure
+ out a fix, particularly during development.
+
+ This adds a small amount to SPL code size, perhaps 100 bytes.
+
menu "PowerPC and LayerScape SPL Boot options"
config SPL_NAND_BOOT
config HANDOFF
bool "Pass hand-off information from SPL to U-Boot proper"
- depends on BLOBLIST
+ depends on SPL && BLOBLIST
help
It is useful to be able to pass information from SPL to U-Boot
proper to preserve state that is known in SPL and is needed in U-Boot.
hex "SPL Text Base"
default ISW_ENTRY_ADDR if AM43XX || AM33XX || OMAP54XX || ARCH_KEYSTONE
default 0x10060 if MACH_SUN50I || MACH_SUN50I_H5 || MACH_SUN9I
- default 0x20060 if MACH_SUN50I_H6
+ default 0x20060 if SUN50I_GEN_H6
default 0x00060 if ARCH_SUNXI
default 0xfffc0000 if ARCH_ZYNQMP
default 0x0
provided by the board.
config SPL_BOOTROM_SUPPORT
- bool "Support returning to the BOOTROM"
+ bool "Support returning to the BOOTROM"
help
Some platforms (e.g. the Rockchip RK3368) provide support in their
ROM for loading the next boot-stage after performing basic setup
config SPL_BOOTCOUNT_LIMIT
bool "Support bootcount in SPL"
- depends on SPL_ENV_SUPPORT
+ depends on SPL_ENV_SUPPORT && !TPL_BOOTCOUNT_LIMIT
help
On some boards, which use 'falcon' mode, it is necessary to check
and increment the number of boot attempts. Such boards do not
config SPL_LEGACY_IMAGE_CRC_CHECK
bool "Check CRC of Legacy images"
depends on SPL_LEGACY_IMAGE_SUPPORT
- select SPL_CRC32_SUPPORT
+ select SPL_CRC32
help
Enable this to check the CRC of Legacy images. While this increases
reliability, it affects both code size and boot duration.
location is used. Normally we put the device tree at the end of BSS
but with this option enabled, it goes at _image_binary_end.
+config SPL_READ_ONLY
+ bool
+ depends on SPL_OF_PLATDATA
+ # Bind cannot be supported because the udevice structs are in read-only
+ # memory so we cannot update the linked lists.
+ select SPL_OF_PLATDATA_NO_BIND
+ select SPL_OF_PLATDATA_RT
+ help
+ Some platforms (e.g. x86 Apollo Lake) load SPL into a read-only
+ section of memory. This means that of-platdata must make a copy (in
+ writeable memory) of anything it wants to modify, such as
+ device-private data.
+
config SPL_BANNER_PRINT
bool "Enable output of the SPL banner 'U-Boot SPL ...'"
default y
ARCH_MX6 || ARCH_MX7 || \
ARCH_ROCKCHIP || ARCH_MVEBU || ARCH_SOCFPGA || \
ARCH_AT91 || ARCH_ZYNQ || ARCH_KEYSTONE || OMAP34XX || \
- OMAP44XX || OMAP54XX || AM33XX || AM43XX || TARGET_SIFIVE_FU540
+ OMAP44XX || OMAP54XX || AM33XX || AM43XX || \
+ TARGET_SIFIVE_UNLEASHED || TARGET_SIFIVE_UNMATCHED
help
Use sector number for specifying U-Boot location on MMC/SD in
raw mode.
config SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR
hex "Address on the MMC to load U-Boot from"
depends on SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR
- default 0x50 if ARCH_SUNXI
+ default 0x40 if ARCH_SUNXI
default 0x75 if ARCH_DAVINCI
default 0x8a if ARCH_MX6 || ARCH_MX7
default 0x100 if ARCH_UNIPHIER
- default 0x140 if ARCH_MVEBU
+ default 0x0 if ARCH_MVEBU
default 0x200 if ARCH_SOCFPGA || ARCH_AT91
default 0x300 if ARCH_ZYNQ || ARCH_KEYSTONE || OMAP34XX || OMAP44XX || \
OMAP54XX || AM33XX || AM43XX || ARCH_K3
default 0x4000 if ARCH_ROCKCHIP
- default 0x822 if TARGET_SIFIVE_FU540
+ default 0x822 if TARGET_SIFIVE_UNLEASHED || TARGET_SIFIVE_UNMATCHED
help
Address on the MMC to load U-Boot from, when the MMC is being used
in raw mode. Units: MMC sectors (1 sector = 512 bytes).
config SYS_MMCSD_RAW_MODE_U_BOOT_DATA_PART_OFFSET
hex "U-Boot main hardware partition image offset"
depends on SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR
+ default 0x10 if ARCH_SUNXI
default 0x0
help
On some platforms SPL location depends on hardware partition. The ROM
the eMMC EXT_CSC_PART_CONFIG selection should be overridden in SPL
by user defined partition number.
-config SPL_CRC32_SUPPORT
+config SPL_CRC32
bool "Support CRC32"
default y if SPL_LEGACY_IMAGE_SUPPORT
help
for detected accidental image corruption. For secure applications you
should consider SHA1 or SHA256.
-config SPL_MD5_SUPPORT
+config SPL_MD5
bool "Support MD5"
depends on SPL_FIT
help
applications where images may be changed maliciously, you should
consider SHA256 or SHA384.
-config SPL_SHA1_SUPPORT
+config SPL_FIT_SHA1
bool "Support SHA1"
depends on SPL_FIT
select SHA1
due to the expanding computing power available to brute-force
attacks. For more security, consider SHA256 or SHA384.
-config SPL_SHA256_SUPPORT
+config SPL_FIT_SHA256
bool "Support SHA256"
depends on SPL_FIT
select SHA256
checksum is a 256-bit (32-byte) hash value used to check that the
image contents have not been corrupted.
-config SPL_SHA384_SUPPORT
+config SPL_FIT_SHA384
bool "Support SHA384"
depends on SPL_FIT
select SHA384
image contents have not been corrupted. Use this for the highest
security.
-config SPL_SHA512_SUPPORT
+config SPL_FIT_SHA512
bool "Support SHA512"
depends on SPL_FIT
select SHA512
config SPL_FIT_IMAGE_TINY
bool "Remove functionality from SPL FIT loading to reduce size"
depends on SPL_FIT
- default y if MACH_SUN50I || MACH_SUN50I_H5 || MACH_SUN50I_H6
+ default y if MACH_SUN50I || MACH_SUN50I_H5 || SUN50I_GEN_H6
default y if ARCH_IMX8M
help
Enable this to reduce the size of the FIT image loading code
future requests for that data can be served faster. Enable this option
to build the drivers in drivers/cache as part of an SPL build.
-config SPL_CPU_SUPPORT
+config SPL_CPU
bool "Support CPU drivers"
help
Enable this to support CPU drivers in SPL. These drivers can set
may improve boot performance. Enable this option to build the
drivers in drivers/cpu as part of an SPL build.
-config SPL_CRYPTO_SUPPORT
+config SPL_CRYPTO
bool "Support crypto drivers"
help
Enable crypto drivers in SPL. These drivers can be used to
the CPU moving the data. Enable this option to build the drivers
in drivers/dma as part of an SPL build.
-config SPL_DRIVERS_MISC_SUPPORT
+config SPL_DRIVERS_MISC
bool "Support misc drivers"
help
Enable miscellaneous drivers in SPL. These drivers perform various
"reboot_image" and act accordingly and change the reboot_image
to default mode using setenv and save the environment.
-config SPL_ETH_SUPPORT
+config SPL_ETH
bool "Support Ethernet"
depends on SPL_ENV_SUPPORT
help
as early as possible during boot, and this option can enable that
within SPL.
-config SPL_GPIO_SUPPORT
+config SPL_GPIO
bool "Support GPIO in SPL"
help
Enable support for GPIOs (General-purpose Input/Output) in SPL.
for example. Enable this option to build the drivers in
drivers/gpio as part of an SPL build.
-config SPL_I2C_SUPPORT
+config SPL_I2C
bool "Support I2C"
help
Enable support for the I2C (Inter-Integrated Circuit) bus in SPL.
default 1
help
Partition on the MMC to load U-Boot from when the MMC is being
- used in fs mode
+ used in fs mode
config SPL_MMC_TINY
bool "Tiny MMC framework in SPL"
devices. See SPL_NAND_SUPPORT and SPL_ONENAND_SUPPORT for how
to enable specific MTD drivers.
-config SPL_MUSB_NEW_SUPPORT
+config SPL_MUSB_NEW
bool "Support new Mentor Graphics USB"
help
Enable support for Mentor Graphics USB in SPL. This is a new
config SPL_NAND_BASE
depends on SPL_NAND_DRIVERS
bool "Use Base NAND Driver"
- help
- Include nand_base.c in the SPL.
+ help
+ Include nand_base.c in the SPL.
config SPL_NAND_IDENT
depends on SPL_NAND_BASE
This permits SPL to load U-Boot over a network link rather than
from an on-board peripheral. Environment support is required since
the network stack uses a number of environment variables. See also
- SPL_ETH_SUPPORT.
+ SPL_ETH.
if SPL_NET_SUPPORT
config SPL_NET_VCI_STRING
by using the generic reset API provided by driver model.
This enables the drivers in drivers/reset as part of an SPL build.
-config SPL_POWER_SUPPORT
+config SPL_POWER
bool "Support power drivers"
help
Enable support for power control in SPL. This includes support
config SPL_SATA_RAW_U_BOOT_USE_SECTOR
bool "SATA raw mode: by sector"
depends on SPL_SATA_SUPPORT
+ default y if ARCH_MVEBU
help
Use sector number for specifying U-Boot location on SATA disk in
raw mode.
config SPL_SATA_RAW_U_BOOT_SECTOR
hex "Sector on the SATA disk to load U-Boot from"
depends on SPL_SATA_RAW_U_BOOT_USE_SECTOR
+ default 0x1 if ARCH_MVEBU
help
Sector on the SATA disk to load U-Boot from, when the SATA disk is being
used in raw mode. Units: SATA disk sectors (1 sector = 512 bytes).
automatic power-off when the temperature gets too high or low. Other
devices may be discrete but connected on a suitable bus.
-config SPL_USB_HOST_SUPPORT
+config SPL_USB_HOST
bool "Support USB host drivers"
select HAVE_BLOCK_DEVICE
help
config SPL_USB_STORAGE
bool "Support loading from USB"
- depends on SPL_USB_HOST_SUPPORT && !(BLK && !DM_USB)
+ depends on SPL_USB_HOST && !(BLK && !DM_USB)
help
Enable support for USB devices in SPL. This allows use of USB
devices such as hard drives and flash drivers for loading U-Boot.
USB-connected Ethernet link (such as a USB Ethernet dongle) rather
than from an onboard peripheral. Environment support is required
since the network stack uses a number of environment variables.
- See also SPL_NET_SUPPORT and SPL_ETH_SUPPORT.
+ See also SPL_NET_SUPPORT and SPL_ETH.
config SPL_DFU
bool "Support DFU (Device Firmware Upgrade)"
so it can be used in compiled environment.
endif
-config SPL_WATCHDOG_SUPPORT
+config SPL_WATCHDOG
bool "Support watchdog drivers"
imply SPL_WDT if !HW_WATCHDOG
help
is loaded by SPL (which is considered as BL2 in ATF terminology).
More detail at: https://github.com/ARM-software/arm-trusted-firmware
+config SPL_ATF_LOAD_IMAGE_V2
+ bool "Use the new LOAD_IMAGE_V2 parameter passing"
+ depends on SPL_ATF
+ help
+ Some platforms use the newer LOAD_IMAGE_V2 parameter passing.
+
+ If you want to load a bl31 image from the SPL and need the new
+ method, say Y.
+
config SPL_ATF_NO_PLATFORM_PARAM
- bool "Pass no platform parameter"
+ bool "Pass no platform parameter"
depends on SPL_ATF
help
While we expect to call a pointer to a valid FDT (or NULL)
spl_board_init() from board_init_r(). This function should be
provided by the board.
+config TPL_BOOTCOUNT_LIMIT
+ bool "Support bootcount in TPL"
+ depends on TPL_ENV_SUPPORT
+ help
+ If this option is enabled, the TPL will support bootcount.
+ For example, it may be useful to choose the device to boot.
+
config TPL_LDSCRIPT
- string "Linker script for the TPL stage"
+ string "Linker script for the TPL stage"
depends on TPL
default "arch/arm/cpu/armv8/u-boot-spl.lds" if ARM64
default "arch/\$(ARCH)/cpu/u-boot-spl.lds"
fall back to the linker-script used for the SPL stage.
config TPL_NEEDS_SEPARATE_TEXT_BASE
- bool "TPL needs a separate text-base"
+ bool "TPL needs a separate text-base"
default n
depends on TPL
help
.text sections of the TPL stage has to be set below.
config TPL_NEEDS_SEPARATE_STACK
- bool "TPL needs a separate initial stack-pointer"
+ bool "TPL needs a separate initial stack-pointer"
default n
depends on TPL
help
stack-pointer from the settings for the SPL stage.
config TPL_TEXT_BASE
- hex "Base address for the .text section of the TPL stage"
+ hex "Base address for the .text section of the TPL stage"
depends on TPL_NEEDS_SEPARATE_TEXT_BASE
help
The base address for the .text section of the TPL stage.
config TPL_MAX_SIZE
- int "Maximum size (in bytes) for the TPL stage"
+ int "Maximum size (in bytes) for the TPL stage"
default 0
depends on TPL
help
The maximum size (in bytes) of the TPL stage.
config TPL_STACK
- hex "Address of the initial stack-pointer for the TPL stage"
+ hex "Address of the initial stack-pointer for the TPL stage"
depends on TPL_NEEDS_SEPARATE_STACK
help
The address of the initial stack-pointer for the TPL stage.
Usually this will be the (aligned) top-of-stack.
+config TPL_READ_ONLY
+ bool
+ depends on TPL_OF_PLATDATA
+ select TPL_OF_PLATDATA_NO_BIND
+ select TPL_OF_PLATDATA_RT
+ help
+ Some platforms (e.g. x86 Apollo Lake) load SPL into a read-only
+ section of memory. This means that of-platdata must make a copy (in
+ writeable memory) of anything it wants to modify, such as
+ device-private data.
+
config TPL_BOOTROM_SUPPORT
- bool "Support returning to the BOOTROM (from TPL)"
+ bool "Support returning to the BOOTROM (from TPL)"
help
Some platforms (e.g. the Rockchip RK3368) provide support in their
ROM for loading the next boot-stage after performing basic setup
BOOT_DEVICE_BOOTROM (or fall-through to the next boot device in the
boot device list, if not implemented for a given board)
-config TPL_DRIVERS_MISC_SUPPORT
+config TPL_DRIVERS_MISC
bool "Support misc drivers in TPL"
help
Enable miscellaneous drivers in TPL. These drivers perform various
help
Enable environment support in TPL. See SPL_ENV_SUPPORT for details.
-config TPL_GPIO_SUPPORT
+config TPL_GPIO
bool "Support GPIO in TPL"
help
Enable support for GPIOs (General-purpose Input/Output) in TPL.
for example. Enable this option to build the drivers in
drivers/gpio as part of an TPL build.
-config TPL_I2C_SUPPORT
+config TPL_I2C
bool "Support I2C"
help
- Enable support for the I2C bus in TPL. See SPL_I2C_SUPPORT for
+ Enable support for the I2C bus in TPL. See SPL_I2C for
details.
config TPL_LIBCOMMON_SUPPORT