blob: 60055e8468ccbacc6b0c50d954d80da5f0a63d6b [file] [log] [blame]
tony.xie54973e72017-04-24 16:18:10 +08001/*
Antonio Nino Diaz884de1f2019-01-28 14:35:40 +00002 * Copyright (c) 2017-2019, ARM Limited and Contributors. All rights reserved.
tony.xie54973e72017-04-24 16:18:10 +08003 *
dp-armd91aaae2017-05-10 15:16:15 +01004 * SPDX-License-Identifier: BSD-3-Clause
tony.xie54973e72017-04-24 16:18:10 +08005 */
6
Antonio Nino Diaz5eb88372018-11-08 10:20:19 +00007#ifndef RK3328_DEF_H
8#define RK3328_DEF_H
tony.xie54973e72017-04-24 16:18:10 +08009
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
Christoph Müllner9fecc192019-05-01 01:37:58 +020018#define UART0_BASE 0xff110000
19#define UART0_SIZE SIZE_K(64)
20
21#define UART1_BASE 0xff120000
22#define UART1_SIZE SIZE_K(64)
23
tony.xie54973e72017-04-24 16:18:10 +080024#define UART2_BASE 0xff130000
25#define UART2_SIZE SIZE_K(64)
26
27#define PMU_BASE 0xff140000
28#define PMU_SIZE SIZE_K(64)
29
30#define SGRF_BASE 0xff0d0000
31#define SGRF_SIZE SIZE_K(64)
32
33#define CRU_BASE 0xff440000
34#define CRU_SIZE SIZE_K(64)
35
36#define GRF_BASE 0xff100000
37#define GRF_SIZE SIZE_K(64)
38
39#define GPIO0_BASE 0xff210000
40#define GPIO0_SIZE SIZE_K(32)
41
42#define GPIO1_BASE 0xff220000
43#define GPIO1_SIZE SIZE_K(32)
44
45#define GPIO2_BASE 0xff230000
46#define GPIO2_SIZE SIZE_K(64)
47
48#define GPIO3_BASE 0xff240000
49#define GPIO3_SIZE SIZE_K(64)
50
51#define STIME_BASE 0xff1d0000
52#define STIME_SIZE SIZE_K(64)
53
54#define INTMEM_BASE 0xff090000
55#define INTMEM_SIZE SIZE_K(32)
56
57#define SRAM_LDS_BASE (INTMEM_BASE + SIZE_K(4))
58#define SRAM_LDS_SIZE (INTMEM_SIZE - SIZE_K(4))
59
60#define PMUSRAM_BASE INTMEM_BASE
61#define PMUSRAM_SIZE SIZE_K(4)
62#define PMUSRAM_RSIZE SIZE_K(4)
63
64#define VOP_BASE 0xff370000
65#define VOP_SIZE SIZE_K(16)
66
67#define DDR_PHY_BASE 0xff400000
68#define DDR_PHY_SIZE SIZE_K(4)
69
70#define SERVER_MSCH_BASE 0xff720000
71#define SERVER_MSCH_SIZE SIZE_K(4)
72
73#define DDR_UPCTL_BASE 0xff780000
74#define DDR_UPCTL_SIZE SIZE_K(12)
75
76#define DDR_MONITOR_BASE 0xff790000
77#define DDR_MONITOR_SIZE SIZE_K(4)
78
79#define FIREWALL_DDR_BASE 0xff7c0000
80#define FIREWALL_DDR_SIZE SIZE_K(64)
81
82#define FIREWALL_CFG_BASE 0xff7d0000
83#define FIREWALL_CFG_SIZE SIZE_K(64)
84
85#define GIC400_BASE 0xff810000
86#define GIC400_SIZE SIZE_K(64)
87
88#define DDR_GRF_BASE 0xff798000
89#define DDR_GRF_SIZE SIZE_K(16)
90
91#define PWM_BASE 0xff1b0000
92#define PWM_SIZE SIZE_K(64)
93
94#define DDR_PARAM_BASE 0x02000000
95#define DDR_PARAM_SIZE SIZE_K(4)
96
97#define EFUSE8_BASE 0xff260000
98#define EFUSE8_SIZE SIZE_K(4)
99
100#define EFUSE32_BASE 0xff0b0000
101#define EFUSE32_SIZE SIZE_K(4)
102
103/**************************************************************************
104 * UART related constants
105 **************************************************************************/
tony.xie54973e72017-04-24 16:18:10 +0800106#define RK3328_BAUDRATE 1500000
107#define RK3328_UART_CLOCK 24000000
108
109/******************************************************************************
110 * System counter frequency related constants
111 ******************************************************************************/
112#define SYS_COUNTER_FREQ_IN_TICKS 24000000U
113#define SYS_COUNTER_FREQ_IN_MHZ 24
114
115/******************************************************************************
116 * GIC-400 & interrupt handling related constants
117 ******************************************************************************/
118
119/* Base rk_platform compatible GIC memory map */
120#define RK3328_GICD_BASE (GIC400_BASE + 0x1000)
121#define RK3328_GICC_BASE (GIC400_BASE + 0x2000)
122#define RK3328_GICR_BASE 0 /* no GICR in GIC-400 */
123
124/******************************************************************************
125 * sgi, ppi
126 ******************************************************************************/
127#define RK_IRQ_SEC_PHY_TIMER 29
128
129#define RK_IRQ_SEC_SGI_0 8
130#define RK_IRQ_SEC_SGI_1 9
131#define RK_IRQ_SEC_SGI_2 10
132#define RK_IRQ_SEC_SGI_3 11
133#define RK_IRQ_SEC_SGI_4 12
134#define RK_IRQ_SEC_SGI_5 13
135#define RK_IRQ_SEC_SGI_6 14
136#define RK_IRQ_SEC_SGI_7 15
137
138/*
Antonio Nino Diaz884de1f2019-01-28 14:35:40 +0000139 * Define a list of Group 0 interrupts.
tony.xie54973e72017-04-24 16:18:10 +0800140 */
Antonio Nino Diaz884de1f2019-01-28 14:35:40 +0000141#define PLAT_RK_GICV2_G0_IRQS \
Antonio Nino Diaz58230902018-09-24 17:16:20 +0100142 INTR_PROP_DESC(RK_IRQ_SEC_PHY_TIMER, GIC_HIGHEST_SEC_PRIORITY, \
Antonio Nino Diaz884de1f2019-01-28 14:35:40 +0000143 GICV2_INTR_GROUP0, GIC_INTR_CFG_LEVEL), \
Antonio Nino Diaz58230902018-09-24 17:16:20 +0100144 INTR_PROP_DESC(RK_IRQ_SEC_SGI_6, GIC_HIGHEST_SEC_PRIORITY, \
Antonio Nino Diaz884de1f2019-01-28 14:35:40 +0000145 GICV2_INTR_GROUP0, GIC_INTR_CFG_LEVEL)
tony.xie54973e72017-04-24 16:18:10 +0800146
147#define SHARE_MEM_BASE 0x100000/* [1MB, 1MB+60K]*/
148#define SHARE_MEM_PAGE_NUM 15
149#define SHARE_MEM_SIZE SIZE_K(SHARE_MEM_PAGE_NUM * 4)
150
Antonio Nino Diaz5eb88372018-11-08 10:20:19 +0000151#endif /* RK3328_DEF_H */