1*0d5ec955Stony.xie /* 2*0d5ec955Stony.xie * Copyright (c) 2017, ARM Limited and Contributors. All rights reserved. 3*0d5ec955Stony.xie * 4*0d5ec955Stony.xie * Redistribution and use in source and binary forms, with or without 5*0d5ec955Stony.xie * modification, are permitted provided that the following conditions are met: 6*0d5ec955Stony.xie * 7*0d5ec955Stony.xie * Redistributions of source code must retain the above copyright notice, this 8*0d5ec955Stony.xie * list of conditions and the following disclaimer. 9*0d5ec955Stony.xie * 10*0d5ec955Stony.xie * Redistributions in binary form must reproduce the above copyright notice, 11*0d5ec955Stony.xie * this list of conditions and the following disclaimer in the documentation 12*0d5ec955Stony.xie * and/or other materials provided with the distribution. 13*0d5ec955Stony.xie * 14*0d5ec955Stony.xie * Neither the name of ARM nor the names of its contributors may be used 15*0d5ec955Stony.xie * to endorse or promote products derived from this software without specific 16*0d5ec955Stony.xie * prior written permission. 17*0d5ec955Stony.xie * 18*0d5ec955Stony.xie * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 19*0d5ec955Stony.xie * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20*0d5ec955Stony.xie * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 21*0d5ec955Stony.xie * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE 22*0d5ec955Stony.xie * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 23*0d5ec955Stony.xie * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 24*0d5ec955Stony.xie * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 25*0d5ec955Stony.xie * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 26*0d5ec955Stony.xie * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 27*0d5ec955Stony.xie * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 28*0d5ec955Stony.xie * POSSIBILITY OF SUCH DAMAGE. 29*0d5ec955Stony.xie */ 30*0d5ec955Stony.xie 31*0d5ec955Stony.xie #ifndef __PLAT_DEF_H__ 32*0d5ec955Stony.xie #define __PLAT_DEF_H__ 33*0d5ec955Stony.xie 34*0d5ec955Stony.xie #define MAJOR_VERSION (1) 35*0d5ec955Stony.xie #define MINOR_VERSION (2) 36*0d5ec955Stony.xie 37*0d5ec955Stony.xie #define SIZE_K(n) ((n) * 1024) 38*0d5ec955Stony.xie 39*0d5ec955Stony.xie /* Special value used to verify platform parameters from BL2 to BL3-1 */ 40*0d5ec955Stony.xie #define RK_BL31_PLAT_PARAM_VAL 0x0f1e2d3c4b5a6978ULL 41*0d5ec955Stony.xie 42*0d5ec955Stony.xie #define UART2_BASE 0xff130000 43*0d5ec955Stony.xie #define UART2_SIZE SIZE_K(64) 44*0d5ec955Stony.xie 45*0d5ec955Stony.xie #define PMU_BASE 0xff140000 46*0d5ec955Stony.xie #define PMU_SIZE SIZE_K(64) 47*0d5ec955Stony.xie 48*0d5ec955Stony.xie #define SGRF_BASE 0xff0d0000 49*0d5ec955Stony.xie #define SGRF_SIZE SIZE_K(64) 50*0d5ec955Stony.xie 51*0d5ec955Stony.xie #define CRU_BASE 0xff440000 52*0d5ec955Stony.xie #define CRU_SIZE SIZE_K(64) 53*0d5ec955Stony.xie 54*0d5ec955Stony.xie #define GRF_BASE 0xff100000 55*0d5ec955Stony.xie #define GRF_SIZE SIZE_K(64) 56*0d5ec955Stony.xie 57*0d5ec955Stony.xie #define GPIO0_BASE 0xff210000 58*0d5ec955Stony.xie #define GPIO0_SIZE SIZE_K(32) 59*0d5ec955Stony.xie 60*0d5ec955Stony.xie #define GPIO1_BASE 0xff220000 61*0d5ec955Stony.xie #define GPIO1_SIZE SIZE_K(32) 62*0d5ec955Stony.xie 63*0d5ec955Stony.xie #define GPIO2_BASE 0xff230000 64*0d5ec955Stony.xie #define GPIO2_SIZE SIZE_K(64) 65*0d5ec955Stony.xie 66*0d5ec955Stony.xie #define GPIO3_BASE 0xff240000 67*0d5ec955Stony.xie #define GPIO3_SIZE SIZE_K(64) 68*0d5ec955Stony.xie 69*0d5ec955Stony.xie #define STIME_BASE 0xff1d0000 70*0d5ec955Stony.xie #define STIME_SIZE SIZE_K(64) 71*0d5ec955Stony.xie 72*0d5ec955Stony.xie #define INTMEM_BASE 0xff090000 73*0d5ec955Stony.xie #define INTMEM_SIZE SIZE_K(32) 74*0d5ec955Stony.xie 75*0d5ec955Stony.xie #define SRAM_LDS_BASE (INTMEM_BASE + SIZE_K(4)) 76*0d5ec955Stony.xie #define SRAM_LDS_SIZE (INTMEM_SIZE - SIZE_K(4)) 77*0d5ec955Stony.xie 78*0d5ec955Stony.xie #define PMUSRAM_BASE INTMEM_BASE 79*0d5ec955Stony.xie #define PMUSRAM_SIZE SIZE_K(4) 80*0d5ec955Stony.xie #define PMUSRAM_RSIZE SIZE_K(4) 81*0d5ec955Stony.xie 82*0d5ec955Stony.xie #define VOP_BASE 0xff370000 83*0d5ec955Stony.xie #define VOP_SIZE SIZE_K(16) 84*0d5ec955Stony.xie 85*0d5ec955Stony.xie #define DDR_PHY_BASE 0xff400000 86*0d5ec955Stony.xie #define DDR_PHY_SIZE SIZE_K(4) 87*0d5ec955Stony.xie 88*0d5ec955Stony.xie #define SERVER_MSCH_BASE 0xff720000 89*0d5ec955Stony.xie #define SERVER_MSCH_SIZE SIZE_K(4) 90*0d5ec955Stony.xie 91*0d5ec955Stony.xie #define DDR_UPCTL_BASE 0xff780000 92*0d5ec955Stony.xie #define DDR_UPCTL_SIZE SIZE_K(12) 93*0d5ec955Stony.xie 94*0d5ec955Stony.xie #define DDR_MONITOR_BASE 0xff790000 95*0d5ec955Stony.xie #define DDR_MONITOR_SIZE SIZE_K(4) 96*0d5ec955Stony.xie 97*0d5ec955Stony.xie #define FIREWALL_DDR_BASE 0xff7c0000 98*0d5ec955Stony.xie #define FIREWALL_DDR_SIZE SIZE_K(64) 99*0d5ec955Stony.xie 100*0d5ec955Stony.xie #define FIREWALL_CFG_BASE 0xff7d0000 101*0d5ec955Stony.xie #define FIREWALL_CFG_SIZE SIZE_K(64) 102*0d5ec955Stony.xie 103*0d5ec955Stony.xie #define GIC400_BASE 0xff810000 104*0d5ec955Stony.xie #define GIC400_SIZE SIZE_K(64) 105*0d5ec955Stony.xie 106*0d5ec955Stony.xie #define DDR_GRF_BASE 0xff798000 107*0d5ec955Stony.xie #define DDR_GRF_SIZE SIZE_K(16) 108*0d5ec955Stony.xie 109*0d5ec955Stony.xie #define PWM_BASE 0xff1b0000 110*0d5ec955Stony.xie #define PWM_SIZE SIZE_K(64) 111*0d5ec955Stony.xie 112*0d5ec955Stony.xie #define DDR_PARAM_BASE 0x02000000 113*0d5ec955Stony.xie #define DDR_PARAM_SIZE SIZE_K(4) 114*0d5ec955Stony.xie 115*0d5ec955Stony.xie #define EFUSE8_BASE 0xff260000 116*0d5ec955Stony.xie #define EFUSE8_SIZE SIZE_K(4) 117*0d5ec955Stony.xie 118*0d5ec955Stony.xie #define EFUSE32_BASE 0xff0b0000 119*0d5ec955Stony.xie #define EFUSE32_SIZE SIZE_K(4) 120*0d5ec955Stony.xie 121*0d5ec955Stony.xie /************************************************************************** 122*0d5ec955Stony.xie * UART related constants 123*0d5ec955Stony.xie **************************************************************************/ 124*0d5ec955Stony.xie #define RK3328_UART2_BASE UART2_BASE 125*0d5ec955Stony.xie #define RK3328_BAUDRATE 1500000 126*0d5ec955Stony.xie #define RK3328_UART_CLOCK 24000000 127*0d5ec955Stony.xie 128*0d5ec955Stony.xie /****************************************************************************** 129*0d5ec955Stony.xie * System counter frequency related constants 130*0d5ec955Stony.xie ******************************************************************************/ 131*0d5ec955Stony.xie #define SYS_COUNTER_FREQ_IN_TICKS 24000000U 132*0d5ec955Stony.xie #define SYS_COUNTER_FREQ_IN_MHZ 24 133*0d5ec955Stony.xie 134*0d5ec955Stony.xie /****************************************************************************** 135*0d5ec955Stony.xie * GIC-400 & interrupt handling related constants 136*0d5ec955Stony.xie ******************************************************************************/ 137*0d5ec955Stony.xie 138*0d5ec955Stony.xie /* Base rk_platform compatible GIC memory map */ 139*0d5ec955Stony.xie #define RK3328_GICD_BASE (GIC400_BASE + 0x1000) 140*0d5ec955Stony.xie #define RK3328_GICC_BASE (GIC400_BASE + 0x2000) 141*0d5ec955Stony.xie #define RK3328_GICR_BASE 0 /* no GICR in GIC-400 */ 142*0d5ec955Stony.xie 143*0d5ec955Stony.xie /****************************************************************************** 144*0d5ec955Stony.xie * sgi, ppi 145*0d5ec955Stony.xie ******************************************************************************/ 146*0d5ec955Stony.xie #define RK_IRQ_SEC_PHY_TIMER 29 147*0d5ec955Stony.xie 148*0d5ec955Stony.xie #define RK_IRQ_SEC_SGI_0 8 149*0d5ec955Stony.xie #define RK_IRQ_SEC_SGI_1 9 150*0d5ec955Stony.xie #define RK_IRQ_SEC_SGI_2 10 151*0d5ec955Stony.xie #define RK_IRQ_SEC_SGI_3 11 152*0d5ec955Stony.xie #define RK_IRQ_SEC_SGI_4 12 153*0d5ec955Stony.xie #define RK_IRQ_SEC_SGI_5 13 154*0d5ec955Stony.xie #define RK_IRQ_SEC_SGI_6 14 155*0d5ec955Stony.xie #define RK_IRQ_SEC_SGI_7 15 156*0d5ec955Stony.xie 157*0d5ec955Stony.xie /* 158*0d5ec955Stony.xie * Define a list of Group 1 Secure and Group 0 interrupts as per GICv3 159*0d5ec955Stony.xie * terminology. On a GICv2 system or mode, the lists will be merged and treated 160*0d5ec955Stony.xie * as Group 0 interrupts. 161*0d5ec955Stony.xie */ 162*0d5ec955Stony.xie #define RK_G1S_IRQS RK_IRQ_SEC_PHY_TIMER, RK_IRQ_SEC_SGI_6 163*0d5ec955Stony.xie 164*0d5ec955Stony.xie #define SHARE_MEM_BASE 0x100000/* [1MB, 1MB+60K]*/ 165*0d5ec955Stony.xie #define SHARE_MEM_PAGE_NUM 15 166*0d5ec955Stony.xie #define SHARE_MEM_SIZE SIZE_K(SHARE_MEM_PAGE_NUM * 4) 167*0d5ec955Stony.xie 168*0d5ec955Stony.xie #endif /* __PLAT_DEF_H__ */ 169