1010d6ae3SXiaoDong Huang /* 2010d6ae3SXiaoDong Huang * Copyright (c) 2019, ARM Limited and Contributors. All rights reserved. 3010d6ae3SXiaoDong Huang * 4010d6ae3SXiaoDong Huang * SPDX-License-Identifier: BSD-3-Clause 5010d6ae3SXiaoDong Huang */ 6010d6ae3SXiaoDong Huang 7010d6ae3SXiaoDong Huang #ifndef __PX30_DEF_H__ 8010d6ae3SXiaoDong Huang #define __PX30_DEF_H__ 9010d6ae3SXiaoDong Huang 10010d6ae3SXiaoDong Huang #define MAJOR_VERSION (1) 11010d6ae3SXiaoDong Huang #define MINOR_VERSION (0) 12010d6ae3SXiaoDong Huang 13010d6ae3SXiaoDong Huang #define SIZE_K(n) ((n) * 1024) 14*f55ef85eSHeiko Stuebner #define SIZE_M(n) ((n) * 1024 * 1024) 15010d6ae3SXiaoDong Huang 16010d6ae3SXiaoDong Huang #define WITH_16BITS_WMSK(bits) (0xffff0000 | (bits)) 17010d6ae3SXiaoDong Huang 18010d6ae3SXiaoDong Huang /* Special value used to verify platform parameters from BL2 to BL3-1 */ 19010d6ae3SXiaoDong Huang #define RK_BL31_PLAT_PARAM_VAL 0x0f1e2d3c4b5a6978ULL 20010d6ae3SXiaoDong Huang 21010d6ae3SXiaoDong Huang #define PMU_BASE 0xff000000 22010d6ae3SXiaoDong Huang #define PMU_SIZE SIZE_K(64) 23010d6ae3SXiaoDong Huang 24010d6ae3SXiaoDong Huang #define PMUGRF_BASE 0xff010000 25010d6ae3SXiaoDong Huang #define PMUGRF_SIZE SIZE_K(64) 26010d6ae3SXiaoDong Huang 27010d6ae3SXiaoDong Huang #define PMUSRAM_BASE 0xff020000 28010d6ae3SXiaoDong Huang #define PMUSRAM_SIZE SIZE_K(64) 29010d6ae3SXiaoDong Huang #define PMUSRAM_RSIZE SIZE_K(8) 30010d6ae3SXiaoDong Huang 31010d6ae3SXiaoDong Huang #define UART0_BASE 0xff030000 32010d6ae3SXiaoDong Huang #define UART0_SIZE SIZE_K(64) 33010d6ae3SXiaoDong Huang 34010d6ae3SXiaoDong Huang #define GPIO0_BASE 0xff040000 35010d6ae3SXiaoDong Huang #define GPIO0_SIZE SIZE_K(64) 36010d6ae3SXiaoDong Huang 37010d6ae3SXiaoDong Huang #define PMUSGRF_BASE 0xff050000 38010d6ae3SXiaoDong Huang #define PMUSGRF_SIZE SIZE_K(64) 39010d6ae3SXiaoDong Huang 40010d6ae3SXiaoDong Huang #define INTSRAM_BASE 0xff0e0000 41010d6ae3SXiaoDong Huang #define INTSRAM_SIZE SIZE_K(64) 42010d6ae3SXiaoDong Huang 43010d6ae3SXiaoDong Huang #define SGRF_BASE 0xff11c000 44010d6ae3SXiaoDong Huang #define SGRF_SIZE SIZE_K(16) 45010d6ae3SXiaoDong Huang 46010d6ae3SXiaoDong Huang #define GIC400_BASE 0xff130000 47010d6ae3SXiaoDong Huang #define GIC400_SIZE SIZE_K(64) 48010d6ae3SXiaoDong Huang 49010d6ae3SXiaoDong Huang #define GRF_BASE 0xff140000 50010d6ae3SXiaoDong Huang #define GRF_SIZE SIZE_K(64) 51010d6ae3SXiaoDong Huang 52010d6ae3SXiaoDong Huang #define UART1_BASE 0xff158000 53010d6ae3SXiaoDong Huang #define UART1_SIZE SIZE_K(64) 54010d6ae3SXiaoDong Huang 55010d6ae3SXiaoDong Huang #define UART2_BASE 0xff160000 56010d6ae3SXiaoDong Huang #define UART2_SIZE SIZE_K(64) 57010d6ae3SXiaoDong Huang 5848393e30SPaul Kocialkowski #define UART3_BASE 0xff168000 5948393e30SPaul Kocialkowski #define UART3_SIZE SIZE_K(64) 6048393e30SPaul Kocialkowski 615f441a7bSHeiko Stuebner #define UART5_BASE 0xff178000 625f441a7bSHeiko Stuebner #define UART5_SIZE SIZE_K(64) 635f441a7bSHeiko Stuebner 64010d6ae3SXiaoDong Huang #define I2C0_BASE 0xff180000 65010d6ae3SXiaoDong Huang #define I2C0_SIZE SIZE_K(64) 66010d6ae3SXiaoDong Huang 67010d6ae3SXiaoDong Huang #define PWM0_BASE 0xff200000 68010d6ae3SXiaoDong Huang #define PWM0_SIZE SIZE_K(32) 69010d6ae3SXiaoDong Huang 70010d6ae3SXiaoDong Huang #define PWM1_BASE 0xff208000 71010d6ae3SXiaoDong Huang #define PWM1_SIZE SIZE_K(32) 72010d6ae3SXiaoDong Huang 73010d6ae3SXiaoDong Huang #define NTIME_BASE 0xff210000 74010d6ae3SXiaoDong Huang #define NTIME_SIZE SIZE_K(64) 75010d6ae3SXiaoDong Huang 76010d6ae3SXiaoDong Huang #define STIME_BASE 0xff220000 77010d6ae3SXiaoDong Huang #define STIME_SIZE SIZE_K(64) 78010d6ae3SXiaoDong Huang 79010d6ae3SXiaoDong Huang #define DCF_BASE 0xff230000 80010d6ae3SXiaoDong Huang #define DCF_SIZE SIZE_K(64) 81010d6ae3SXiaoDong Huang 82010d6ae3SXiaoDong Huang #define GPIO1_BASE 0xff250000 83010d6ae3SXiaoDong Huang #define GPIO1_SIZE SIZE_K(64) 84010d6ae3SXiaoDong Huang 85010d6ae3SXiaoDong Huang #define GPIO2_BASE 0xff260000 86010d6ae3SXiaoDong Huang #define GPIO2_SIZE SIZE_K(64) 87010d6ae3SXiaoDong Huang 88010d6ae3SXiaoDong Huang #define GPIO3_BASE 0xff270000 89010d6ae3SXiaoDong Huang #define GPIO3_SIZE SIZE_K(64) 90010d6ae3SXiaoDong Huang 91010d6ae3SXiaoDong Huang #define DDR_PHY_BASE 0xff2a0000 92010d6ae3SXiaoDong Huang #define DDR_PHY_SIZE SIZE_K(64) 93010d6ae3SXiaoDong Huang 94010d6ae3SXiaoDong Huang #define CRU_BASE 0xff2b0000 95010d6ae3SXiaoDong Huang #define CRU_SIZE SIZE_K(32) 96010d6ae3SXiaoDong Huang 97010d6ae3SXiaoDong Huang #define CRU_BOOST_BASE 0xff2b8000 98010d6ae3SXiaoDong Huang #define CRU_BOOST_SIZE SIZE_K(16) 99010d6ae3SXiaoDong Huang 100010d6ae3SXiaoDong Huang #define PMUCRU_BASE 0xff2bc000 101010d6ae3SXiaoDong Huang #define PMUCRU_SIZE SIZE_K(16) 102010d6ae3SXiaoDong Huang 103010d6ae3SXiaoDong Huang #define VOP_BASE 0xff460000 104010d6ae3SXiaoDong Huang #define VOP_SIZE SIZE_K(16) 105010d6ae3SXiaoDong Huang 106010d6ae3SXiaoDong Huang #define SERVER_MSCH_BASE 0xff530000 107010d6ae3SXiaoDong Huang #define SERVER_MSCH_SIZE SIZE_K(64) 108010d6ae3SXiaoDong Huang 109010d6ae3SXiaoDong Huang #define FIREWALL_DDR_BASE 0xff534000 110010d6ae3SXiaoDong Huang #define FIREWALL_DDR_SIZE SIZE_K(16) 111010d6ae3SXiaoDong Huang 112010d6ae3SXiaoDong Huang #define DDR_UPCTL_BASE 0xff600000 113010d6ae3SXiaoDong Huang #define DDR_UPCTL_SIZE SIZE_K(64) 114010d6ae3SXiaoDong Huang 115010d6ae3SXiaoDong Huang #define DDR_MNTR_BASE 0xff610000 116010d6ae3SXiaoDong Huang #define DDR_MNTR_SIZE SIZE_K(64) 117010d6ae3SXiaoDong Huang 118010d6ae3SXiaoDong Huang #define DDR_STDBY_BASE 0xff620000 119010d6ae3SXiaoDong Huang #define DDR_STDBY_SIZE SIZE_K(64) 120010d6ae3SXiaoDong Huang 121010d6ae3SXiaoDong Huang #define DDRGRF_BASE 0xff630000 122010d6ae3SXiaoDong Huang #define DDRGRF_SIZE SIZE_K(32) 123010d6ae3SXiaoDong Huang 124010d6ae3SXiaoDong Huang /************************************************************************** 125010d6ae3SXiaoDong Huang * UART related constants 126010d6ae3SXiaoDong Huang **************************************************************************/ 127010d6ae3SXiaoDong Huang #define PX30_UART_BASE UART2_BASE 128010d6ae3SXiaoDong Huang #define PX30_BAUDRATE 1500000 129010d6ae3SXiaoDong Huang #define PX30_UART_CLOCK 24000000 130010d6ae3SXiaoDong Huang 131010d6ae3SXiaoDong Huang /****************************************************************************** 132010d6ae3SXiaoDong Huang * System counter frequency related constants 133010d6ae3SXiaoDong Huang ******************************************************************************/ 134010d6ae3SXiaoDong Huang #define SYS_COUNTER_FREQ_IN_TICKS 24000000 135010d6ae3SXiaoDong Huang #define SYS_COUNTER_FREQ_IN_MHZ 24 136010d6ae3SXiaoDong Huang 137010d6ae3SXiaoDong Huang /****************************************************************************** 138010d6ae3SXiaoDong Huang * GIC-400 & interrupt handling related constants 139010d6ae3SXiaoDong Huang ******************************************************************************/ 140010d6ae3SXiaoDong Huang 141010d6ae3SXiaoDong Huang /* Base rk_platform compatible GIC memory map */ 142010d6ae3SXiaoDong Huang #define PX30_GICD_BASE (GIC400_BASE + 0x1000) 143010d6ae3SXiaoDong Huang #define PX30_GICC_BASE (GIC400_BASE + 0x2000) 144010d6ae3SXiaoDong Huang #define PX30_GICR_BASE 0 /* no GICR in GIC-400 */ 145010d6ae3SXiaoDong Huang 146010d6ae3SXiaoDong Huang /****************************************************************************** 147010d6ae3SXiaoDong Huang * sgi, ppi 148010d6ae3SXiaoDong Huang ******************************************************************************/ 149010d6ae3SXiaoDong Huang #define RK_IRQ_SEC_PHY_TIMER 29 150010d6ae3SXiaoDong Huang 151010d6ae3SXiaoDong Huang #define RK_IRQ_SEC_SGI_0 8 152010d6ae3SXiaoDong Huang #define RK_IRQ_SEC_SGI_1 9 153010d6ae3SXiaoDong Huang #define RK_IRQ_SEC_SGI_2 10 154010d6ae3SXiaoDong Huang #define RK_IRQ_SEC_SGI_3 11 155010d6ae3SXiaoDong Huang #define RK_IRQ_SEC_SGI_4 12 156010d6ae3SXiaoDong Huang #define RK_IRQ_SEC_SGI_5 13 157010d6ae3SXiaoDong Huang #define RK_IRQ_SEC_SGI_6 14 158010d6ae3SXiaoDong Huang #define RK_IRQ_SEC_SGI_7 15 159010d6ae3SXiaoDong Huang 160010d6ae3SXiaoDong Huang /* 161010d6ae3SXiaoDong Huang * Define a list of Group 0 interrupts. 162010d6ae3SXiaoDong Huang */ 163010d6ae3SXiaoDong Huang #define PLAT_RK_GICV2_G0_IRQS \ 164010d6ae3SXiaoDong Huang INTR_PROP_DESC(RK_IRQ_SEC_PHY_TIMER, GIC_HIGHEST_SEC_PRIORITY, \ 165010d6ae3SXiaoDong Huang GICV2_INTR_GROUP0, GIC_INTR_CFG_LEVEL), \ 166010d6ae3SXiaoDong Huang INTR_PROP_DESC(RK_IRQ_SEC_SGI_6, GIC_HIGHEST_SEC_PRIORITY, \ 167010d6ae3SXiaoDong Huang GICV2_INTR_GROUP0, GIC_INTR_CFG_LEVEL) 168010d6ae3SXiaoDong Huang 169010d6ae3SXiaoDong Huang #define SHARE_MEM_BASE 0x100000/* [1MB, 1MB+60K]*/ 170010d6ae3SXiaoDong Huang #define SHARE_MEM_PAGE_NUM 15 171010d6ae3SXiaoDong Huang #define SHARE_MEM_SIZE SIZE_K(SHARE_MEM_PAGE_NUM * 4) 172010d6ae3SXiaoDong Huang 173010d6ae3SXiaoDong Huang #define DDR_PARAM_BASE 0x02000000 174010d6ae3SXiaoDong Huang #define DDR_PARAM_SIZE SIZE_K(4) 175010d6ae3SXiaoDong Huang 176010d6ae3SXiaoDong Huang #endif /* __PLAT_DEF_H__ */ 177