xref: /rk3399_ARM-atf/plat/rockchip/rk3576/rk3576_def.h (revision 036935a8144b9c4b9f95f249ff4384945b846d40)
1*036935a8SXiaoDong Huang /* SPDX-License-Identifier: BSD-3-Clause */
2*036935a8SXiaoDong Huang /*
3*036935a8SXiaoDong Huang  * Copyright (c) 2025, Rockchip Electronics Co., Ltd.
4*036935a8SXiaoDong Huang  */
5*036935a8SXiaoDong Huang 
6*036935a8SXiaoDong Huang #ifndef __PLAT_DEF_H__
7*036935a8SXiaoDong Huang #define __PLAT_DEF_H__
8*036935a8SXiaoDong Huang 
9*036935a8SXiaoDong Huang #define SIZE_K(n)		((n) * 1024)
10*036935a8SXiaoDong Huang #define SIZE_M(n)		((n) * 1024 * 1024)
11*036935a8SXiaoDong Huang 
12*036935a8SXiaoDong Huang #define WITH_16BITS_WMSK(bits)	(0xffff0000 | (bits))
13*036935a8SXiaoDong Huang #define BITS_WMSK(msk, shift)	((msk) << ((shift) + REG_MSK_SHIFT))
14*036935a8SXiaoDong Huang 
15*036935a8SXiaoDong Huang /* Special value used to verify platform parameters from BL2 to BL3-1 */
16*036935a8SXiaoDong Huang #define RK_BL31_PLAT_PARAM_VAL	0x0f1e2d3c4b5a6978ULL
17*036935a8SXiaoDong Huang 
18*036935a8SXiaoDong Huang #define RK3576_DEV_RNG0_BASE	0x00000000
19*036935a8SXiaoDong Huang #define RK3576_DEV_RNG0_SIZE	0x40000000
20*036935a8SXiaoDong Huang 
21*036935a8SXiaoDong Huang #define RK_DRAM_BASE		0x40000000
22*036935a8SXiaoDong Huang 
23*036935a8SXiaoDong Huang /* All slave base address declare below */
24*036935a8SXiaoDong Huang #define MCU_TCM_BASE		0x23800000
25*036935a8SXiaoDong Huang #define MCU_CACHE_BASE		0x23810000
26*036935a8SXiaoDong Huang #define MCU_RAM_TEST_BASE	0x23820000
27*036935a8SXiaoDong Huang #define MCU_BOOT_BASE		0x00000000
28*036935a8SXiaoDong Huang #define MCU_MAIN_BASE		0x00010000
29*036935a8SXiaoDong Huang #define PMU0SGRF_BASE		0x26000000
30*036935a8SXiaoDong Huang #define PMU1SGRF_BASE		0x26002000
31*036935a8SXiaoDong Huang #define PMU1SGRF_FW_BASE	0x26003000
32*036935a8SXiaoDong Huang #define SYS_SGRF_BASE		0x26004000
33*036935a8SXiaoDong Huang #define SYS_SGRF_FW_BASE	0x26005000
34*036935a8SXiaoDong Huang #define SYS_GRF_BASE		0x2600a000
35*036935a8SXiaoDong Huang #define BIGCORE_GRF_BASE	0x2600c000
36*036935a8SXiaoDong Huang #define LITCORE_GRF_BASE	0x2600e000
37*036935a8SXiaoDong Huang #define CCI_GRF_BASE		0x26010000
38*036935a8SXiaoDong Huang #define DDR_GRF_BASE		0x26012000
39*036935a8SXiaoDong Huang #define CENTER_GRF_BASE		0x26014000
40*036935a8SXiaoDong Huang #define GPUGRF_BASE		0x26016000
41*036935a8SXiaoDong Huang #define NPUGRF_BASE		0x26018000
42*036935a8SXiaoDong Huang #define VO_GRF_BASE		0x2601a000
43*036935a8SXiaoDong Huang #define VI_GRF_BASE		0x2601c000
44*036935a8SXiaoDong Huang #define USB_GRF_BASE		0x2601e000
45*036935a8SXiaoDong Huang #define PHP_GRF_BASE		0x26020000
46*036935a8SXiaoDong Huang #define VOP_GRF_BASE		0x26022000
47*036935a8SXiaoDong Huang #define PMU0_GRF_BASE		0x26024000
48*036935a8SXiaoDong Huang #define PMU1_GRF_BASE		0x26026000
49*036935a8SXiaoDong Huang #define USBDPPHY_GRF_BASE	0x2602c000
50*036935a8SXiaoDong Huang #define USB2PHY0_GRF_BASE	0x2602e000
51*036935a8SXiaoDong Huang #define USB2PHY1_GRF_BASE	0x26030000
52*036935a8SXiaoDong Huang #define PMU0_IOC_BASE		0x26040000
53*036935a8SXiaoDong Huang #define PMU1_IOC_BASE		0x26042000
54*036935a8SXiaoDong Huang #define TOP_IOC_BASE		0x26044000
55*036935a8SXiaoDong Huang #define VCCIO_IOC_BASE		0x26046000
56*036935a8SXiaoDong Huang #define VCCIO6_IOC_BASE		0x2604a000
57*036935a8SXiaoDong Huang #define VCCIO7_IOC_BASE		0x2604b000
58*036935a8SXiaoDong Huang #define CRU_BASE		0x27200000
59*036935a8SXiaoDong Huang #define PHP_CRU_BASE		0x27208000
60*036935a8SXiaoDong Huang #define SECURE_CRU_BASE		0x27210000
61*036935a8SXiaoDong Huang #define PMU1_CRU_BASE		0x27220000
62*036935a8SXiaoDong Huang #define DDRPHY0_CRU_BASE	0x27228000
63*036935a8SXiaoDong Huang #define DDRPHY1_CRU_BASE	0x27230000
64*036935a8SXiaoDong Huang #define BIGCORE_CRU_BASE	0x27238000
65*036935a8SXiaoDong Huang #define LITTLE_CRU_BASE		0x27240000
66*036935a8SXiaoDong Huang #define CCI_CRU_BASE		0x27248000
67*036935a8SXiaoDong Huang #define PVTPLL_CCI_BASE		0x27250000
68*036935a8SXiaoDong Huang #define PVTPLL_BIGCORE_BASE	0x27258000
69*036935a8SXiaoDong Huang #define PVTPLL_LITCORE_BASE	0x27260000
70*036935a8SXiaoDong Huang #define PVTPLL_GPU_BASE		0x27268000
71*036935a8SXiaoDong Huang #define PVTPLL_NPU_BASE		0x27270000
72*036935a8SXiaoDong Huang #define PVTPLL_CRU_BASE		0x27278000
73*036935a8SXiaoDong Huang #define I2C0_BASE		0x27300000
74*036935a8SXiaoDong Huang #define UART1_BASE		0x27310000
75*036935a8SXiaoDong Huang #define GPIO0_BASE		0x27320000
76*036935a8SXiaoDong Huang #define PWM0_BASE		0x27330000
77*036935a8SXiaoDong Huang #define WDT_PMU_BASE		0x27340000
78*036935a8SXiaoDong Huang #define TIMER_PMU_BASE		0x27350000
79*036935a8SXiaoDong Huang #define PMU_BASE		0x27360000
80*036935a8SXiaoDong Huang #define PMU0_BASE		0x27360000
81*036935a8SXiaoDong Huang #define PMU1_BASE		0x27370000
82*036935a8SXiaoDong Huang #define PMU2_BASE		0x27380000
83*036935a8SXiaoDong Huang #define PVTM_PMU_BASE		0x273f0000
84*036935a8SXiaoDong Huang #define HPTIMER_BASE		0x27400000
85*036935a8SXiaoDong Huang #define CCI_BASE		0x27500000
86*036935a8SXiaoDong Huang #define VOP_BASE		0x27d00000
87*036935a8SXiaoDong Huang #define INTERCONNECT_BASE	0x27f00000
88*036935a8SXiaoDong Huang #define FW_CCI2DDR_BASE		0x27f80000
89*036935a8SXiaoDong Huang #define FW_CENTER2DDR_BASE	0x27f90000
90*036935a8SXiaoDong Huang #define FW_SYSMEM_BASE		0x27fa0000
91*036935a8SXiaoDong Huang #define FW_VOP2DDR_BASE		0x27fb0000
92*036935a8SXiaoDong Huang #define FW_CBUF_BASE		0x27fc0000
93*036935a8SXiaoDong Huang #define FIREWALL_DDR_BASE	0x27f80000
94*036935a8SXiaoDong Huang #define DDRCTL0_BASE		0x28000000
95*036935a8SXiaoDong Huang #define DDRCTL1_BASE		0x29000000
96*036935a8SXiaoDong Huang #define DDR_MONITOR0_BASE	0x2a000000
97*036935a8SXiaoDong Huang #define DDR_MONITOR1_BASE	0x2a010000
98*036935a8SXiaoDong Huang #define DDRPHY0_BASE		0x2a020000
99*036935a8SXiaoDong Huang #define DDRPHY1_BASE		0x2a030000
100*036935a8SXiaoDong Huang #define HWLP0_BASE		0x2a060000
101*036935a8SXiaoDong Huang #define HWLP1_BASE		0x2a070000
102*036935a8SXiaoDong Huang #define KEYLADDER_BASE		0x2a420000
103*036935a8SXiaoDong Huang #define CRYPTO_S_BASE		0x2a430000
104*036935a8SXiaoDong Huang #define OTP_S_BASE		0x2a480000
105*036935a8SXiaoDong Huang #define DCF_BASE		0x2a490000
106*036935a8SXiaoDong Huang #define STIMER0_BASE		0x2a4a0000
107*036935a8SXiaoDong Huang #define STIMER1_BASE		0x2a4b0000
108*036935a8SXiaoDong Huang #define WDT_S_BASE		0x2a4c0000
109*036935a8SXiaoDong Huang #define OTP_MASK_BASE		0x2a4d0000
110*036935a8SXiaoDong Huang #define OTP_NS_BASE		0x2a580000
111*036935a8SXiaoDong Huang #define GIC400_BASE		0x2a700000
112*036935a8SXiaoDong Huang #define I2C1_BASE		0x2ac40000
113*036935a8SXiaoDong Huang #define NSTIMER0_BASE		0x2acc0000
114*036935a8SXiaoDong Huang #define NSTIMER1_BASE		0x2acd0000
115*036935a8SXiaoDong Huang #define WDT_NS_BASE		0x2ace0000
116*036935a8SXiaoDong Huang #define UART0_BASE		0x2ad40000
117*036935a8SXiaoDong Huang #define UART2_BASE		0x2ad50000
118*036935a8SXiaoDong Huang #define UART3_BASE		0x2ad60000
119*036935a8SXiaoDong Huang #define UART4_BASE		0x2ad70000
120*036935a8SXiaoDong Huang #define UART5_BASE		0x2ad80000
121*036935a8SXiaoDong Huang #define UART6_BASE		0x2ad90000
122*036935a8SXiaoDong Huang #define UART7_BASE		0x2ada0000
123*036935a8SXiaoDong Huang #define UART8_BASE		0x2adb0000
124*036935a8SXiaoDong Huang #define UART9_BASE		0x2adc0000
125*036935a8SXiaoDong Huang #define PWM1_BASE		0x2add0000
126*036935a8SXiaoDong Huang #define PWM2_BASE		0x2ade0000
127*036935a8SXiaoDong Huang #define PWM3_BASE		0x2adf0000
128*036935a8SXiaoDong Huang #define GPIO1_BASE		0x2ae10000
129*036935a8SXiaoDong Huang #define GPIO2_BASE		0x2ae20000
130*036935a8SXiaoDong Huang #define GPIO3_BASE		0x2ae30000
131*036935a8SXiaoDong Huang #define GPIO4_BASE		0x2ae40000
132*036935a8SXiaoDong Huang #define TSADC_BASE		0x2ae70000
133*036935a8SXiaoDong Huang 
134*036935a8SXiaoDong Huang #define PMUSRAM_BASE		0x3fe70000
135*036935a8SXiaoDong Huang #define PMUSRAM_RSIZE		SIZE_K(32)
136*036935a8SXiaoDong Huang 
137*036935a8SXiaoDong Huang #define CBUF_BASE		0x3fe80000
138*036935a8SXiaoDong Huang #define SRAM_BASE		0x3ff80000
139*036935a8SXiaoDong Huang 
140*036935a8SXiaoDong Huang #define STIMER0_CHN_BASE(i)	(STIMER0_BASE + 0x1000 * (i))
141*036935a8SXiaoDong Huang #define STIMER1_CHN_BASE(i)	(STIMER1_BASE + 0x1000 * (i))
142*036935a8SXiaoDong Huang 
143*036935a8SXiaoDong Huang #define NSTIMER0_CHN_BASE(i)	(NSTIMER0_BASE + 0x1000 * (i))
144*036935a8SXiaoDong Huang #define NSTIMER1_CHN_BASE(i)	(NSTIMER1_BASE + 0x1000 * (i))
145*036935a8SXiaoDong Huang 
146*036935a8SXiaoDong Huang #define DDRPHY_BASE_CH(n)	(DDRPHY0_BASE + ((n) * 0x10000))
147*036935a8SXiaoDong Huang #define DDRPHY_CRU_BASE_CH(n)	(DDRPHY0_CRU_BASE + ((n) * 0x8000))
148*036935a8SXiaoDong Huang #define UMCTL_BASE_CH(n)	(DDRCTL0_BASE + ((n) * 0x1000000))
149*036935a8SXiaoDong Huang #define HWLP_BASE_CH(n)		(HWLP0_BASE + ((n) * 0x10000))
150*036935a8SXiaoDong Huang #define MAILBOX1_BASE		(0x2ae50000 + 0xb000)
151*036935a8SXiaoDong Huang 
152*036935a8SXiaoDong Huang #define CRYPTO_S_BY_KEYLAD_BASE	CRYPTO_S_BASE
153*036935a8SXiaoDong Huang 
154*036935a8SXiaoDong Huang #define DDR_SHARE_MEM		(RK_DRAM_BASE + SIZE_K(1024))
155*036935a8SXiaoDong Huang #define DDR_SHARE_SIZE		SIZE_K(64)
156*036935a8SXiaoDong Huang 
157*036935a8SXiaoDong Huang #define SHARE_MEM_BASE		DDR_SHARE_MEM
158*036935a8SXiaoDong Huang #define SHARE_MEM_PAGE_NUM	15
159*036935a8SXiaoDong Huang #define SHARE_MEM_SIZE		SIZE_K(SHARE_MEM_PAGE_NUM * 4)
160*036935a8SXiaoDong Huang 
161*036935a8SXiaoDong Huang #define	SCMI_SHARE_MEM_BASE	(SHARE_MEM_BASE + SHARE_MEM_SIZE)
162*036935a8SXiaoDong Huang #define	SCMI_SHARE_MEM_SIZE	SIZE_K(4)
163*036935a8SXiaoDong Huang 
164*036935a8SXiaoDong Huang #define SMT_BUFFER_BASE		SCMI_SHARE_MEM_BASE
165*036935a8SXiaoDong Huang #define SMT_BUFFER0_BASE	SMT_BUFFER_BASE
166*036935a8SXiaoDong Huang 
167*036935a8SXiaoDong Huang #define ROCKCHIP_PM_REG_REGION_MEM_SIZE		SIZE_K(8)
168*036935a8SXiaoDong Huang 
169*036935a8SXiaoDong Huang /******************************************************************************
170*036935a8SXiaoDong Huang  * sgi, ppi
171*036935a8SXiaoDong Huang  ******************************************************************************/
172*036935a8SXiaoDong Huang #define RK_IRQ_SEC_PHY_TIMER	29
173*036935a8SXiaoDong Huang 
174*036935a8SXiaoDong Huang #define RK_IRQ_SEC_SGI_0	8
175*036935a8SXiaoDong Huang #define RK_IRQ_SEC_SGI_1	9
176*036935a8SXiaoDong Huang #define RK_IRQ_SEC_SGI_2	10
177*036935a8SXiaoDong Huang #define RK_IRQ_SEC_SGI_3	11
178*036935a8SXiaoDong Huang #define RK_IRQ_SEC_SGI_4	12
179*036935a8SXiaoDong Huang #define RK_IRQ_SEC_SGI_5	13
180*036935a8SXiaoDong Huang #define RK_IRQ_SEC_SGI_6	14
181*036935a8SXiaoDong Huang #define RK_IRQ_SEC_SGI_7	15
182*036935a8SXiaoDong Huang 
183*036935a8SXiaoDong Huang /*
184*036935a8SXiaoDong Huang  * Define a list of Group 0 interrupts.
185*036935a8SXiaoDong Huang  */
186*036935a8SXiaoDong Huang #define PLAT_RK_GICV2_G0_IRQS						\
187*036935a8SXiaoDong Huang 	INTR_PROP_DESC(RK_IRQ_SEC_PHY_TIMER, GIC_HIGHEST_SEC_PRIORITY,	\
188*036935a8SXiaoDong Huang 		       GICV2_INTR_GROUP0, GIC_INTR_CFG_LEVEL),		\
189*036935a8SXiaoDong Huang 	INTR_PROP_DESC(RK_IRQ_SEC_SGI_6, GIC_HIGHEST_SEC_PRIORITY,	\
190*036935a8SXiaoDong Huang 		       GICV2_INTR_GROUP0, GIC_INTR_CFG_LEVEL)
191*036935a8SXiaoDong Huang 
192*036935a8SXiaoDong Huang /* UART related constants */
193*036935a8SXiaoDong Huang #define RK_DBG_UART_BASE	UART0_BASE
194*036935a8SXiaoDong Huang #define RK_DBG_UART_BAUDRATE	1500000
195*036935a8SXiaoDong Huang #define RK_DBG_UART_CLOCK	24000000
196*036935a8SXiaoDong Huang 
197*036935a8SXiaoDong Huang /* Base rk_platform compatible GIC memory map */
198*036935a8SXiaoDong Huang #define PLAT_GICD_BASE		(GIC400_BASE + 0x1000)
199*036935a8SXiaoDong Huang #define PLAT_GICC_BASE		(GIC400_BASE + 0x2000)
200*036935a8SXiaoDong Huang #define PLAT_GICR_BASE		0
201*036935a8SXiaoDong Huang 
202*036935a8SXiaoDong Huang /* CCI */
203*036935a8SXiaoDong Huang #define PLAT_RK_CCI_BASE			CCI_BASE
204*036935a8SXiaoDong Huang #define PLAT_RK_CCI_CLUSTER0_SL_IFACE_IX	1
205*036935a8SXiaoDong Huang #define PLAT_RK_CCI_CLUSTER1_SL_IFACE_IX	2
206*036935a8SXiaoDong Huang 
207*036935a8SXiaoDong Huang #endif /* __PLAT_DEF_H__ */
208