xref: /rk3399_ARM-atf/plat/nvidia/tegra/include/platform_def.h (revision f50107d3df52204af137c8e6e1eb9b768ab34da9)
108438e24SVarun Wadekar /*
21d11f73eSSteven Kao  * Copyright (c) 2015-2018, ARM Limited and Contributors. All rights reserved.
342080d48SVarun Wadekar  * Copyright (c) 2020, NVIDIA Corporation. All rights reserved.
408438e24SVarun Wadekar  *
582cb2c1aSdp-arm  * SPDX-License-Identifier: BSD-3-Clause
608438e24SVarun Wadekar  */
708438e24SVarun Wadekar 
8c3cf06f1SAntonio Nino Diaz #ifndef PLATFORM_DEF_H
9c3cf06f1SAntonio Nino Diaz #define PLATFORM_DEF_H
1008438e24SVarun Wadekar 
1108438e24SVarun Wadekar #include <arch.h>
1209d40e0eSAntonio Nino Diaz #include <lib/utils_def.h>
1309d40e0eSAntonio Nino Diaz 
1471cb26eaSVarun Wadekar #include <tegra_def.h>
1508438e24SVarun Wadekar 
162bf1085dSKalyani Chidambaram /*******************************************************************************
172bf1085dSKalyani Chidambaram  * Check and error if SEPARATE_CODE_AND_RODATA is not set to 1
182bf1085dSKalyani Chidambaram  ******************************************************************************/
192bf1085dSKalyani Chidambaram #if !SEPARATE_CODE_AND_RODATA
202bf1085dSKalyani Chidambaram #error "SEPARATE_CODE_AND_RODATA should be set to 1"
212bf1085dSKalyani Chidambaram #endif
222bf1085dSKalyani Chidambaram 
239c2eda01SVarun Wadekar /*
249c2eda01SVarun Wadekar  * Platform binary types for linking
259c2eda01SVarun Wadekar  */
269c2eda01SVarun Wadekar #define PLATFORM_LINKER_FORMAT		"elf64-littleaarch64"
279c2eda01SVarun Wadekar #define PLATFORM_LINKER_ARCH		aarch64
289c2eda01SVarun Wadekar 
2942080d48SVarun Wadekar /*
3042080d48SVarun Wadekar  * Platform binary types for linking
3142080d48SVarun Wadekar  */
3242080d48SVarun Wadekar #define PLATFORM_LINKER_FORMAT		"elf64-littleaarch64"
3342080d48SVarun Wadekar #define PLATFORM_LINKER_ARCH		aarch64
3442080d48SVarun Wadekar 
3508438e24SVarun Wadekar /*******************************************************************************
3608438e24SVarun Wadekar  * Generic platform constants
3708438e24SVarun Wadekar  ******************************************************************************/
3808438e24SVarun Wadekar 
3908438e24SVarun Wadekar /* Size of cacheable stacks */
403d8256b2SMasahiro Yamada #ifdef IMAGE_BL31
4170cb692eSVarun Wadekar #define PLATFORM_STACK_SIZE 		U(0x400)
4208438e24SVarun Wadekar #endif
4308438e24SVarun Wadekar 
4471cb26eaSVarun Wadekar #define PLAT_MAX_PWR_LVL		MPIDR_AFFLVL2
4543ec35eeSVarun Wadekar #define PLATFORM_CORE_COUNT		(PLATFORM_CLUSTER_COUNT * \
4643ec35eeSVarun Wadekar 					 PLATFORM_MAX_CPUS_PER_CLUSTER)
4771cb26eaSVarun Wadekar #define PLAT_NUM_PWR_DOMAINS		(PLATFORM_CORE_COUNT + \
489aaa8882SAnthony Zhou 					 PLATFORM_CLUSTER_COUNT + U(1))
4908438e24SVarun Wadekar 
5008438e24SVarun Wadekar /*******************************************************************************
5108438e24SVarun Wadekar  * Platform console related constants
5208438e24SVarun Wadekar  ******************************************************************************/
5370cb692eSVarun Wadekar #define TEGRA_CONSOLE_BAUDRATE		U(115200)
54322e7c3eSHarvey Hsieh #define TEGRA_BOOT_UART_CLK_13_MHZ	U(13000000)
55322e7c3eSHarvey Hsieh #define TEGRA_BOOT_UART_CLK_408_MHZ	U(408000000)
5608438e24SVarun Wadekar 
5708438e24SVarun Wadekar /*******************************************************************************
5808438e24SVarun Wadekar  * Platform memory map related constants
5908438e24SVarun Wadekar  ******************************************************************************/
6008438e24SVarun Wadekar /* Size of trusted dram */
6170cb692eSVarun Wadekar #define TZDRAM_SIZE			U(0x00400000)
6208438e24SVarun Wadekar #define TZDRAM_END			(TZDRAM_BASE + TZDRAM_SIZE)
6308438e24SVarun Wadekar 
6408438e24SVarun Wadekar /*******************************************************************************
6508438e24SVarun Wadekar  * BL31 specific defines.
6608438e24SVarun Wadekar  ******************************************************************************/
6708438e24SVarun Wadekar #define BL31_BASE			TZDRAM_BASE
68dc7fdad2SVarun Wadekar #define BL31_LIMIT			(TZDRAM_BASE + BL31_SIZE - 1)
69dc7fdad2SVarun Wadekar #define BL32_BASE			(TZDRAM_BASE + BL31_SIZE)
70dc7fdad2SVarun Wadekar #define BL32_LIMIT			TZDRAM_END
7108438e24SVarun Wadekar 
7208438e24SVarun Wadekar /*******************************************************************************
7308438e24SVarun Wadekar  * Some data must be aligned on the biggest cache line size in the platform.
7408438e24SVarun Wadekar  * This is known only to the platform as it might have a combination of
7508438e24SVarun Wadekar  * integrated and external caches.
7608438e24SVarun Wadekar  ******************************************************************************/
7708438e24SVarun Wadekar #define CACHE_WRITEBACK_SHIFT		6
78636fcb0bSKalyani Chidambaram #define CACHE_WRITEBACK_GRANULE		(0x40) /* (U(1) << CACHE_WRITEBACK_SHIFT) */
7908438e24SVarun Wadekar 
808d56e24bSVarun Wadekar /*******************************************************************************
818d56e24bSVarun Wadekar  * Dummy macros to compile io_storage support
828d56e24bSVarun Wadekar  ******************************************************************************/
838d56e24bSVarun Wadekar #define MAX_IO_DEVICES			U(0)
848d56e24bSVarun Wadekar #define MAX_IO_HANDLES			U(0)
858d56e24bSVarun Wadekar 
86adb20a17SVarun Wadekar /*******************************************************************************
87d886628dSVarun Wadekar  * Platforms macros to support SDEI
88d886628dSVarun Wadekar  ******************************************************************************/
89d886628dSVarun Wadekar #define TEGRA_SDEI_SGI_PRIVATE		U(8)
90d886628dSVarun Wadekar 
91d886628dSVarun Wadekar /*******************************************************************************
92adb20a17SVarun Wadekar  * Platform macros to support exception handling framework
93adb20a17SVarun Wadekar  ******************************************************************************/
94adb20a17SVarun Wadekar #define PLAT_PRI_BITS			U(3)
958ca61538SDavid Pu #define PLAT_RAS_PRI			U(0x10)
96d886628dSVarun Wadekar #define PLAT_SDEI_CRITICAL_PRI		U(0x20)
97d886628dSVarun Wadekar #define PLAT_SDEI_NORMAL_PRI		U(0x30)
98adb20a17SVarun Wadekar #define PLAT_TEGRA_WDT_PRIO		U(0x40)
992bf1085dSKalyani Chidambaram 
100*deb875b5SSandeep Tripathy #define PLAT_EHF_DESC			EHF_PRI_DESC(PLAT_PRI_BITS,\
101*deb875b5SSandeep Tripathy 						     PLAT_TEGRA_WDT_PRIO)
102*deb875b5SSandeep Tripathy 
103d886628dSVarun Wadekar /*******************************************************************************
104d886628dSVarun Wadekar  * SDEI events
105d886628dSVarun Wadekar  ******************************************************************************/
106d886628dSVarun Wadekar /* SDEI dynamic private event numbers */
107d886628dSVarun Wadekar #define TEGRA_SDEI_DP_EVENT_0		U(100)
108d886628dSVarun Wadekar #define TEGRA_SDEI_DP_EVENT_1		U(101)
109d886628dSVarun Wadekar #define TEGRA_SDEI_DP_EVENT_2		U(102)
110d886628dSVarun Wadekar 
111d886628dSVarun Wadekar /* SDEI dynamic shared event numbers */
112d886628dSVarun Wadekar #define TEGRA_SDEI_DS_EVENT_0		U(200)
113d886628dSVarun Wadekar #define TEGRA_SDEI_DS_EVENT_1		U(201)
114d886628dSVarun Wadekar #define TEGRA_SDEI_DS_EVENT_2		U(202)
115d886628dSVarun Wadekar 
116d886628dSVarun Wadekar /* SDEI explicit events */
117d886628dSVarun Wadekar #define TEGRA_SDEI_EP_EVENT_0		U(300)
118d886628dSVarun Wadekar #define TEGRA_SDEI_EP_EVENT_1		U(301)
119d886628dSVarun Wadekar #define TEGRA_SDEI_EP_EVENT_2		U(302)
120d886628dSVarun Wadekar #define TEGRA_SDEI_EP_EVENT_3		U(303)
121d886628dSVarun Wadekar #define TEGRA_SDEI_EP_EVENT_4		U(304)
122d886628dSVarun Wadekar #define TEGRA_SDEI_EP_EVENT_5		U(305)
123d886628dSVarun Wadekar #define TEGRA_SDEI_EP_EVENT_6		U(306)
124d886628dSVarun Wadekar #define TEGRA_SDEI_EP_EVENT_7		U(307)
125d886628dSVarun Wadekar #define TEGRA_SDEI_EP_EVENT_8		U(308)
126d886628dSVarun Wadekar #define TEGRA_SDEI_EP_EVENT_9		U(309)
127d886628dSVarun Wadekar #define TEGRA_SDEI_EP_EVENT_10		U(310)
128d886628dSVarun Wadekar #define TEGRA_SDEI_EP_EVENT_11		U(311)
129d886628dSVarun Wadekar 
130c3cf06f1SAntonio Nino Diaz #endif /* PLATFORM_DEF_H */
131