1*91f16700Schasinglulu /* 2*91f16700Schasinglulu * Copyright (c) 2016-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 RK3288_DEF_H 8*91f16700Schasinglulu #define RK3288_DEF_H 9*91f16700Schasinglulu 10*91f16700Schasinglulu /* Special value used to verify platform parameters from BL2 to BL31 */ 11*91f16700Schasinglulu #define RK_BL31_PLAT_PARAM_VAL 0x0f1e2d3c4b5a6978ULL 12*91f16700Schasinglulu 13*91f16700Schasinglulu #define SIZE_K(n) ((n) * 1024) 14*91f16700Schasinglulu #define SIZE_M(n) ((n) * 1024 * 1024) 15*91f16700Schasinglulu 16*91f16700Schasinglulu #define SRAM_TEXT_LIMIT (4 * 1024) 17*91f16700Schasinglulu #define SRAM_DATA_LIMIT (4 * 1024) 18*91f16700Schasinglulu 19*91f16700Schasinglulu #define DDR_PCTL0_BASE 0xff610000 20*91f16700Schasinglulu #define DDR_PCTL0_SIZE SIZE_K(64) 21*91f16700Schasinglulu 22*91f16700Schasinglulu #define DDR_PHY0_BASE 0xff620000 23*91f16700Schasinglulu #define DDR_PHY0_SIZE SIZE_K(64) 24*91f16700Schasinglulu 25*91f16700Schasinglulu #define DDR_PCTL1_BASE 0xff630000 26*91f16700Schasinglulu #define DDR_PCTL1_SIZE SIZE_K(64) 27*91f16700Schasinglulu 28*91f16700Schasinglulu #define DDR_PHY1_BASE 0xff640000 29*91f16700Schasinglulu #define DDR_PHY1_SIZE SIZE_K(64) 30*91f16700Schasinglulu 31*91f16700Schasinglulu #define UART0_BASE 0xff180000 32*91f16700Schasinglulu #define UART0_SIZE SIZE_K(64) 33*91f16700Schasinglulu 34*91f16700Schasinglulu #define UART1_BASE 0xff190000 35*91f16700Schasinglulu #define UART1_SIZE SIZE_K(64) 36*91f16700Schasinglulu 37*91f16700Schasinglulu #define UART2_BASE 0xff690000 38*91f16700Schasinglulu #define UART2_SIZE SIZE_K(64) 39*91f16700Schasinglulu 40*91f16700Schasinglulu #define UART3_BASE 0xff1b0000 41*91f16700Schasinglulu #define UART3_SIZE SIZE_K(64) 42*91f16700Schasinglulu 43*91f16700Schasinglulu #define UART4_BASE 0xff1c0000 44*91f16700Schasinglulu #define UART4_SIZE SIZE_K(64) 45*91f16700Schasinglulu 46*91f16700Schasinglulu /* 96k instead of 64k? */ 47*91f16700Schasinglulu #define SRAM_BASE 0xff700000 48*91f16700Schasinglulu #define SRAM_SIZE SIZE_K(64) 49*91f16700Schasinglulu 50*91f16700Schasinglulu #define PMUSRAM_BASE 0xff720000 51*91f16700Schasinglulu #define PMUSRAM_SIZE SIZE_K(4) 52*91f16700Schasinglulu #define PMUSRAM_RSIZE SIZE_K(4) 53*91f16700Schasinglulu 54*91f16700Schasinglulu #define PMU_BASE 0xff730000 55*91f16700Schasinglulu #define PMU_SIZE SIZE_K(64) 56*91f16700Schasinglulu 57*91f16700Schasinglulu #define SGRF_BASE 0xff740000 58*91f16700Schasinglulu #define SGRF_SIZE SIZE_K(64) 59*91f16700Schasinglulu 60*91f16700Schasinglulu #define CRU_BASE 0xff760000 61*91f16700Schasinglulu #define CRU_SIZE SIZE_K(64) 62*91f16700Schasinglulu 63*91f16700Schasinglulu #define GRF_BASE 0xff770000 64*91f16700Schasinglulu #define GRF_SIZE SIZE_K(64) 65*91f16700Schasinglulu 66*91f16700Schasinglulu /* timer 6+7 can be set as secure in SGRF */ 67*91f16700Schasinglulu #define STIME_BASE 0xff810000 68*91f16700Schasinglulu #define STIME_SIZE SIZE_K(64) 69*91f16700Schasinglulu 70*91f16700Schasinglulu #define SERVICE_BUS_BASE 0xffac0000 71*91f16700Schasinglulu #define SERVICE_BUS_SIZE SIZE_K(64) 72*91f16700Schasinglulu 73*91f16700Schasinglulu #define TZPC_BASE 0xffb00000 74*91f16700Schasinglulu #define TZPC_SIZE SIZE_K(64) 75*91f16700Schasinglulu 76*91f16700Schasinglulu #define GIC400_BASE 0xffc00000 77*91f16700Schasinglulu #define GIC400_SIZE SIZE_K(64) 78*91f16700Schasinglulu 79*91f16700Schasinglulu #define CORE_AXI_BUS_BASE 0xffd00000 80*91f16700Schasinglulu #define CORE_AXI_BUS_SIZE SIZE_M(1) 81*91f16700Schasinglulu 82*91f16700Schasinglulu #define COLD_BOOT_BASE 0xffff0000 83*91f16700Schasinglulu /************************************************************************** 84*91f16700Schasinglulu * UART related constants 85*91f16700Schasinglulu **************************************************************************/ 86*91f16700Schasinglulu #define RK3288_BAUDRATE 115200 87*91f16700Schasinglulu #define RK3288_UART_CLOCK 24000000 88*91f16700Schasinglulu 89*91f16700Schasinglulu /****************************************************************************** 90*91f16700Schasinglulu * System counter frequency related constants 91*91f16700Schasinglulu ******************************************************************************/ 92*91f16700Schasinglulu #define SYS_COUNTER_FREQ_IN_TICKS 24000000 93*91f16700Schasinglulu 94*91f16700Schasinglulu /****************************************************************************** 95*91f16700Schasinglulu * GIC-400 & interrupt handling related constants 96*91f16700Schasinglulu ******************************************************************************/ 97*91f16700Schasinglulu 98*91f16700Schasinglulu /* Base rk_platform compatible GIC memory map */ 99*91f16700Schasinglulu #define RK3288_GICD_BASE (GIC400_BASE + 0x1000) 100*91f16700Schasinglulu #define RK3288_GICC_BASE (GIC400_BASE + 0x2000) 101*91f16700Schasinglulu #define RK3288_GICR_BASE 0 /* no GICR in GIC-400 */ 102*91f16700Schasinglulu 103*91f16700Schasinglulu /****************************************************************************** 104*91f16700Schasinglulu * sgi, ppi 105*91f16700Schasinglulu ******************************************************************************/ 106*91f16700Schasinglulu #define RK_IRQ_SEC_PHY_TIMER 29 107*91f16700Schasinglulu 108*91f16700Schasinglulu /* what are these, and are they present on rk3288? */ 109*91f16700Schasinglulu #define RK_IRQ_SEC_SGI_0 8 110*91f16700Schasinglulu #define RK_IRQ_SEC_SGI_1 9 111*91f16700Schasinglulu #define RK_IRQ_SEC_SGI_2 10 112*91f16700Schasinglulu #define RK_IRQ_SEC_SGI_3 11 113*91f16700Schasinglulu #define RK_IRQ_SEC_SGI_4 12 114*91f16700Schasinglulu #define RK_IRQ_SEC_SGI_5 13 115*91f16700Schasinglulu #define RK_IRQ_SEC_SGI_6 14 116*91f16700Schasinglulu #define RK_IRQ_SEC_SGI_7 15 117*91f16700Schasinglulu 118*91f16700Schasinglulu /* 119*91f16700Schasinglulu * Define a list of Group 0 interrupts. 120*91f16700Schasinglulu */ 121*91f16700Schasinglulu #define PLAT_RK_GICV2_G0_IRQS \ 122*91f16700Schasinglulu INTR_PROP_DESC(RK_IRQ_SEC_PHY_TIMER, GIC_HIGHEST_SEC_PRIORITY, \ 123*91f16700Schasinglulu GICV2_INTR_GROUP0, GIC_INTR_CFG_LEVEL), \ 124*91f16700Schasinglulu INTR_PROP_DESC(RK_IRQ_SEC_SGI_6, GIC_HIGHEST_SEC_PRIORITY, \ 125*91f16700Schasinglulu GICV2_INTR_GROUP0, GIC_INTR_CFG_LEVEL) 126*91f16700Schasinglulu 127*91f16700Schasinglulu #endif /* RK3288_DEF_H */ 128