[U-Boot] [PATCH V3 15/19] mx7ulp: Add HAB boot support
Peng Fan
peng.fan at nxp.com
Wed Feb 22 08:21:53 UTC 2017
Add CAAM clock functions, SEC_CONFIG[1] fuse checking, and default CSF
size for HAB support boot on mx7ulp.
Users need to uncomment the CONFIG_SECURE_BOOT in mx7ulp_evk.h to build
secure uboot.
Signed-off-by: Peng Fan <peng.fan at nxp.com>
Signed-off-by: Ye Li <ye.li at nxp.com>
Reviewed-by : Stefano Babic <sbabic at denx.de>
---
V3:
None
V2:
New
arch/arm/cpu/armv7/mx7ulp/clock.c | 10 ++++++++++
arch/arm/cpu/armv7/mx7ulp/soc.c | 8 ++++++++
arch/arm/imx-common/hab.c | 3 ++-
arch/arm/include/asm/arch-mx7ulp/clock.h | 1 +
4 files changed, 21 insertions(+), 1 deletion(-)
diff --git a/arch/arm/cpu/armv7/mx7ulp/clock.c b/arch/arm/cpu/armv7/mx7ulp/clock.c
index 1c072b8..77b282a 100644
--- a/arch/arm/cpu/armv7/mx7ulp/clock.c
+++ b/arch/arm/cpu/armv7/mx7ulp/clock.c
@@ -313,6 +313,16 @@ void clock_init(void)
enable_usboh3_clk(1);
}
+#ifdef CONFIG_SECURE_BOOT
+void hab_caam_clock_enable(unsigned char enable)
+{
+ if (enable)
+ pcc_clock_enable(PER_CLK_CAAM, true);
+ else
+ pcc_clock_enable(PER_CLK_CAAM, false);
+}
+#endif
+
/*
* Dump some core clockes.
*/
diff --git a/arch/arm/cpu/armv7/mx7ulp/soc.c b/arch/arm/cpu/armv7/mx7ulp/soc.c
index 8713e9b..4fd4c3a 100644
--- a/arch/arm/cpu/armv7/mx7ulp/soc.c
+++ b/arch/arm/cpu/armv7/mx7ulp/soc.c
@@ -7,9 +7,17 @@
#include <asm/arch/clock.h>
#include <asm/arch/imx-regs.h>
#include <asm/arch/sys_proto.h>
+#include <asm/imx-common/hab.h>
static char *get_reset_cause(char *);
+#if defined(CONFIG_SECURE_BOOT)
+struct imx_sec_config_fuse_t const imx_sec_config_fuse = {
+ .bank = 29,
+ .word = 6,
+};
+#endif
+
u32 get_cpu_rev(void)
{
/* Temporally hard code the CPU rev to 0x73, rev 1.0. Fix it later */
diff --git a/arch/arm/imx-common/hab.c b/arch/arm/imx-common/hab.c
index 7449487..523d0e3 100644
--- a/arch/arm/imx-common/hab.c
+++ b/arch/arm/imx-common/hab.c
@@ -77,7 +77,8 @@
#define MX6DLS_PU_IROM_MMU_EN_VAR 0x00901dd0
#define MX6SL_PU_IROM_MMU_EN_VAR 0x00900a18
#define IS_HAB_ENABLED_BIT \
- (is_soc_type(MXC_SOC_MX7) ? 0x2000000 : 0x2)
+ (is_soc_type(MXC_SOC_MX7ULP) ? 0x80000000 : \
+ (is_soc_type(MXC_SOC_MX7) ? 0x2000000 : 0x2))
/*
* +------------+ 0x0 (DDR_UIMAGE_START) -
diff --git a/arch/arm/include/asm/arch-mx7ulp/clock.h b/arch/arm/include/asm/arch-mx7ulp/clock.h
index ebf32c6..170a9b3 100644
--- a/arch/arm/include/asm/arch-mx7ulp/clock.h
+++ b/arch/arm/include/asm/arch-mx7ulp/clock.h
@@ -39,4 +39,5 @@ void enable_usboh3_clk(unsigned char enable);
#endif
void init_clk_usdhc(u32 index);
void clock_init(void);
+void hab_caam_clock_enable(unsigned char enable);
#endif
--
2.6.2
More information about the U-Boot
mailing list