1 /* 2 * Copyright (c) 2019, Arm Limited. All rights reserved. 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7 #include <assert.h> 8 9 #include <common/debug.h> 10 #include <lib/mmio.h> 11 #include <platform_def.h> 12 #include <plat/arm/common/arm_config.h> 13 #include <plat/arm/common/plat_arm.h> 14 15 #define MAP_DEVICE0 MAP_REGION_FLAT(DEVICE0_BASE, \ 16 DEVICE0_SIZE, \ 17 MT_DEVICE | MT_RW | MT_SECURE) 18 19 #ifdef IMAGE_BL1 20 const mmap_region_t plat_arm_mmap[] = { 21 ARM_MAP_SHARED_RAM, 22 V2M_MAP_FLASH1_RW, 23 V2M_MAP_IOFPGA, 24 {0} 25 }; 26 #endif 27 #ifdef IMAGE_BL2 28 const mmap_region_t plat_arm_mmap[] = { 29 ARM_MAP_SHARED_RAM, 30 V2M_MAP_FLASH1_RW, 31 V2M_MAP_IOFPGA, 32 ARM_MAP_NS_DRAM1, 33 {0} 34 }; 35 #endif 36 #ifdef IMAGE_BL32 37 const mmap_region_t plat_arm_mmap[] = { 38 ARM_MAP_SHARED_RAM, 39 V2M_MAP_IOFPGA, 40 MAP_DEVICE0, 41 {0} 42 }; 43 #endif 44 45 ARM_CASSERT_MMAP 46 47 void __init fvp_ve_config_setup(void) 48 { 49 unsigned int sys_id, arch; 50 51 sys_id = mmio_read_32(V2M_SYSREGS_BASE + V2M_SYS_ID); 52 arch = (sys_id >> V2M_SYS_ID_ARCH_SHIFT) & V2M_SYS_ID_ARCH_MASK; 53 54 if (arch != ARCH_MODEL_VE) { 55 ERROR("This firmware is for FVP VE models\n"); 56 panic(); 57 } 58 } 59 60 unsigned int plat_get_syscnt_freq2(void) 61 { 62 return FVP_VE_TIMER_BASE_FREQUENCY; 63 } 64