imx-atf: add support for imx93 A0 soc revision

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
This commit is contained in:
Javier Viguera 2023-11-02 18:58:36 +01:00
parent 014667b41c
commit a96d4fdc1d
2 changed files with 74 additions and 0 deletions

View File

@ -0,0 +1,53 @@
From: Javier Viguera <javier.viguera@digi.com>
Date: Tue, 31 Oct 2023 11:25:46 +0100
Subject: [PATCH] imx93: bring back ELE clock workaround for soc revision A0
Revert commit 7411561db535a20f61ff6621fec5b374130d34f9 to allow building
for soc revision A0 using a compilation flag.
Signed-off-by: Javier Viguera <javier.viguera@digi.com>
---
plat/imx/imx93/imx93_psci.c | 10 ++++++++++
plat/imx/imx93/platform.mk | 4 ++++
2 files changed, 14 insertions(+)
diff --git a/plat/imx/imx93/imx93_psci.c b/plat/imx/imx93/imx93_psci.c
index 0fd2bb7802df..461801afb126 100644
--- a/plat/imx/imx93/imx93_psci.c
+++ b/plat/imx/imx93/imx93_psci.c
@@ -783,6 +783,11 @@ void imx_pwr_domain_suspend(const psci_power_state_t *target_state)
} else {
write_clusterpwrdn(DSU_CLUSTER_PWR_OFF);
}
+
+#ifdef SOC_REV_A0
+ /* FIXME: slow down S401 clock: 24M OSC */
+ mmio_clrbits_32(0x44450200, GENMASK_32(9, 8));
+#endif
}
if (is_local_state_retn(SYSTEM_PWR_STATE(target_state))) {
@@ -902,6 +907,11 @@ void imx_pwr_domain_suspend_finish(const psci_power_state_t *target_state)
mmio_write_32(IMX_GPC_BASE + A55C0_CMC_OFFSET + 0x800 * 2 + CM_MODE_CTRL, CM_MODE_RUN);
/* clear L3 retention */
mmio_clrbits_32(IMX_SRC_BASE + A55C0_MEM + 0x400 * 3 + 0x4, MEM_LP_RETENTION);
+
+#ifdef SOC_REV_A0
+ /* FIXME: set S401 clock back */
+ mmio_setbits_32(0x44450200, BIT(9));
+#endif
}
/* do core level */
if (is_local_state_off(CORE_PWR_STATE(target_state))) {
diff --git a/plat/imx/imx93/platform.mk b/plat/imx/imx93/platform.mk
index be09b9f0be7a..440c13c1dbe1 100644
--- a/plat/imx/imx93/platform.mk
+++ b/plat/imx/imx93/platform.mk
@@ -57,3 +57,7 @@ BL32_BASE ?= 0x96000000
BL32_SIZE ?= 0x02000000
$(eval $(call add_define,BL32_BASE))
$(eval $(call add_define,BL32_SIZE))
+
+ifeq (${SOC_REV_A0},1)
+$(eval $(call add_define,SOC_REV_A0))
+endif

View File

@ -10,13 +10,34 @@ SRC_URI:append:ccimx8m = " \
" "
SRC_URI:append:ccimx93 = " \ SRC_URI:append:ccimx93 = " \
file://0005-ccimx93-use-UART6-for-the-default-console.patch \ file://0005-ccimx93-use-UART6-for-the-default-console.patch \
file://0006-imx93-bring-back-ELE-clock-workaround-for-soc-revisi.patch \
" "
BOOT_TOOLS = "imx-boot-tools" BOOT_TOOLS = "imx-boot-tools"
# Build ATF for imx93 SOC revision A0
do_compile:append:ccimx93() {
oe_runmake SOC_REV_A0=1 BUILD_BASE=build-A0 clean
oe_runmake SOC_REV_A0=1 BUILD_BASE=build-A0 bl31
if ${BUILD_OPTEE}; then
oe_runmake SOC_REV_A0=1 BUILD_BASE=build-A0-optee clean
oe_runmake SOC_REV_A0=1 BUILD_BASE=build-A0-optee SPD=opteed bl31
fi
}
do_deploy:append() { do_deploy:append() {
install -Dm 0644 ${S}/build/${ATF_PLATFORM}/release/bl31.bin ${DEPLOYDIR}/${BOOT_TOOLS}/bl31-${ATF_PLATFORM}.bin install -Dm 0644 ${S}/build/${ATF_PLATFORM}/release/bl31.bin ${DEPLOYDIR}/${BOOT_TOOLS}/bl31-${ATF_PLATFORM}.bin
if ${BUILD_OPTEE}; then if ${BUILD_OPTEE}; then
install -m 0644 ${S}/build-optee/${ATF_PLATFORM}/release/bl31.bin ${DEPLOYDIR}/${BOOT_TOOLS}/bl31-${ATF_PLATFORM}.bin-optee install -m 0644 ${S}/build-optee/${ATF_PLATFORM}/release/bl31.bin ${DEPLOYDIR}/${BOOT_TOOLS}/bl31-${ATF_PLATFORM}.bin-optee
fi fi
} }
# Deploy ATF for imx93 SOC revision A0
do_deploy:append:ccimx93() {
install -Dm 0644 ${S}/build-A0/${ATF_PLATFORM}/release/bl31.bin ${DEPLOYDIR}/bl31-${ATF_PLATFORM}-A0.bin
install -Dm 0644 ${S}/build-A0/${ATF_PLATFORM}/release/bl31.bin ${DEPLOYDIR}/${BOOT_TOOLS}/bl31-${ATF_PLATFORM}-A0.bin
if ${BUILD_OPTEE}; then
install -m 0644 ${S}/build-A0-optee/${ATF_PLATFORM}/release/bl31.bin ${DEPLOYDIR}/bl31-${ATF_PLATFORM}-A0.bin-optee
install -m 0644 ${S}/build-A0-optee/${ATF_PLATFORM}/release/bl31.bin ${DEPLOYDIR}/${BOOT_TOOLS}/bl31-${ATF_PLATFORM}-A0.bin-optee
fi
}