arm: imx: hab: Fix authenticate_image result code
authenticate_image returns 1 for success and 0 for failure. That result
code is mapped directly to the result code for the command line function
hab_auth_img - which means when hab_auth_img succeeds it is returning
CMD_RET_FAILURE (1) instead of CMD_RET_SUCCESS (0).
This patch fixes this behaviour by making authenticate_image() return 0 for
success and 1 for failure. Both users of authenticate_image() as a result
have some minimal churn. The upshot is once done when hab_auth_img is
called from the command line we set $? in the standard way for scripting
functions to act on.
Fixes: 36c1ca4d46
("imx: Support i.MX6 High Assurance Boot
authentication")
Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
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>
Cc: Breno Matheus Lima <brenomatheus@gmail.com>
Tested-by: Breno Lima <breno.lima@nxp.com>
Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com>
This commit is contained in:
parent
adbb051f08
commit
9535b3975f
@ -373,7 +373,10 @@ static int do_authenticate_image(cmd_tbl_t *cmdtp, int flag, int argc,
|
||||
ivt_offset = simple_strtoul(argv[2], NULL, 16);
|
||||
|
||||
rcode = authenticate_image(addr, ivt_offset);
|
||||
|
||||
if (rcode == 0)
|
||||
rcode = CMD_RET_SUCCESS;
|
||||
else
|
||||
rcode = CMD_RET_FAILURE;
|
||||
return rcode;
|
||||
}
|
||||
|
||||
@ -415,7 +418,7 @@ int authenticate_image(uint32_t ddr_start, uint32_t image_size)
|
||||
uint32_t load_addr = 0;
|
||||
size_t bytes;
|
||||
ptrdiff_t ivt_offset = 0;
|
||||
int result = 0;
|
||||
int result = 1;
|
||||
ulong start;
|
||||
hab_rvt_authenticate_image_t *hab_rvt_authenticate_image;
|
||||
hab_rvt_entry_t *hab_rvt_entry;
|
||||
@ -510,7 +513,7 @@ int authenticate_image(uint32_t ddr_start, uint32_t image_size)
|
||||
}
|
||||
|
||||
if ((!is_hab_enabled()) || (load_addr != 0))
|
||||
result = 1;
|
||||
result = 0;
|
||||
|
||||
return result;
|
||||
}
|
||||
|
@ -166,8 +166,8 @@ __weak void __noreturn jump_to_image_no_args(struct spl_image_info *spl_image)
|
||||
|
||||
/* HAB looks for the CSF at the end of the authenticated data therefore,
|
||||
* we need to subtract the size of the CSF from the actual filesize */
|
||||
if (authenticate_image(spl_image->load_addr,
|
||||
spl_image->size - CONFIG_CSF_SIZE)) {
|
||||
if (!authenticate_image(spl_image->load_addr,
|
||||
spl_image->size - CONFIG_CSF_SIZE)) {
|
||||
image_entry();
|
||||
} else {
|
||||
puts("spl: ERROR: image authentication unsuccessful\n");
|
||||
|
Loading…
Reference in New Issue
Block a user