On Fri, Apr 29, 2022 at 10:35 AM Stefan Roese <s...@denx.de> wrote:

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:

   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!

Testing and checking with Gaurav Jain from NXP has revealed, that this
alignment check is not necessary here at all. So let's remove this
check completely.

Signed-off-by: Stefan Roese <s...@denx.de>
Cc: Gaurav Jain <gaurav.j...@nxp.com>
Cc: dullf...@yahoo.com

I applied this patch against top of tree U-Boot, but I am still
getting the following
error on a kontron-sl-mx8mm board with the options below selected:

CONFIG_IMX_HAB=y
CONFIG_SPL_DRIVERS_MISC=y

### Loading kernel from FIT Image at 42000000 ...
   Using 'conf-freescale_imx8mm-kontron-n801x-s.dtb' configuration
   Trying 'kernel-1' kernel subimage
     Description:  Linux kernel
     Created:      2022-06-07   1:58:57 UTC
     Type:         Kernel Image
     Compression:  gzip compressed
     Data Start:   0x42000100
     Data Size:    7609360 Bytes = 7.3 MiB
     Architecture: AArch64
     OS:           Linux
     Load Address: 0x40480000
     Entry Point:  0x40480000
     Hash algo:    sha256
     Hash value:
d20b5d533e123096edb05a6433d850c0fafb4b39a6e6d47e9bade3f6fa7c26ce
   Verifying Hash Integrity ... sha256dev_get_priv: null device

Hi Fabio,
I had the very same problem/error on i.MX6 and figured out that
CONFIG_ARCH_MISC_INIT=y must be enabled otherwise the caam_jr driver
is not initialized.

I also tried this patch. Now the caam_hash() returns OK and I can boot
the board but I am still seeing a warning regarding wrong alignment
from cache lib:

=> bootm 12000000#conf-4
## Loading kernel from FIT Image at 12000000 ...
   Using 'conf-4' configuration
   Verifying Hash Integrity ... OK
   Trying 'kernel' kernel subimage
     Description:  Kernel
     Type:         Kernel Image
     Compression:  uncompressed
     Data Start:   0x120000dc
     Data Size:    2901024 Bytes = 2.8 MiB
     Architecture: ARM
     OS:           Linux
     Load Address: 0x10800000
     Entry Point:  0x10800000
     Hash algo:    sha256
     Hash value:   
a3343f1df615f14677176ea4966644fcaa25b31bd3808682567b7fedf704cfb8
   Verifying Hash Integrity ... sha256CACHE: Misaligned operation at range 
[120000dc, 122c451c]
+ OK
## Loading fdt from FIT Image at 12000000 ...
   Using 'conf-4' configuration
   Verifying Hash Integrity ... OK
   Trying 'fdt-4' fdt subimage
     Description:  Orion Flattened Device Tree blob
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x122c4604
     Data Size:    41038 Bytes = 40.1 KiB
     Architecture: ARM
     Load Address: 0x18000000
     Hash algo:    sha256
     Hash value:   
13e0b23bd49f9e86a0425080fc788db67bf318d6f103f217d5705a455737e91c
   Verifying Hash Integrity ... sha256CACHE: Misaligned operation at range 
[122c4604, 122ce684]
+ OK
   Loading fdt from 0x122c4604 to 0x18000000
   Booting using the fdt blob at 0x18000000
   Loading Kernel Image
   Using Device Tree in place at 18000000, end 1800d04d

Starting kernel ...

Michal

Reply via email to