diff options
author | Dimitris Papastamos <dimitris.papastamos@arm.com> | 2018-04-11 09:39:21 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-11 09:39:21 +0100 |
commit | b47f941d50942c1544081b213f90634f734e43d8 (patch) | |
tree | 82ea5fcaeee9aa758e97243ad1409d87459beac5 /include | |
parent | a2344983143722af9391ffad34d9db451c67be20 (diff) | |
parent | 60a23fd8dedbcd9b4ec63bcf04f4dc804edaee1b (diff) | |
download | platform_external_arm-trusted-firmware-b47f941d50942c1544081b213f90634f734e43d8.tar.gz platform_external_arm-trusted-firmware-b47f941d50942c1544081b213f90634f734e43d8.tar.bz2 platform_external_arm-trusted-firmware-b47f941d50942c1544081b213f90634f734e43d8.zip |
Merge pull request #1342 from Summer-ARM/sq/support-tzmp1
support tzmp1
Diffstat (limited to 'include')
-rw-r--r-- | include/plat/arm/common/plat_arm.h | 43 |
1 files changed, 41 insertions, 2 deletions
diff --git a/include/plat/arm/common/plat_arm.h b/include/plat/arm/common/plat_arm.h index b0db8f08f..f79450ce9 100644 --- a/include/plat/arm/common/plat_arm.h +++ b/include/plat/arm/common/plat_arm.h @@ -11,6 +11,7 @@ #include <cassert.h> #include <cpu_data.h> #include <stdint.h> +#include <tzc_common.h> #include <utils_def.h> /******************************************************************************* @@ -21,6 +22,43 @@ struct meminfo; struct image_info; struct bl_params; +typedef struct arm_tzc_regions_info { + unsigned long long base; + unsigned long long end; + tzc_region_attributes_t sec_attr; + unsigned int nsaid_permissions; +} arm_tzc_regions_info_t; + +/******************************************************************************* + * Default mapping definition of the TrustZone Controller for ARM standard + * platforms. + * Configure: + * - Region 0 with no access; + * - Region 1 with secure access only; + * - the remaining DRAM regions access from the given Non-Secure masters. + ******************************************************************************/ +#if ENABLE_SPM +#define ARM_TZC_REGIONS_DEF \ + {ARM_AP_TZC_DRAM1_BASE, ARM_EL3_TZC_DRAM1_END, \ + TZC_REGION_S_RDWR, 0}, \ + {ARM_NS_DRAM1_BASE, ARM_NS_DRAM1_END, ARM_TZC_NS_DRAM_S_ACCESS, \ + PLAT_ARM_TZC_NS_DEV_ACCESS}, \ + {ARM_DRAM2_BASE, ARM_DRAM2_END, ARM_TZC_NS_DRAM_S_ACCESS, \ + PLAT_ARM_TZC_NS_DEV_ACCESS}, \ + {ARM_SP_IMAGE_NS_BUF_BASE, (ARM_SP_IMAGE_NS_BUF_BASE + \ + ARM_SP_IMAGE_NS_BUF_SIZE) - 1, TZC_REGION_S_NONE, \ + PLAT_ARM_TZC_NS_DEV_ACCESS} + +#else +#define ARM_TZC_REGIONS_DEF \ + {ARM_AP_TZC_DRAM1_BASE, ARM_EL3_TZC_DRAM1_END, \ + TZC_REGION_S_RDWR, 0}, \ + {ARM_NS_DRAM1_BASE, ARM_NS_DRAM1_END, ARM_TZC_NS_DRAM_S_ACCESS, \ + PLAT_ARM_TZC_NS_DEV_ACCESS}, \ + {ARM_DRAM2_BASE, ARM_DRAM2_END, ARM_TZC_NS_DRAM_S_ACCESS, \ + PLAT_ARM_TZC_NS_DEV_ACCESS} +#endif + #define ARM_CASSERT_MMAP \ CASSERT((ARRAY_SIZE(plat_arm_mmap) + ARM_BL_REGIONS) \ <= MAX_MMAP_REGIONS, \ @@ -110,9 +148,10 @@ void arm_setup_page_tables(uintptr_t total_base, void arm_io_setup(void); /* Security utility functions */ -void arm_tzc400_setup(void); +void arm_tzc400_setup(const arm_tzc_regions_info_t *tzc_regions); struct tzc_dmc500_driver_data; -void arm_tzc_dmc500_setup(struct tzc_dmc500_driver_data *plat_driver_data); +void arm_tzc_dmc500_setup(struct tzc_dmc500_driver_data *plat_driver_data, + const arm_tzc_regions_info_t *tzc_regions); /* Systimer utility function */ void arm_configure_sys_timer(void); |