blob: acfaf5d011c6c93c8dc48aa0d7b96210ea2b7328 [file] [log] [blame]
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +01001/*
Vishnu Banavath2b651ea2022-01-19 18:43:12 +00002 * Copyright (c) 2021-2022, Arm Limited and Contributors. All rights reserved.
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +01003 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7#ifndef PLATFORM_DEF_H
8#define PLATFORM_DEF_H
9
10#include <common/tbbr/tbbr_img_def.h>
11#include <lib/utils_def.h>
12#include <lib/xlat_tables/xlat_tables_defs.h>
13#include <plat/arm/board/common/v2m_def.h>
14#include <plat/arm/common/arm_spm_def.h>
15#include <plat/arm/common/smccc_def.h>
16#include <plat/common/common_def.h>
17#include <plat/arm/soc/common/soc_css_def.h>
18
Arpita S.K639f7b72021-10-13 14:49:26 +053019#define ARM_ROTPK_HEADER_LEN 19
20#define ARM_ROTPK_HASH_LEN 32
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +010021
22/* Special value used to verify platform parameters from BL2 to BL31 */
Arpita S.K639f7b72021-10-13 14:49:26 +053023#define ARM_BL31_PLAT_PARAM_VAL ULL(0x0f1e2d3c4b5a6978)
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +010024
25/* PL011 UART related constants */
26#ifdef V2M_IOFPGA_UART0_CLK_IN_HZ
27#undef V2M_IOFPGA_UART0_CLK_IN_HZ
28#endif
29
30#ifdef V2M_IOFPGA_UART1_CLK_IN_HZ
31#undef V2M_IOFPGA_UART1_CLK_IN_HZ
32#endif
33
Arpita S.K639f7b72021-10-13 14:49:26 +053034#define V2M_IOFPGA_UART0_CLK_IN_HZ 50000000
35#define V2M_IOFPGA_UART1_CLK_IN_HZ 50000000
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +010036
Vishnu Banavath2b651ea2022-01-19 18:43:12 +000037/* Core/Cluster/Thread counts for corstone1000 */
Arpita S.K639f7b72021-10-13 14:49:26 +053038#define CORSTONE1000_CLUSTER_COUNT U(1)
39#define CORSTONE1000_MAX_CPUS_PER_CLUSTER U(4)
40#define CORSTONE1000_MAX_PE_PER_CPU U(1)
41#define CORSTONE1000_PRIMARY_CPU U(0)
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +010042
Arpita S.K639f7b72021-10-13 14:49:26 +053043#define PLAT_ARM_CLUSTER_COUNT CORSTONE1000_CLUSTER_COUNT
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +010044
Arpita S.K639f7b72021-10-13 14:49:26 +053045#define PLATFORM_CORE_COUNT (PLAT_ARM_CLUSTER_COUNT * \
46 CORSTONE1000_MAX_CPUS_PER_CLUSTER * \
47 CORSTONE1000_MAX_PE_PER_CPU)
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +010048
49/* UART related constants */
Arpita S.K639f7b72021-10-13 14:49:26 +053050#define PLAT_ARM_BOOT_UART_BASE 0x1a510000
51#define PLAT_ARM_BOOT_UART_CLK_IN_HZ V2M_IOFPGA_UART0_CLK_IN_HZ
52#define PLAT_ARM_RUN_UART_BASE 0x1a520000
53#define PLAT_ARM_RUN_UART_CLK_IN_HZ V2M_IOFPGA_UART1_CLK_IN_HZ
54#define ARM_CONSOLE_BAUDRATE 115200
55#define PLAT_ARM_CRASH_UART_BASE PLAT_ARM_RUN_UART_BASE
56#define PLAT_ARM_CRASH_UART_CLK_IN_HZ PLAT_ARM_RUN_UART_CLK_IN_HZ
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +010057
58/* Memory related constants */
59
60/* SRAM (CVM) memory layout
61 *
62 * <ARM_TRUSTED_SRAM_BASE>
63 *
64 * partition size: sizeof(meminfo_t) = 16 bytes
65 *
66 * content: memory info area used by the next BL
67 *
68 * <ARM_FW_CONFIG_BASE>
69 *
70 * partition size: 4080 bytes
71 *
72 * <ARM_BL2_MEM_DESC_BASE>
73 *
74 * partition size: 4 KB
75 *
76 * content:
77 *
78 * Area where BL2 copies the images descriptors
79 *
80 * <ARM_BL_RAM_BASE> = <BL32_BASE>
81 *
82 * partition size: 688 KB
83 *
84 * content:
85 *
86 * BL32 (optee-os)
87 *
Vishnu Banavath2b651ea2022-01-19 18:43:12 +000088 * <CORSTONE1000_TOS_FW_CONFIG_BASE> = 0x20ae000
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +010089 *
90 * partition size: 8 KB
91 *
92 * content:
93 *
94 * BL32 config (TOS_FW_CONFIG)
95 *
96 * <BL31_BASE>
97 *
98 * partition size: 140 KB
99 *
100 * content:
101 *
102 * BL31
103 *
104 * <BL2_SIGNATURE_BASE>
105 *
106 * partition size: 4 KB
107 *
108 * content:
109 *
110 * MCUBOOT data needed to verify TF-A BL2
111 *
112 * <BL2_BASE>
113 *
114 * partition size: 176 KB
115 *
116 * content:
117 *
118 * BL2
119 *
120 * <ARM_NS_SHARED_RAM_BASE> = <ARM_TRUSTED_SRAM_BASE> + 1 MB
121 *
Arpita S.K639f7b72021-10-13 14:49:26 +0530122 * partition size: 512 KB
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +0100123 *
124 * content:
125 *
126 * BL33 (u-boot)
127 */
128
129/* DDR memory */
Arpita S.K639f7b72021-10-13 14:49:26 +0530130#define ARM_DRAM1_BASE UL(0x80000000)
131#define ARM_DRAM1_SIZE (SZ_2G) /* 2GB*/
132#define ARM_DRAM1_END (ARM_DRAM1_BASE + \
133 ARM_DRAM1_SIZE - 1)
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +0100134
Vishnu Banavath2b651ea2022-01-19 18:43:12 +0000135/* DRAM1 and DRAM2 are the same for corstone1000 */
Arpita S.K639f7b72021-10-13 14:49:26 +0530136#define ARM_DRAM2_BASE ARM_DRAM1_BASE
137#define ARM_DRAM2_SIZE ARM_DRAM1_SIZE
138#define ARM_DRAM2_END ARM_DRAM1_END
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +0100139
Arpita S.K639f7b72021-10-13 14:49:26 +0530140#define ARM_NS_DRAM1_BASE ARM_DRAM1_BASE
141#define ARM_NS_DRAM1_SIZE ARM_DRAM1_SIZE
142#define ARM_NS_DRAM1_END (ARM_NS_DRAM1_BASE +\
143 ARM_NS_DRAM1_SIZE - 1)
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +0100144
145/* The first 8 KB of Trusted SRAM are used as shared memory */
Arpita S.K639f7b72021-10-13 14:49:26 +0530146#define ARM_TRUSTED_SRAM_BASE UL(0x02000000)
147#define ARM_SHARED_RAM_SIZE (SZ_8K) /* 8 KB */
148#define ARM_SHARED_RAM_BASE ARM_TRUSTED_SRAM_BASE
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +0100149
150/* The remaining Trusted SRAM is used to load the BL images */
Arpita S.K639f7b72021-10-13 14:49:26 +0530151#define TOTAL_SRAM_SIZE (SZ_4M) /* 4 MB */
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +0100152
Arpita S.K639f7b72021-10-13 14:49:26 +0530153/* Last 512KB of CVM is allocated for shared RAM
154 * as an example openAMP */
155#define ARM_NS_SHARED_RAM_SIZE (512 * SZ_1K)
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +0100156
Arpita S.K639f7b72021-10-13 14:49:26 +0530157#define PLAT_ARM_TRUSTED_SRAM_SIZE (TOTAL_SRAM_SIZE - \
158 ARM_NS_SHARED_RAM_SIZE - \
159 ARM_SHARED_RAM_SIZE)
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +0100160
Arpita S.K639f7b72021-10-13 14:49:26 +0530161#define PLAT_ARM_MAX_BL2_SIZE (180 * SZ_1K) /* 180 KB */
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +0100162
Arpita S.K639f7b72021-10-13 14:49:26 +0530163#define PLAT_ARM_MAX_BL31_SIZE (140 * SZ_1K) /* 140 KB */
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +0100164
Arpita S.K639f7b72021-10-13 14:49:26 +0530165#define ARM_BL_RAM_BASE (ARM_SHARED_RAM_BASE + \
166 ARM_SHARED_RAM_SIZE)
167#define ARM_BL_RAM_SIZE (PLAT_ARM_TRUSTED_SRAM_SIZE - \
168 ARM_SHARED_RAM_SIZE)
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +0100169
Arpita S.K639f7b72021-10-13 14:49:26 +0530170#define BL2_SIGNATURE_SIZE (SZ_4K) /* 4 KB */
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +0100171
Arpita S.K639f7b72021-10-13 14:49:26 +0530172#define BL2_SIGNATURE_BASE (BL2_LIMIT - \
173 PLAT_ARM_MAX_BL2_SIZE)
174#define BL2_BASE (BL2_LIMIT - \
175 PLAT_ARM_MAX_BL2_SIZE + \
176 BL2_SIGNATURE_SIZE)
177#define BL2_LIMIT (ARM_BL_RAM_BASE + \
178 ARM_BL_RAM_SIZE)
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +0100179
Arpita S.K639f7b72021-10-13 14:49:26 +0530180#define BL31_BASE (BL2_SIGNATURE_BASE - \
181 PLAT_ARM_MAX_BL31_SIZE)
182#define BL31_LIMIT BL2_SIGNATURE_BASE
183
184#define CORSTONE1000_TOS_FW_CONFIG_BASE (BL31_BASE - \
185 CORSTONE1000_TOS_FW_CONFIG_SIZE)
186#define CORSTONE1000_TOS_FW_CONFIG_SIZE (SZ_8K) /* 8 KB */
187#define CORSTONE1000_TOS_FW_CONFIG_LIMIT BL31_BASE
188
189#define BL32_BASE ARM_BL_RAM_BASE
190#define PLAT_ARM_MAX_BL32_SIZE (CORSTONE1000_TOS_FW_CONFIG_BASE - \
191 BL32_BASE)
192
193#define BL32_LIMIT (BL32_BASE + \
194 PLAT_ARM_MAX_BL32_SIZE)
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +0100195
196/* SPD_spmd settings */
197
Arpita S.K639f7b72021-10-13 14:49:26 +0530198#define PLAT_ARM_SPMC_BASE BL32_BASE
199#define PLAT_ARM_SPMC_SIZE PLAT_ARM_MAX_BL32_SIZE
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +0100200
201/* NS memory */
202
Arpita S.K639f7b72021-10-13 14:49:26 +0530203/* The last 512KB of the SRAM is allocated as shared memory */
204#define ARM_NS_SHARED_RAM_BASE (ARM_TRUSTED_SRAM_BASE + TOTAL_SRAM_SIZE - \
205 (PLAT_ARM_MAX_BL31_SIZE + \
206 PLAT_ARM_MAX_BL32_SIZE))
207
208#define BL33_BASE ARM_DRAM1_BASE
209#define PLAT_ARM_MAX_BL33_SIZE (12 * SZ_1M) /* 12 MB*/
210#define BL33_LIMIT (ARM_DRAM1_BASE + PLAT_ARM_MAX_BL33_SIZE)
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +0100211
212/* end of the definition of SRAM memory layout */
213
214/* NOR Flash */
215
Arpita S.K639f7b72021-10-13 14:49:26 +0530216#define PLAT_ARM_FIP_BASE UL(0x08131000)
217#define PLAT_ARM_FIP_MAX_SIZE UL(0x1ff000) /* 1.996 MB */
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +0100218
Arpita S.K639f7b72021-10-13 14:49:26 +0530219#define PLAT_ARM_NVM_BASE V2M_FLASH0_BASE
220#define PLAT_ARM_NVM_SIZE (SZ_32M) /* 32 MB */
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +0100221
Arpita S.K639f7b72021-10-13 14:49:26 +0530222#define PLAT_ARM_FLASH_IMAGE_BASE PLAT_ARM_FIP_BASE
223#define PLAT_ARM_FLASH_IMAGE_MAX_SIZE PLAT_ARM_FIP_MAX_SIZE
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +0100224
225/*
226 * Some data must be aligned on the biggest cache line size in the platform.
227 * This is known only to the platform as it might have a combination of
228 * integrated and external caches.
229 */
Arpita S.K639f7b72021-10-13 14:49:26 +0530230#define CACHE_WRITEBACK_GRANULE (U(1) << ARM_CACHE_WRITEBACK_SHIFT)
231#define ARM_CACHE_WRITEBACK_SHIFT 6
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +0100232
233/*
234 * Define FW_CONFIG area base and limit. Leave enough space for BL2 meminfo.
235 * FW_CONFIG is intended to host the device tree. Currently, This area is not
Vishnu Banavath2b651ea2022-01-19 18:43:12 +0000236 * used because corstone1000 platform doesn't use a device tree at TF-A level.
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +0100237 */
Arpita S.K639f7b72021-10-13 14:49:26 +0530238#define ARM_FW_CONFIG_BASE (ARM_SHARED_RAM_BASE \
239 + sizeof(meminfo_t))
240#define ARM_FW_CONFIG_LIMIT (ARM_SHARED_RAM_BASE \
241 + (ARM_SHARED_RAM_SIZE >> 1))
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +0100242
243/*
244 * Boot parameters passed from BL2 to BL31/BL32 are stored here
245 */
Arpita S.K639f7b72021-10-13 14:49:26 +0530246#define ARM_BL2_MEM_DESC_BASE ARM_FW_CONFIG_LIMIT
247#define ARM_BL2_MEM_DESC_LIMIT ARM_BL_RAM_BASE
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +0100248
249/*
250 * The max number of regions like RO(code), coherent and data required by
251 * different BL stages which need to be mapped in the MMU.
252 */
Arpita S.K639f7b72021-10-13 14:49:26 +0530253#define ARM_BL_REGIONS 3
254#define PLAT_ARM_MMAP_ENTRIES 8
255#define MAX_XLAT_TABLES 5
256#define MAX_MMAP_REGIONS (PLAT_ARM_MMAP_ENTRIES + \
257 ARM_BL_REGIONS)
258#define MAX_IO_DEVICES 2
259#define MAX_IO_HANDLES 3
260#define MAX_IO_BLOCK_DEVICES 1
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +0100261
262/* GIC related constants */
Arpita S.K639f7b72021-10-13 14:49:26 +0530263#define PLAT_ARM_GICD_BASE 0x1C010000
264#define PLAT_ARM_GICC_BASE 0x1C02F000
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +0100265
266/* MHUv2 Secure Channel receiver and sender */
Arpita S.K639f7b72021-10-13 14:49:26 +0530267#define PLAT_SDK700_MHU0_SEND 0x1B800000
268#define PLAT_SDK700_MHU0_RECV 0x1B810000
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +0100269
270/* Timer/watchdog related constants */
Arpita S.K639f7b72021-10-13 14:49:26 +0530271#define ARM_SYS_CNTCTL_BASE UL(0x1a200000)
272#define ARM_SYS_CNTREAD_BASE UL(0x1a210000)
273#define ARM_SYS_TIMCTL_BASE UL(0x1a220000)
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +0100274
Emekcan Aras53e91a32021-11-17 18:45:32 +0000275#define SECURE_WATCHDOG_ADDR_CTRL_REG 0x1A320000
276#define SECURE_WATCHDOG_ADDR_VAL_REG 0x1A320008
277#define SECURE_WATCHDOG_MASK_ENABLE 0x01
278#define SECURE_WATCHDOG_COUNTDOWN_VAL 0x1000
279
Arpita S.K639f7b72021-10-13 14:49:26 +0530280#define SYS_COUNTER_FREQ_IN_TICKS UL(50000000) /* 50MHz */
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +0100281
Arpita S.K639f7b72021-10-13 14:49:26 +0530282#define CORSTONE1000_IRQ_TZ_WDOG 32
283#define CORSTONE1000_IRQ_SEC_SYS_TIMER 34
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +0100284
Arpita S.K639f7b72021-10-13 14:49:26 +0530285#define PLAT_MAX_PWR_LVL 2
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +0100286/*
287 * Macros mapping the MPIDR Affinity levels to ARM Platform Power levels. The
288 * power levels have a 1:1 mapping with the MPIDR affinity levels.
289 */
Arpita S.K639f7b72021-10-13 14:49:26 +0530290#define ARM_PWR_LVL0 MPIDR_AFFLVL0
291#define ARM_PWR_LVL1 MPIDR_AFFLVL1
292#define ARM_PWR_LVL2 MPIDR_AFFLVL2
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +0100293
294/*
295 * Macros for local power states in ARM platforms encoded by State-ID field
296 * within the power-state parameter.
297 */
298/* Local power state for power domains in Run state. */
Arpita S.K639f7b72021-10-13 14:49:26 +0530299#define ARM_LOCAL_STATE_RUN U(0)
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +0100300/* Local power state for retention. Valid only for CPU power domains */
Arpita S.K639f7b72021-10-13 14:49:26 +0530301#define ARM_LOCAL_STATE_RET U(1)
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +0100302/* Local power state for OFF/power-down. Valid for CPU and cluster
303 * power domains
304 */
Arpita S.K639f7b72021-10-13 14:49:26 +0530305#define ARM_LOCAL_STATE_OFF U(2)
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +0100306
Arpita S.K639f7b72021-10-13 14:49:26 +0530307#define PLAT_ARM_TRUSTED_MAILBOX_BASE ARM_TRUSTED_SRAM_BASE
308#define PLAT_ARM_NSTIMER_FRAME_ID U(1)
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +0100309
Arpita S.K639f7b72021-10-13 14:49:26 +0530310#define PLAT_ARM_NS_IMAGE_BASE (ARM_NS_SHARED_RAM_BASE)
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +0100311
Arpita S.K639f7b72021-10-13 14:49:26 +0530312#define PLAT_PHY_ADDR_SPACE_SIZE (1ULL << 32)
313#define PLAT_VIRT_ADDR_SPACE_SIZE (1ULL << 32)
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +0100314
315/*
316 * This macro defines the deepest retention state possible. A higher state
317 * ID will represent an invalid or a power down state.
318 */
Arpita S.K639f7b72021-10-13 14:49:26 +0530319#define PLAT_MAX_RET_STATE 1
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +0100320
321/*
322 * This macro defines the deepest power down states possible. Any state ID
323 * higher than this is invalid.
324 */
Arpita S.K639f7b72021-10-13 14:49:26 +0530325#define PLAT_MAX_OFF_STATE 2
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +0100326
Arpita S.K639f7b72021-10-13 14:49:26 +0530327#define PLATFORM_STACK_SIZE UL(0x440)
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +0100328
Arpita S.K639f7b72021-10-13 14:49:26 +0530329#define CORSTONE1000_EXTERNAL_FLASH MAP_REGION_FLAT( \
330 PLAT_ARM_NVM_BASE, \
331 PLAT_ARM_NVM_SIZE, \
332 MT_DEVICE | MT_RO | MT_SECURE)
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +0100333
Arpita S.K639f7b72021-10-13 14:49:26 +0530334#define ARM_MAP_SHARED_RAM MAP_REGION_FLAT( \
335 ARM_SHARED_RAM_BASE, \
336 ARM_SHARED_RAM_SIZE, \
337 MT_MEMORY | MT_RW | MT_SECURE)
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +0100338
Arpita S.K639f7b72021-10-13 14:49:26 +0530339#define ARM_MAP_NS_SHARED_RAM MAP_REGION_FLAT( \
340 ARM_NS_SHARED_RAM_BASE, \
341 ARM_NS_SHARED_RAM_SIZE, \
342 MT_MEMORY | MT_RW | MT_NS)
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +0100343
Arpita S.K639f7b72021-10-13 14:49:26 +0530344#define ARM_MAP_NS_DRAM1 MAP_REGION_FLAT( \
345 ARM_NS_DRAM1_BASE, \
346 ARM_NS_DRAM1_SIZE, \
347 MT_MEMORY | MT_RW | MT_NS)
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +0100348
Arpita S.K639f7b72021-10-13 14:49:26 +0530349#define ARM_MAP_BL_RO MAP_REGION_FLAT( \
350 BL_CODE_BASE, \
351 BL_CODE_END \
352 - BL_CODE_BASE, \
353 MT_CODE | MT_SECURE), \
354 MAP_REGION_FLAT( \
355 BL_RO_DATA_BASE, \
356 BL_RO_DATA_END \
357 - BL_RO_DATA_BASE, \
358 MT_RO_DATA | MT_SECURE)
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +0100359#if USE_COHERENT_MEM
Arpita S.K639f7b72021-10-13 14:49:26 +0530360#define ARM_MAP_BL_COHERENT_RAM MAP_REGION_FLAT( \
361 BL_COHERENT_RAM_BASE, \
362 BL_COHERENT_RAM_END \
363 - BL_COHERENT_RAM_BASE, \
364 MT_DEVICE | MT_RW | MT_SECURE)
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +0100365#endif
366
367/*
368 * Map the region for the optional device tree configuration with read and
369 * write permissions
370 */
Arpita S.K639f7b72021-10-13 14:49:26 +0530371#define ARM_MAP_BL_CONFIG_REGION MAP_REGION_FLAT( \
372 ARM_FW_CONFIG_BASE, \
373 (ARM_FW_CONFIG_LIMIT- \
374 ARM_FW_CONFIG_BASE), \
375 MT_MEMORY | MT_RW | MT_SECURE)
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +0100376
Arpita S.K639f7b72021-10-13 14:49:26 +0530377#define CORSTONE1000_DEVICE_BASE (0x1A000000)
378#define CORSTONE1000_DEVICE_SIZE (0x26000000)
379#define CORSTONE1000_MAP_DEVICE MAP_REGION_FLAT( \
380 CORSTONE1000_DEVICE_BASE, \
381 CORSTONE1000_DEVICE_SIZE, \
382 MT_DEVICE | MT_RW | MT_SECURE)
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +0100383
Arpita S.K639f7b72021-10-13 14:49:26 +0530384#define ARM_IRQ_SEC_PHY_TIMER 29
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +0100385
Arpita S.K639f7b72021-10-13 14:49:26 +0530386#define ARM_IRQ_SEC_SGI_0 8
387#define ARM_IRQ_SEC_SGI_1 9
388#define ARM_IRQ_SEC_SGI_2 10
389#define ARM_IRQ_SEC_SGI_3 11
390#define ARM_IRQ_SEC_SGI_4 12
391#define ARM_IRQ_SEC_SGI_5 13
392#define ARM_IRQ_SEC_SGI_6 14
393#define ARM_IRQ_SEC_SGI_7 15
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +0100394
395/*
396 * Define a list of Group 1 Secure and Group 0 interrupt properties as per GICv3
397 * terminology. On a GICv2 system or mode, the lists will be merged and treated
398 * as Group 0 interrupts.
399 */
400#define ARM_G1S_IRQ_PROPS(grp) \
401 INTR_PROP_DESC(ARM_IRQ_SEC_PHY_TIMER, GIC_HIGHEST_SEC_PRIORITY, \
402 (grp), GIC_INTR_CFG_LEVEL), \
403 INTR_PROP_DESC(ARM_IRQ_SEC_SGI_1, GIC_HIGHEST_SEC_PRIORITY, \
404 (grp), GIC_INTR_CFG_EDGE), \
405 INTR_PROP_DESC(ARM_IRQ_SEC_SGI_2, GIC_HIGHEST_SEC_PRIORITY, \
406 (grp), GIC_INTR_CFG_EDGE), \
407 INTR_PROP_DESC(ARM_IRQ_SEC_SGI_3, GIC_HIGHEST_SEC_PRIORITY, \
408 (grp), GIC_INTR_CFG_EDGE), \
409 INTR_PROP_DESC(ARM_IRQ_SEC_SGI_4, GIC_HIGHEST_SEC_PRIORITY, \
410 (grp), GIC_INTR_CFG_EDGE), \
411 INTR_PROP_DESC(ARM_IRQ_SEC_SGI_5, GIC_HIGHEST_SEC_PRIORITY, \
412 (grp), GIC_INTR_CFG_EDGE), \
413 INTR_PROP_DESC(ARM_IRQ_SEC_SGI_7, GIC_HIGHEST_SEC_PRIORITY, \
414 (grp), GIC_INTR_CFG_EDGE)
415
416#define ARM_G0_IRQ_PROPS(grp) \
417 INTR_PROP_DESC(ARM_IRQ_SEC_SGI_6, GIC_HIGHEST_SEC_PRIORITY, (grp), \
418 GIC_INTR_CFG_EDGE)
419
420/*
421 * Define a list of Group 1 Secure and Group 0 interrupts as per GICv3
422 * terminology. On a GICv2 system or mode, the lists will be merged and treated
423 * as Group 0 interrupts.
424 */
425#define PLAT_ARM_G1S_IRQ_PROPS(grp) \
426 ARM_G1S_IRQ_PROPS(grp), \
Vishnu Banavath2b651ea2022-01-19 18:43:12 +0000427 INTR_PROP_DESC(CORSTONE1000_IRQ_TZ_WDOG, GIC_HIGHEST_SEC_PRIORITY, \
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +0100428 (grp), GIC_INTR_CFG_LEVEL), \
Vishnu Banavath2b651ea2022-01-19 18:43:12 +0000429 INTR_PROP_DESC(CORSTONE1000_IRQ_SEC_SYS_TIMER, \
Abdellatif El Khlifiad9b8e52021-04-21 17:20:43 +0100430 GIC_HIGHEST_SEC_PRIORITY, (grp), GIC_INTR_CFG_LEVEL)
431
432#define PLAT_ARM_G0_IRQ_PROPS(grp) ARM_G0_IRQ_PROPS(grp)
433
434#endif /* PLATFORM_DEF_H */