From: Ian Ray Date: Fri, 8 Nov 2024 14:03:55 +0000 (+0200) Subject: arm: mach-imx: imx8m: re-use SNVS init routine X-Git-Url: http://git.dujemihanovic.xyz/?a=commitdiff_plain;h=28958998f6301bc4a247a9057a623f997ee78c11;p=u-boot.git arm: mach-imx: imx8m: re-use SNVS init routine Working with HAB on the i.MX8MP we've encountered a case where a board that successfully authenticates u-boot when booting Linux subsequently fails to properly bring up the RTC. The RTC registers live in the low-power block of the Secure Non-Volatile Storage (SNVS) block. The root cause of the error has been traced to the HAB handing off the SNVS-RTC in a state where HPCOMR::NPSWA_EN = 0 in other words where the Non-Privileged Software Access Enable bit is zero. Configure SNVS to allow unpriv access to SNVS LP for imx8m and imx8mp. This commit generalizes 723f8359c1 ("imx: mx7: snvs: Add an SNVS init routine") to also be used on i.MX8M SoCs, and was testeed on i.MX8MP. Signed-off-by: Ian Ray --- diff --git a/arch/arm/mach-imx/Makefile b/arch/arm/mach-imx/Makefile index 0de207c068..011cca5d97 100644 --- a/arch/arm/mach-imx/Makefile +++ b/arch/arm/mach-imx/Makefile @@ -294,4 +294,4 @@ obj-$(CONFIG_ARCH_IMXRT) += imxrt/ obj-$(CONFIG_SPL_BOOTROM_SUPPORT) += spl_imx_romapi.o obj-$(CONFIG_IMX8_ROMAPI) += romapi.o -obj-$(CONFIG_MX7) += snvs.o +obj-$(CONFIG_MX7)$(CONFIG_IMX8M) += snvs.o diff --git a/arch/arm/mach-imx/imx8m/soc.c b/arch/arm/mach-imx/imx8m/soc.c index 09a528a64f..9588b8b28b 100644 --- a/arch/arm/mach-imx/imx8m/soc.c +++ b/arch/arm/mach-imx/imx8m/soc.c @@ -34,6 +34,8 @@ #include #include +#include "../snvs.h" + DECLARE_GLOBAL_DATA_PTR; #if defined(CONFIG_IMX_HAB) @@ -576,6 +578,8 @@ static void imx8m_setup_snvs(void) writel(SNVS_LPPGDR_INIT, SNVS_BASE_ADDR + SNVS_LPLVDR); /* Clear interrupt status */ writel(0xffffffff, SNVS_BASE_ADDR + SNVS_LPSR); + + init_snvs(); } static void imx8m_setup_csu_tzasc(void)