diff --git a/plat/nvidia/tegra/common/tegra_bl31_setup.c b/plat/nvidia/tegra/common/tegra_bl31_setup.c index a6652766fcb5a0c2a44d67b880d933f6b471bb93..25fd84cdcee805171ae4b27a0cd362f7d9446d1d 100644 --- a/plat/nvidia/tegra/common/tegra_bl31_setup.c +++ b/plat/nvidia/tegra/common/tegra_bl31_setup.c @@ -54,8 +54,9 @@ static entry_point_info_t bl33_image_ep_info, bl32_image_ep_info; static plat_params_from_bl2_t plat_bl31_params_from_bl2 = { .tzdram_size = TZDRAM_SIZE }; -static unsigned long bl32_mem_size; -static unsigned long bl32_boot_params; +#ifdef SPD_trusty +static aapcs64_params_t bl32_args; +#endif /******************************************************************************* * This variable holds the non-secure image entry address @@ -155,8 +156,10 @@ void bl31_early_platform_setup2(u_register_t arg0, u_register_t arg1, if (arg_from_bl2->bl32_ep_info != NULL) { bl32_image_ep_info = *arg_from_bl2->bl32_ep_info; - bl32_mem_size = arg_from_bl2->bl32_ep_info->args.arg0; - bl32_boot_params = arg_from_bl2->bl32_ep_info->args.arg2; +#ifdef SPD_trusty + /* save BL32 boot parameters */ + memcpy(&bl32_args, &arg_from_bl2->bl32_ep_info->args, sizeof(bl32_args)); +#endif } /* @@ -273,17 +276,20 @@ void bl31_early_platform_setup2(u_register_t arg0, u_register_t arg1, #ifdef SPD_trusty void plat_trusty_set_boot_args(aapcs64_params_t *args) { - args->arg0 = bl32_mem_size; - args->arg1 = bl32_boot_params; - args->arg2 = TRUSTY_PARAMS_LEN_BYTES; + /* + * arg0 = TZDRAM aperture available for BL32 + * arg1 = BL32 boot params + * arg2 = EKS Blob Length + * arg3 = Boot Profiler Carveout Base + */ + args->arg0 = bl32_args.arg0; + args->arg1 = bl32_args.arg2; /* update EKS size */ - if (args->arg4 != 0U) { - args->arg2 = args->arg4; - } + args->arg2 = bl32_args.arg4; /* Profiler Carveout Base */ - args->arg3 = args->arg5; + args->arg3 = bl32_args.arg5; } #endif