blob: efe789e1ec35b81fa80b06b043c4143934c82dc6 [file] [log] [blame]
XiaoDong Huang83f79a82019-06-13 10:55:50 +08001/*
2 * Copyright (c) 2019, ARM Limited and Contributors. All rights reserved.
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7#ifndef __PX30_DEF_H__
8#define __PX30_DEF_H__
9
10#define MAJOR_VERSION (1)
11#define MINOR_VERSION (0)
12
13#define SIZE_K(n) ((n) * 1024)
Heiko Stuebnerf0e7af82019-10-11 23:26:39 +020014#define SIZE_M(n) ((n) * 1024 * 1024)
XiaoDong Huang83f79a82019-06-13 10:55:50 +080015
16#define WITH_16BITS_WMSK(bits) (0xffff0000 | (bits))
17
18/* Special value used to verify platform parameters from BL2 to BL3-1 */
19#define RK_BL31_PLAT_PARAM_VAL 0x0f1e2d3c4b5a6978ULL
20
21#define PMU_BASE 0xff000000
22#define PMU_SIZE SIZE_K(64)
23
24#define PMUGRF_BASE 0xff010000
25#define PMUGRF_SIZE SIZE_K(64)
26
27#define PMUSRAM_BASE 0xff020000
28#define PMUSRAM_SIZE SIZE_K(64)
29#define PMUSRAM_RSIZE SIZE_K(8)
30
31#define UART0_BASE 0xff030000
32#define UART0_SIZE SIZE_K(64)
33
34#define GPIO0_BASE 0xff040000
35#define GPIO0_SIZE SIZE_K(64)
36
37#define PMUSGRF_BASE 0xff050000
38#define PMUSGRF_SIZE SIZE_K(64)
39
40#define INTSRAM_BASE 0xff0e0000
41#define INTSRAM_SIZE SIZE_K(64)
42
43#define SGRF_BASE 0xff11c000
44#define SGRF_SIZE SIZE_K(16)
45
46#define GIC400_BASE 0xff130000
47#define GIC400_SIZE SIZE_K(64)
48
49#define GRF_BASE 0xff140000
50#define GRF_SIZE SIZE_K(64)
51
52#define UART1_BASE 0xff158000
53#define UART1_SIZE SIZE_K(64)
54
55#define UART2_BASE 0xff160000
56#define UART2_SIZE SIZE_K(64)
57
Paul Kocialkowski91e299c2019-11-27 14:59:36 +010058#define UART3_BASE 0xff168000
59#define UART3_SIZE SIZE_K(64)
60
Heiko Stuebner64a4a7a2019-08-05 09:45:09 +020061#define UART5_BASE 0xff178000
62#define UART5_SIZE SIZE_K(64)
63
XiaoDong Huang83f79a82019-06-13 10:55:50 +080064#define I2C0_BASE 0xff180000
65#define I2C0_SIZE SIZE_K(64)
66
67#define PWM0_BASE 0xff200000
68#define PWM0_SIZE SIZE_K(32)
69
70#define PWM1_BASE 0xff208000
71#define PWM1_SIZE SIZE_K(32)
72
73#define NTIME_BASE 0xff210000
74#define NTIME_SIZE SIZE_K(64)
75
76#define STIME_BASE 0xff220000
77#define STIME_SIZE SIZE_K(64)
78
79#define DCF_BASE 0xff230000
80#define DCF_SIZE SIZE_K(64)
81
82#define GPIO1_BASE 0xff250000
83#define GPIO1_SIZE SIZE_K(64)
84
85#define GPIO2_BASE 0xff260000
86#define GPIO2_SIZE SIZE_K(64)
87
88#define GPIO3_BASE 0xff270000
89#define GPIO3_SIZE SIZE_K(64)
90
91#define DDR_PHY_BASE 0xff2a0000
92#define DDR_PHY_SIZE SIZE_K(64)
93
94#define CRU_BASE 0xff2b0000
95#define CRU_SIZE SIZE_K(32)
96
97#define CRU_BOOST_BASE 0xff2b8000
98#define CRU_BOOST_SIZE SIZE_K(16)
99
100#define PMUCRU_BASE 0xff2bc000
101#define PMUCRU_SIZE SIZE_K(16)
102
103#define VOP_BASE 0xff460000
104#define VOP_SIZE SIZE_K(16)
105
106#define SERVER_MSCH_BASE 0xff530000
107#define SERVER_MSCH_SIZE SIZE_K(64)
108
109#define FIREWALL_DDR_BASE 0xff534000
110#define FIREWALL_DDR_SIZE SIZE_K(16)
111
112#define DDR_UPCTL_BASE 0xff600000
113#define DDR_UPCTL_SIZE SIZE_K(64)
114
115#define DDR_MNTR_BASE 0xff610000
116#define DDR_MNTR_SIZE SIZE_K(64)
117
118#define DDR_STDBY_BASE 0xff620000
119#define DDR_STDBY_SIZE SIZE_K(64)
120
121#define DDRGRF_BASE 0xff630000
122#define DDRGRF_SIZE SIZE_K(32)
123
124/**************************************************************************
125 * UART related constants
126 **************************************************************************/
127#define PX30_UART_BASE UART2_BASE
128#define PX30_BAUDRATE 1500000
129#define PX30_UART_CLOCK 24000000
130
131/******************************************************************************
132 * System counter frequency related constants
133 ******************************************************************************/
134#define SYS_COUNTER_FREQ_IN_TICKS 24000000
135#define SYS_COUNTER_FREQ_IN_MHZ 24
136
137/******************************************************************************
138 * GIC-400 & interrupt handling related constants
139 ******************************************************************************/
140
141/* Base rk_platform compatible GIC memory map */
142#define PX30_GICD_BASE (GIC400_BASE + 0x1000)
143#define PX30_GICC_BASE (GIC400_BASE + 0x2000)
144#define PX30_GICR_BASE 0 /* no GICR in GIC-400 */
145
146/******************************************************************************
147 * sgi, ppi
148 ******************************************************************************/
149#define RK_IRQ_SEC_PHY_TIMER 29
150
151#define RK_IRQ_SEC_SGI_0 8
152#define RK_IRQ_SEC_SGI_1 9
153#define RK_IRQ_SEC_SGI_2 10
154#define RK_IRQ_SEC_SGI_3 11
155#define RK_IRQ_SEC_SGI_4 12
156#define RK_IRQ_SEC_SGI_5 13
157#define RK_IRQ_SEC_SGI_6 14
158#define RK_IRQ_SEC_SGI_7 15
159
160/*
161 * Define a list of Group 0 interrupts.
162 */
163#define PLAT_RK_GICV2_G0_IRQS \
164 INTR_PROP_DESC(RK_IRQ_SEC_PHY_TIMER, GIC_HIGHEST_SEC_PRIORITY, \
165 GICV2_INTR_GROUP0, GIC_INTR_CFG_LEVEL), \
166 INTR_PROP_DESC(RK_IRQ_SEC_SGI_6, GIC_HIGHEST_SEC_PRIORITY, \
167 GICV2_INTR_GROUP0, GIC_INTR_CFG_LEVEL)
168
169#define SHARE_MEM_BASE 0x100000/* [1MB, 1MB+60K]*/
170#define SHARE_MEM_PAGE_NUM 15
171#define SHARE_MEM_SIZE SIZE_K(SHARE_MEM_PAGE_NUM * 4)
172
173#define DDR_PARAM_BASE 0x02000000
174#define DDR_PARAM_SIZE SIZE_K(4)
175
176#endif /* __PLAT_DEF_H__ */