platform_def.h 4.82 KB
Newer Older
1
/*
2
 * Copyright (c) 2015-2018, ARM Limited and Contributors. All rights reserved.
3
 * Copyright (c) 2020, NVIDIA Corporation. All rights reserved.
4
 *
dp-arm's avatar
dp-arm committed
5
 * SPDX-License-Identifier: BSD-3-Clause
6
7
 */

8
9
#ifndef PLATFORM_DEF_H
#define PLATFORM_DEF_H
10
11

#include <arch.h>
12
13
#include <lib/utils_def.h>

14
#include <tegra_def.h>
15

16
17
18
19
20
21
22
/*******************************************************************************
 * Check and error if SEPARATE_CODE_AND_RODATA is not set to 1
 ******************************************************************************/
#if !SEPARATE_CODE_AND_RODATA
#error "SEPARATE_CODE_AND_RODATA should be set to 1"
#endif

23
24
25
26
27
28
/*
 * Platform binary types for linking
 */
#define PLATFORM_LINKER_FORMAT		"elf64-littleaarch64"
#define PLATFORM_LINKER_ARCH		aarch64

29
30
31
32
33
34
/*
 * Platform binary types for linking
 */
#define PLATFORM_LINKER_FORMAT		"elf64-littleaarch64"
#define PLATFORM_LINKER_ARCH		aarch64

35
36
37
38
39
/*******************************************************************************
 * Generic platform constants
 ******************************************************************************/

/* Size of cacheable stacks */
40
#ifdef IMAGE_BL31
41
#define PLATFORM_STACK_SIZE 		U(0x400)
42
43
#endif

44
#define TEGRA_PRIMARY_CPU		U(0x0)
45

46
#define PLAT_MAX_PWR_LVL		MPIDR_AFFLVL2
47
48
#define PLATFORM_CORE_COUNT		(PLATFORM_CLUSTER_COUNT * \
					 PLATFORM_MAX_CPUS_PER_CLUSTER)
49
#define PLAT_NUM_PWR_DOMAINS		(PLATFORM_CORE_COUNT + \
50
					 PLATFORM_CLUSTER_COUNT + U(1))
51
52
53
54

/*******************************************************************************
 * Platform console related constants
 ******************************************************************************/
55
#define TEGRA_CONSOLE_BAUDRATE		U(115200)
56
57
#define TEGRA_BOOT_UART_CLK_13_MHZ	U(13000000)
#define TEGRA_BOOT_UART_CLK_408_MHZ	U(408000000)
58
59
60
61
62

/*******************************************************************************
 * Platform memory map related constants
 ******************************************************************************/
/* Size of trusted dram */
63
#define TZDRAM_SIZE			U(0x00400000)
64
65
66
67
68
#define TZDRAM_END			(TZDRAM_BASE + TZDRAM_SIZE)

/*******************************************************************************
 * BL31 specific defines.
 ******************************************************************************/
69
#define BL31_SIZE			U(0x40000)
70
#define BL31_BASE			TZDRAM_BASE
Varun Wadekar's avatar
Varun Wadekar committed
71
72
73
#define BL31_LIMIT			(TZDRAM_BASE + BL31_SIZE - 1)
#define BL32_BASE			(TZDRAM_BASE + BL31_SIZE)
#define BL32_LIMIT			TZDRAM_END
74
75
76
77
78
79
80

/*******************************************************************************
 * Some data must be aligned on the biggest cache line size in the platform.
 * This is known only to the platform as it might have a combination of
 * integrated and external caches.
 ******************************************************************************/
#define CACHE_WRITEBACK_SHIFT		6
81
#define CACHE_WRITEBACK_GRANULE		(0x40) /* (U(1) << CACHE_WRITEBACK_SHIFT) */
82

83
84
85
86
87
88
/*******************************************************************************
 * Dummy macros to compile io_storage support
 ******************************************************************************/
#define MAX_IO_DEVICES			U(0)
#define MAX_IO_HANDLES			U(0)

Varun Wadekar's avatar
Varun Wadekar committed
89
90
91
92
93
/*******************************************************************************
 * Platforms macros to support SDEI
 ******************************************************************************/
#define TEGRA_SDEI_SGI_PRIVATE		U(8)

94
95
96
97
/*******************************************************************************
 * Platform macros to support exception handling framework
 ******************************************************************************/
#define PLAT_PRI_BITS			U(3)
98
#define PLAT_RAS_PRI			U(0x10)
Varun Wadekar's avatar
Varun Wadekar committed
99
100
#define PLAT_SDEI_CRITICAL_PRI		U(0x20)
#define PLAT_SDEI_NORMAL_PRI		U(0x30)
101
#define PLAT_TEGRA_WDT_PRIO		U(0x40)
102

103
104
105
#define PLAT_EHF_DESC			EHF_PRI_DESC(PLAT_PRI_BITS,\
						     PLAT_TEGRA_WDT_PRIO)

Varun Wadekar's avatar
Varun Wadekar committed
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
/*******************************************************************************
 * SDEI events
 ******************************************************************************/
/* SDEI dynamic private event numbers */
#define TEGRA_SDEI_DP_EVENT_0		U(100)
#define TEGRA_SDEI_DP_EVENT_1		U(101)
#define TEGRA_SDEI_DP_EVENT_2		U(102)

/* SDEI dynamic shared event numbers */
#define TEGRA_SDEI_DS_EVENT_0		U(200)
#define TEGRA_SDEI_DS_EVENT_1		U(201)
#define TEGRA_SDEI_DS_EVENT_2		U(202)

/* SDEI explicit events */
#define TEGRA_SDEI_EP_EVENT_0		U(300)
#define TEGRA_SDEI_EP_EVENT_1		U(301)
#define TEGRA_SDEI_EP_EVENT_2		U(302)
#define TEGRA_SDEI_EP_EVENT_3		U(303)
#define TEGRA_SDEI_EP_EVENT_4		U(304)
#define TEGRA_SDEI_EP_EVENT_5		U(305)
#define TEGRA_SDEI_EP_EVENT_6		U(306)
#define TEGRA_SDEI_EP_EVENT_7		U(307)
#define TEGRA_SDEI_EP_EVENT_8		U(308)
#define TEGRA_SDEI_EP_EVENT_9		U(309)
#define TEGRA_SDEI_EP_EVENT_10		U(310)
#define TEGRA_SDEI_EP_EVENT_11		U(311)

133
#endif /* PLATFORM_DEF_H */