xref: /arm-trusted-firmware/plat/arm/board/juno/include/platform_def.h (revision 91f16700b400a8c0651d24a598fc48ee2997a0d7)
1*91f16700Schasinglulu /*
2*91f16700Schasinglulu  * Copyright (c) 2014-2023, ARM Limited and Contributors. All rights reserved.
3*91f16700Schasinglulu  *
4*91f16700Schasinglulu  * SPDX-License-Identifier: BSD-3-Clause
5*91f16700Schasinglulu  */
6*91f16700Schasinglulu 
7*91f16700Schasinglulu #ifndef PLATFORM_DEF_H
8*91f16700Schasinglulu #define PLATFORM_DEF_H
9*91f16700Schasinglulu 
10*91f16700Schasinglulu #include <drivers/arm/tzc400.h>
11*91f16700Schasinglulu #if TRUSTED_BOARD_BOOT
12*91f16700Schasinglulu #include MBEDTLS_CONFIG_FILE
13*91f16700Schasinglulu #endif
14*91f16700Schasinglulu #include <plat/arm/board/common/board_css_def.h>
15*91f16700Schasinglulu #include <plat/arm/board/common/v2m_def.h>
16*91f16700Schasinglulu #include <plat/arm/common/arm_def.h>
17*91f16700Schasinglulu #include <plat/arm/css/common/css_def.h>
18*91f16700Schasinglulu #include <plat/arm/soc/common/soc_css_def.h>
19*91f16700Schasinglulu #include <plat/common/common_def.h>
20*91f16700Schasinglulu 
21*91f16700Schasinglulu #include "../juno_def.h"
22*91f16700Schasinglulu #ifdef JUNO_ETHOSN_TZMP1
23*91f16700Schasinglulu #include "../juno_ethosn_tzmp1_def.h"
24*91f16700Schasinglulu #endif
25*91f16700Schasinglulu 
26*91f16700Schasinglulu /* Required platform porting definitions */
27*91f16700Schasinglulu /* Juno supports system power domain */
28*91f16700Schasinglulu #define PLAT_MAX_PWR_LVL		ARM_PWR_LVL2
29*91f16700Schasinglulu #define PLAT_NUM_PWR_DOMAINS		(ARM_SYSTEM_COUNT + \
30*91f16700Schasinglulu 					JUNO_CLUSTER_COUNT + \
31*91f16700Schasinglulu 					PLATFORM_CORE_COUNT)
32*91f16700Schasinglulu #define PLATFORM_CORE_COUNT		(JUNO_CLUSTER0_CORE_COUNT + \
33*91f16700Schasinglulu 					JUNO_CLUSTER1_CORE_COUNT)
34*91f16700Schasinglulu 
35*91f16700Schasinglulu /*
36*91f16700Schasinglulu  * Other platform porting definitions are provided by included headers
37*91f16700Schasinglulu  */
38*91f16700Schasinglulu 
39*91f16700Schasinglulu /*
40*91f16700Schasinglulu  * Required ARM standard platform porting definitions
41*91f16700Schasinglulu  */
42*91f16700Schasinglulu #define PLAT_ARM_CLUSTER_COUNT		JUNO_CLUSTER_COUNT
43*91f16700Schasinglulu 
44*91f16700Schasinglulu #define PLAT_ARM_TRUSTED_SRAM_SIZE	UL(0x00040000)	/* 256 KB */
45*91f16700Schasinglulu 
46*91f16700Schasinglulu /* Use the bypass address */
47*91f16700Schasinglulu #define PLAT_ARM_TRUSTED_ROM_BASE	(V2M_FLASH0_BASE + \
48*91f16700Schasinglulu 					BL1_ROM_BYPASS_OFFSET)
49*91f16700Schasinglulu 
50*91f16700Schasinglulu #define NSRAM_BASE			UL(0x2e000000)
51*91f16700Schasinglulu #define NSRAM_SIZE			UL(0x00008000)	/* 32KB */
52*91f16700Schasinglulu 
53*91f16700Schasinglulu #define PLAT_ARM_DRAM2_BASE		ULL(0x880000000)
54*91f16700Schasinglulu #define PLAT_ARM_DRAM2_SIZE		ULL(0x180000000)
55*91f16700Schasinglulu 
56*91f16700Schasinglulu /* Range of kernel DTB load address */
57*91f16700Schasinglulu #define JUNO_DTB_DRAM_MAP_START		ULL(0x82000000)
58*91f16700Schasinglulu #define JUNO_DTB_DRAM_MAP_SIZE		ULL(0x00008000) /* 32KB */
59*91f16700Schasinglulu 
60*91f16700Schasinglulu #define ARM_DTB_DRAM_NS			MAP_REGION_FLAT(		\
61*91f16700Schasinglulu 					JUNO_DTB_DRAM_MAP_START,	\
62*91f16700Schasinglulu 					JUNO_DTB_DRAM_MAP_SIZE,		\
63*91f16700Schasinglulu 					MT_MEMORY | MT_RO | MT_NS)
64*91f16700Schasinglulu 
65*91f16700Schasinglulu #ifdef JUNO_ETHOSN_TZMP1
66*91f16700Schasinglulu #define JUNO_ETHOSN_PROT_FW_RO MAP_REGION_FLAT(     \
67*91f16700Schasinglulu 		JUNO_ETHOSN_FW_TZC_PROT_DRAM2_BASE, \
68*91f16700Schasinglulu 		JUNO_ETHOSN_FW_TZC_PROT_DRAM2_SIZE, \
69*91f16700Schasinglulu 		MT_RO_DATA | MT_SECURE)
70*91f16700Schasinglulu 
71*91f16700Schasinglulu #define JUNO_ETHOSN_PROT_FW_RW MAP_REGION_FLAT(     \
72*91f16700Schasinglulu 		JUNO_ETHOSN_FW_TZC_PROT_DRAM2_BASE, \
73*91f16700Schasinglulu 		JUNO_ETHOSN_FW_TZC_PROT_DRAM2_SIZE, \
74*91f16700Schasinglulu 		MT_MEMORY | MT_RW | MT_SECURE)
75*91f16700Schasinglulu #endif
76*91f16700Schasinglulu 
77*91f16700Schasinglulu /* virtual address used by dynamic mem_protect for chunk_base */
78*91f16700Schasinglulu #define PLAT_ARM_MEM_PROTEC_VA_FRAME	UL(0xc0000000)
79*91f16700Schasinglulu 
80*91f16700Schasinglulu /*
81*91f16700Schasinglulu  * PLAT_ARM_MAX_ROMLIB_RW_SIZE is define to use a full page
82*91f16700Schasinglulu  */
83*91f16700Schasinglulu 
84*91f16700Schasinglulu #if USE_ROMLIB
85*91f16700Schasinglulu #define PLAT_ARM_MAX_ROMLIB_RW_SIZE	UL(0x1000)
86*91f16700Schasinglulu #define PLAT_ARM_MAX_ROMLIB_RO_SIZE	UL(0xe000)
87*91f16700Schasinglulu #define JUNO_BL2_ROMLIB_OPTIMIZATION UL(0x8000)
88*91f16700Schasinglulu #else
89*91f16700Schasinglulu #define PLAT_ARM_MAX_ROMLIB_RW_SIZE	UL(0)
90*91f16700Schasinglulu #define PLAT_ARM_MAX_ROMLIB_RO_SIZE	UL(0)
91*91f16700Schasinglulu #define JUNO_BL2_ROMLIB_OPTIMIZATION UL(0)
92*91f16700Schasinglulu #endif
93*91f16700Schasinglulu 
94*91f16700Schasinglulu /*
95*91f16700Schasinglulu  * Actual ROM size on Juno is 64 KB, but TBB currently requires at least 80 KB
96*91f16700Schasinglulu  * in debug mode. We can test TBB on Juno bypassing the ROM and using 128 KB of
97*91f16700Schasinglulu  * flash
98*91f16700Schasinglulu  */
99*91f16700Schasinglulu 
100*91f16700Schasinglulu #if TRUSTED_BOARD_BOOT
101*91f16700Schasinglulu #define PLAT_ARM_TRUSTED_ROM_SIZE	UL(0x00020000)
102*91f16700Schasinglulu #else
103*91f16700Schasinglulu #define PLAT_ARM_TRUSTED_ROM_SIZE	UL(0x00010000)
104*91f16700Schasinglulu #endif /* TRUSTED_BOARD_BOOT */
105*91f16700Schasinglulu 
106*91f16700Schasinglulu /*
107*91f16700Schasinglulu  * PLAT_ARM_MMAP_ENTRIES depends on the number of entries in the
108*91f16700Schasinglulu  * plat_arm_mmap array defined for each BL stage.
109*91f16700Schasinglulu  */
110*91f16700Schasinglulu #ifdef IMAGE_BL1
111*91f16700Schasinglulu # define PLAT_ARM_MMAP_ENTRIES		7
112*91f16700Schasinglulu # define MAX_XLAT_TABLES		4
113*91f16700Schasinglulu #endif
114*91f16700Schasinglulu 
115*91f16700Schasinglulu #ifdef IMAGE_BL2
116*91f16700Schasinglulu #ifdef SPD_opteed
117*91f16700Schasinglulu # define PLAT_ARM_MMAP_ENTRIES		13
118*91f16700Schasinglulu # define MAX_XLAT_TABLES		5
119*91f16700Schasinglulu #else
120*91f16700Schasinglulu # define PLAT_ARM_MMAP_ENTRIES		11
121*91f16700Schasinglulu # define MAX_XLAT_TABLES		5
122*91f16700Schasinglulu #endif
123*91f16700Schasinglulu #endif
124*91f16700Schasinglulu 
125*91f16700Schasinglulu #ifdef IMAGE_BL2U
126*91f16700Schasinglulu # define PLAT_ARM_MMAP_ENTRIES		5
127*91f16700Schasinglulu # define MAX_XLAT_TABLES		3
128*91f16700Schasinglulu #endif
129*91f16700Schasinglulu 
130*91f16700Schasinglulu #ifdef IMAGE_BL31
131*91f16700Schasinglulu # define PLAT_ARM_MMAP_ENTRIES		8
132*91f16700Schasinglulu # define MAX_XLAT_TABLES		6
133*91f16700Schasinglulu #endif
134*91f16700Schasinglulu 
135*91f16700Schasinglulu #ifdef IMAGE_BL32
136*91f16700Schasinglulu # define PLAT_ARM_MMAP_ENTRIES		6
137*91f16700Schasinglulu # define MAX_XLAT_TABLES		4
138*91f16700Schasinglulu #endif
139*91f16700Schasinglulu 
140*91f16700Schasinglulu /*
141*91f16700Schasinglulu  * PLAT_ARM_MAX_BL1_RW_SIZE is calculated using the current BL1 RW debug size
142*91f16700Schasinglulu  * plus a little space for growth.
143*91f16700Schasinglulu  */
144*91f16700Schasinglulu #if TRUSTED_BOARD_BOOT
145*91f16700Schasinglulu # define PLAT_ARM_MAX_BL1_RW_SIZE	UL(0xB000)
146*91f16700Schasinglulu #else
147*91f16700Schasinglulu # define PLAT_ARM_MAX_BL1_RW_SIZE	UL(0x6000)
148*91f16700Schasinglulu #endif
149*91f16700Schasinglulu 
150*91f16700Schasinglulu /*
151*91f16700Schasinglulu  * PLAT_ARM_MAX_BL2_SIZE is calculated using the current BL2 debug size plus a
152*91f16700Schasinglulu  * little space for growth.
153*91f16700Schasinglulu  */
154*91f16700Schasinglulu #if TRUSTED_BOARD_BOOT
155*91f16700Schasinglulu #if TF_MBEDTLS_KEY_ALG_ID == TF_MBEDTLS_RSA_AND_ECDSA
156*91f16700Schasinglulu # define PLAT_ARM_MAX_BL2_SIZE	(UL(0x1F000) - JUNO_BL2_ROMLIB_OPTIMIZATION)
157*91f16700Schasinglulu #elif TF_MBEDTLS_KEY_ALG_ID == TF_MBEDTLS_ECDSA
158*91f16700Schasinglulu # define PLAT_ARM_MAX_BL2_SIZE	(UL(0x1D000) - JUNO_BL2_ROMLIB_OPTIMIZATION)
159*91f16700Schasinglulu #else
160*91f16700Schasinglulu # define PLAT_ARM_MAX_BL2_SIZE	(UL(0x1D000) - JUNO_BL2_ROMLIB_OPTIMIZATION)
161*91f16700Schasinglulu #endif
162*91f16700Schasinglulu #else
163*91f16700Schasinglulu # define PLAT_ARM_MAX_BL2_SIZE	(UL(0x13000) - JUNO_BL2_ROMLIB_OPTIMIZATION)
164*91f16700Schasinglulu #endif
165*91f16700Schasinglulu 
166*91f16700Schasinglulu /*
167*91f16700Schasinglulu  * Since BL31 NOBITS overlays BL2 and BL1-RW, PLAT_ARM_MAX_BL31_SIZE is
168*91f16700Schasinglulu  * calculated using the current BL31 PROGBITS debug size plus the sizes of
169*91f16700Schasinglulu  * BL2 and BL1-RW.  SCP_BL2 image is loaded into the space BL31 -> BL2_BASE.
170*91f16700Schasinglulu  * Hence the BL31 PROGBITS size should be >= PLAT_CSS_MAX_SCP_BL2_SIZE.
171*91f16700Schasinglulu  */
172*91f16700Schasinglulu #define PLAT_ARM_MAX_BL31_SIZE		UL(0x3D000)
173*91f16700Schasinglulu 
174*91f16700Schasinglulu #if JUNO_AARCH32_EL3_RUNTIME
175*91f16700Schasinglulu /*
176*91f16700Schasinglulu  * Since BL32 NOBITS overlays BL2 and BL1-RW, PLAT_ARM_MAX_BL32_SIZE is
177*91f16700Schasinglulu  * calculated using the current BL32 PROGBITS debug size plus the sizes of
178*91f16700Schasinglulu  * BL2 and BL1-RW.  SCP_BL2 image is loaded into the space BL32 -> BL2_BASE.
179*91f16700Schasinglulu  * Hence the BL32 PROGBITS size should be >= PLAT_CSS_MAX_SCP_BL2_SIZE.
180*91f16700Schasinglulu  */
181*91f16700Schasinglulu #define PLAT_ARM_MAX_BL32_SIZE		UL(0x3D000)
182*91f16700Schasinglulu #endif
183*91f16700Schasinglulu 
184*91f16700Schasinglulu /*
185*91f16700Schasinglulu  * Size of cacheable stacks
186*91f16700Schasinglulu  */
187*91f16700Schasinglulu #if defined(IMAGE_BL1)
188*91f16700Schasinglulu # if TRUSTED_BOARD_BOOT
189*91f16700Schasinglulu #  define PLATFORM_STACK_SIZE		UL(0x1000)
190*91f16700Schasinglulu # else
191*91f16700Schasinglulu #  define PLATFORM_STACK_SIZE		UL(0x440)
192*91f16700Schasinglulu # endif
193*91f16700Schasinglulu #elif defined(IMAGE_BL2)
194*91f16700Schasinglulu # if TRUSTED_BOARD_BOOT
195*91f16700Schasinglulu #  define PLATFORM_STACK_SIZE		UL(0x1000)
196*91f16700Schasinglulu # else
197*91f16700Schasinglulu #  define PLATFORM_STACK_SIZE		UL(0x400)
198*91f16700Schasinglulu # endif
199*91f16700Schasinglulu #elif defined(IMAGE_BL2U)
200*91f16700Schasinglulu # define PLATFORM_STACK_SIZE		UL(0x400)
201*91f16700Schasinglulu #elif defined(IMAGE_BL31)
202*91f16700Schasinglulu # if PLAT_XLAT_TABLES_DYNAMIC
203*91f16700Schasinglulu #  define PLATFORM_STACK_SIZE		UL(0x800)
204*91f16700Schasinglulu # else
205*91f16700Schasinglulu #  define PLATFORM_STACK_SIZE		UL(0x400)
206*91f16700Schasinglulu # endif
207*91f16700Schasinglulu #elif defined(IMAGE_BL32)
208*91f16700Schasinglulu # define PLATFORM_STACK_SIZE		UL(0x440)
209*91f16700Schasinglulu #endif
210*91f16700Schasinglulu 
211*91f16700Schasinglulu /* CCI related constants */
212*91f16700Schasinglulu #define PLAT_ARM_CCI_BASE		UL(0x2c090000)
213*91f16700Schasinglulu #define PLAT_ARM_CCI_CLUSTER0_SL_IFACE_IX	4
214*91f16700Schasinglulu #define PLAT_ARM_CCI_CLUSTER1_SL_IFACE_IX	3
215*91f16700Schasinglulu 
216*91f16700Schasinglulu /* System timer related constants */
217*91f16700Schasinglulu #define PLAT_ARM_NSTIMER_FRAME_ID		U(1)
218*91f16700Schasinglulu 
219*91f16700Schasinglulu /* TZC related constants */
220*91f16700Schasinglulu #define PLAT_ARM_TZC_BASE		UL(0x2a4a0000)
221*91f16700Schasinglulu #define PLAT_ARM_TZC_NS_DEV_ACCESS	(				\
222*91f16700Schasinglulu 		TZC_REGION_ACCESS_RDWR(TZC400_NSAID_CCI400)	|	\
223*91f16700Schasinglulu 		TZC_REGION_ACCESS_RDWR(TZC400_NSAID_PCIE)	|	\
224*91f16700Schasinglulu 		TZC_REGION_ACCESS_RDWR(TZC400_NSAID_HDLCD0)	|	\
225*91f16700Schasinglulu 		TZC_REGION_ACCESS_RDWR(TZC400_NSAID_HDLCD1)	|	\
226*91f16700Schasinglulu 		TZC_REGION_ACCESS_RDWR(TZC400_NSAID_USB)	|	\
227*91f16700Schasinglulu 		TZC_REGION_ACCESS_RDWR(TZC400_NSAID_DMA330)	|	\
228*91f16700Schasinglulu 		TZC_REGION_ACCESS_RDWR(TZC400_NSAID_THINLINKS)	|	\
229*91f16700Schasinglulu 		TZC_REGION_ACCESS_RDWR(TZC400_NSAID_AP)		|	\
230*91f16700Schasinglulu 		TZC_REGION_ACCESS_RDWR(TZC400_NSAID_GPU)	|	\
231*91f16700Schasinglulu 		TZC_REGION_ACCESS_RDWR(TZC400_NSAID_CORESIGHT))
232*91f16700Schasinglulu 
233*91f16700Schasinglulu /* TZC related constants */
234*91f16700Schasinglulu #define PLAT_ARM_TZC_FILTERS		TZC_400_REGION_ATTR_FILTER_BIT_ALL
235*91f16700Schasinglulu 
236*91f16700Schasinglulu /*
237*91f16700Schasinglulu  * Required ARM CSS based platform porting definitions
238*91f16700Schasinglulu  */
239*91f16700Schasinglulu 
240*91f16700Schasinglulu /* GIC related constants (no GICR in GIC-400) */
241*91f16700Schasinglulu #define PLAT_ARM_GICD_BASE		UL(0x2c010000)
242*91f16700Schasinglulu #define PLAT_ARM_GICC_BASE		UL(0x2c02f000)
243*91f16700Schasinglulu #define PLAT_ARM_GICH_BASE		UL(0x2c04f000)
244*91f16700Schasinglulu #define PLAT_ARM_GICV_BASE		UL(0x2c06f000)
245*91f16700Schasinglulu 
246*91f16700Schasinglulu /* MHU related constants */
247*91f16700Schasinglulu #define PLAT_CSS_MHU_BASE		UL(0x2b1f0000)
248*91f16700Schasinglulu 
249*91f16700Schasinglulu /*
250*91f16700Schasinglulu  * Base address of the first memory region used for communication between AP
251*91f16700Schasinglulu  * and SCP. Used by the BOM and SCPI protocols.
252*91f16700Schasinglulu  */
253*91f16700Schasinglulu #if !CSS_USE_SCMI_SDS_DRIVER
254*91f16700Schasinglulu /*
255*91f16700Schasinglulu  * Note that this is located at the same address as SCP_BOOT_CFG_ADDR, which
256*91f16700Schasinglulu  * means the SCP/AP configuration data gets overwritten when the AP initiates
257*91f16700Schasinglulu  * communication with the SCP. The configuration data is expected to be a
258*91f16700Schasinglulu  * 32-bit word on all CSS platforms. On Juno, part of this configuration is
259*91f16700Schasinglulu  * which CPU is the primary, according to the shift and mask definitions below.
260*91f16700Schasinglulu  */
261*91f16700Schasinglulu #define PLAT_CSS_SCP_COM_SHARED_MEM_BASE	(ARM_TRUSTED_SRAM_BASE + UL(0x80))
262*91f16700Schasinglulu #define PLAT_CSS_PRIMARY_CPU_SHIFT		8
263*91f16700Schasinglulu #define PLAT_CSS_PRIMARY_CPU_BIT_WIDTH		4
264*91f16700Schasinglulu #endif
265*91f16700Schasinglulu 
266*91f16700Schasinglulu /*
267*91f16700Schasinglulu  * SCP_BL2 uses up whatever remaining space is available as it is loaded before
268*91f16700Schasinglulu  * anything else in this memory region and is handed over to the SCP before
269*91f16700Schasinglulu  * BL31 is loaded over the top.
270*91f16700Schasinglulu  */
271*91f16700Schasinglulu #define PLAT_CSS_MAX_SCP_BL2_SIZE \
272*91f16700Schasinglulu 	((SCP_BL2_LIMIT - ARM_FW_CONFIG_LIMIT) & ~PAGE_SIZE_MASK)
273*91f16700Schasinglulu 
274*91f16700Schasinglulu #define PLAT_CSS_MAX_SCP_BL2U_SIZE	PLAT_CSS_MAX_SCP_BL2_SIZE
275*91f16700Schasinglulu 
276*91f16700Schasinglulu #define PLAT_ARM_G1S_IRQ_PROPS(grp) \
277*91f16700Schasinglulu 	CSS_G1S_IRQ_PROPS(grp), \
278*91f16700Schasinglulu 	ARM_G1S_IRQ_PROPS(grp), \
279*91f16700Schasinglulu 	INTR_PROP_DESC(JUNO_IRQ_DMA_SMMU, GIC_HIGHEST_SEC_PRIORITY, \
280*91f16700Schasinglulu 		(grp), GIC_INTR_CFG_LEVEL), \
281*91f16700Schasinglulu 	INTR_PROP_DESC(JUNO_IRQ_HDLCD0_SMMU, GIC_HIGHEST_SEC_PRIORITY, \
282*91f16700Schasinglulu 		(grp), GIC_INTR_CFG_LEVEL), \
283*91f16700Schasinglulu 	INTR_PROP_DESC(JUNO_IRQ_HDLCD1_SMMU, GIC_HIGHEST_SEC_PRIORITY, \
284*91f16700Schasinglulu 		(grp), GIC_INTR_CFG_LEVEL), \
285*91f16700Schasinglulu 	INTR_PROP_DESC(JUNO_IRQ_USB_SMMU, GIC_HIGHEST_SEC_PRIORITY, \
286*91f16700Schasinglulu 		(grp), GIC_INTR_CFG_LEVEL), \
287*91f16700Schasinglulu 	INTR_PROP_DESC(JUNO_IRQ_THIN_LINKS_SMMU, GIC_HIGHEST_SEC_PRIORITY, \
288*91f16700Schasinglulu 		(grp), GIC_INTR_CFG_LEVEL), \
289*91f16700Schasinglulu 	INTR_PROP_DESC(JUNO_IRQ_SEC_I2C, GIC_HIGHEST_SEC_PRIORITY, \
290*91f16700Schasinglulu 		(grp), GIC_INTR_CFG_LEVEL), \
291*91f16700Schasinglulu 	INTR_PROP_DESC(JUNO_IRQ_GPU_SMMU_1, GIC_HIGHEST_SEC_PRIORITY, \
292*91f16700Schasinglulu 		(grp), GIC_INTR_CFG_LEVEL), \
293*91f16700Schasinglulu 	INTR_PROP_DESC(JUNO_IRQ_ETR_SMMU, GIC_HIGHEST_SEC_PRIORITY, \
294*91f16700Schasinglulu 		(grp), GIC_INTR_CFG_LEVEL)
295*91f16700Schasinglulu 
296*91f16700Schasinglulu #define PLAT_ARM_G0_IRQ_PROPS(grp)	ARM_G0_IRQ_PROPS(grp)
297*91f16700Schasinglulu 
298*91f16700Schasinglulu /*
299*91f16700Schasinglulu  * Required ARM CSS SoC based platform porting definitions
300*91f16700Schasinglulu  */
301*91f16700Schasinglulu 
302*91f16700Schasinglulu /* CSS SoC NIC-400 Global Programmers View (GPV) */
303*91f16700Schasinglulu #define PLAT_SOC_CSS_NIC400_BASE	UL(0x2a000000)
304*91f16700Schasinglulu 
305*91f16700Schasinglulu #define PLAT_ARM_PRIVATE_SDEI_EVENTS	ARM_SDEI_PRIVATE_EVENTS
306*91f16700Schasinglulu #define PLAT_ARM_SHARED_SDEI_EVENTS	ARM_SDEI_SHARED_EVENTS
307*91f16700Schasinglulu 
308*91f16700Schasinglulu /* System power domain level */
309*91f16700Schasinglulu #define CSS_SYSTEM_PWR_DMN_LVL		ARM_PWR_LVL2
310*91f16700Schasinglulu 
311*91f16700Schasinglulu /*
312*91f16700Schasinglulu  * Physical and virtual address space limits for MMU in AARCH64 & AARCH32 modes
313*91f16700Schasinglulu  */
314*91f16700Schasinglulu #ifdef __aarch64__
315*91f16700Schasinglulu #define PLAT_PHY_ADDR_SPACE_SIZE	(1ULL << 36)
316*91f16700Schasinglulu #define PLAT_VIRT_ADDR_SPACE_SIZE	(1ULL << 36)
317*91f16700Schasinglulu #else
318*91f16700Schasinglulu #define PLAT_PHY_ADDR_SPACE_SIZE	(1ULL << 32)
319*91f16700Schasinglulu #define PLAT_VIRT_ADDR_SPACE_SIZE	(1ULL << 32)
320*91f16700Schasinglulu #endif
321*91f16700Schasinglulu 
322*91f16700Schasinglulu /* Number of SCMI channels on the platform */
323*91f16700Schasinglulu #define PLAT_ARM_SCMI_CHANNEL_COUNT	U(1)
324*91f16700Schasinglulu 
325*91f16700Schasinglulu /* Protected NSAIDs and memory regions for the Arm(R) Ethos(TM)-N NPU driver */
326*91f16700Schasinglulu #ifdef JUNO_ETHOSN_TZMP1
327*91f16700Schasinglulu #define ETHOSN_NPU_PROT_FW_NSAID		JUNO_ETHOSN_TZC400_NSAID_FW_PROT
328*91f16700Schasinglulu #define ETHOSN_NPU_PROT_RW_DATA_NSAID		JUNO_ETHOSN_TZC400_NSAID_DATA_RW_PROT
329*91f16700Schasinglulu #define ETHOSN_NPU_PROT_RO_DATA_NSAID		JUNO_ETHOSN_TZC400_NSAID_DATA_RO_PROT
330*91f16700Schasinglulu 
331*91f16700Schasinglulu #define ETHOSN_NPU_NS_RW_DATA_NSAID		JUNO_ETHOSN_TZC400_NSAID_DATA_RW_NS
332*91f16700Schasinglulu #define ETHOSN_NPU_NS_RO_DATA_NSAID		JUNO_ETHOSN_TZC400_NSAID_DATA_RO_NS
333*91f16700Schasinglulu 
334*91f16700Schasinglulu #define ETHOSN_NPU_FW_IMAGE_BASE		JUNO_ETHOSN_FW_TZC_PROT_DRAM2_BASE
335*91f16700Schasinglulu #define ETHOSN_NPU_FW_IMAGE_LIMIT \
336*91f16700Schasinglulu 	(JUNO_ETHOSN_FW_TZC_PROT_DRAM2_BASE + JUNO_ETHOSN_FW_TZC_PROT_DRAM2_SIZE)
337*91f16700Schasinglulu #endif
338*91f16700Schasinglulu 
339*91f16700Schasinglulu #endif /* PLATFORM_DEF_H */
340