[U-Boot] [PATCH 4/8] sun8i: Add TZPC setup for A83t

tpearson at raptorengineering.com tpearson at raptorengineering.com
Tue May 17 04:39:05 CEST 2016


Signed-off-by: Timothy Pearson <tpearson at raptorengineeringinc.com>
---
 arch/arm/cpu/armv7/sunxi/Makefile      |  1 +
 arch/arm/cpu/armv7/sunxi/tzpc.c        | 10 ++++++++++
 arch/arm/include/asm/arch-sunxi/tzpc.h | 10 ++++++++++
 arch/arm/mach-sunxi/board.c            |  2 +-
 4 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/arch/arm/cpu/armv7/sunxi/Makefile b/arch/arm/cpu/armv7/sunxi/Makefile
index 4d2274a..4dd449b 100644
--- a/arch/arm/cpu/armv7/sunxi/Makefile
+++ b/arch/arm/cpu/armv7/sunxi/Makefile
@@ -11,6 +11,7 @@ obj-y	+= timer.o

 obj-$(CONFIG_MACH_SUN6I)	+= tzpc.o
 obj-$(CONFIG_MACH_SUN8I_H3)	+= tzpc.o
+obj-$(CONFIG_MACH_SUN8I_A83T)	+= tzpc.o

 ifndef CONFIG_SPL_BUILD
 ifdef CONFIG_ARMV7_PSCI
diff --git a/arch/arm/cpu/armv7/sunxi/tzpc.c b/arch/arm/cpu/armv7/sunxi/tzpc.c
index 6c8a0fd..7723853 100644
--- a/arch/arm/cpu/armv7/sunxi/tzpc.c
+++ b/arch/arm/cpu/armv7/sunxi/tzpc.c
@@ -24,4 +24,14 @@ void tzpc_init(void)
 	writel(SUN8I_H3_TZPC_DECPORT1_ALL, &tzpc->decport1_set);
 	writel(SUN8I_H3_TZPC_DECPORT2_ALL, &tzpc->decport2_set);
 #endif
+
+#ifdef SUN8I_A83T_TZPC_DECPORT0_ALL
+	/* Emable non-secure access to RAM */
+	writel(R0SIZE, &tzpc->r0size);
+
+	/* Enable non-secure access to all peripherals */
+	writel(SUN8I_A83T_TZPC_DECPORT0_ALL, &tzpc->decport0_set);
+	writel(SUN8I_A83T_TZPC_DECPORT1_ALL, &tzpc->decport1_set);
+	writel(SUN8I_A83T_TZPC_DECPORT2_ALL, &tzpc->decport2_set);
+#endif
 }
diff --git a/arch/arm/include/asm/arch-sunxi/tzpc.h b/arch/arm/include/asm/arch-sunxi/tzpc.h
index 95c55cd..bcf0713 100644
--- a/arch/arm/include/asm/arch-sunxi/tzpc.h
+++ b/arch/arm/include/asm/arch-sunxi/tzpc.h
@@ -29,6 +29,16 @@ struct sunxi_tzpc {
 #define SUN8I_H3_TZPC_DECPORT1_ALL  0xff
 #define SUN8I_H3_TZPC_DECPORT2_ALL  0x7f

+#define SUN8I_A83T_TZPC_DECPORT0_ALL  0xbe
+#define SUN8I_A83T_TZPC_DECPORT1_ALL  0x7f
+#define SUN8I_A83T_TZPC_DECPORT2_ALL  0x10
+
+/*
+ * TZPC Register Value :
+ * R0SIZE: 0x10 : Size of secured ram (64Kib)
+ */
+#define R0SIZE			0x10
+
 void tzpc_init(void);

 #endif /* _SUNXI_TZPC_H */
diff --git a/arch/arm/mach-sunxi/board.c b/arch/arm/mach-sunxi/board.c
index 20149da..4e0f7f9 100644
--- a/arch/arm/mach-sunxi/board.c
+++ b/arch/arm/mach-sunxi/board.c
@@ -183,7 +183,7 @@ void s_init(void)
 		"orr r0, r0, #1 << 6\n"
 		"mcr p15, 0, r0, c1, c0, 1\n");
 #endif
-#if defined CONFIG_MACH_SUN6I || defined CONFIG_MACH_SUN8I_H3
+#if defined CONFIG_MACH_SUN6I || defined CONFIG_MACH_SUN8I_H3 || defined CONFIG_MACH_SUN8I_A83T
 	/* Enable non-secure access to some peripherals */
 	tzpc_init();
 #endif
-- 
2.8.0.rc3



More information about the U-Boot mailing list