[EXT] fsl_hash.c: Alignment problem when using caam_hash() for FIT images
Gaurav Jain
gaurav.jain at nxp.com
Fri Apr 29 15:22:42 CEST 2022
Hello Stefan
> -----Original Message-----
> From: Stefan Roese <sr at denx.de>
> Sent: Friday, April 29, 2022 6:24 PM
> To: U-Boot Mailing List <u-boot at lists.denx.de>
> Cc: Gaurav Jain <gaurav.jain at nxp.com>; 'dullfire at yahoo.com
> Subject: [EXT] fsl_hash.c: Alignment problem when using caam_hash() for FIT
> images
>
> Caution: EXT Email
>
> Hi,
>
> while working on an LX2160 based board and updating to latest mainline I
> noticed problems using the HW accelerated hash functions on this platform,
> when trying to boot a FIT Kernel image. Here the resulting error message:
>
> ## Loading kernel from FIT Image at a0000000 ...
> Using 'conf-freescale_lx2160a.dtb' configuration
> Trying 'kernel-1' kernel subimage
> Verifying Hash Integrity ... sha256Error: Address arguments are not aligned
> CAAM was not setup properly or it is faulty
> error!
> Bad hash value for 'hash-1' hash node in 'kernel-1' image node Bad Data Hash
> ERROR: can't get kernel image!
>
> And here the addresses, printed from caam_hash():
> caam_hash (171): pbuf=00000000a00000fc pout=00000000fbde6f80
> buf_len=5291241 ARCH_DMA_MINALIGN=64
>
> pbuf points to an area in the FIT image itself. So its not easy to change this.
>
> In some quick tests I've dropped the alignment check and have not seen any
> problems yet. The hash is calculated without any problems and seems to be okay.
> I might be just lucky though, not sure.
>
> So my basic question is: Is this alignment really necessary and required for both
> addresses in this function?
You are right, Alignment is not necessary and can be removed.
>
> If yes, do you have some suggestions on how to handle this? Other than
> allocating new aligned buffers in caam_hash() and memcpy'ing to those new
> buffers instead. BTW, this is not a preferred solution for me, as boot-time is
> crucial for my platform.
>
> Thanks,
> Stefan
More information about the U-Boot
mailing list