1 /* 2 * Copyright (c) 2020-2024, Arm Limited. All rights reserved. 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7 #include <assert.h> 8 9 #include <drivers/arm/css/sds.h> 10 #include <drivers/arm/sbsa.h> 11 #include <lib/utils_def.h> 12 #include <plat/arm/common/plat_arm.h> 13 14 #include "morello_def.h" 15 16 /* 17 * Table of regions to map using the MMU. 18 * Replace or extend the below regions as required 19 */ 20 #if IMAGE_BL1 21 const mmap_region_t plat_arm_mmap[] = { 22 ARM_MAP_SHARED_RAM, 23 MORELLO_MAP_DEVICE, 24 MORELLO_MAP_NS_SRAM, 25 ARM_MAP_DRAM1, 26 ARM_MAP_DRAM2, 27 {0} 28 }; 29 #endif 30 31 #if IMAGE_BL31 32 const mmap_region_t plat_arm_mmap[] = { 33 ARM_MAP_SHARED_RAM, 34 MORELLO_MAP_DEVICE, 35 MORELLO_MAP_NS_SRAM, 36 {0} 37 }; 38 #endif 39 40 #if IMAGE_BL2 41 const mmap_region_t plat_arm_mmap[] = { 42 ARM_MAP_SHARED_RAM, 43 MORELLO_MAP_DEVICE, 44 MORELLO_MAP_NS_SRAM, 45 ARM_MAP_DRAM1, 46 ARM_MAP_DRAM2, 47 #if TRUSTED_BOARD_BOOT && !RESET_TO_BL2 48 ARM_MAP_BL1_RW, 49 #endif 50 {0} 51 }; 52 #endif 53 54 #if TRUSTED_BOARD_BOOT 55 int plat_get_mbedtls_heap(void **heap_addr, size_t *heap_size) 56 { 57 assert(heap_addr != NULL); 58 assert(heap_size != NULL); 59 60 return arm_get_mbedtls_heap(heap_addr, heap_size); 61 } 62 #endif 63 64 void plat_arm_secure_wdt_start(void) 65 { 66 sbsa_wdog_start(SBSA_SECURE_WDOG_BASE, SBSA_SECURE_WDOG_TIMEOUT); 67 } 68 69 void plat_arm_secure_wdt_stop(void) 70 { 71 sbsa_wdog_stop(SBSA_SECURE_WDOG_BASE); 72 } 73 74 #if CSS_USE_SCMI_SDS_DRIVER 75 static sds_region_desc_t morello_sds_regions[] = { 76 { .base = PLAT_ARM_SDS_MEM_BASE }, 77 }; 78 79 sds_region_desc_t *plat_sds_get_regions(unsigned int *region_count) 80 { 81 *region_count = ARRAY_SIZE(morello_sds_regions); 82 83 return morello_sds_regions; 84 } 85 #endif /* CSS_USE_SCMI_SDS_DRIVER */ 86