xref: /rk3399_ARM-atf/plat/rockchip/rk3328/rk3328_def.h (revision c3e70be1c1ad2a9d1d3aee187231f5088a880ae1)
10d5ec955Stony.xie /*
20d5ec955Stony.xie  * Copyright (c) 2017, ARM Limited and Contributors. All rights reserved.
30d5ec955Stony.xie  *
4*c3e70be1Sdp-arm  * SPDX-License-Identifier: BSD-3-Clause
50d5ec955Stony.xie  */
60d5ec955Stony.xie 
70d5ec955Stony.xie #ifndef __PLAT_DEF_H__
80d5ec955Stony.xie #define __PLAT_DEF_H__
90d5ec955Stony.xie 
100d5ec955Stony.xie #define MAJOR_VERSION		(1)
110d5ec955Stony.xie #define MINOR_VERSION		(2)
120d5ec955Stony.xie 
130d5ec955Stony.xie #define SIZE_K(n)		((n) * 1024)
140d5ec955Stony.xie 
150d5ec955Stony.xie /* Special value used to verify platform parameters from BL2 to BL3-1 */
160d5ec955Stony.xie #define RK_BL31_PLAT_PARAM_VAL	0x0f1e2d3c4b5a6978ULL
170d5ec955Stony.xie 
180d5ec955Stony.xie #define UART2_BASE		0xff130000
190d5ec955Stony.xie #define UART2_SIZE		SIZE_K(64)
200d5ec955Stony.xie 
210d5ec955Stony.xie #define PMU_BASE		0xff140000
220d5ec955Stony.xie #define PMU_SIZE		SIZE_K(64)
230d5ec955Stony.xie 
240d5ec955Stony.xie #define SGRF_BASE		0xff0d0000
250d5ec955Stony.xie #define SGRF_SIZE		SIZE_K(64)
260d5ec955Stony.xie 
270d5ec955Stony.xie #define CRU_BASE		0xff440000
280d5ec955Stony.xie #define CRU_SIZE		SIZE_K(64)
290d5ec955Stony.xie 
300d5ec955Stony.xie #define GRF_BASE		0xff100000
310d5ec955Stony.xie #define GRF_SIZE		SIZE_K(64)
320d5ec955Stony.xie 
330d5ec955Stony.xie #define GPIO0_BASE		0xff210000
340d5ec955Stony.xie #define GPIO0_SIZE		SIZE_K(32)
350d5ec955Stony.xie 
360d5ec955Stony.xie #define GPIO1_BASE		0xff220000
370d5ec955Stony.xie #define GPIO1_SIZE		SIZE_K(32)
380d5ec955Stony.xie 
390d5ec955Stony.xie #define GPIO2_BASE		0xff230000
400d5ec955Stony.xie #define GPIO2_SIZE		SIZE_K(64)
410d5ec955Stony.xie 
420d5ec955Stony.xie #define GPIO3_BASE		0xff240000
430d5ec955Stony.xie #define GPIO3_SIZE		SIZE_K(64)
440d5ec955Stony.xie 
450d5ec955Stony.xie #define STIME_BASE		0xff1d0000
460d5ec955Stony.xie #define STIME_SIZE		SIZE_K(64)
470d5ec955Stony.xie 
480d5ec955Stony.xie #define INTMEM_BASE		0xff090000
490d5ec955Stony.xie #define INTMEM_SIZE		SIZE_K(32)
500d5ec955Stony.xie 
510d5ec955Stony.xie #define SRAM_LDS_BASE		(INTMEM_BASE + SIZE_K(4))
520d5ec955Stony.xie #define SRAM_LDS_SIZE		(INTMEM_SIZE - SIZE_K(4))
530d5ec955Stony.xie 
540d5ec955Stony.xie #define PMUSRAM_BASE		INTMEM_BASE
550d5ec955Stony.xie #define PMUSRAM_SIZE		SIZE_K(4)
560d5ec955Stony.xie #define PMUSRAM_RSIZE		SIZE_K(4)
570d5ec955Stony.xie 
580d5ec955Stony.xie #define VOP_BASE		0xff370000
590d5ec955Stony.xie #define VOP_SIZE		SIZE_K(16)
600d5ec955Stony.xie 
610d5ec955Stony.xie #define DDR_PHY_BASE		0xff400000
620d5ec955Stony.xie #define DDR_PHY_SIZE		SIZE_K(4)
630d5ec955Stony.xie 
640d5ec955Stony.xie #define SERVER_MSCH_BASE	0xff720000
650d5ec955Stony.xie #define SERVER_MSCH_SIZE	SIZE_K(4)
660d5ec955Stony.xie 
670d5ec955Stony.xie #define DDR_UPCTL_BASE		0xff780000
680d5ec955Stony.xie #define DDR_UPCTL_SIZE		SIZE_K(12)
690d5ec955Stony.xie 
700d5ec955Stony.xie #define DDR_MONITOR_BASE	0xff790000
710d5ec955Stony.xie #define DDR_MONITOR_SIZE	SIZE_K(4)
720d5ec955Stony.xie 
730d5ec955Stony.xie #define FIREWALL_DDR_BASE	0xff7c0000
740d5ec955Stony.xie #define FIREWALL_DDR_SIZE	SIZE_K(64)
750d5ec955Stony.xie 
760d5ec955Stony.xie #define FIREWALL_CFG_BASE	0xff7d0000
770d5ec955Stony.xie #define FIREWALL_CFG_SIZE	SIZE_K(64)
780d5ec955Stony.xie 
790d5ec955Stony.xie #define GIC400_BASE		0xff810000
800d5ec955Stony.xie #define GIC400_SIZE		SIZE_K(64)
810d5ec955Stony.xie 
820d5ec955Stony.xie #define DDR_GRF_BASE		0xff798000
830d5ec955Stony.xie #define DDR_GRF_SIZE		SIZE_K(16)
840d5ec955Stony.xie 
850d5ec955Stony.xie #define PWM_BASE		0xff1b0000
860d5ec955Stony.xie #define PWM_SIZE		SIZE_K(64)
870d5ec955Stony.xie 
880d5ec955Stony.xie #define DDR_PARAM_BASE		0x02000000
890d5ec955Stony.xie #define DDR_PARAM_SIZE		SIZE_K(4)
900d5ec955Stony.xie 
910d5ec955Stony.xie #define EFUSE8_BASE		0xff260000
920d5ec955Stony.xie #define EFUSE8_SIZE		SIZE_K(4)
930d5ec955Stony.xie 
940d5ec955Stony.xie #define EFUSE32_BASE		0xff0b0000
950d5ec955Stony.xie #define EFUSE32_SIZE		SIZE_K(4)
960d5ec955Stony.xie 
970d5ec955Stony.xie /**************************************************************************
980d5ec955Stony.xie  * UART related constants
990d5ec955Stony.xie  **************************************************************************/
1000d5ec955Stony.xie #define RK3328_UART2_BASE	UART2_BASE
1010d5ec955Stony.xie #define RK3328_BAUDRATE	1500000
1020d5ec955Stony.xie #define RK3328_UART_CLOCK	24000000
1030d5ec955Stony.xie 
1040d5ec955Stony.xie /******************************************************************************
1050d5ec955Stony.xie  * System counter frequency related constants
1060d5ec955Stony.xie  ******************************************************************************/
1070d5ec955Stony.xie #define SYS_COUNTER_FREQ_IN_TICKS	24000000U
1080d5ec955Stony.xie #define SYS_COUNTER_FREQ_IN_MHZ		24
1090d5ec955Stony.xie 
1100d5ec955Stony.xie /******************************************************************************
1110d5ec955Stony.xie  * GIC-400 & interrupt handling related constants
1120d5ec955Stony.xie  ******************************************************************************/
1130d5ec955Stony.xie 
1140d5ec955Stony.xie /* Base rk_platform compatible GIC memory map */
1150d5ec955Stony.xie #define RK3328_GICD_BASE		(GIC400_BASE + 0x1000)
1160d5ec955Stony.xie #define RK3328_GICC_BASE		(GIC400_BASE + 0x2000)
1170d5ec955Stony.xie #define RK3328_GICR_BASE		0	/* no GICR in GIC-400 */
1180d5ec955Stony.xie 
1190d5ec955Stony.xie /******************************************************************************
1200d5ec955Stony.xie  * sgi, ppi
1210d5ec955Stony.xie  ******************************************************************************/
1220d5ec955Stony.xie #define RK_IRQ_SEC_PHY_TIMER	29
1230d5ec955Stony.xie 
1240d5ec955Stony.xie #define RK_IRQ_SEC_SGI_0	8
1250d5ec955Stony.xie #define RK_IRQ_SEC_SGI_1	9
1260d5ec955Stony.xie #define RK_IRQ_SEC_SGI_2	10
1270d5ec955Stony.xie #define RK_IRQ_SEC_SGI_3	11
1280d5ec955Stony.xie #define RK_IRQ_SEC_SGI_4	12
1290d5ec955Stony.xie #define RK_IRQ_SEC_SGI_5	13
1300d5ec955Stony.xie #define RK_IRQ_SEC_SGI_6	14
1310d5ec955Stony.xie #define RK_IRQ_SEC_SGI_7	15
1320d5ec955Stony.xie 
1330d5ec955Stony.xie /*
1340d5ec955Stony.xie  * Define a list of Group 1 Secure and Group 0 interrupts as per GICv3
1350d5ec955Stony.xie  * terminology. On a GICv2 system or mode, the lists will be merged and treated
1360d5ec955Stony.xie  * as Group 0 interrupts.
1370d5ec955Stony.xie  */
1380d5ec955Stony.xie #define RK_G1S_IRQS		RK_IRQ_SEC_PHY_TIMER, RK_IRQ_SEC_SGI_6
1390d5ec955Stony.xie 
1400d5ec955Stony.xie #define SHARE_MEM_BASE          0x100000/* [1MB, 1MB+60K]*/
1410d5ec955Stony.xie #define SHARE_MEM_PAGE_NUM      15
1420d5ec955Stony.xie #define SHARE_MEM_SIZE          SIZE_K(SHARE_MEM_PAGE_NUM * 4)
1430d5ec955Stony.xie 
1440d5ec955Stony.xie #endif /* __PLAT_DEF_H__ */
145