diff options
author | Suyash Pathak <suyash.pathak@arm.com> | 2020-02-12 10:08:55 +0530 |
---|---|---|
committer | Suyash Pathak <suyash.pathak@arm.com> | 2020-02-19 13:26:53 +0530 |
commit | 4bbb3a541647cf8729c1ffd7792e8eb6d0669830 (patch) | |
tree | 67a0615010adf40bfa0e18bafbdd6849404b845a /plat | |
parent | 4ed16765187158eab9587d0b1eea13a82aed040f (diff) | |
download | platform_external_arm-trusted-firmware-4bbb3a541647cf8729c1ffd7792e8eb6d0669830.tar.gz platform_external_arm-trusted-firmware-4bbb3a541647cf8729c1ffd7792e8eb6d0669830.tar.bz2 platform_external_arm-trusted-firmware-4bbb3a541647cf8729c1ffd7792e8eb6d0669830.zip |
board/rddaniel: intialize tzc400 controllers
A TZC400 controller is placed inline on DRAM channels and regulates
the secure and non-secure accesses to both secure and non-secure
regions of the DRAM memory. Configure each of the TZC controllers
accordingly.
Change-Id: I75f6d13591a7fe9e50ce15c793e35a8018041815
Signed-off-by: Suyash Pathak <suyash.pathak@arm.com>
Diffstat (limited to 'plat')
-rw-r--r-- | plat/arm/board/rddaniel/include/platform_def.h | 15 | ||||
-rw-r--r-- | plat/arm/board/rddaniel/platform.mk | 2 | ||||
-rw-r--r-- | plat/arm/board/rddaniel/rddaniel_security.c | 10 |
3 files changed, 27 insertions, 0 deletions
diff --git a/plat/arm/board/rddaniel/include/platform_def.h b/plat/arm/board/rddaniel/include/platform_def.h index 516360278..790ed696b 100644 --- a/plat/arm/board/rddaniel/include/platform_def.h +++ b/plat/arm/board/rddaniel/include/platform_def.h @@ -21,6 +21,21 @@ #define CSS_SYSTEM_PWR_DMN_LVL ARM_PWR_LVL2 #define PLAT_MAX_PWR_LVL ARM_PWR_LVL1 +/* TZC Related Constants */ +#define PLAT_ARM_TZC_BASE UL(0x21830000) +#define PLAT_ARM_TZC_FILTERS TZC_400_REGION_ATTR_FILTER_BIT(0) + +#define TZC400_OFFSET UL(0x1000000) +#define TZC400_COUNT 4 + +#define TZC400_BASE(n) (PLAT_ARM_TZC_BASE + \ + (n * TZC400_OFFSET)) + +#define TZC_NSAID_ALL_AP U(0) + +#define PLAT_ARM_TZC_NS_DEV_ACCESS \ + (TZC_REGION_ACCESS_RDWR(TZC_NSAID_ALL_AP)) + /* * Physical and virtual address space limits for MMU in AARCH64 & AARCH32 modes */ diff --git a/plat/arm/board/rddaniel/platform.mk b/plat/arm/board/rddaniel/platform.mk index c7e3c7dd8..ca2647418 100644 --- a/plat/arm/board/rddaniel/platform.mk +++ b/plat/arm/board/rddaniel/platform.mk @@ -18,6 +18,8 @@ BL2_SOURCES += ${RDDANIEL_BASE}/rddaniel_plat.c \ ${RDDANIEL_BASE}/rddaniel_security.c \ ${RDDANIEL_BASE}/rddaniel_err.c \ lib/utils/mem_region.c \ + drivers/arm/tzc/tzc400.c \ + plat/arm/common/arm_tzc400.c \ plat/arm/common/arm_nor_psci_mem_protect.c BL31_SOURCES += ${SGI_CPU_SOURCES} \ diff --git a/plat/arm/board/rddaniel/rddaniel_security.c b/plat/arm/board/rddaniel/rddaniel_security.c index 6aa38c822..1247db860 100644 --- a/plat/arm/board/rddaniel/rddaniel_security.c +++ b/plat/arm/board/rddaniel/rddaniel_security.c @@ -4,9 +4,19 @@ * SPDX-License-Identifier: BSD-3-Clause */ +#include <plat/arm/common/plat_arm.h> #include <platform_def.h> +static const arm_tzc_regions_info_t tzc_regions[] = { + ARM_TZC_REGIONS_DEF, + {} +}; + /* Initialize the secure environment */ void plat_arm_security_setup(void) { + int i; + + for (i = 0; i < TZC400_COUNT; i++) + arm_tzc400_setup(TZC400_BASE(i), tzc_regions); } |