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