]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
mx6dq: hab: Fix chip version in hab.h code
authorBreno Lima <breno.lima@nxp.com>
Thu, 25 Mar 2021 09:30:19 +0000 (17:30 +0800)
committerStefano Babic <sbabic@denx.de>
Thu, 8 Apr 2021 07:18:29 +0000 (09:18 +0200)
Since commit 8891410c729b ("MLK-19848 mx6dq: Fix chip version issue for
rev1.3") it's not possible to call the HAB API functions on i.MX6DQ
SoC Rev 1.3:

Authenticate image from DDR location 0x12000000...
undefined instruction
pc : [<412c00dc>]          lr : [<8ff560bc>]
reloc pc : [<c8b6d0dc>]    lr : [<178030bc>]
sp : 8ef444a8  ip : 126e8068     fp : 8ff59aa8
r10: 8ffd51e4  r9 : 8ef50eb0     r8 : 006e8000
r7 : 00000000  r6 : 126ea01f     r5 : 0000002b  r4 : 126e8000
r3 : 412c00dd  r2 : 00000001     r1 : 00000001  r0 : 00000063
Flags: nzCv  IRQs off  FIQs off  Mode SVC_32
Resetting CPU ...

resetting ...

The hab.h code is defining the HAB API base address according to the
old SoC revision number, thus failing when calling the HAB API
authenticate_image() function.

Fix this issue by using mx6dq rev 1.3 instead of mx6dq rev 1.5.

Signed-off-by: Breno Lima <breno.lima@nxp.com>
Reviewed-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
arch/arm/include/asm/arch-imx/cpu.h
arch/arm/include/asm/mach-imx/hab.h

index ef090eb2f2360af797d8b9e194349e7e77300f3e..bb13e07b66fb65411f438303253241faddd5def7 100644 (file)
@@ -62,6 +62,7 @@
 #define CHIP_REV_1_0            0x10
 #define CHIP_REV_1_1            0x11
 #define CHIP_REV_1_2            0x12
+#define CHIP_REV_1_3            0x13
 #define CHIP_REV_1_5            0x15
 #define CHIP_REV_2_0            0x20
 #define CHIP_REV_2_1            0x21
index d63b85378a95e2b4195f811ec39821964d5b4d3a..2abf28ea45bc6da08b050972584d2d6b36f04af8 100644 (file)
@@ -195,7 +195,7 @@ typedef void hapi_clock_init_t(void);
 #define HAB_RVT_BASE_OLD               0x00000094
 #define HAB_RVT_BASE ((is_mx6dqp()) ?                                  \
                        HAB_RVT_BASE_NEW :                              \
-                       (is_mx6dq() && (soc_rev() >= CHIP_REV_1_5)) ?   \
+                       (is_mx6dq() && (soc_rev() >= CHIP_REV_1_3)) ?   \
                        HAB_RVT_BASE_NEW :                              \
                        (is_mx6sdl() && (soc_rev() >= CHIP_REV_1_2)) ?  \
                        HAB_RVT_BASE_NEW : HAB_RVT_BASE_OLD)