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