
For setting up the master firewalls present in the K3 SoCs, the arm64 clusters need to be powered on.
Re-locates the code for atf/optee authentication.
Signed-off-by: Manorit Chawdhry m-chawdhry@ti.com --- arch/arm/mach-k3/common.c | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-)
diff --git a/arch/arm/mach-k3/common.c b/arch/arm/mach-k3/common.c index a2adb791f6c0..6e04cc7a24aa 100644 --- a/arch/arm/mach-k3/common.c +++ b/arch/arm/mach-k3/common.c @@ -227,6 +227,21 @@ void __noreturn jump_to_image_no_args(struct spl_image_info *spl_image) if (ret) panic("%s: ATF failed to load on rproc (%d)\n", __func__, ret);
+ if (IS_ENABLED(CONFIG_FIT_IMAGE_POST_PROCESS) && + IS_ENABLED(CONFIG_SYS_K3_SPL_ATF)) { + for (int i = IMAGE_ID_ATF; i < IMAGE_ID_SPL; i++) { + void *image_addr = + (void *)fit_image_info[i].image_start; + + debug("%s: Authenticating image: addr=%x, size=%d, os=%s\n", + __func__, fit_image_info[i].image_start, + fit_image_info[i].image_len, image_os_match[i]); + + ti_secure_image_post_process(&image_addr, + &fit_image_info[i].image_len); + } + } + if (!fit_image_info[IMAGE_ID_DM_FW].image_len && !(size > 0 && valid_elf_image(loadaddr))) { shut_cpu = 1; @@ -288,9 +303,13 @@ void board_fit_image_post_process(const void *fit, int node, void **p_image, break; } } + /* + * Only DM and the DTBs are being authenticated here, + * rest will be authenticated when A72 cluster is up + */ + if (i >= IMAGE_ID_SPL) #endif - - ti_secure_image_post_process(p_image, p_size); + ti_secure_image_post_process(p_image, p_size); } #endif