xref: /arm-trusted-firmware/include/plat/brcm/common/brcm_def.h (revision 91f16700b400a8c0651d24a598fc48ee2997a0d7)
1*91f16700Schasinglulu /*
2*91f16700Schasinglulu  * Copyright (c) 2016 - 2020, Broadcom
3*91f16700Schasinglulu  *
4*91f16700Schasinglulu  * SPDX-License-Identifier: BSD-3-Clause
5*91f16700Schasinglulu  */
6*91f16700Schasinglulu 
7*91f16700Schasinglulu #ifndef BRCM_DEF_H
8*91f16700Schasinglulu #define BRCM_DEF_H
9*91f16700Schasinglulu 
10*91f16700Schasinglulu #include <arch.h>
11*91f16700Schasinglulu #include <common/tbbr/tbbr_img_def.h>
12*91f16700Schasinglulu #include <lib/utils_def.h>
13*91f16700Schasinglulu #include <lib/xlat_tables/xlat_tables.h>
14*91f16700Schasinglulu #include <plat/common/common_def.h>
15*91f16700Schasinglulu 
16*91f16700Schasinglulu #include <platform_def.h>
17*91f16700Schasinglulu 
18*91f16700Schasinglulu #define PLAT_PHY_ADDR_SPACE_SIZE	BIT_64(32)
19*91f16700Schasinglulu #define PLAT_VIRT_ADDR_SPACE_SIZE	BIT_64(32)
20*91f16700Schasinglulu 
21*91f16700Schasinglulu #define BL11_DAUTH_ID			0x796C51ab
22*91f16700Schasinglulu #define BL11_DAUTH_BASE			BL11_RW_BASE
23*91f16700Schasinglulu 
24*91f16700Schasinglulu /* We keep a table at the end of ROM for function pointers */
25*91f16700Schasinglulu #define ROM_TABLE_SIZE			32
26*91f16700Schasinglulu #define BL1_ROM_TABLE			(BL1_RO_LIMIT - ROM_TABLE_SIZE)
27*91f16700Schasinglulu 
28*91f16700Schasinglulu /*
29*91f16700Schasinglulu  * The top 16MB of DRAM1 is configured as secure access only using the TZC
30*91f16700Schasinglulu  *   - SCP TZC DRAM: If present, DRAM reserved for SCP use
31*91f16700Schasinglulu  *   - AP TZC DRAM: The remaining TZC secured DRAM reserved for AP use
32*91f16700Schasinglulu  */
33*91f16700Schasinglulu #define BRCM_TZC_DRAM1_SIZE		ULL(0x01000000)
34*91f16700Schasinglulu 
35*91f16700Schasinglulu #define BRCM_SCP_TZC_DRAM1_BASE		(BRCM_DRAM1_BASE +		\
36*91f16700Schasinglulu 					 BRCM_DRAM1_SIZE -		\
37*91f16700Schasinglulu 					 BRCM_SCP_TZC_DRAM1_SIZE)
38*91f16700Schasinglulu #define BRCM_SCP_TZC_DRAM1_SIZE		PLAT_BRCM_SCP_TZC_DRAM1_SIZE
39*91f16700Schasinglulu 
40*91f16700Schasinglulu #define BRCM_AP_TZC_DRAM1_BASE		(BRCM_DRAM1_BASE +		\
41*91f16700Schasinglulu 					 BRCM_DRAM1_SIZE -		\
42*91f16700Schasinglulu 					 BRCM_TZC_DRAM1_SIZE)
43*91f16700Schasinglulu #define BRCM_AP_TZC_DRAM1_SIZE		(BRCM_TZC_DRAM1_SIZE -		\
44*91f16700Schasinglulu 					 BRCM_SCP_TZC_DRAM1_SIZE)
45*91f16700Schasinglulu 
46*91f16700Schasinglulu #define BRCM_NS_DRAM1_BASE		BRCM_DRAM1_BASE
47*91f16700Schasinglulu #define BRCM_NS_DRAM1_SIZE		(BRCM_DRAM1_SIZE -		\
48*91f16700Schasinglulu 					 BRCM_TZC_DRAM1_SIZE)
49*91f16700Schasinglulu 
50*91f16700Schasinglulu #ifdef BRCM_SHARED_DRAM_BASE
51*91f16700Schasinglulu #define BRCM_NS_SHARED_DRAM_BASE	BRCM_SHARED_DRAM_BASE
52*91f16700Schasinglulu #define BRCM_NS_SHARED_DRAM_SIZE	BRCM_SHARED_DRAM_SIZE
53*91f16700Schasinglulu #endif
54*91f16700Schasinglulu 
55*91f16700Schasinglulu #define BRCM_MAP_SHARED_RAM		MAP_REGION_FLAT(		\
56*91f16700Schasinglulu 						BRCM_SHARED_RAM_BASE,	\
57*91f16700Schasinglulu 						BRCM_SHARED_RAM_SIZE,	\
58*91f16700Schasinglulu 						MT_DEVICE | MT_RW | MT_SECURE)
59*91f16700Schasinglulu 
60*91f16700Schasinglulu #define BRCM_MAP_NS_DRAM1		MAP_REGION_FLAT(		\
61*91f16700Schasinglulu 						BRCM_NS_DRAM1_BASE,	\
62*91f16700Schasinglulu 						BRCM_NS_DRAM1_SIZE,	\
63*91f16700Schasinglulu 						MT_MEMORY | MT_RW | MT_NS)
64*91f16700Schasinglulu 
65*91f16700Schasinglulu #ifdef BRCM_SHARED_DRAM_BASE
66*91f16700Schasinglulu #define BRCM_MAP_NS_SHARED_DRAM		MAP_REGION_FLAT(		 \
67*91f16700Schasinglulu 						BRCM_NS_SHARED_DRAM_BASE, \
68*91f16700Schasinglulu 						BRCM_NS_SHARED_DRAM_SIZE, \
69*91f16700Schasinglulu 						MT_MEMORY | MT_RW | MT_NS)
70*91f16700Schasinglulu #endif
71*91f16700Schasinglulu 
72*91f16700Schasinglulu #ifdef BRCM_EXT_SRAM_BASE
73*91f16700Schasinglulu #define BRCM_MAP_EXT_SRAM		MAP_REGION_FLAT(		\
74*91f16700Schasinglulu 						BRCM_EXT_SRAM_BASE,	\
75*91f16700Schasinglulu 						BRCM_EXT_SRAM_SIZE,	\
76*91f16700Schasinglulu 						MT_DEVICE | MT_RW | MT_SECURE)
77*91f16700Schasinglulu #endif
78*91f16700Schasinglulu 
79*91f16700Schasinglulu #define BRCM_MAP_NAND_RO		MAP_REGION_FLAT(NAND_BASE_ADDR,\
80*91f16700Schasinglulu 						NAND_SIZE,	\
81*91f16700Schasinglulu 						MT_MEMORY | MT_RO | MT_SECURE)
82*91f16700Schasinglulu 
83*91f16700Schasinglulu #define BRCM_MAP_QSPI_RO		MAP_REGION_FLAT(QSPI_BASE_ADDR,\
84*91f16700Schasinglulu 						QSPI_SIZE,	\
85*91f16700Schasinglulu 						MT_MEMORY | MT_RO | MT_SECURE)
86*91f16700Schasinglulu 
87*91f16700Schasinglulu #define HSLS_REGION	MAP_REGION_FLAT(HSLS_BASE_ADDR, \
88*91f16700Schasinglulu 					HSLS_SIZE, \
89*91f16700Schasinglulu 					MT_DEVICE | MT_RW | MT_SECURE)
90*91f16700Schasinglulu 
91*91f16700Schasinglulu #define CCN_REGION	MAP_REGION_FLAT(PLAT_BRCM_CCN_BASE, \
92*91f16700Schasinglulu 					CCN_SIZE, \
93*91f16700Schasinglulu 					MT_DEVICE | MT_RW | MT_SECURE)
94*91f16700Schasinglulu 
95*91f16700Schasinglulu #define GIC500_REGION	MAP_REGION_FLAT(GIC500_BASE, \
96*91f16700Schasinglulu 					GIC500_SIZE, \
97*91f16700Schasinglulu 					MT_DEVICE | MT_RW | MT_SECURE)
98*91f16700Schasinglulu #ifdef PERIPH0_BASE
99*91f16700Schasinglulu #define PERIPH0_REGION	MAP_REGION_FLAT(PERIPH0_BASE, \
100*91f16700Schasinglulu 					PERIPH0_SIZE, \
101*91f16700Schasinglulu 					MT_DEVICE | MT_RW | MT_SECURE)
102*91f16700Schasinglulu #endif
103*91f16700Schasinglulu 
104*91f16700Schasinglulu #ifdef PERIPH1_BASE
105*91f16700Schasinglulu #define PERIPH1_REGION	MAP_REGION_FLAT(PERIPH1_BASE, \
106*91f16700Schasinglulu 					PERIPH1_SIZE, \
107*91f16700Schasinglulu 					MT_DEVICE | MT_RW | MT_SECURE)
108*91f16700Schasinglulu #endif
109*91f16700Schasinglulu 
110*91f16700Schasinglulu #ifdef PERIPH2_BASE
111*91f16700Schasinglulu #define PERIPH2_REGION	MAP_REGION_FLAT(PERIPH2_BASE, \
112*91f16700Schasinglulu 					PERIPH2_SIZE, \
113*91f16700Schasinglulu 					MT_DEVICE | MT_RW | MT_SECURE)
114*91f16700Schasinglulu #endif
115*91f16700Schasinglulu 
116*91f16700Schasinglulu #if BRCM_BL31_IN_DRAM
117*91f16700Schasinglulu #if IMAGE_BL2
118*91f16700Schasinglulu #define BRCM_MAP_BL31_SEC_DRAM		MAP_REGION_FLAT(		\
119*91f16700Schasinglulu 						BL31_BASE,		\
120*91f16700Schasinglulu 						PLAT_BRCM_MAX_BL31_SIZE,\
121*91f16700Schasinglulu 						MT_DEVICE | MT_RW | MT_SECURE)
122*91f16700Schasinglulu #else
123*91f16700Schasinglulu #define BRCM_MAP_BL31_SEC_DRAM		MAP_REGION_FLAT(		\
124*91f16700Schasinglulu 						BL31_BASE,		\
125*91f16700Schasinglulu 						PLAT_BRCM_MAX_BL31_SIZE,\
126*91f16700Schasinglulu 						MT_MEMORY | MT_RW | MT_SECURE)
127*91f16700Schasinglulu #endif
128*91f16700Schasinglulu #endif
129*91f16700Schasinglulu 
130*91f16700Schasinglulu #if defined(USB_BASE) && defined(DRIVER_USB_ENABLE)
131*91f16700Schasinglulu #define USB_REGION			MAP_REGION_FLAT(  \
132*91f16700Schasinglulu 						USB_BASE, \
133*91f16700Schasinglulu 						USB_SIZE, \
134*91f16700Schasinglulu 						MT_DEVICE | MT_RW | MT_SECURE)
135*91f16700Schasinglulu #endif
136*91f16700Schasinglulu 
137*91f16700Schasinglulu #ifdef USE_CRMU_SRAM
138*91f16700Schasinglulu #define CRMU_SRAM_REGION		MAP_REGION_FLAT(		\
139*91f16700Schasinglulu 						CRMU_SRAM_BASE,		\
140*91f16700Schasinglulu 						CRMU_SRAM_SIZE,		\
141*91f16700Schasinglulu 						MT_DEVICE | MT_RW | MT_SECURE)
142*91f16700Schasinglulu #endif
143*91f16700Schasinglulu /*
144*91f16700Schasinglulu  * The number of regions like RO(code), coherent and data required by
145*91f16700Schasinglulu  * different BL stages which need to be mapped in the MMU.
146*91f16700Schasinglulu  */
147*91f16700Schasinglulu #if USE_COHERENT_MEM
148*91f16700Schasinglulu #define BRCM_BL_REGIONS			3
149*91f16700Schasinglulu #else
150*91f16700Schasinglulu #define BRCM_BL_REGIONS			2
151*91f16700Schasinglulu #endif
152*91f16700Schasinglulu 
153*91f16700Schasinglulu #endif /* BRCM_DEF_H */
154