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