3. FDTs are only loaded for images with an "os" property of "u-boot".
"linux" images are also supported with Falcon boot mode.
+config SPL_HAS_LOAD_FIT_ADDRESS
+ bool "Provide a static address to load the fit image to in SPL"
+ depends on SPL_LOAD_FIT
+ default y if ARCH_IMX8M || ARCH_K3 || ARCH_ROCKCHIP
+ help
+ By default, a buffer will be dynamically allocated via malloc to hold
+ the FIT image. This option instead allows for a static location to be
+ used and thus not need a large malloc pool to be defined.
+
config SPL_LOAD_FIT_ADDRESS
hex "load address of fit image in SPL"
- depends on SPL_LOAD_FIT
+ depends on SPL_HAS_LOAD_FIT_ADDRESS
default 0x81000000 if ARCH_K3 && ARM64
default 0x80080000 if ARCH_K3 && CPU_V7R
default 0x44000000 if ARCH_IMX8M
default 0x60080000 if ARCH_ROCKCHIP && SPL_TEXT_BASE = 0x60000000
default 0x40200000 if ARCH_ROCKCHIP && SPL_TEXT_BASE = 0x40000000
default 0x00200000 if ARCH_ROCKCHIP && SPL_TEXT_BASE = 0x00000000
- default 0x0
help
Specify the load address of the fit image that will be loaded
by SPL.
config SPL_RAM_SUPPORT
bool
+ select SPL_HAS_LOAD_FIT_ADDRESS if SPL_LOAD_FIT
config SPL_RAM_DEVICE
bool "Support booting from preloaded image in RAM"
* The purpose of the FIT load buffer is to provide a memory location that is
* independent of the load address of any FIT component.
*/
-static void *spl_get_fit_load_buffer(size_t size)
+__weak void *board_spl_fit_buffer_addr(ulong fit_size, int sectors, int bl_len)
{
void *buf;
+ size_t size = sectors * bl_len;
buf = malloc_cache_aligned(size);
if (!buf) {
return buf;
}
-__weak void *board_spl_fit_buffer_addr(ulong fit_size, int sectors, int bl_len)
-{
- return spl_get_fit_load_buffer(sectors * bl_len);
-}
-
/*
* Weak default function to allow customizing SPL fit loading for load-only
* use cases by allowing to skip the parsing/processing of the FIT contents
CONFIG_SPL_STACK_R_ADDR=0x83f80000
CONFIG_K3_OPTEE_LOAD_ADDR=0x80080000
CONFIG_SPL_BSS_START_ADDR=0x82c00000
+CONFIG_SPL_HAS_LOAD_FIT_ADDRESS=y
CONFIG_SPL_LOAD_FIT_ADDRESS=0x82f80000
CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x82b00000
CONFIG_DEFAULT_DEVICE_TREE="ti/k3-am6254atl-sk"
CONFIG_TARGET_AM625_R5_EVM=y
CONFIG_ENV_SOURCE_FILE="am6254atl"
CONFIG_K3_OPTEE_LOAD_ADDR=0x80080000
+CONFIG_SPL_HAS_LOAD_FIT_ADDRESS=y
CONFIG_SPL_LOAD_FIT_ADDRESS=0x82000000
CONFIG_DEFAULT_DEVICE_TREE="k3-am6254atl-r5-sk"
CONFIG_SPL_HAS_CUSTOM_MALLOC_START=y
CONFIG_SPL_IMX_ROMAPI_LOADADDR=0x48000000
CONFIG_SPL_LOAD_FIT=y
+CONFIG_SPL_HAS_LOAD_FIT_ADDRESS=y
CONFIG_SPL_LOAD_FIT_ADDRESS=0x44000000
CONFIG_SPL_LOAD_FIT_APPLY_OVERLAY=y
CONFIG_SPL_MAX_SIZE=0x26000
CONFIG_SPL_LOAD_FIT=y
# Used as the 2MiB aligned load address for kernel
+CONFIG_SPL_HAS_LOAD_FIT_ADDRESS=y
CONFIG_SYS_LOAD_ADDR=0x82000000
CONFIG_SPL_STACK_R_ADDR=0x88000000
CONFIG_SPL_LOAD_FIT_ADDRESS=0x82000000
CONFIG_SPL_SPI=y
CONFIG_SPL_FIT_PRINT=y
CONFIG_SPL_LOAD_FIT=y
+CONFIG_SPL_HAS_LOAD_FIT_ADDRESS=y
CONFIG_SPL_LOAD_FIT_ADDRESS=0x48000000
# CONFIG_SPL_BOARD_INIT is not set
# CONFIG_SPL_LEGACY_IMAGE_FORMAT is not set
CONFIG_SPL_SPI=y
CONFIG_SPL_FIT_PRINT=y
CONFIG_SPL_LOAD_FIT=y
+CONFIG_SPL_HAS_LOAD_FIT_ADDRESS=y
CONFIG_SPL_LOAD_FIT_ADDRESS=0x48000000
# CONFIG_SPL_BOARD_INIT is not set
# CONFIG_SPL_LEGACY_IMAGE_FORMAT is not set
CONFIG_FIT_SIGNATURE=y
CONFIG_FIT_VERBOSE=y
CONFIG_SPL_LOAD_FIT=y
+CONFIG_SPL_HAS_LOAD_FIT_ADDRESS=y
+CONFIG_SPL_LOAD_FIT_ADDRESS=0x0
CONFIG_BOOTSTAGE=y
CONFIG_BOOTSTAGE_REPORT=y
CONFIG_BOOTSTAGE_FDT=y
CONFIG_FIT_SIGNATURE=y
CONFIG_FIT_VERBOSE=y
CONFIG_SPL_LOAD_FIT=y
+CONFIG_SPL_HAS_LOAD_FIT_ADDRESS=y
+CONFIG_SPL_LOAD_FIT_ADDRESS=0x0
CONFIG_BOOTSTAGE=y
CONFIG_BOOTSTAGE_REPORT=y
CONFIG_BOOTSTAGE_FDT=y
CONFIG_FIT_VERBOSE=y
CONFIG_FIT_BEST_MATCH=y
CONFIG_SPL_LOAD_FIT=y
+CONFIG_SPL_HAS_LOAD_FIT_ADDRESS=y
+CONFIG_SPL_LOAD_FIT_ADDRESS=0x0
# CONFIG_TPL_BOOTMETH_VBE is not set
# CONFIG_TPL_BOOTMETH_VBE_SIMPLE_FW is not set
CONFIG_UPL=y
CONFIG_ARCH_RV64I=y
CONFIG_RISCV_SMODE=y
CONFIG_FIT=y
+CONFIG_SPL_HAS_LOAD_FIT_ADDRESS=y
CONFIG_SPL_LOAD_FIT_ADDRESS=0x84000000
CONFIG_DISTRO_DEFAULTS=y
CONFIG_USE_PREBOOT=y
CONFIG_ARCH_RV64I=y
CONFIG_RISCV_SMODE=y
CONFIG_FIT=y
+CONFIG_SPL_HAS_LOAD_FIT_ADDRESS=y
CONFIG_SPL_LOAD_FIT_ADDRESS=0x84000000
CONFIG_BOOTSTD_DEFAULTS=y
CONFIG_USE_PREBOOT=y
CONFIG_SPL_HAS_CUSTOM_MALLOC_START=y
CONFIG_SPL_I2C=y
CONFIG_SPL_LOAD_FIT=y
+CONFIG_SPL_HAS_LOAD_FIT_ADDRESS=y
CONFIG_SPL_LOAD_FIT_ADDRESS=0xc1000000
CONFIG_SPL_MAX_FOOTPRINT=0x3db00
CONFIG_SPL_MTD=y