xref: /rk3399_ARM-atf/plat/rockchip/rk3328/rk3328_def.h (revision b3c8ac135447ddb4eb0d4dcd224ffa961f349e33)
10d5ec955Stony.xie /*
2d31dcdc5SAntonio Nino Diaz  * Copyright (c) 2017-2019, ARM Limited and Contributors. All rights reserved.
30d5ec955Stony.xie  *
4c3e70be1Sdp-arm  * SPDX-License-Identifier: BSD-3-Clause
50d5ec955Stony.xie  */
60d5ec955Stony.xie 
7c3cf06f1SAntonio Nino Diaz #ifndef RK3328_DEF_H
8c3cf06f1SAntonio Nino Diaz #define RK3328_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 
18*0957b9b2SChristoph Müllner #define UART0_BASE		0xff110000
19*0957b9b2SChristoph Müllner #define UART0_SIZE		SIZE_K(64)
20*0957b9b2SChristoph Müllner 
21*0957b9b2SChristoph Müllner #define UART1_BASE		0xff120000
22*0957b9b2SChristoph Müllner #define UART1_SIZE		SIZE_K(64)
23*0957b9b2SChristoph Müllner 
240d5ec955Stony.xie #define UART2_BASE		0xff130000
250d5ec955Stony.xie #define UART2_SIZE		SIZE_K(64)
260d5ec955Stony.xie 
270d5ec955Stony.xie #define PMU_BASE		0xff140000
280d5ec955Stony.xie #define PMU_SIZE		SIZE_K(64)
290d5ec955Stony.xie 
300d5ec955Stony.xie #define SGRF_BASE		0xff0d0000
310d5ec955Stony.xie #define SGRF_SIZE		SIZE_K(64)
320d5ec955Stony.xie 
330d5ec955Stony.xie #define CRU_BASE		0xff440000
340d5ec955Stony.xie #define CRU_SIZE		SIZE_K(64)
350d5ec955Stony.xie 
360d5ec955Stony.xie #define GRF_BASE		0xff100000
370d5ec955Stony.xie #define GRF_SIZE		SIZE_K(64)
380d5ec955Stony.xie 
390d5ec955Stony.xie #define GPIO0_BASE		0xff210000
400d5ec955Stony.xie #define GPIO0_SIZE		SIZE_K(32)
410d5ec955Stony.xie 
420d5ec955Stony.xie #define GPIO1_BASE		0xff220000
430d5ec955Stony.xie #define GPIO1_SIZE		SIZE_K(32)
440d5ec955Stony.xie 
450d5ec955Stony.xie #define GPIO2_BASE		0xff230000
460d5ec955Stony.xie #define GPIO2_SIZE		SIZE_K(64)
470d5ec955Stony.xie 
480d5ec955Stony.xie #define GPIO3_BASE		0xff240000
490d5ec955Stony.xie #define GPIO3_SIZE		SIZE_K(64)
500d5ec955Stony.xie 
510d5ec955Stony.xie #define STIME_BASE		0xff1d0000
520d5ec955Stony.xie #define STIME_SIZE		SIZE_K(64)
530d5ec955Stony.xie 
540d5ec955Stony.xie #define INTMEM_BASE		0xff090000
550d5ec955Stony.xie #define INTMEM_SIZE		SIZE_K(32)
560d5ec955Stony.xie 
570d5ec955Stony.xie #define SRAM_LDS_BASE		(INTMEM_BASE + SIZE_K(4))
580d5ec955Stony.xie #define SRAM_LDS_SIZE		(INTMEM_SIZE - SIZE_K(4))
590d5ec955Stony.xie 
600d5ec955Stony.xie #define PMUSRAM_BASE		INTMEM_BASE
610d5ec955Stony.xie #define PMUSRAM_SIZE		SIZE_K(4)
620d5ec955Stony.xie #define PMUSRAM_RSIZE		SIZE_K(4)
630d5ec955Stony.xie 
640d5ec955Stony.xie #define VOP_BASE		0xff370000
650d5ec955Stony.xie #define VOP_SIZE		SIZE_K(16)
660d5ec955Stony.xie 
670d5ec955Stony.xie #define DDR_PHY_BASE		0xff400000
680d5ec955Stony.xie #define DDR_PHY_SIZE		SIZE_K(4)
690d5ec955Stony.xie 
700d5ec955Stony.xie #define SERVER_MSCH_BASE	0xff720000
710d5ec955Stony.xie #define SERVER_MSCH_SIZE	SIZE_K(4)
720d5ec955Stony.xie 
730d5ec955Stony.xie #define DDR_UPCTL_BASE		0xff780000
740d5ec955Stony.xie #define DDR_UPCTL_SIZE		SIZE_K(12)
750d5ec955Stony.xie 
760d5ec955Stony.xie #define DDR_MONITOR_BASE	0xff790000
770d5ec955Stony.xie #define DDR_MONITOR_SIZE	SIZE_K(4)
780d5ec955Stony.xie 
790d5ec955Stony.xie #define FIREWALL_DDR_BASE	0xff7c0000
800d5ec955Stony.xie #define FIREWALL_DDR_SIZE	SIZE_K(64)
810d5ec955Stony.xie 
820d5ec955Stony.xie #define FIREWALL_CFG_BASE	0xff7d0000
830d5ec955Stony.xie #define FIREWALL_CFG_SIZE	SIZE_K(64)
840d5ec955Stony.xie 
850d5ec955Stony.xie #define GIC400_BASE		0xff810000
860d5ec955Stony.xie #define GIC400_SIZE		SIZE_K(64)
870d5ec955Stony.xie 
880d5ec955Stony.xie #define DDR_GRF_BASE		0xff798000
890d5ec955Stony.xie #define DDR_GRF_SIZE		SIZE_K(16)
900d5ec955Stony.xie 
910d5ec955Stony.xie #define PWM_BASE		0xff1b0000
920d5ec955Stony.xie #define PWM_SIZE		SIZE_K(64)
930d5ec955Stony.xie 
940d5ec955Stony.xie #define DDR_PARAM_BASE		0x02000000
950d5ec955Stony.xie #define DDR_PARAM_SIZE		SIZE_K(4)
960d5ec955Stony.xie 
970d5ec955Stony.xie #define EFUSE8_BASE		0xff260000
980d5ec955Stony.xie #define EFUSE8_SIZE		SIZE_K(4)
990d5ec955Stony.xie 
1000d5ec955Stony.xie #define EFUSE32_BASE		0xff0b0000
1010d5ec955Stony.xie #define EFUSE32_SIZE		SIZE_K(4)
1020d5ec955Stony.xie 
1030d5ec955Stony.xie /**************************************************************************
1040d5ec955Stony.xie  * UART related constants
1050d5ec955Stony.xie  **************************************************************************/
1060d5ec955Stony.xie #define RK3328_BAUDRATE	1500000
1070d5ec955Stony.xie #define RK3328_UART_CLOCK	24000000
1080d5ec955Stony.xie 
1090d5ec955Stony.xie /******************************************************************************
1100d5ec955Stony.xie  * System counter frequency related constants
1110d5ec955Stony.xie  ******************************************************************************/
1120d5ec955Stony.xie #define SYS_COUNTER_FREQ_IN_TICKS	24000000U
1130d5ec955Stony.xie #define SYS_COUNTER_FREQ_IN_MHZ		24
1140d5ec955Stony.xie 
1150d5ec955Stony.xie /******************************************************************************
1160d5ec955Stony.xie  * GIC-400 & interrupt handling related constants
1170d5ec955Stony.xie  ******************************************************************************/
1180d5ec955Stony.xie 
1190d5ec955Stony.xie /* Base rk_platform compatible GIC memory map */
1200d5ec955Stony.xie #define RK3328_GICD_BASE		(GIC400_BASE + 0x1000)
1210d5ec955Stony.xie #define RK3328_GICC_BASE		(GIC400_BASE + 0x2000)
1220d5ec955Stony.xie #define RK3328_GICR_BASE		0	/* no GICR in GIC-400 */
1230d5ec955Stony.xie 
1240d5ec955Stony.xie /******************************************************************************
1250d5ec955Stony.xie  * sgi, ppi
1260d5ec955Stony.xie  ******************************************************************************/
1270d5ec955Stony.xie #define RK_IRQ_SEC_PHY_TIMER	29
1280d5ec955Stony.xie 
1290d5ec955Stony.xie #define RK_IRQ_SEC_SGI_0	8
1300d5ec955Stony.xie #define RK_IRQ_SEC_SGI_1	9
1310d5ec955Stony.xie #define RK_IRQ_SEC_SGI_2	10
1320d5ec955Stony.xie #define RK_IRQ_SEC_SGI_3	11
1330d5ec955Stony.xie #define RK_IRQ_SEC_SGI_4	12
1340d5ec955Stony.xie #define RK_IRQ_SEC_SGI_5	13
1350d5ec955Stony.xie #define RK_IRQ_SEC_SGI_6	14
1360d5ec955Stony.xie #define RK_IRQ_SEC_SGI_7	15
1370d5ec955Stony.xie 
1380d5ec955Stony.xie /*
139d31dcdc5SAntonio Nino Diaz  * Define a list of Group 0 interrupts.
1400d5ec955Stony.xie  */
141d31dcdc5SAntonio Nino Diaz #define PLAT_RK_GICV2_G0_IRQS						\
1422d6f1f01SAntonio Nino Diaz 	INTR_PROP_DESC(RK_IRQ_SEC_PHY_TIMER, GIC_HIGHEST_SEC_PRIORITY,	\
143d31dcdc5SAntonio Nino Diaz 		       GICV2_INTR_GROUP0, GIC_INTR_CFG_LEVEL),		\
1442d6f1f01SAntonio Nino Diaz 	INTR_PROP_DESC(RK_IRQ_SEC_SGI_6, GIC_HIGHEST_SEC_PRIORITY,	\
145d31dcdc5SAntonio Nino Diaz 		       GICV2_INTR_GROUP0, GIC_INTR_CFG_LEVEL)
1460d5ec955Stony.xie 
1470d5ec955Stony.xie #define SHARE_MEM_BASE          0x100000/* [1MB, 1MB+60K]*/
1480d5ec955Stony.xie #define SHARE_MEM_PAGE_NUM      15
1490d5ec955Stony.xie #define SHARE_MEM_SIZE          SIZE_K(SHARE_MEM_PAGE_NUM * 4)
1500d5ec955Stony.xie 
151c3cf06f1SAntonio Nino Diaz #endif /* RK3328_DEF_H */
152