xref: /rk3399_ARM-atf/plat/arm/board/fvp/fvp_security.c (revision e80354212f591c8813dec27353e8241e03155b4c)
13fc4124cSDan Handley /*
2*e8035421SFederico Recanati  * Copyright (c) 2014-2022, Arm Limited and Contributors. All rights reserved.
33fc4124cSDan Handley  *
482cb2c1aSdp-arm  * SPDX-License-Identifier: BSD-3-Clause
53fc4124cSDan Handley  */
63fc4124cSDan Handley 
7bd9344f6SAntonio Nino Diaz #include <plat/arm/common/arm_config.h>
8bd9344f6SAntonio Nino Diaz #include <plat/arm/common/plat_arm.h>
9*e8035421SFederico Recanati #include <platform_def.h>
103fc4124cSDan Handley 
113fc4124cSDan Handley /*
123fc4124cSDan Handley  * We assume that all security programming is done by the primary core.
133fc4124cSDan Handley  */
143fc4124cSDan Handley void plat_arm_security_setup(void)
153fc4124cSDan Handley {
163fc4124cSDan Handley 	/*
173fc4124cSDan Handley 	 * The Base FVP has a TrustZone address space controller, the Foundation
183fc4124cSDan Handley 	 * FVP does not. Trying to program the device on the foundation FVP will
193fc4124cSDan Handley 	 * cause an abort.
203fc4124cSDan Handley 	 *
213fc4124cSDan Handley 	 * If the platform had additional peripheral specific security
223fc4124cSDan Handley 	 * configurations, those would be configured here.
233fc4124cSDan Handley 	 */
243fc4124cSDan Handley 
25*e8035421SFederico Recanati 	const arm_tzc_regions_info_t fvp_tzc_regions[] = {
26*e8035421SFederico Recanati 		ARM_TZC_REGIONS_DEF,
27*e8035421SFederico Recanati #if !SPM_MM && !ENABLE_RME
28*e8035421SFederico Recanati 		{FVP_DRAM3_BASE, FVP_DRAM3_END,
29*e8035421SFederico Recanati 		 ARM_TZC_NS_DRAM_S_ACCESS, PLAT_ARM_TZC_NS_DEV_ACCESS},
30*e8035421SFederico Recanati 		{FVP_DRAM4_BASE, FVP_DRAM4_END,
31*e8035421SFederico Recanati 		 ARM_TZC_NS_DRAM_S_ACCESS, PLAT_ARM_TZC_NS_DEV_ACCESS},
32*e8035421SFederico Recanati 		{FVP_DRAM5_BASE, FVP_DRAM5_END,
33*e8035421SFederico Recanati 		 ARM_TZC_NS_DRAM_S_ACCESS, PLAT_ARM_TZC_NS_DEV_ACCESS},
34*e8035421SFederico Recanati 		{FVP_DRAM6_BASE, FVP_DRAM6_END,
35*e8035421SFederico Recanati 		 ARM_TZC_NS_DRAM_S_ACCESS, PLAT_ARM_TZC_NS_DEV_ACCESS},
36*e8035421SFederico Recanati #endif
37*e8035421SFederico Recanati 		{0}
38*e8035421SFederico Recanati 	};
39*e8035421SFederico Recanati 
4089509904SSathees Balya 	if ((get_arm_config()->flags & ARM_CONFIG_HAS_TZC) != 0U)
41*e8035421SFederico Recanati 		arm_tzc400_setup(PLAT_ARM_TZC_BASE, fvp_tzc_regions);
423fc4124cSDan Handley }
43