blob: 61fed642b62d4e15c25945783da1c5e9b884f489 [file] [log] [blame]
Chandni Cherukurif3a6cab2020-09-22 18:56:25 +05301/*
Tamas Banf728b612023-05-08 13:50:37 +02002 * Copyright (c) 2020-2024, Arm Limited. All rights reserved.
Chandni Cherukurif3a6cab2020-09-22 18:56:25 +05303 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
Manoj Kumar58876122021-01-10 16:12:24 +00007#include <assert.h>
8
Tamas Banf728b612023-05-08 13:50:37 +02009#include <drivers/arm/css/sds.h>
Manoj Kumar58876122021-01-10 16:12:24 +000010#include <drivers/arm/sbsa.h>
Tamas Banf728b612023-05-08 13:50:37 +020011#include <lib/utils_def.h>
Chandni Cherukurif3a6cab2020-09-22 18:56:25 +053012#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 */
Manoj Kumar91162752022-06-23 12:30:37 +010020#if IMAGE_BL1
Chandni Cherukurif3a6cab2020-09-22 18:56:25 +053021const mmap_region_t plat_arm_mmap[] = {
22 ARM_MAP_SHARED_RAM,
23 MORELLO_MAP_DEVICE,
24 MORELLO_MAP_NS_SRAM,
25 ARM_MAP_DRAM1,
Manoj Kumarb19e62a2021-08-26 10:49:02 +053026 ARM_MAP_DRAM2,
Chandni Cherukurif3a6cab2020-09-22 18:56:25 +053027 {0}
28};
Manoj Kumar58876122021-01-10 16:12:24 +000029#endif
Manoj Kumar91162752022-06-23 12:30:37 +010030
31#if IMAGE_BL31
32const 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
Manoj Kumar58876122021-01-10 16:12:24 +000040#if IMAGE_BL2
41const mmap_region_t plat_arm_mmap[] = {
42 ARM_MAP_SHARED_RAM,
43 MORELLO_MAP_DEVICE,
44 MORELLO_MAP_NS_SRAM,
45 ARM_MAP_DRAM1,
Manoj Kumar91162752022-06-23 12:30:37 +010046 ARM_MAP_DRAM2,
Arvind Ram Prakash11b9b492022-11-22 14:41:00 -060047#if TRUSTED_BOARD_BOOT && !RESET_TO_BL2
Manoj Kumar58876122021-01-10 16:12:24 +000048 ARM_MAP_BL1_RW,
49#endif
50 {0}
51};
52#endif
53
54#if TRUSTED_BOARD_BOOT
55int 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
64void plat_arm_secure_wdt_start(void)
65{
66 sbsa_wdog_start(SBSA_SECURE_WDOG_BASE, SBSA_SECURE_WDOG_TIMEOUT);
67}
68
69void plat_arm_secure_wdt_stop(void)
70{
71 sbsa_wdog_stop(SBSA_SECURE_WDOG_BASE);
72}
Tamas Banf728b612023-05-08 13:50:37 +020073
74#if CSS_USE_SCMI_SDS_DRIVER
75static sds_region_desc_t morello_sds_regions[] = {
76 { .base = PLAT_ARM_SDS_MEM_BASE },
77};
78
79sds_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 */