[U-Boot] [PATCH v3 2/2] imx: hab: Provide hab_auth_img_or_fail command
Stefano Babic
sbabic at denx.de
Sun Apr 15 10:17:14 UTC 2018
On 26/03/2018 16:36, Bryan O'Donoghue wrote:
> This patch adds hab_auth_img_or_fail() a command line function that
> encapsulates a common usage of authenticate and failover, namely if
> authenticate image fails, then drop to BootROM USB recovery mode.
>
> For secure-boot systems, this type of locked down behavior is important to
> ensure no unsigned images can be run.
>
> It's possible to script this logic but, when done over and over again the
> environment starts get very complex and repetitive, reducing that script
> repetition down to a command line function makes sense.
>
> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue at linaro.org>
> Cc: Utkarsh Gupta <utkarsh.gupta at nxp.com>
> Cc: Breno Lima <breno.lima at nxp.com>
> Cc: Fabio Estevam <fabio.estevam at nxp.com>
> ---
> arch/arm/mach-imx/hab.c | 35 +++++++++++++++++++++++++++++++++++
> 1 file changed, 35 insertions(+)
>
> diff --git a/arch/arm/mach-imx/hab.c b/arch/arm/mach-imx/hab.c
> index c730c8f..9ca7bad 100644
> --- a/arch/arm/mach-imx/hab.c
> +++ b/arch/arm/mach-imx/hab.c
> @@ -341,6 +341,31 @@ static int do_hab_failsafe(cmd_tbl_t *cmdtp, int flag, int argc,
> return 0;
> }
>
> +static int do_authenticate_image_or_failover(cmd_tbl_t *cmdtp, int flag,
> + int argc, char * const argv[])
> +{
> + int ret = CMD_RET_FAILURE;
> +
> + if (argc != 4) {
> + ret = CMD_RET_USAGE;
> + goto error;
> + }
> +
> + if (!imx_hab_is_enabled()) {
> + printf("error: secure boot disabled\n");
> + goto error;
> + }
> +
> + if (do_authenticate_image(NULL, flag, argc, argv) != CMD_RET_SUCCESS) {
> + fprintf(stderr, "authentication fail -> %s %s %s %s\n",
> + argv[0], argv[1], argv[2], argv[3]);
> + do_hab_failsafe(0, 0, 1, NULL);
> + };
> + ret = CMD_RET_SUCCESS;
> +error:
> + return ret;
> +}
> +
> U_BOOT_CMD(
> hab_status, CONFIG_SYS_MAXARGS, 1, do_hab_status,
> "display HAB status",
> @@ -362,6 +387,16 @@ U_BOOT_CMD(
> ""
> );
>
> +U_BOOT_CMD(
> + hab_auth_img_or_fail, 4, 0,
> + do_authenticate_image_or_failover,
> + "authenticate image via HAB on failure drop to USB BootROM mode",
> + "addr length ivt_offset\n"
> + "addr - image hex address\n"
> + "length - image hex length\n"
> + "ivt_offset - hex offset of IVT in the image"
> + );
> +
> #endif /* !defined(CONFIG_SPL_BUILD) */
>
> /* Get CSF Header length */
>
Applied to u-boot-imx, thanks !
Best regards,
Stefano Babic
--
=====================================================================
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================
More information about the U-Boot
mailing list