1*91f16700Schasinglulu /* 2*91f16700Schasinglulu * Copyright (c) 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 __PX30_DEF_H__ 8*91f16700Schasinglulu #define __PX30_DEF_H__ 9*91f16700Schasinglulu 10*91f16700Schasinglulu #define MAJOR_VERSION (1) 11*91f16700Schasinglulu #define MINOR_VERSION (0) 12*91f16700Schasinglulu 13*91f16700Schasinglulu #define SIZE_K(n) ((n) * 1024) 14*91f16700Schasinglulu #define SIZE_M(n) ((n) * 1024 * 1024) 15*91f16700Schasinglulu 16*91f16700Schasinglulu #define WITH_16BITS_WMSK(bits) (0xffff0000 | (bits)) 17*91f16700Schasinglulu 18*91f16700Schasinglulu /* Special value used to verify platform parameters from BL2 to BL3-1 */ 19*91f16700Schasinglulu #define RK_BL31_PLAT_PARAM_VAL 0x0f1e2d3c4b5a6978ULL 20*91f16700Schasinglulu 21*91f16700Schasinglulu #define PMU_BASE 0xff000000 22*91f16700Schasinglulu #define PMU_SIZE SIZE_K(64) 23*91f16700Schasinglulu 24*91f16700Schasinglulu #define PMUGRF_BASE 0xff010000 25*91f16700Schasinglulu #define PMUGRF_SIZE SIZE_K(64) 26*91f16700Schasinglulu 27*91f16700Schasinglulu #define PMUSRAM_BASE 0xff020000 28*91f16700Schasinglulu #define PMUSRAM_SIZE SIZE_K(64) 29*91f16700Schasinglulu #define PMUSRAM_RSIZE SIZE_K(8) 30*91f16700Schasinglulu 31*91f16700Schasinglulu #define UART0_BASE 0xff030000 32*91f16700Schasinglulu #define UART0_SIZE SIZE_K(64) 33*91f16700Schasinglulu 34*91f16700Schasinglulu #define GPIO0_BASE 0xff040000 35*91f16700Schasinglulu #define GPIO0_SIZE SIZE_K(64) 36*91f16700Schasinglulu 37*91f16700Schasinglulu #define PMUSGRF_BASE 0xff050000 38*91f16700Schasinglulu #define PMUSGRF_SIZE SIZE_K(64) 39*91f16700Schasinglulu 40*91f16700Schasinglulu #define INTSRAM_BASE 0xff0e0000 41*91f16700Schasinglulu #define INTSRAM_SIZE SIZE_K(64) 42*91f16700Schasinglulu 43*91f16700Schasinglulu #define SGRF_BASE 0xff11c000 44*91f16700Schasinglulu #define SGRF_SIZE SIZE_K(16) 45*91f16700Schasinglulu 46*91f16700Schasinglulu #define GIC400_BASE 0xff130000 47*91f16700Schasinglulu #define GIC400_SIZE SIZE_K(64) 48*91f16700Schasinglulu 49*91f16700Schasinglulu #define GRF_BASE 0xff140000 50*91f16700Schasinglulu #define GRF_SIZE SIZE_K(64) 51*91f16700Schasinglulu 52*91f16700Schasinglulu #define UART1_BASE 0xff158000 53*91f16700Schasinglulu #define UART1_SIZE SIZE_K(64) 54*91f16700Schasinglulu 55*91f16700Schasinglulu #define UART2_BASE 0xff160000 56*91f16700Schasinglulu #define UART2_SIZE SIZE_K(64) 57*91f16700Schasinglulu 58*91f16700Schasinglulu #define UART3_BASE 0xff168000 59*91f16700Schasinglulu #define UART3_SIZE SIZE_K(64) 60*91f16700Schasinglulu 61*91f16700Schasinglulu #define UART5_BASE 0xff178000 62*91f16700Schasinglulu #define UART5_SIZE SIZE_K(64) 63*91f16700Schasinglulu 64*91f16700Schasinglulu #define I2C0_BASE 0xff180000 65*91f16700Schasinglulu #define I2C0_SIZE SIZE_K(64) 66*91f16700Schasinglulu 67*91f16700Schasinglulu #define PWM0_BASE 0xff200000 68*91f16700Schasinglulu #define PWM0_SIZE SIZE_K(32) 69*91f16700Schasinglulu 70*91f16700Schasinglulu #define PWM1_BASE 0xff208000 71*91f16700Schasinglulu #define PWM1_SIZE SIZE_K(32) 72*91f16700Schasinglulu 73*91f16700Schasinglulu #define NTIME_BASE 0xff210000 74*91f16700Schasinglulu #define NTIME_SIZE SIZE_K(64) 75*91f16700Schasinglulu 76*91f16700Schasinglulu #define STIME_BASE 0xff220000 77*91f16700Schasinglulu #define STIME_SIZE SIZE_K(64) 78*91f16700Schasinglulu 79*91f16700Schasinglulu #define DCF_BASE 0xff230000 80*91f16700Schasinglulu #define DCF_SIZE SIZE_K(64) 81*91f16700Schasinglulu 82*91f16700Schasinglulu #define GPIO1_BASE 0xff250000 83*91f16700Schasinglulu #define GPIO1_SIZE SIZE_K(64) 84*91f16700Schasinglulu 85*91f16700Schasinglulu #define GPIO2_BASE 0xff260000 86*91f16700Schasinglulu #define GPIO2_SIZE SIZE_K(64) 87*91f16700Schasinglulu 88*91f16700Schasinglulu #define GPIO3_BASE 0xff270000 89*91f16700Schasinglulu #define GPIO3_SIZE SIZE_K(64) 90*91f16700Schasinglulu 91*91f16700Schasinglulu #define DDR_PHY_BASE 0xff2a0000 92*91f16700Schasinglulu #define DDR_PHY_SIZE SIZE_K(64) 93*91f16700Schasinglulu 94*91f16700Schasinglulu #define CRU_BASE 0xff2b0000 95*91f16700Schasinglulu #define CRU_SIZE SIZE_K(32) 96*91f16700Schasinglulu 97*91f16700Schasinglulu #define CRU_BOOST_BASE 0xff2b8000 98*91f16700Schasinglulu #define CRU_BOOST_SIZE SIZE_K(16) 99*91f16700Schasinglulu 100*91f16700Schasinglulu #define PMUCRU_BASE 0xff2bc000 101*91f16700Schasinglulu #define PMUCRU_SIZE SIZE_K(16) 102*91f16700Schasinglulu 103*91f16700Schasinglulu #define VOP_BASE 0xff460000 104*91f16700Schasinglulu #define VOP_SIZE SIZE_K(16) 105*91f16700Schasinglulu 106*91f16700Schasinglulu #define SERVER_MSCH_BASE 0xff530000 107*91f16700Schasinglulu #define SERVER_MSCH_SIZE SIZE_K(64) 108*91f16700Schasinglulu 109*91f16700Schasinglulu #define FIREWALL_DDR_BASE 0xff534000 110*91f16700Schasinglulu #define FIREWALL_DDR_SIZE SIZE_K(16) 111*91f16700Schasinglulu 112*91f16700Schasinglulu #define DDR_UPCTL_BASE 0xff600000 113*91f16700Schasinglulu #define DDR_UPCTL_SIZE SIZE_K(64) 114*91f16700Schasinglulu 115*91f16700Schasinglulu #define DDR_MNTR_BASE 0xff610000 116*91f16700Schasinglulu #define DDR_MNTR_SIZE SIZE_K(64) 117*91f16700Schasinglulu 118*91f16700Schasinglulu #define DDR_STDBY_BASE 0xff620000 119*91f16700Schasinglulu #define DDR_STDBY_SIZE SIZE_K(64) 120*91f16700Schasinglulu 121*91f16700Schasinglulu #define DDRGRF_BASE 0xff630000 122*91f16700Schasinglulu #define DDRGRF_SIZE SIZE_K(32) 123*91f16700Schasinglulu 124*91f16700Schasinglulu /************************************************************************** 125*91f16700Schasinglulu * UART related constants 126*91f16700Schasinglulu **************************************************************************/ 127*91f16700Schasinglulu #define PX30_UART_BASE UART2_BASE 128*91f16700Schasinglulu #define PX30_BAUDRATE 1500000 129*91f16700Schasinglulu #define PX30_UART_CLOCK 24000000 130*91f16700Schasinglulu 131*91f16700Schasinglulu /****************************************************************************** 132*91f16700Schasinglulu * System counter frequency related constants 133*91f16700Schasinglulu ******************************************************************************/ 134*91f16700Schasinglulu #define SYS_COUNTER_FREQ_IN_TICKS 24000000 135*91f16700Schasinglulu #define SYS_COUNTER_FREQ_IN_MHZ 24 136*91f16700Schasinglulu 137*91f16700Schasinglulu /****************************************************************************** 138*91f16700Schasinglulu * GIC-400 & interrupt handling related constants 139*91f16700Schasinglulu ******************************************************************************/ 140*91f16700Schasinglulu 141*91f16700Schasinglulu /* Base rk_platform compatible GIC memory map */ 142*91f16700Schasinglulu #define PX30_GICD_BASE (GIC400_BASE + 0x1000) 143*91f16700Schasinglulu #define PX30_GICC_BASE (GIC400_BASE + 0x2000) 144*91f16700Schasinglulu #define PX30_GICR_BASE 0 /* no GICR in GIC-400 */ 145*91f16700Schasinglulu 146*91f16700Schasinglulu /****************************************************************************** 147*91f16700Schasinglulu * sgi, ppi 148*91f16700Schasinglulu ******************************************************************************/ 149*91f16700Schasinglulu #define RK_IRQ_SEC_PHY_TIMER 29 150*91f16700Schasinglulu 151*91f16700Schasinglulu #define RK_IRQ_SEC_SGI_0 8 152*91f16700Schasinglulu #define RK_IRQ_SEC_SGI_1 9 153*91f16700Schasinglulu #define RK_IRQ_SEC_SGI_2 10 154*91f16700Schasinglulu #define RK_IRQ_SEC_SGI_3 11 155*91f16700Schasinglulu #define RK_IRQ_SEC_SGI_4 12 156*91f16700Schasinglulu #define RK_IRQ_SEC_SGI_5 13 157*91f16700Schasinglulu #define RK_IRQ_SEC_SGI_6 14 158*91f16700Schasinglulu #define RK_IRQ_SEC_SGI_7 15 159*91f16700Schasinglulu 160*91f16700Schasinglulu /* 161*91f16700Schasinglulu * Define a list of Group 0 interrupts. 162*91f16700Schasinglulu */ 163*91f16700Schasinglulu #define PLAT_RK_GICV2_G0_IRQS \ 164*91f16700Schasinglulu INTR_PROP_DESC(RK_IRQ_SEC_PHY_TIMER, GIC_HIGHEST_SEC_PRIORITY, \ 165*91f16700Schasinglulu GICV2_INTR_GROUP0, GIC_INTR_CFG_LEVEL), \ 166*91f16700Schasinglulu INTR_PROP_DESC(RK_IRQ_SEC_SGI_6, GIC_HIGHEST_SEC_PRIORITY, \ 167*91f16700Schasinglulu GICV2_INTR_GROUP0, GIC_INTR_CFG_LEVEL) 168*91f16700Schasinglulu 169*91f16700Schasinglulu #define SHARE_MEM_BASE 0x100000/* [1MB, 1MB+60K]*/ 170*91f16700Schasinglulu #define SHARE_MEM_PAGE_NUM 15 171*91f16700Schasinglulu #define SHARE_MEM_SIZE SIZE_K(SHARE_MEM_PAGE_NUM * 4) 172*91f16700Schasinglulu 173*91f16700Schasinglulu #define DDR_PARAM_BASE 0x02000000 174*91f16700Schasinglulu #define DDR_PARAM_SIZE SIZE_K(4) 175*91f16700Schasinglulu 176*91f16700Schasinglulu #endif /* __PLAT_DEF_H__ */ 177