]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
arm: mach-imx: imx8m: re-use SNVS init routine
authorIan Ray <ian.ray@gehealthcare.com>
Fri, 8 Nov 2024 14:03:55 +0000 (16:03 +0200)
committerFabio Estevam <festevam@gmail.com>
Sat, 9 Nov 2024 11:55:04 +0000 (08:55 -0300)
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 <ian.ray@gehealthcare.com>
arch/arm/mach-imx/Makefile
arch/arm/mach-imx/imx8m/soc.c

index 0de207c068180d5e30fd64266b4032cf84b8885f..011cca5d975b7a037d1144e998558020d223ec3c 100644 (file)
@@ -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
index 09a528a64f8e221274d6069321bd7b9dfd93562f..9588b8b28bf2c5fafa18d62c036cbf71231a37fa 100644 (file)
@@ -34,6 +34,8 @@
 #include <linux/bitfield.h>
 #include <linux/sizes.h>
 
+#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)