aboutsummaryrefslogtreecommitdiff
path: root/arch/arm/mach-imx/hab.c
diff options
context:
space:
mode:
authorBryan O'Donoghue <bryan.odonoghue@linaro.org>2018-01-12 12:40:11 +0000
committerStefano Babic <sbabic@denx.de>2018-01-14 17:26:30 +0100
commit2c6c68d282b84f8766917bd72db17bfb223f2cca (patch)
tree6185c3eb93df4afd7707df8995ec16f8f7830cab /arch/arm/mach-imx/hab.c
parentb7c3cae7d35f003b8f4d15e8597eb638e5302796 (diff)
downloadu-boot-2c6c68d282b84f8766917bd72db17bfb223f2cca.zip
u-boot-2c6c68d282b84f8766917bd72db17bfb223f2cca.tar.gz
u-boot-2c6c68d282b84f8766917bd72db17bfb223f2cca.tar.bz2
arm: imx: hab: Print HAB event log only after calling ROM
The current flow of authenticate_image() will print the HAB event log even if we reject an element of the IVT header before ever calling into the ROM. This can be confusing. This patch changes the flow of the code so that the HAB event log is only printed out if we have called into the ROM and received some sort of status code. Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> Suggested-by: Cc: Breno Matheus Lima <brenomatheus@gmail.com> Cc: Stefano Babic <sbabic@denx.de> Cc: Fabio Estevam <fabio.estevam@nxp.com> Cc: Peng Fan <peng.fan@nxp.com> Cc: Albert Aribaud <albert.u.boot@aribaud.net> Cc: Sven Ebenfeld <sven.ebenfeld@gmail.com> Cc: George McCollister <george.mccollister@gmail.com> Tested-by: Breno Lima <breno.lima@nxp.com> Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com>
Diffstat (limited to 'arch/arm/mach-imx/hab.c')
-rw-r--r--arch/arm/mach-imx/hab.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/arch/arm/mach-imx/hab.c b/arch/arm/mach-imx/hab.c
index 079423a..3ae88a4 100644
--- a/arch/arm/mach-imx/hab.c
+++ b/arch/arm/mach-imx/hab.c
@@ -478,14 +478,14 @@ int authenticate_image(uint32_t ddr_start, uint32_t image_size,
if (hab_rvt_entry() != HAB_SUCCESS) {
puts("hab entry function fail\n");
- goto hab_caam_clock_disable;
+ goto hab_exit_failure_print_status;
}
status = hab_rvt_check_target(HAB_TGT_MEMORY, (void *)ddr_start, bytes);
if (status != HAB_SUCCESS) {
printf("HAB check target 0x%08x-0x%08x fail\n",
ddr_start, ddr_start + bytes);
- goto hab_caam_clock_disable;
+ goto hab_exit_failure_print_status;
}
#ifdef DEBUG
printf("\nivt_offset = 0x%x, ivt addr = 0x%x\n", ivt_offset, ivt_addr);
@@ -543,12 +543,14 @@ int authenticate_image(uint32_t ddr_start, uint32_t image_size,
load_addr = 0;
}
-hab_caam_clock_disable:
- hab_caam_clock_enable(0);
-
+hab_exit_failure_print_status:
#if !defined(CONFIG_SPL_BUILD)
get_hab_status();
#endif
+
+hab_caam_clock_disable:
+ hab_caam_clock_enable(0);
+
if (load_addr != 0)
result = 0;