From 424cb1a79e9f5ae4ede9350dfb5e10dc9680e90b Mon Sep 17 00:00:00 2001 From: Jason Liu Date: Tue, 12 Nov 2013 13:29:30 +0800 Subject: ENGR00287268 mx6: fix the secure boot issue on the new tapout chip The new TO(i.MX6Q TO1.5 and i.MX6DL TO1.2) of ROM change the HAB API table address, thus the secure boot can't boot up on the new TO. This patch fix this issue by fix up the HAB API table address according to the TO revision. Signed-off-by: Jason Liu --- include/asm-arm/arch-mx6/mx6.h | 3 +++ include/asm-arm/arch-mx6/mx6_secure.h | 17 +++++++++++------ 2 files changed, 14 insertions(+), 6 deletions(-) (limited to 'include/asm-arm') diff --git a/include/asm-arm/arch-mx6/mx6.h b/include/asm-arm/arch-mx6/mx6.h index 9fc1e7a..3992012 100644 --- a/include/asm-arm/arch-mx6/mx6.h +++ b/include/asm-arm/arch-mx6/mx6.h @@ -717,6 +717,8 @@ #define CHIP_TYPE_SOLOLITE 0x60000 #define CHIP_REV_1_0 0x10 +#define CHIP_REV_1_2 0x12 +#define CHIP_REV_1_5 0x15 #define CHIP_REV_2_0 0x20 #define CHIP_REV_2_1 0x21 #define CHIP_REV_MASK 0xff @@ -749,6 +751,7 @@ #define mx6_chip_is_dl() chip_is_type(fsl_system_rev, CHIP_TYPE_DL) #define mx6_chip_is_solo() chip_is_type(fsl_system_rev, CHIP_TYPE_SOLO) #define mx6_chip_is_sololite() chip_is_type(fsl_system_rev, CHIP_TYPE_SOLOLITE) +#define mx6_chip_rev() (fsl_system_rev & 0xFF) #define mx6_chip_dq_name "i.MX6Q" #define mx6_chip_dl_solo_name "i.MX6DL/Solo" diff --git a/include/asm-arm/arch-mx6/mx6_secure.h b/include/asm-arm/arch-mx6/mx6_secure.h index a632ca2..dfad477 100644 --- a/include/asm-arm/arch-mx6/mx6_secure.h +++ b/include/asm-arm/arch-mx6/mx6_secure.h @@ -66,12 +66,17 @@ typedef void *hab_rvt_authenticate_image_t(uint8_t, ptrdiff_t, \ void **, size_t *, hab_loader_callback_f_t); typedef void hapi_clock_init_t(void); -#define HAB_RVT_REPORT_EVENT (*(uint32_t *) 0x000000B4) -#define HAB_RVT_REPORT_STATUS (*(uint32_t *) 0x000000B8) -#define HAB_RVT_AUTHENTICATE_IMAGE (*(uint32_t *) 0x000000A4) -#define HAB_RVT_ENTRY (*(uint32_t *) 0x00000098) -#define HAB_RVT_EXIT (*(uint32_t *) 0x0000009C) -#define HAB_RVT_CLOCK_INIT ((hapi_clock_init_t *) 0x0000024D) +#define HAB_RVT_REPORT_EVENT (*(uint32_t *) 0x000000B4) +#define HAB_RVT_REPORT_STATUS (*(uint32_t *) 0x000000B8) +#define HAB_RVT_AUTHENTICATE_IMAGE (*(uint32_t *) 0x000000A4) +#define HAB_RVT_ENTRY (*(uint32_t *) 0x00000098) +#define HAB_RVT_EXIT (*(uint32_t *) 0x0000009C) + +#define HAB_RVT_REPORT_EVENT_NEW (*(uint32_t *) 0x000000B8) +#define HAB_RVT_REPORT_STATUS_NEW (*(uint32_t *) 0x000000BC) +#define HAB_RVT_AUTHENTICATE_IMAGE_NEW (*(uint32_t *) 0x000000A8) +#define HAB_RVT_ENTRY_NEW (*(uint32_t *) 0x0000009C) +#define HAB_RVT_EXIT_NEW (*(uint32_t *) 0x000000A0) #define HAB_CID_ROM 0 /**< ROM Caller ID */ #define HAB_CID_UBOOT 1 /**< UBOOT Caller ID*/ -- cgit v1.1