blob: 408694f3947f1308104f16d3915fd3b2f6a34a40 [file] [log] [blame]
Angel Pons1ddb8942020-04-04 18:51:26 +02001/* SPDX-License-Identifier: GPL-2.0-only */
Gabe Black8128a562013-09-18 05:48:37 -07002
Kyösti Mälkki13f66502019-03-03 08:01:05 +02003#include <device/mmio.h>
Julius Werner1ed0c8c2014-10-20 13:16:29 -07004#include <soc/trustzone.h>
Gabe Black8128a562013-09-18 05:48:37 -07005
6/* Setting TZPC[TrustZone Protection Controller] */
7void trustzone_init(void)
8{
9 struct exynos_tzpc *tzpc;
10 unsigned int addr;
11
12 for (addr = TZPC0_BASE; addr <= TZPC9_BASE; addr += TZPC_BASE_OFFSET) {
13 tzpc = (struct exynos_tzpc *)addr;
14
15 if (addr == TZPC0_BASE)
Julius Werner2f37bd62015-02-19 14:51:15 -080016 write32(&tzpc->r0size, R0SIZE);
Gabe Black8128a562013-09-18 05:48:37 -070017
Julius Werner2f37bd62015-02-19 14:51:15 -080018 write32(&tzpc->decprot0set, DECPROTXSET);
19 write32(&tzpc->decprot1set, DECPROTXSET);
Gabe Black8128a562013-09-18 05:48:37 -070020
21 if (addr != TZPC9_BASE) {
Julius Werner2f37bd62015-02-19 14:51:15 -080022 write32(&tzpc->decprot2set, DECPROTXSET);
23 write32(&tzpc->decprot3set, DECPROTXSET);
Gabe Black8128a562013-09-18 05:48:37 -070024 }
25 }
26}