imx8m: Configure trustzone region 0 for non-secure access
authorYe Li <ye.li@nxp.com>
Tue, 27 Aug 2019 06:25:34 +0000 (06:25 +0000)
committerStefano Babic <sbabic@denx.de>
Tue, 8 Oct 2019 14:36:36 +0000 (16:36 +0200)
Set trustzone region 0 to allow both non-secure and secure access
when trust zone is enabled. We found USB controller fails to access
DDR if the default region 0 is secure access only.

Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
arch/arm/mach-imx/imx8m/soc.c

index 261f586fc02d1a54755fcf3f2bd0f8057d4a1646..a33ca356532760a6695de7571ee7c5e188d0af3c 100644 (file)
@@ -57,6 +57,12 @@ void enable_tzc380(void)
        setbits_le32(&gpr->gpr[10], GPR_TZASC_EN_LOCK);
        if (IS_ENABLED(CONFIG_IMX8MM))
                setbits_le32(&gpr->gpr[10], BIT(1));
+       /*
+        * set Region 0 attribute to allow secure and non-secure
+        * read/write permission. Found some masters like usb dwc3
+        * controllers can't work with secure memory.
+        */
+       writel(0xf0000000, TZASC_BASE_ADDR + 0x108);
 }
 
 void set_wdog_reset(struct wdog_regs *wdog)