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