From 5d6cff8ea8c9c9484945e82351186bb0414280cc Mon Sep 17 00:00:00 2001 From: Andrej Rosano Date: Thu, 15 Feb 2018 12:21:49 +0100 Subject: [PATCH 1/3] Add HAB support --- arch/arm/mach-imx/Makefile | 5 +++++ arch/arm/mach-imx/hab.c | 4 ++++ arch/arm/mach-imx/mx5/soc.c | 8 ++++++++ board/inversepath/usbarmory/imximage.cfg | 1 + configs/usbarmory_defconfig | 1 + drivers/crypto/fsl/Makefile | 2 ++ 6 files changed, 21 insertions(+) diff --git a/arch/arm/mach-imx/Makefile b/arch/arm/mach-imx/Makefile index d7966cfd4a..5efd51949d 100644 --- a/arch/arm/mach-imx/Makefile +++ b/arch/arm/mach-imx/Makefile @@ -36,14 +36,19 @@ ifeq ($(SOC),$(filter $(SOC),mx7ulp)) obj-y += cache.o obj-$(CONFIG_SECURE_BOOT) += hab.o endif +ifeq ($(SOC),$(filter $(SOC),mx5)) +obj-$(CONFIG_SECURE_BOOT) += hab.o +endif ifeq ($(SOC),$(filter $(SOC),vf610)) obj-y += ddrmc-vf610.o endif ifneq ($(CONFIG_SPL_BUILD),y) obj-$(CONFIG_CMD_BMODE) += cmd_bmode.o obj-$(CONFIG_CMD_HDMIDETECT) += cmd_hdmidet.o +ifneq ($(SOC),$(filter $(SOC),mx5)) obj-$(CONFIG_CMD_DEKBLOB) += cmd_dek.o endif +endif PLUGIN = board/$(BOARDDIR)/plugin diff --git a/arch/arm/mach-imx/hab.c b/arch/arm/mach-imx/hab.c index 02c7ae4e72..80cf336fa6 100644 --- a/arch/arm/mach-imx/hab.c +++ b/arch/arm/mach-imx/hab.c @@ -429,7 +429,9 @@ uint32_t authenticate_image(uint32_t ddr_start, uint32_t image_size) printf("\nAuthenticate image from DDR location 0x%x...\n", ddr_start); +#if !defined(CONFIG_MX5) hab_caam_clock_enable(1); +#endif if (hab_rvt_entry() == HAB_SUCCESS) { /* If not already aligned, Align to ALIGN_SIZE */ @@ -500,7 +502,9 @@ uint32_t authenticate_image(uint32_t ddr_start, uint32_t image_size) puts("hab entry function fail\n"); } +#if !defined(CONFIG_MX5) hab_caam_clock_enable(0); +#endif #if !defined(CONFIG_SPL_BUILD) get_hab_status(); diff --git a/arch/arm/mach-imx/mx5/soc.c b/arch/arm/mach-imx/mx5/soc.c index 2b63871bc4..826dc2bc40 100644 --- a/arch/arm/mach-imx/mx5/soc.c +++ b/arch/arm/mach-imx/mx5/soc.c @@ -15,6 +15,7 @@ #include #include #include +#include #if !(defined(CONFIG_MX51) || defined(CONFIG_MX53)) #error "CPU_TYPE not defined" @@ -63,6 +64,13 @@ u32 __weak get_board_rev(void) } #endif +#if defined(CONFIG_SECURE_BOOT) +struct imx_sec_config_fuse_t const imx_sec_config_fuse = { + .bank = 0, + .word = 4, +}; +#endif + #ifndef CONFIG_SYS_DCACHE_OFF void enable_caches(void) { diff --git a/board/inversepath/usbarmory/imximage.cfg b/board/inversepath/usbarmory/imximage.cfg index 392d2f91ed..29f1d0e636 100644 --- a/board/inversepath/usbarmory/imximage.cfg +++ b/board/inversepath/usbarmory/imximage.cfg @@ -11,6 +11,7 @@ IMAGE_VERSION 2 BOOT_FROM sd +CSF 0x2000 /* IOMUX */ diff --git a/configs/usbarmory_defconfig b/configs/usbarmory_defconfig index 99cfbd72eb..9173be34b5 100644 --- a/configs/usbarmory_defconfig +++ b/configs/usbarmory_defconfig @@ -14,3 +14,4 @@ CONFIG_ENV_IS_IN_MMC=y CONFIG_USB=y CONFIG_USB_STORAGE=y CONFIG_OF_LIBFDT=y +CONFIG_SECURE_BOOT=y diff --git a/drivers/crypto/fsl/Makefile b/drivers/crypto/fsl/Makefile index ea878e1822..13e4a95459 100644 --- a/drivers/crypto/fsl/Makefile +++ b/drivers/crypto/fsl/Makefile @@ -6,6 +6,8 @@ obj-y += sec.o obj-$(CONFIG_FSL_CAAM) += jr.o fsl_hash.o jobdesc.o error.o +ifneq ($(SOC),$(filter $(SOC),mx5)) obj-$(CONFIG_CMD_BLOB) += fsl_blob.o obj-$(CONFIG_CMD_DEKBLOB) += fsl_blob.o +endif obj-$(CONFIG_RSA_FREESCALE_EXP) += fsl_rsa.o -- 2.16.1