aboutsummaryrefslogtreecommitdiff
path: root/core/arch/arm/plat-imx/drivers/tzc380.c
diff options
context:
space:
mode:
Diffstat (limited to 'core/arch/arm/plat-imx/drivers/tzc380.c')
-rw-r--r--core/arch/arm/plat-imx/drivers/tzc380.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/core/arch/arm/plat-imx/drivers/tzc380.c b/core/arch/arm/plat-imx/drivers/tzc380.c
new file mode 100644
index 00000000..b9139f61
--- /dev/null
+++ b/core/arch/arm/plat-imx/drivers/tzc380.c
@@ -0,0 +1,37 @@
+// SPDX-License-Identifier: BSD-2-Clause
+/*
+ * Copyright 2019 Pengutronix
+ * All rights reserved.
+ *
+ * Rouven Czerwinski <entwicklung@pengutronix.de>
+ */
+
+#include <drivers/tzc380.h>
+#include <imx-regs.h>
+#include <imx.h>
+#include <mm/core_memprot.h>
+#include <mm/generic_ram_layout.h>
+
+void imx_configure_tzasc(void)
+{
+
+ int i;
+ vaddr_t addr[2] = {0};
+
+ addr[0] = core_mmu_get_va(TZASC_BASE, MEM_AREA_IO_SEC);
+ addr[1] = core_mmu_get_va(TZASC2_BASE, MEM_AREA_IO_SEC);
+
+ for (i = 0; i < 2; i++) {
+ uint8_t region = 1;
+
+ tzc_init(addr[i]);
+
+ region = tzc_auto_configure(CFG_DRAM_BASE, CFG_DDR_SIZE,
+ TZC_ATTR_SP_NS_RW, region);
+ region = tzc_auto_configure(CFG_TZDRAM_START, CFG_TZDRAM_SIZE,
+ TZC_ATTR_SP_S_RW, region);
+ region = tzc_auto_configure(CFG_SHMEM_START, CFG_SHMEM_SIZE,
+ TZC_ATTR_SP_ALL, region);
+ DMSG("Action register: %xl", tzc_get_action());
+ }
+}