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