xref: /arm-trusted-firmware/plat/arm/css/sgi/include/sgi_base_platform_def.h (revision 91f16700b400a8c0651d24a598fc48ee2997a0d7)
1*91f16700Schasinglulu /*
2*91f16700Schasinglulu  * Copyright (c) 2018-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 SGI_BASE_PLATFORM_DEF_H
8*91f16700Schasinglulu #define SGI_BASE_PLATFORM_DEF_H
9*91f16700Schasinglulu 
10*91f16700Schasinglulu #include <lib/utils_def.h>
11*91f16700Schasinglulu #include <lib/xlat_tables/xlat_tables_defs.h>
12*91f16700Schasinglulu #include <plat/arm/common/arm_def.h>
13*91f16700Schasinglulu #include <plat/arm/common/arm_spm_def.h>
14*91f16700Schasinglulu #include <plat/arm/css/common/css_def.h>
15*91f16700Schasinglulu #include <plat/common/common_def.h>
16*91f16700Schasinglulu 
17*91f16700Schasinglulu #define PLATFORM_CORE_COUNT		(CSS_SGI_CHIP_COUNT *		\
18*91f16700Schasinglulu 					PLAT_ARM_CLUSTER_COUNT *	\
19*91f16700Schasinglulu 					CSS_SGI_MAX_CPUS_PER_CLUSTER *	\
20*91f16700Schasinglulu 					CSS_SGI_MAX_PE_PER_CPU)
21*91f16700Schasinglulu 
22*91f16700Schasinglulu #define PLAT_ARM_TRUSTED_SRAM_SIZE	0x00080000	/* 512 KB */
23*91f16700Schasinglulu 
24*91f16700Schasinglulu /* Remote chip address offset */
25*91f16700Schasinglulu #define CSS_SGI_REMOTE_CHIP_MEM_OFFSET(n)	\
26*91f16700Schasinglulu 		((ULL(1) << CSS_SGI_ADDR_BITS_PER_CHIP) * (n))
27*91f16700Schasinglulu 
28*91f16700Schasinglulu /*
29*91f16700Schasinglulu  * PLAT_ARM_MMAP_ENTRIES depends on the number of entries in the
30*91f16700Schasinglulu  * plat_arm_mmap array defined for each BL stage. In addition to that, on
31*91f16700Schasinglulu  * multi-chip platforms, address regions on each of the remote chips are
32*91f16700Schasinglulu  * also mapped. In BL31, for instance, three address regions on the remote
33*91f16700Schasinglulu  * chips are accessed - secure ram, css device and soc device regions.
34*91f16700Schasinglulu  */
35*91f16700Schasinglulu #if defined(IMAGE_BL31)
36*91f16700Schasinglulu # if SPM_MM || (SPMC_AT_EL3 && SPMC_AT_EL3_SEL0_SP)
37*91f16700Schasinglulu #  define PLAT_ARM_MMAP_ENTRIES		(10  + ((CSS_SGI_CHIP_COUNT - 1) * 3))
38*91f16700Schasinglulu #  define MAX_XLAT_TABLES		(8  + ((CSS_SGI_CHIP_COUNT - 1) * 3))
39*91f16700Schasinglulu #  define PLAT_SP_IMAGE_MMAP_REGIONS	12
40*91f16700Schasinglulu #  define PLAT_SP_IMAGE_MAX_XLAT_TABLES	14
41*91f16700Schasinglulu # else
42*91f16700Schasinglulu #  define PLAT_ARM_MMAP_ENTRIES		(5 + ((CSS_SGI_CHIP_COUNT - 1) * 3))
43*91f16700Schasinglulu #  define MAX_XLAT_TABLES		(6 + ((CSS_SGI_CHIP_COUNT - 1) * 3))
44*91f16700Schasinglulu # endif
45*91f16700Schasinglulu #elif defined(IMAGE_BL32)
46*91f16700Schasinglulu # define PLAT_ARM_MMAP_ENTRIES		8
47*91f16700Schasinglulu # define MAX_XLAT_TABLES		5
48*91f16700Schasinglulu #elif defined(IMAGE_BL2)
49*91f16700Schasinglulu # define PLAT_ARM_MMAP_ENTRIES		(11 + (CSS_SGI_CHIP_COUNT - 1))
50*91f16700Schasinglulu 
51*91f16700Schasinglulu /*
52*91f16700Schasinglulu  * MAX_XLAT_TABLES entries need to be doubled because when the address width
53*91f16700Schasinglulu  * exceeds 40 bits an additional level of translation is required. In case of
54*91f16700Schasinglulu  * multichip platforms peripherals also fall into address space with width
55*91f16700Schasinglulu  * > 40 bits
56*91f16700Schasinglulu  *
57*91f16700Schasinglulu  */
58*91f16700Schasinglulu # define MAX_XLAT_TABLES		(7  + ((CSS_SGI_CHIP_COUNT - 1) * 2))
59*91f16700Schasinglulu #elif !USE_ROMLIB
60*91f16700Schasinglulu # define PLAT_ARM_MMAP_ENTRIES		11
61*91f16700Schasinglulu # define MAX_XLAT_TABLES		7
62*91f16700Schasinglulu #else
63*91f16700Schasinglulu # define PLAT_ARM_MMAP_ENTRIES		12
64*91f16700Schasinglulu # define MAX_XLAT_TABLES		6
65*91f16700Schasinglulu #endif
66*91f16700Schasinglulu 
67*91f16700Schasinglulu /*
68*91f16700Schasinglulu  * PLAT_ARM_MAX_BL1_RW_SIZE is calculated using the current BL1 RW debug size
69*91f16700Schasinglulu  * plus a little space for growth.
70*91f16700Schasinglulu  */
71*91f16700Schasinglulu #define PLAT_ARM_MAX_BL1_RW_SIZE	(64 * 1024)	/* 64 KB */
72*91f16700Schasinglulu 
73*91f16700Schasinglulu /*
74*91f16700Schasinglulu  * PLAT_ARM_MAX_ROMLIB_RW_SIZE is define to use a full page
75*91f16700Schasinglulu  */
76*91f16700Schasinglulu 
77*91f16700Schasinglulu #if USE_ROMLIB
78*91f16700Schasinglulu #define PLAT_ARM_MAX_ROMLIB_RW_SIZE	0x1000
79*91f16700Schasinglulu #define PLAT_ARM_MAX_ROMLIB_RO_SIZE	0xe000
80*91f16700Schasinglulu #else
81*91f16700Schasinglulu #define PLAT_ARM_MAX_ROMLIB_RW_SIZE	0
82*91f16700Schasinglulu #define PLAT_ARM_MAX_ROMLIB_RO_SIZE	0
83*91f16700Schasinglulu #endif
84*91f16700Schasinglulu 
85*91f16700Schasinglulu /*
86*91f16700Schasinglulu  * PLAT_ARM_MAX_BL2_SIZE is calculated using the current BL2 debug size plus a
87*91f16700Schasinglulu  * little space for growth. Additional 8KiB space is added per chip in
88*91f16700Schasinglulu  * order to accommodate the additional level of translation required for "TZC"
89*91f16700Schasinglulu  * peripheral access which lies in >4TB address space.
90*91f16700Schasinglulu  *
91*91f16700Schasinglulu  */
92*91f16700Schasinglulu #if TRUSTED_BOARD_BOOT
93*91f16700Schasinglulu # define PLAT_ARM_MAX_BL2_SIZE		(0x20000 + ((CSS_SGI_CHIP_COUNT - 1) * \
94*91f16700Schasinglulu 							0x2000))
95*91f16700Schasinglulu #else
96*91f16700Schasinglulu # define PLAT_ARM_MAX_BL2_SIZE		(0x14000 + ((CSS_SGI_CHIP_COUNT - 1) * \
97*91f16700Schasinglulu 							0x2000))
98*91f16700Schasinglulu #endif
99*91f16700Schasinglulu 
100*91f16700Schasinglulu /*
101*91f16700Schasinglulu  * Since BL31 NOBITS overlays BL2 and BL1-RW, PLAT_ARM_MAX_BL31_SIZE is
102*91f16700Schasinglulu  * calculated using the current BL31 PROGBITS debug size plus the sizes of BL2
103*91f16700Schasinglulu  * and BL1-RW. CSS_SGI_BL31_SIZE - is tuned with respect to the actual BL31
104*91f16700Schasinglulu  * PROGBITS size which is around 64-68KB at the time this change is being made.
105*91f16700Schasinglulu  * A buffer of ~35KB is added to account for future expansion of the image,
106*91f16700Schasinglulu  * making it a total of 100KB.
107*91f16700Schasinglulu  */
108*91f16700Schasinglulu #define CSS_SGI_BL31_SIZE		(100 * 1024)	/* 100 KB */
109*91f16700Schasinglulu #define PLAT_ARM_MAX_BL31_SIZE		(CSS_SGI_BL31_SIZE +		\
110*91f16700Schasinglulu 						PLAT_ARM_MAX_BL2_SIZE +	\
111*91f16700Schasinglulu 						PLAT_ARM_MAX_BL1_RW_SIZE)
112*91f16700Schasinglulu 
113*91f16700Schasinglulu /*
114*91f16700Schasinglulu  * Size of cacheable stacks
115*91f16700Schasinglulu  */
116*91f16700Schasinglulu #if defined(IMAGE_BL1)
117*91f16700Schasinglulu # if TRUSTED_BOARD_BOOT
118*91f16700Schasinglulu #  define PLATFORM_STACK_SIZE 0x1000
119*91f16700Schasinglulu # else
120*91f16700Schasinglulu #  define PLATFORM_STACK_SIZE 0x440
121*91f16700Schasinglulu # endif
122*91f16700Schasinglulu #elif defined(IMAGE_BL2)
123*91f16700Schasinglulu # if TRUSTED_BOARD_BOOT
124*91f16700Schasinglulu #  define PLATFORM_STACK_SIZE 0x1000
125*91f16700Schasinglulu # else
126*91f16700Schasinglulu #  define PLATFORM_STACK_SIZE 0x400
127*91f16700Schasinglulu # endif
128*91f16700Schasinglulu #elif defined(IMAGE_BL2U)
129*91f16700Schasinglulu # define PLATFORM_STACK_SIZE 0x400
130*91f16700Schasinglulu #elif defined(IMAGE_BL31)
131*91f16700Schasinglulu # if SPM_MM
132*91f16700Schasinglulu #  define PLATFORM_STACK_SIZE 0x500
133*91f16700Schasinglulu # else
134*91f16700Schasinglulu #  define PLATFORM_STACK_SIZE 0x400
135*91f16700Schasinglulu # endif
136*91f16700Schasinglulu #elif defined(IMAGE_BL32)
137*91f16700Schasinglulu # define PLATFORM_STACK_SIZE 0x440
138*91f16700Schasinglulu #endif
139*91f16700Schasinglulu 
140*91f16700Schasinglulu /* PL011 UART related constants */
141*91f16700Schasinglulu #define SOC_CSS_SEC_UART_BASE			UL(0x2A410000)
142*91f16700Schasinglulu #define SOC_CSS_NSEC_UART_BASE			UL(0x2A400000)
143*91f16700Schasinglulu #define SOC_CSS_UART_SIZE			UL(0x10000)
144*91f16700Schasinglulu #define SOC_CSS_UART_CLK_IN_HZ			UL(7372800)
145*91f16700Schasinglulu 
146*91f16700Schasinglulu /* UART related constants */
147*91f16700Schasinglulu #define PLAT_ARM_BOOT_UART_BASE			SOC_CSS_SEC_UART_BASE
148*91f16700Schasinglulu #define PLAT_ARM_BOOT_UART_CLK_IN_HZ		SOC_CSS_UART_CLK_IN_HZ
149*91f16700Schasinglulu 
150*91f16700Schasinglulu #define PLAT_ARM_RUN_UART_BASE			SOC_CSS_SEC_UART_BASE
151*91f16700Schasinglulu #define PLAT_ARM_RUN_UART_CLK_IN_HZ		SOC_CSS_UART_CLK_IN_HZ
152*91f16700Schasinglulu 
153*91f16700Schasinglulu #define PLAT_ARM_CRASH_UART_BASE		SOC_CSS_SEC_UART_BASE
154*91f16700Schasinglulu #define PLAT_ARM_CRASH_UART_CLK_IN_HZ		SOC_CSS_UART_CLK_IN_HZ
155*91f16700Schasinglulu 
156*91f16700Schasinglulu #define PLAT_ARM_NSTIMER_FRAME_ID	0
157*91f16700Schasinglulu 
158*91f16700Schasinglulu #define PLAT_ARM_TRUSTED_ROM_BASE	0x0
159*91f16700Schasinglulu #define PLAT_ARM_TRUSTED_ROM_SIZE	0x00080000	/* 512KB */
160*91f16700Schasinglulu 
161*91f16700Schasinglulu #define PLAT_ARM_NSRAM_BASE		0x06000000
162*91f16700Schasinglulu #define PLAT_ARM_NSRAM_SIZE		0x00080000	/* 512KB */
163*91f16700Schasinglulu 
164*91f16700Schasinglulu #define PLAT_ARM_DRAM2_BASE		ULL(0x8080000000)
165*91f16700Schasinglulu #define PLAT_ARM_DRAM2_SIZE		ULL(0x180000000)
166*91f16700Schasinglulu 
167*91f16700Schasinglulu #define PLAT_ARM_G1S_IRQ_PROPS(grp)	CSS_G1S_IRQ_PROPS(grp)
168*91f16700Schasinglulu #define PLAT_ARM_G0_IRQ_PROPS(grp)	ARM_G0_IRQ_PROPS(grp)
169*91f16700Schasinglulu 
170*91f16700Schasinglulu #define CSS_SGI_DEVICE_BASE	(0x20000000)
171*91f16700Schasinglulu #define CSS_SGI_DEVICE_SIZE	(0x20000000)
172*91f16700Schasinglulu #define CSS_SGI_MAP_DEVICE	MAP_REGION_FLAT(		\
173*91f16700Schasinglulu 					CSS_SGI_DEVICE_BASE,	\
174*91f16700Schasinglulu 					CSS_SGI_DEVICE_SIZE,	\
175*91f16700Schasinglulu 					MT_DEVICE | MT_RW | MT_SECURE)
176*91f16700Schasinglulu 
177*91f16700Schasinglulu #define ARM_MAP_SHARED_RAM_REMOTE_CHIP(n)					\
178*91f16700Schasinglulu 			MAP_REGION_FLAT(					\
179*91f16700Schasinglulu 				CSS_SGI_REMOTE_CHIP_MEM_OFFSET(n) +		\
180*91f16700Schasinglulu 				ARM_SHARED_RAM_BASE,				\
181*91f16700Schasinglulu 				ARM_SHARED_RAM_SIZE,				\
182*91f16700Schasinglulu 				MT_NON_CACHEABLE | MT_RW | MT_SECURE		\
183*91f16700Schasinglulu 			)
184*91f16700Schasinglulu 
185*91f16700Schasinglulu #define CSS_SGI_MAP_DEVICE_REMOTE_CHIP(n)					\
186*91f16700Schasinglulu 			MAP_REGION_FLAT(					\
187*91f16700Schasinglulu 				CSS_SGI_REMOTE_CHIP_MEM_OFFSET(n) +		\
188*91f16700Schasinglulu 				CSS_SGI_DEVICE_BASE,				\
189*91f16700Schasinglulu 				CSS_SGI_DEVICE_SIZE,				\
190*91f16700Schasinglulu 				MT_DEVICE | MT_RW | MT_SECURE			\
191*91f16700Schasinglulu 			)
192*91f16700Schasinglulu 
193*91f16700Schasinglulu #define SOC_CSS_MAP_DEVICE_REMOTE_CHIP(n)					\
194*91f16700Schasinglulu 			MAP_REGION_FLAT(					\
195*91f16700Schasinglulu 				CSS_SGI_REMOTE_CHIP_MEM_OFFSET(n) +		\
196*91f16700Schasinglulu 				SOC_CSS_DEVICE_BASE,				\
197*91f16700Schasinglulu 				SOC_CSS_DEVICE_SIZE,				\
198*91f16700Schasinglulu 				MT_DEVICE | MT_RW | MT_SECURE			\
199*91f16700Schasinglulu 			)
200*91f16700Schasinglulu 
201*91f16700Schasinglulu /* Map the secure region for access from S-EL0 */
202*91f16700Schasinglulu #define PLAT_ARM_SECURE_MAP_DEVICE	MAP_REGION_FLAT(	\
203*91f16700Schasinglulu 					SOC_CSS_DEVICE_BASE,	\
204*91f16700Schasinglulu 					SOC_CSS_DEVICE_SIZE,	\
205*91f16700Schasinglulu 					MT_DEVICE | MT_RW | MT_SECURE | MT_USER)
206*91f16700Schasinglulu 
207*91f16700Schasinglulu #if ENABLE_FEAT_RAS && FFH_SUPPORT
208*91f16700Schasinglulu #define PLAT_SP_PRI				PLAT_RAS_PRI
209*91f16700Schasinglulu #else
210*91f16700Schasinglulu #define PLAT_SP_PRI				0x10
211*91f16700Schasinglulu #endif
212*91f16700Schasinglulu 
213*91f16700Schasinglulu #if (SPM_MM || (SPMC_AT_EL3 && SPMC_AT_EL3_SEL0_SP)) && ENABLE_FEAT_RAS && FFH_SUPPORT
214*91f16700Schasinglulu /*
215*91f16700Schasinglulu  * CPER buffer memory of 128KB is reserved and it is placed adjacent to the
216*91f16700Schasinglulu  * memory shared between EL3 and S-EL0.
217*91f16700Schasinglulu  */
218*91f16700Schasinglulu #define CSS_SGI_SP_CPER_BUF_BASE	(PLAT_SP_IMAGE_NS_BUF_BASE + \
219*91f16700Schasinglulu 					 PLAT_SP_IMAGE_NS_BUF_SIZE)
220*91f16700Schasinglulu #define CSS_SGI_SP_CPER_BUF_SIZE	ULL(0x20000)
221*91f16700Schasinglulu #define CSS_SGI_SP_CPER_BUF_MMAP	MAP_REGION2(			       \
222*91f16700Schasinglulu 						CSS_SGI_SP_CPER_BUF_BASE,      \
223*91f16700Schasinglulu 						CSS_SGI_SP_CPER_BUF_BASE,      \
224*91f16700Schasinglulu 						CSS_SGI_SP_CPER_BUF_SIZE,      \
225*91f16700Schasinglulu 						MT_RW_DATA | MT_NS | MT_USER,  \
226*91f16700Schasinglulu 						PAGE_SIZE)
227*91f16700Schasinglulu 
228*91f16700Schasinglulu /*
229*91f16700Schasinglulu  * Secure partition stack follows right after the memory space reserved for
230*91f16700Schasinglulu  * CPER buffer memory.
231*91f16700Schasinglulu  */
232*91f16700Schasinglulu #define PLAT_ARM_SP_IMAGE_STACK_BASE		(PLAT_SP_IMAGE_NS_BUF_BASE +   \
233*91f16700Schasinglulu 						 PLAT_SP_IMAGE_NS_BUF_SIZE +   \
234*91f16700Schasinglulu 						 CSS_SGI_SP_CPER_BUF_SIZE)
235*91f16700Schasinglulu #elif (SPM_MM || (SPMC_AT_EL3 && SPMC_AT_EL3_SEL0_SP))
236*91f16700Schasinglulu /*
237*91f16700Schasinglulu  * Secure partition stack follows right after the memory region that is shared
238*91f16700Schasinglulu  * between EL3 and S-EL0.
239*91f16700Schasinglulu  */
240*91f16700Schasinglulu #define PLAT_ARM_SP_IMAGE_STACK_BASE	(PLAT_SP_IMAGE_NS_BUF_BASE +	\
241*91f16700Schasinglulu 					 PLAT_SP_IMAGE_NS_BUF_SIZE)
242*91f16700Schasinglulu #endif /* SPM_MM && ENABLE_FEAT_RAS && FFH_SUPPORT */
243*91f16700Schasinglulu 
244*91f16700Schasinglulu /* Platform ID address */
245*91f16700Schasinglulu #define SSC_VERSION                     (SSC_REG_BASE + SSC_VERSION_OFFSET)
246*91f16700Schasinglulu #ifndef __ASSEMBLER__
247*91f16700Schasinglulu /* SSC_VERSION related accessors */
248*91f16700Schasinglulu /* Returns the part number of the platform */
249*91f16700Schasinglulu #define GET_SGI_PART_NUM                                       \
250*91f16700Schasinglulu 		GET_SSC_VERSION_PART_NUM(mmio_read_32(SSC_VERSION))
251*91f16700Schasinglulu /* Returns the configuration number of the platform */
252*91f16700Schasinglulu #define GET_SGI_CONFIG_NUM                                     \
253*91f16700Schasinglulu 		GET_SSC_VERSION_CONFIG(mmio_read_32(SSC_VERSION))
254*91f16700Schasinglulu #endif /* __ASSEMBLER__ */
255*91f16700Schasinglulu 
256*91f16700Schasinglulu /*******************************************************************************
257*91f16700Schasinglulu  * Memprotect definitions
258*91f16700Schasinglulu  ******************************************************************************/
259*91f16700Schasinglulu /* PSCI memory protect definitions:
260*91f16700Schasinglulu  * This variable is stored in a non-secure flash because some ARM reference
261*91f16700Schasinglulu  * platforms do not have secure NVRAM. Real systems that provided MEM_PROTECT
262*91f16700Schasinglulu  * support must use a secure NVRAM to store the PSCI MEM_PROTECT definitions.
263*91f16700Schasinglulu  */
264*91f16700Schasinglulu #define PLAT_ARM_MEM_PROT_ADDR		(V2M_FLASH0_BASE + \
265*91f16700Schasinglulu 					 V2M_FLASH0_SIZE - V2M_FLASH_BLOCK_SIZE)
266*91f16700Schasinglulu 
267*91f16700Schasinglulu /*Secure Watchdog Constants */
268*91f16700Schasinglulu #define SBSA_SECURE_WDOG_BASE		UL(0x2A480000)
269*91f16700Schasinglulu #define SBSA_SECURE_WDOG_TIMEOUT	UL(100)
270*91f16700Schasinglulu 
271*91f16700Schasinglulu /* Number of SCMI channels on the platform */
272*91f16700Schasinglulu #define PLAT_ARM_SCMI_CHANNEL_COUNT	CSS_SGI_CHIP_COUNT
273*91f16700Schasinglulu 
274*91f16700Schasinglulu /*
275*91f16700Schasinglulu  * Mapping definition of the TrustZone Controller for ARM SGI/RD platforms
276*91f16700Schasinglulu  * where both the DRAM regions are marked for non-secure access. This applies
277*91f16700Schasinglulu  * to multi-chip platforms.
278*91f16700Schasinglulu  */
279*91f16700Schasinglulu #define SGI_PLAT_TZC_NS_REMOTE_REGIONS_DEF(n)				\
280*91f16700Schasinglulu 	{CSS_SGI_REMOTE_CHIP_MEM_OFFSET(n) + ARM_DRAM1_BASE,		\
281*91f16700Schasinglulu 		CSS_SGI_REMOTE_CHIP_MEM_OFFSET(n) + ARM_DRAM1_END,	\
282*91f16700Schasinglulu 		ARM_TZC_NS_DRAM_S_ACCESS, PLAT_ARM_TZC_NS_DEV_ACCESS},	\
283*91f16700Schasinglulu 	{CSS_SGI_REMOTE_CHIP_MEM_OFFSET(n) + ARM_DRAM2_BASE,		\
284*91f16700Schasinglulu 		CSS_SGI_REMOTE_CHIP_MEM_OFFSET(n) + ARM_DRAM2_END,	\
285*91f16700Schasinglulu 		ARM_TZC_NS_DRAM_S_ACCESS, PLAT_ARM_TZC_NS_DEV_ACCESS}
286*91f16700Schasinglulu 
287*91f16700Schasinglulu #if SPM_MM
288*91f16700Schasinglulu 
289*91f16700Schasinglulu /*
290*91f16700Schasinglulu  * Stand-alone MM logs would be routed via secure UART. Define page table
291*91f16700Schasinglulu  * entry for secure UART which would be common to all platforms.
292*91f16700Schasinglulu  */
293*91f16700Schasinglulu #define SOC_PLATFORM_SECURE_UART	MAP_REGION_FLAT(		\
294*91f16700Schasinglulu 					SOC_CSS_SEC_UART_BASE,		\
295*91f16700Schasinglulu 					SOC_CSS_UART_SIZE,		\
296*91f16700Schasinglulu 					MT_DEVICE | MT_RW | 		\
297*91f16700Schasinglulu 					MT_SECURE | MT_USER)
298*91f16700Schasinglulu 
299*91f16700Schasinglulu #endif
300*91f16700Schasinglulu 
301*91f16700Schasinglulu /* SDS ID for unusable CPU MPID list structure */
302*91f16700Schasinglulu #define SDS_ISOLATED_CPU_LIST_ID		U(128)
303*91f16700Schasinglulu 
304*91f16700Schasinglulu #endif /* SGI_BASE_PLATFORM_DEF_H */
305