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
plat_get_mbedtls_heap(void ** heap_addr,size_t * heap_size)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
plat_arm_secure_wdt_start(void)64 void plat_arm_secure_wdt_start(void)
65 {
66 sbsa_wdog_start(SBSA_SECURE_WDOG_BASE, SBSA_SECURE_WDOG_TIMEOUT);
67 }
68
plat_arm_secure_wdt_stop(void)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
plat_sds_get_regions(unsigned int * region_count)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