u-boot/arch/arm/mach-imx
Bryan O'Donoghue c5800b2541 arm: imx: hab: Fix authenticate_image input parameters
u-boot command "hab_auth_img" tells a user that it takes

- addr - image hex address
- offset - hex offset of IVT in the image

but in fact the callback hab_auth_img makes to authenticate_image treats
the second 'offset' parameter as an image length.

Furthermore existing code requires the IVT header to be appended to the end
of the image which is not actually a requirement of HABv4.

This patch fixes this situation by

1: Adding a new parameter to hab_auth_img
   - addr   : image hex address
   - length : total length of the image
   - offset : offset of IVT from addr

2: Updates the existing call into authenticate_image() in
   arch/arm/mach-imx/spl.c:jump_to_image_no_args() to pass
   addr, length and IVT offset respectively.

This allows then hab_auth_img to actually operate the way it was specified
in the help text and should still allow existing code to work.

It has the added advantage that the IVT header doesn't have to be appended
to an image given to HAB - it can be prepended for example.

Note prepending the IVT is what u-boot will do when making an IVT for the
BootROM. It should be possible for u-boot properly authenticate images
made by mkimage via HAB.

This patch is the first step in making that happen subsequent patches will
focus on removing hard-coded offsets to the IVT, which again is not
mandated to live at the end of a .imx image.

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>
2018-01-14 17:26:30 +01:00
..
mx2 mx25: Select the ESDHC_A001 erratum 2017-11-07 10:13:00 +01:00
mx5 arm: imx: Rework i.MX specific commands to be excluded from SPL 2018-01-12 14:28:04 +01:00
mx6 ARM: imx: cm_fx6: export board and soc info to env 2018-01-12 14:28:04 +01:00
mx7 arm: imx: Rework i.MX specific commands to be excluded from SPL 2018-01-12 14:28:04 +01:00
mx7ulp arm: imx: Rework i.MX specific commands to be excluded from SPL 2018-01-12 14:28:04 +01:00
cache.c imx: reorganize IMX code as other SOCs 2017-07-12 10:17:44 +02:00
cmd_bmode.c imx: reorganize IMX code as other SOCs 2017-07-12 10:17:44 +02:00
cmd_dek.c imx: reorganize IMX code as other SOCs 2017-07-12 10:17:44 +02:00
cmd_hdmidet.c imx: reorganize IMX code as other SOCs 2017-07-12 10:17:44 +02:00
cpu.c imx: Add a common way for detecting NXP boards revision 2017-12-29 11:18:59 +01:00
ddrmc-vf610.c imx: reorganize IMX code as other SOCs 2017-07-12 10:17:44 +02:00
hab.c arm: imx: hab: Fix authenticate_image input parameters 2018-01-14 17:26:30 +01:00
i2c-mxv7.c imx: reorganize IMX code as other SOCs 2017-07-12 10:17:44 +02:00
imx_bootaux.c arm: imx: Rework i.MX specific commands to be excluded from SPL 2018-01-12 14:28:04 +01:00
init.c imx: Remove boolean parameter from wdog powerdown function 2017-11-27 10:34:49 +01:00
iomux-v3.c imx: reorganize IMX code as other SOCs 2017-07-12 10:17:44 +02:00
Kconfig imx: introduce CONFIG_GPT_TIMER 2018-01-08 17:33:06 +01:00
Makefile arm: imx: Rework i.MX specific commands to be excluded from SPL 2018-01-12 14:28:04 +01:00
misc.c imx: reorganize IMX code as other SOCs 2017-07-12 10:17:44 +02:00
rdc-sema.c imx: reorganize IMX code as other SOCs 2017-07-12 10:17:44 +02:00
sata.c imx: reorganize IMX code as other SOCs 2017-07-12 10:17:44 +02:00
speed.c imx: reorganize IMX code as other SOCs 2017-07-12 10:17:44 +02:00
spl.c arm: imx: hab: Fix authenticate_image input parameters 2018-01-14 17:26:30 +01:00
spl_sd.cfg imx: reorganize IMX code as other SOCs 2017-07-12 10:17:44 +02:00
syscounter.c imx: reorganize IMX code as other SOCs 2017-07-12 10:17:44 +02:00
timer.c imx: timer: don't clear the GPT control register multiple times 2017-08-29 09:47:28 +02:00
video.c env: Rename getenv/_f() to env_get() 2017-08-16 08:30:24 -04:00