diff --git a/meta-digi-arm/dynamic-layers/freescale-layer/recipes-bsp/imx-mkimage/imx-boot_1.0.bbappend b/meta-digi-arm/dynamic-layers/freescale-layer/recipes-bsp/imx-mkimage/imx-boot_1.0.bbappend index 08a624d46..c8245c0b0 100644 --- a/meta-digi-arm/dynamic-layers/freescale-layer/recipes-bsp/imx-mkimage/imx-boot_1.0.bbappend +++ b/meta-digi-arm/dynamic-layers/freescale-layer/recipes-bsp/imx-mkimage/imx-boot_1.0.bbappend @@ -38,6 +38,8 @@ compile_mx93:append:ccimx93() { ATF_MACHINE_NAME_A0="$(echo ${ATF_MACHINE_NAME} | sed -e 's,.bin,-A0.bin,g')" bbnote "Copy ATF binary for SOC revision A0: ${ATF_MACHINE_NAME_A0}" \cp --remove-destination ${DEPLOY_DIR_IMAGE}/${ATF_MACHINE_NAME_A0} ${BOOT_STAGING}/bl31.bin + # Filename must match the deployed one in "optee-os" recipe for A0 SOC revision + \cp --remove-destination ${DEPLOY_DIR_IMAGE}/tee.ccimx93dvk_a0.bin ${BOOT_STAGING}/tee.bin unset ATF_MACHINE_NAME_A0 fi } @@ -107,6 +109,11 @@ do_deploy:append:ccimx93() { ln -sf ${BOOT_NAME}-${MACHINE}.bin-${target} ${DEPLOYDIR}/${BOOT_NAME}-${MACHINE}-A0.bin fi done + # Deploy A0 optee binary + if ${DEPLOY_OPTEE}; then + # Filename must match the deployed one in "optee-os" recipe for A0 SOC revision + install -m 0644 ${DEPLOY_DIR_IMAGE}/tee.ccimx93dvk_a0.bin ${DEPLOYDIR}/${BOOT_TOOLS} + fi } do_deploy:ccimx8x () { diff --git a/meta-digi-arm/dynamic-layers/freescale-layer/recipes-security/optee-imx/optee-os/0001-core-imx-support-ccimx93-dvk.patch b/meta-digi-arm/dynamic-layers/freescale-layer/recipes-security/optee-imx/optee-os/0001-core-imx-support-ccimx93-dvk.patch index 6a9056b00..01e38dda9 100644 --- a/meta-digi-arm/dynamic-layers/freescale-layer/recipes-security/optee-imx/optee-os/0001-core-imx-support-ccimx93-dvk.patch +++ b/meta-digi-arm/dynamic-layers/freescale-layer/recipes-security/optee-imx/optee-os/0001-core-imx-support-ccimx93-dvk.patch @@ -2,25 +2,28 @@ From: Javier Viguera Date: Mon, 15 May 2023 17:59:54 +0200 Subject: [PATCH] core: imx: support ccimx93-dvk +SOC revision A0 requires a different build. + Signed-off-by: Javier Viguera --- - core/arch/arm/plat-imx/conf.mk | 6 ++++++ - core/arch/arm/plat-imx/registers/imx93.h | 1 + - 2 files changed, 7 insertions(+) + core/arch/arm/plat-imx/conf.mk | 13 +++++++++++++ + core/arch/arm/plat-imx/registers/imx93.h | 5 +++++ + 2 files changed, 18 insertions(+) diff --git a/core/arch/arm/plat-imx/conf.mk b/core/arch/arm/plat-imx/conf.mk -index 0bd9ccd6bef1..4fa61d5c2619 100644 +index 0bd9ccd6bef1..5e4c02e27d2e 100644 --- a/core/arch/arm/plat-imx/conf.mk +++ b/core/arch/arm/plat-imx/conf.mk -@@ -88,6 +88,7 @@ mx8ulp-flavorlist = \ +@@ -88,6 +88,8 @@ mx8ulp-flavorlist = \ mx8ulpevk \ mx93-flavorlist = \ + ccimx93dvk \ ++ ccimx93dvk_a0 \ mx93evk \ ifneq (,$(filter $(PLATFORM_FLAVOR),$(mx6ul-flavorlist))) -@@ -451,6 +452,11 @@ CFG_DDR_SIZE ?= 0x80000000 +@@ -451,6 +453,17 @@ CFG_DDR_SIZE ?= 0x80000000 CFG_UART_BASE ?= UART1_BASE endif @@ -28,15 +31,21 @@ index 0bd9ccd6bef1..4fa61d5c2619 100644 +CFG_DDR_SIZE ?= 0x40000000 +CFG_UART_BASE ?= UART6_BASE +endif ++ ++ifneq (,$(filter $(PLATFORM_FLAVOR),ccimx93dvk_a0)) ++CFG_DDR_SIZE ?= 0x40000000 ++CFG_UART_BASE ?= UART6_BASE ++$(call force,CFG_SOC_REV_A0,y) ++endif + # i.MX6 Solo/SL/SoloX/DualLite/Dual/Quad specific config ifeq ($(filter y, $(CFG_MX6QP) $(CFG_MX6Q) $(CFG_MX6D) $(CFG_MX6DL) $(CFG_MX6S) \ $(CFG_MX6SL) $(CFG_MX6SLL) $(CFG_MX6SX)), y) diff --git a/core/arch/arm/plat-imx/registers/imx93.h b/core/arch/arm/plat-imx/registers/imx93.h -index 21080da82d04..17f4d8f5755e 100644 +index 21080da82d04..29070eb917ac 100644 --- a/core/arch/arm/plat-imx/registers/imx93.h +++ b/core/arch/arm/plat-imx/registers/imx93.h -@@ -9,6 +9,7 @@ +@@ -9,11 +9,16 @@ #define GICR_BASE 0x48040000 #define UART1_BASE 0x44380000 @@ -44,3 +53,12 @@ index 21080da82d04..17f4d8f5755e 100644 /* * For Normal MU - Use MU_BASE as 0x47520000 * For Trust MU - Use MU_BASE as 0x47530000 + */ ++#ifdef CFG_SOC_REV_A0 ++#define MU_BASE 0x47520000 ++#else + #define MU_BASE 0x47530000 ++#endif + #define MU_SIZE 0x10000 + + #define MU_TRUST_BASE 0x47530000 diff --git a/meta-digi-arm/dynamic-layers/freescale-layer/recipes-security/optee-imx/optee-os_4.0.0.imx.bb b/meta-digi-arm/dynamic-layers/freescale-layer/recipes-security/optee-imx/optee-os_4.0.0.imx.bb index 75d81e0d0..c4f613481 100644 --- a/meta-digi-arm/dynamic-layers/freescale-layer/recipes-security/optee-imx/optee-os_4.0.0.imx.bb +++ b/meta-digi-arm/dynamic-layers/freescale-layer/recipes-security/optee-imx/optee-os_4.0.0.imx.bb @@ -16,4 +16,13 @@ SRCREV = "a303fc80f7c4bd713315687a1fa1d6ed136e78ee" PLATFORM_FLAVOR:ccimx93 = "ccimx93dvk" +do_compile:append:ccimx93 () { + oe_runmake PLATFORM=imx-${PLATFORM_FLAVOR}_a0 O=${B}-A0 all +} +do_compile[cleandirs] += "${B}-A0" + +do_deploy:append:ccimx93 () { + cp ${B}-A0/core/tee-raw.bin ${DEPLOYDIR}/tee.${PLATFORM_FLAVOR}_a0.bin +} + COMPATIBLE_MACHINE = "(ccimx93)"