The internal barebox DTB isn't passed to other BL3x stages albeit it can be very useful, e.g. OP-TEE (as BL32) could parse the memory configuration from the DTB.
To avoid unnecessary API breakage, the FDT support is only added to the lowlevel __imx8m*_load_and_start_image_via_tfa() TF-A load helpers. This is the first step to be able to pass the board DTB to other BL3x firmware images. Signed-off-by: Marco Felsch <[email protected]> --- arch/arm/mach-imx/atf.c | 16 ++++++++-------- include/mach/imx/xload.h | 8 ++++---- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/arch/arm/mach-imx/atf.c b/arch/arm/mach-imx/atf.c index 3e1eac66f41456c24e5e0fbfa78c30211db1bcba..a8fc017fb6c86b807aef465226808144514c28f7 100644 --- a/arch/arm/mach-imx/atf.c +++ b/arch/arm/mach-imx/atf.c @@ -160,10 +160,10 @@ static void imx_adjust_optee_memory(void **bl32, void **bl32_image, size_t *bl32 __noreturn void imx8mm_load_and_start_image_via_tfa(void) { - __imx8mm_load_and_start_image_via_tfa((void *)MX8M_ATF_BL33_BASE_ADDR); + __imx8mm_load_and_start_image_via_tfa(NULL, (void *)MX8M_ATF_BL33_BASE_ADDR); } -__noreturn void __imx8mm_load_and_start_image_via_tfa(void *bl33) +__noreturn void __imx8mm_load_and_start_image_via_tfa(void *fdt, void *bl33) { const void *bl31; size_t bl31_size; @@ -235,10 +235,10 @@ void imx8mp_load_bl33(void *bl33) __noreturn void imx8mp_load_and_start_image_via_tfa(void) { - __imx8mp_load_and_start_image_via_tfa((void *)MX8M_ATF_BL33_BASE_ADDR); + __imx8mp_load_and_start_image_via_tfa(NULL, (void *)MX8M_ATF_BL33_BASE_ADDR); } -__noreturn void __imx8mp_load_and_start_image_via_tfa(void *bl33) +__noreturn void __imx8mp_load_and_start_image_via_tfa(void *fdt, void *bl33) { const void *bl31; size_t bl31_size; @@ -310,10 +310,10 @@ void imx8mn_load_bl33(void *bl33) __noreturn void imx8mn_load_and_start_image_via_tfa(void) { - __imx8mn_load_and_start_image_via_tfa((void *)MX8M_ATF_BL33_BASE_ADDR); + __imx8mn_load_and_start_image_via_tfa(NULL, (void *)MX8M_ATF_BL33_BASE_ADDR); } -__noreturn void __imx8mn_load_and_start_image_via_tfa(void *bl33) +__noreturn void __imx8mn_load_and_start_image_via_tfa(void *fdt, void *bl33) { const void *bl31; size_t bl31_size; @@ -379,10 +379,10 @@ void imx8mq_load_bl33(void *bl33) __noreturn void imx8mq_load_and_start_image_via_tfa(void) { - __imx8mq_load_and_start_image_via_tfa((void *)MX8M_ATF_BL33_BASE_ADDR); + __imx8mq_load_and_start_image_via_tfa(NULL, (void *)MX8M_ATF_BL33_BASE_ADDR); } -__noreturn void __imx8mq_load_and_start_image_via_tfa(void *bl33) +__noreturn void __imx8mq_load_and_start_image_via_tfa(void *fdt, void *bl33) { const void *bl31; size_t bl31_size; diff --git a/include/mach/imx/xload.h b/include/mach/imx/xload.h index 396c728547614091fc710de50dc1583c6b6e2a68..9a9827156257847411ac34f02c6fe6633f6fb11a 100644 --- a/include/mach/imx/xload.h +++ b/include/mach/imx/xload.h @@ -33,10 +33,10 @@ void __noreturn imx8mm_load_and_start_image_via_tfa(void); void __noreturn imx8mn_load_and_start_image_via_tfa(void); void __noreturn imx8mp_load_and_start_image_via_tfa(void); void __noreturn imx8mq_load_and_start_image_via_tfa(void); -void __noreturn __imx8mm_load_and_start_image_via_tfa(void *bl33); -void __noreturn __imx8mn_load_and_start_image_via_tfa(void *bl33); -void __noreturn __imx8mp_load_and_start_image_via_tfa(void *bl33); -void __noreturn __imx8mq_load_and_start_image_via_tfa(void *bl33); +void __noreturn __imx8mm_load_and_start_image_via_tfa(void *fdt, void *bl33); +void __noreturn __imx8mn_load_and_start_image_via_tfa(void *fdt, void *bl33); +void __noreturn __imx8mp_load_and_start_image_via_tfa(void *fdt, void *bl33); +void __noreturn __imx8mq_load_and_start_image_via_tfa(void *fdt, void *bl33); void __noreturn imx93_load_and_start_image_via_tfa(void); void __noreturn __imx93_load_and_start_image_via_tfa(void *bl33); -- 2.47.3
