Hi Stefan, On 4/29/22 8:54 AM, Stefan Roese wrote: > 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? > > 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.
Use -EB 0x40 when generating your image. This will use "external" data (e.g. not within the dtb) which is aligned to 64 bytes. --Sean