• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2017, ARM Limited and Contributors. All rights reserved.
3  *
4  * SPDX-License-Identifier: BSD-3-Clause
5  */
6 
7 #ifndef __PLAT_DEF_H__
8 #define __PLAT_DEF_H__
9 
10 #define MAJOR_VERSION		(1)
11 #define MINOR_VERSION		(2)
12 
13 #define SIZE_K(n)		((n) * 1024)
14 
15 /* Special value used to verify platform parameters from BL2 to BL3-1 */
16 #define RK_BL31_PLAT_PARAM_VAL	0x0f1e2d3c4b5a6978ULL
17 
18 #define UART2_BASE		0xff130000
19 #define UART2_SIZE		SIZE_K(64)
20 
21 #define PMU_BASE		0xff140000
22 #define PMU_SIZE		SIZE_K(64)
23 
24 #define SGRF_BASE		0xff0d0000
25 #define SGRF_SIZE		SIZE_K(64)
26 
27 #define CRU_BASE		0xff440000
28 #define CRU_SIZE		SIZE_K(64)
29 
30 #define GRF_BASE		0xff100000
31 #define GRF_SIZE		SIZE_K(64)
32 
33 #define GPIO0_BASE		0xff210000
34 #define GPIO0_SIZE		SIZE_K(32)
35 
36 #define GPIO1_BASE		0xff220000
37 #define GPIO1_SIZE		SIZE_K(32)
38 
39 #define GPIO2_BASE		0xff230000
40 #define GPIO2_SIZE		SIZE_K(64)
41 
42 #define GPIO3_BASE		0xff240000
43 #define GPIO3_SIZE		SIZE_K(64)
44 
45 #define STIME_BASE		0xff1d0000
46 #define STIME_SIZE		SIZE_K(64)
47 
48 #define INTMEM_BASE		0xff090000
49 #define INTMEM_SIZE		SIZE_K(32)
50 
51 #define SRAM_LDS_BASE		(INTMEM_BASE + SIZE_K(4))
52 #define SRAM_LDS_SIZE		(INTMEM_SIZE - SIZE_K(4))
53 
54 #define PMUSRAM_BASE		INTMEM_BASE
55 #define PMUSRAM_SIZE		SIZE_K(4)
56 #define PMUSRAM_RSIZE		SIZE_K(4)
57 
58 #define VOP_BASE		0xff370000
59 #define VOP_SIZE		SIZE_K(16)
60 
61 #define DDR_PHY_BASE		0xff400000
62 #define DDR_PHY_SIZE		SIZE_K(4)
63 
64 #define SERVER_MSCH_BASE	0xff720000
65 #define SERVER_MSCH_SIZE	SIZE_K(4)
66 
67 #define DDR_UPCTL_BASE		0xff780000
68 #define DDR_UPCTL_SIZE		SIZE_K(12)
69 
70 #define DDR_MONITOR_BASE	0xff790000
71 #define DDR_MONITOR_SIZE	SIZE_K(4)
72 
73 #define FIREWALL_DDR_BASE	0xff7c0000
74 #define FIREWALL_DDR_SIZE	SIZE_K(64)
75 
76 #define FIREWALL_CFG_BASE	0xff7d0000
77 #define FIREWALL_CFG_SIZE	SIZE_K(64)
78 
79 #define GIC400_BASE		0xff810000
80 #define GIC400_SIZE		SIZE_K(64)
81 
82 #define DDR_GRF_BASE		0xff798000
83 #define DDR_GRF_SIZE		SIZE_K(16)
84 
85 #define PWM_BASE		0xff1b0000
86 #define PWM_SIZE		SIZE_K(64)
87 
88 #define DDR_PARAM_BASE		0x02000000
89 #define DDR_PARAM_SIZE		SIZE_K(4)
90 
91 #define EFUSE8_BASE		0xff260000
92 #define EFUSE8_SIZE		SIZE_K(4)
93 
94 #define EFUSE32_BASE		0xff0b0000
95 #define EFUSE32_SIZE		SIZE_K(4)
96 
97 /**************************************************************************
98  * UART related constants
99  **************************************************************************/
100 #define RK3328_UART2_BASE	UART2_BASE
101 #define RK3328_BAUDRATE	1500000
102 #define RK3328_UART_CLOCK	24000000
103 
104 /******************************************************************************
105  * System counter frequency related constants
106  ******************************************************************************/
107 #define SYS_COUNTER_FREQ_IN_TICKS	24000000U
108 #define SYS_COUNTER_FREQ_IN_MHZ		24
109 
110 /******************************************************************************
111  * GIC-400 & interrupt handling related constants
112  ******************************************************************************/
113 
114 /* Base rk_platform compatible GIC memory map */
115 #define RK3328_GICD_BASE		(GIC400_BASE + 0x1000)
116 #define RK3328_GICC_BASE		(GIC400_BASE + 0x2000)
117 #define RK3328_GICR_BASE		0	/* no GICR in GIC-400 */
118 
119 /******************************************************************************
120  * sgi, ppi
121  ******************************************************************************/
122 #define RK_IRQ_SEC_PHY_TIMER	29
123 
124 #define RK_IRQ_SEC_SGI_0	8
125 #define RK_IRQ_SEC_SGI_1	9
126 #define RK_IRQ_SEC_SGI_2	10
127 #define RK_IRQ_SEC_SGI_3	11
128 #define RK_IRQ_SEC_SGI_4	12
129 #define RK_IRQ_SEC_SGI_5	13
130 #define RK_IRQ_SEC_SGI_6	14
131 #define RK_IRQ_SEC_SGI_7	15
132 
133 /*
134  * Define a list of Group 1 Secure and Group 0 interrupts as per GICv3
135  * terminology. On a GICv2 system or mode, the lists will be merged and treated
136  * as Group 0 interrupts.
137  */
138 #define RK_G1S_IRQS		RK_IRQ_SEC_PHY_TIMER, RK_IRQ_SEC_SGI_6
139 
140 #define SHARE_MEM_BASE          0x100000/* [1MB, 1MB+60K]*/
141 #define SHARE_MEM_PAGE_NUM      15
142 #define SHARE_MEM_SIZE          SIZE_K(SHARE_MEM_PAGE_NUM * 4)
143 
144 #endif /* __PLAT_DEF_H__ */
145