xref: /rk3399_ARM-atf/plat/arm/board/morello/morello_plat.c (revision 514d022fdae9305d4381bbf7ad19db878cfaa8eb)
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