Merge git://git.denx.de/u-boot-rockchip

master
Tom Rini 7 years ago
commit ca833ca957
  1. 6
      board/theobroma-systems/lion_rk3368/Kconfig
  2. 18
      common/spl/Kconfig
  3. 12
      common/spl/spl_atf.c
  4. 1
      configs/firefly-rk3399_defconfig

@ -12,4 +12,10 @@ config SYS_CONFIG_NAME
config BOARD_SPECIFIC_OPTIONS # dummy
def_bool y
config ENV_SIZE
default 0x2000
config ENV_OFFSET
default 0x3c000 if ENV_IS_IN_SPI_FLASH
endif

@ -721,10 +721,24 @@ config SPL_ATF
bool "Support ARM Trusted Firmware"
depends on ARM64
help
ATF(ARM Trusted Firmware) is a component for ARM arch64 which
is loaded by SPL(which is considered as BL2 in ATF terminology).
ATF(ARM Trusted Firmware) is a component for ARM AArch64 which
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_NO_PLATFORM_PARAM
bool "Pass no platform parameter"
depends on SPL_ATF
help
While we expect to call a pointer to a valid FDT (or NULL)
as the platform parameter to an ATF, some ATF versions are
not U-Boot aware and have an insufficiently robust parameter
validation to gracefully reject a FDT being passed.
If this option is enabled, the spl_atf os-type handler will
always pass NULL for the platform parameter.
If your ATF is affected, say Y.
config TPL
bool
depends on SUPPORT_TPL

@ -144,6 +144,7 @@ void spl_invoke_atf(struct spl_image_info *spl_image)
{
uintptr_t bl33_entry = CONFIG_SYS_TEXT_BASE;
void *blob = spl_image->fdt_addr;
uintptr_t platform_param = (uintptr_t)blob;
int node;
/*
@ -158,8 +159,17 @@ void spl_invoke_atf(struct spl_image_info *spl_image)
bl33_entry = spl_fit_images_get_entry(blob, node);
/*
* If ATF_NO_PLATFORM_PARAM is set, we override the platform
* parameter and always pass 0. This is a workaround for
* older ATF versions that have insufficiently robust (or
* overzealous) argument validation.
*/
if (CONFIG_IS_ENABLED(ATF_NO_PLATFORM_PARAM))
platform_param = 0;
/*
* We don't provide a BL3-2 entry yet, but this will be possible
* using similar logic.
*/
bl31_entry(spl_image->entry_point, bl33_entry, (uintptr_t)blob);
bl31_entry(spl_image->entry_point, bl33_entry, platform_param);
}

@ -15,6 +15,7 @@ CONFIG_SPL_FIT_GENERATOR="arch/arm/mach-rockchip/make_fit_atf.py"
CONFIG_SPL_STACK_R=y
CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x4000
CONFIG_SPL_ATF=y
CONFIG_SPL_ATF_NO_PLATFORM_PARAM=y
CONFIG_CMD_BOOTZ=y
CONFIG_CMD_GPT=y
CONFIG_CMD_MMC=y

Loading…
Cancel
Save