
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