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

This commit is contained in:
Tom Rini 2018-01-03 12:27:12 -05:00
commit ca833ca957
4 changed files with 34 additions and 3 deletions

View File

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

View File

@ -721,10 +721,24 @@ config SPL_ATF
bool "Support ARM Trusted Firmware" bool "Support ARM Trusted Firmware"
depends on ARM64 depends on ARM64
help help
ATF(ARM Trusted Firmware) is a component for ARM arch64 which ATF(ARM Trusted Firmware) is a component for ARM AArch64 which
is loaded by SPL(which is considered as BL2 in ATF terminology). is loaded by SPL (which is considered as BL2 in ATF terminology).
More detail at: https://github.com/ARM-software/arm-trusted-firmware 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 config TPL
bool bool
depends on SUPPORT_TPL depends on SUPPORT_TPL

View File

@ -144,6 +144,7 @@ void spl_invoke_atf(struct spl_image_info *spl_image)
{ {
uintptr_t bl33_entry = CONFIG_SYS_TEXT_BASE; uintptr_t bl33_entry = CONFIG_SYS_TEXT_BASE;
void *blob = spl_image->fdt_addr; void *blob = spl_image->fdt_addr;
uintptr_t platform_param = (uintptr_t)blob;
int node; int node;
/* /*
@ -157,9 +158,18 @@ void spl_invoke_atf(struct spl_image_info *spl_image)
if (node >= 0) if (node >= 0)
bl33_entry = spl_fit_images_get_entry(blob, node); 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 * We don't provide a BL3-2 entry yet, but this will be possible
* using similar logic. * using similar logic.
*/ */
bl31_entry(spl_image->entry_point, bl33_entry, (uintptr_t)blob); bl31_entry(spl_image->entry_point, bl33_entry, platform_param);
} }

View File

@ -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=y
CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x4000 CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x4000
CONFIG_SPL_ATF=y CONFIG_SPL_ATF=y
CONFIG_SPL_ATF_NO_PLATFORM_PARAM=y
CONFIG_CMD_BOOTZ=y CONFIG_CMD_BOOTZ=y
CONFIG_CMD_GPT=y CONFIG_CMD_GPT=y
CONFIG_CMD_MMC=y CONFIG_CMD_MMC=y