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