Commit ca89df7dd46f3f9c2d5cfee277ce8597937c6163

Authored by Bryan O'Donoghue
Committed by Tom Rini
1 parent 6d7403bf72

imx: hab: Convert DCD non-NULL error to warning

commit 8c4037a09a5c ("imx: hab: Ensure the IVT DCD pointer is Null prior
to calling HAB authenticate function.") makes the DCD field being NULL a
dependency.

This change though will break loading and executing of existing pre-signed
binaries on a u-boot update i.e. if this change is deployed on a board you
will be forced to redo all images on that board to NULL out the DCD.

There is no prior guidance from NXP that the DCD must be NULL similarly
public guidance on usage of the HAB doesn't call out this NULL dependency
(see boundary devices link).

Since later SoCs will reject a non-NULL DCD there's no reason to make a
NULL DCD a requirement, however if there is an actual dependency for later
SoCs the appropriate fix would be to do SoC version checking.

Earlier SoCs are capable (and happy) to authenticate images with non-NULL
DCDs, we should not be forcing this change on downstream users -
particularly if it means those users now must rewrite their build systems
and/or redeploy signed images in the field.

Fixes: 8c4037a09a5c ("imx: hab: Ensure the IVT DCD pointer is Null prior
to calling HAB authenticate function.")

Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Cc: Utkarsh Gupta <utkarsh.gupta@nxp.com>
Cc: Breno Lima <breno.lima@nxp.com>
Cc: Fabio Estevam <fabio.estevam@nxp.com>
Link: https://boundarydevices.com/high-assurance-boot-hab-dummies
Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com>

Showing 1 changed file with 2 additions and 4 deletions Side-by-side Diff

arch/arm/mach-imx/hab.c
... ... @@ -526,10 +526,8 @@
526 526 }
527 527  
528 528 /* Verify if IVT DCD pointer is NULL */
529   - if (ivt->dcd) {
530   - puts("Error: DCD pointer must be NULL\n");
531   - goto hab_authentication_exit;
532   - }
  529 + if (ivt->dcd)
  530 + puts("Warning: DCD pointer should be NULL\n");
533 531  
534 532 start = ddr_start;
535 533 bytes = image_size;