xref: /rk3399_ARM-atf/plat/arm/board/fvp/fvp_security.c (revision cb68fefbc18b0ecfce75150773e3961f516778c3)
13fc4124cSDan Handley /*
2*887cdf48SYeoreum Yun  * Copyright (c) 2014-2025, 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>
9e8035421SFederico 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  */
plat_arm_security_setup(void)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 
25e8035421SFederico Recanati 	const arm_tzc_regions_info_t fvp_tzc_regions[] = {
26e8035421SFederico Recanati 		ARM_TZC_REGIONS_DEF,
27*887cdf48SYeoreum Yun #if !ENABLE_RME
28e8035421SFederico Recanati 		{FVP_DRAM3_BASE, FVP_DRAM3_END,
29e8035421SFederico Recanati 		 ARM_TZC_NS_DRAM_S_ACCESS, PLAT_ARM_TZC_NS_DEV_ACCESS},
30e8035421SFederico Recanati 		{FVP_DRAM4_BASE, FVP_DRAM4_END,
31e8035421SFederico Recanati 		 ARM_TZC_NS_DRAM_S_ACCESS, PLAT_ARM_TZC_NS_DEV_ACCESS},
32e8035421SFederico Recanati 		{FVP_DRAM5_BASE, FVP_DRAM5_END,
33e8035421SFederico Recanati 		 ARM_TZC_NS_DRAM_S_ACCESS, PLAT_ARM_TZC_NS_DEV_ACCESS},
34e8035421SFederico Recanati 		{FVP_DRAM6_BASE, FVP_DRAM6_END,
35e8035421SFederico Recanati 		 ARM_TZC_NS_DRAM_S_ACCESS, PLAT_ARM_TZC_NS_DEV_ACCESS},
36e8035421SFederico Recanati #endif
37e8035421SFederico Recanati 		{0}
38e8035421SFederico Recanati 	};
39e8035421SFederico Recanati 
4089509904SSathees Balya 	if ((get_arm_config()->flags & ARM_CONFIG_HAS_TZC) != 0U)
41e8035421SFederico Recanati 		arm_tzc400_setup(PLAT_ARM_TZC_BASE, fvp_tzc_regions);
423fc4124cSDan Handley }
43