10d5ec955Stony.xie /* 2d31dcdc5SAntonio Nino Diaz * Copyright (c) 2017-2019, ARM Limited and Contributors. All rights reserved. 30d5ec955Stony.xie * 4c3e70be1Sdp-arm * SPDX-License-Identifier: BSD-3-Clause 50d5ec955Stony.xie */ 60d5ec955Stony.xie 7c3cf06f1SAntonio Nino Diaz #ifndef RK3328_DEF_H 8c3cf06f1SAntonio Nino Diaz #define RK3328_DEF_H 90d5ec955Stony.xie 100d5ec955Stony.xie #define MAJOR_VERSION (1) 110d5ec955Stony.xie #define MINOR_VERSION (2) 120d5ec955Stony.xie 130d5ec955Stony.xie #define SIZE_K(n) ((n) * 1024) 140d5ec955Stony.xie 150d5ec955Stony.xie /* Special value used to verify platform parameters from BL2 to BL3-1 */ 160d5ec955Stony.xie #define RK_BL31_PLAT_PARAM_VAL 0x0f1e2d3c4b5a6978ULL 170d5ec955Stony.xie 18*0957b9b2SChristoph Müllner #define UART0_BASE 0xff110000 19*0957b9b2SChristoph Müllner #define UART0_SIZE SIZE_K(64) 20*0957b9b2SChristoph Müllner 21*0957b9b2SChristoph Müllner #define UART1_BASE 0xff120000 22*0957b9b2SChristoph Müllner #define UART1_SIZE SIZE_K(64) 23*0957b9b2SChristoph Müllner 240d5ec955Stony.xie #define UART2_BASE 0xff130000 250d5ec955Stony.xie #define UART2_SIZE SIZE_K(64) 260d5ec955Stony.xie 270d5ec955Stony.xie #define PMU_BASE 0xff140000 280d5ec955Stony.xie #define PMU_SIZE SIZE_K(64) 290d5ec955Stony.xie 300d5ec955Stony.xie #define SGRF_BASE 0xff0d0000 310d5ec955Stony.xie #define SGRF_SIZE SIZE_K(64) 320d5ec955Stony.xie 330d5ec955Stony.xie #define CRU_BASE 0xff440000 340d5ec955Stony.xie #define CRU_SIZE SIZE_K(64) 350d5ec955Stony.xie 360d5ec955Stony.xie #define GRF_BASE 0xff100000 370d5ec955Stony.xie #define GRF_SIZE SIZE_K(64) 380d5ec955Stony.xie 390d5ec955Stony.xie #define GPIO0_BASE 0xff210000 400d5ec955Stony.xie #define GPIO0_SIZE SIZE_K(32) 410d5ec955Stony.xie 420d5ec955Stony.xie #define GPIO1_BASE 0xff220000 430d5ec955Stony.xie #define GPIO1_SIZE SIZE_K(32) 440d5ec955Stony.xie 450d5ec955Stony.xie #define GPIO2_BASE 0xff230000 460d5ec955Stony.xie #define GPIO2_SIZE SIZE_K(64) 470d5ec955Stony.xie 480d5ec955Stony.xie #define GPIO3_BASE 0xff240000 490d5ec955Stony.xie #define GPIO3_SIZE SIZE_K(64) 500d5ec955Stony.xie 510d5ec955Stony.xie #define STIME_BASE 0xff1d0000 520d5ec955Stony.xie #define STIME_SIZE SIZE_K(64) 530d5ec955Stony.xie 540d5ec955Stony.xie #define INTMEM_BASE 0xff090000 550d5ec955Stony.xie #define INTMEM_SIZE SIZE_K(32) 560d5ec955Stony.xie 570d5ec955Stony.xie #define SRAM_LDS_BASE (INTMEM_BASE + SIZE_K(4)) 580d5ec955Stony.xie #define SRAM_LDS_SIZE (INTMEM_SIZE - SIZE_K(4)) 590d5ec955Stony.xie 600d5ec955Stony.xie #define PMUSRAM_BASE INTMEM_BASE 610d5ec955Stony.xie #define PMUSRAM_SIZE SIZE_K(4) 620d5ec955Stony.xie #define PMUSRAM_RSIZE SIZE_K(4) 630d5ec955Stony.xie 640d5ec955Stony.xie #define VOP_BASE 0xff370000 650d5ec955Stony.xie #define VOP_SIZE SIZE_K(16) 660d5ec955Stony.xie 670d5ec955Stony.xie #define DDR_PHY_BASE 0xff400000 680d5ec955Stony.xie #define DDR_PHY_SIZE SIZE_K(4) 690d5ec955Stony.xie 700d5ec955Stony.xie #define SERVER_MSCH_BASE 0xff720000 710d5ec955Stony.xie #define SERVER_MSCH_SIZE SIZE_K(4) 720d5ec955Stony.xie 730d5ec955Stony.xie #define DDR_UPCTL_BASE 0xff780000 740d5ec955Stony.xie #define DDR_UPCTL_SIZE SIZE_K(12) 750d5ec955Stony.xie 760d5ec955Stony.xie #define DDR_MONITOR_BASE 0xff790000 770d5ec955Stony.xie #define DDR_MONITOR_SIZE SIZE_K(4) 780d5ec955Stony.xie 790d5ec955Stony.xie #define FIREWALL_DDR_BASE 0xff7c0000 800d5ec955Stony.xie #define FIREWALL_DDR_SIZE SIZE_K(64) 810d5ec955Stony.xie 820d5ec955Stony.xie #define FIREWALL_CFG_BASE 0xff7d0000 830d5ec955Stony.xie #define FIREWALL_CFG_SIZE SIZE_K(64) 840d5ec955Stony.xie 850d5ec955Stony.xie #define GIC400_BASE 0xff810000 860d5ec955Stony.xie #define GIC400_SIZE SIZE_K(64) 870d5ec955Stony.xie 880d5ec955Stony.xie #define DDR_GRF_BASE 0xff798000 890d5ec955Stony.xie #define DDR_GRF_SIZE SIZE_K(16) 900d5ec955Stony.xie 910d5ec955Stony.xie #define PWM_BASE 0xff1b0000 920d5ec955Stony.xie #define PWM_SIZE SIZE_K(64) 930d5ec955Stony.xie 940d5ec955Stony.xie #define DDR_PARAM_BASE 0x02000000 950d5ec955Stony.xie #define DDR_PARAM_SIZE SIZE_K(4) 960d5ec955Stony.xie 970d5ec955Stony.xie #define EFUSE8_BASE 0xff260000 980d5ec955Stony.xie #define EFUSE8_SIZE SIZE_K(4) 990d5ec955Stony.xie 1000d5ec955Stony.xie #define EFUSE32_BASE 0xff0b0000 1010d5ec955Stony.xie #define EFUSE32_SIZE SIZE_K(4) 1020d5ec955Stony.xie 1030d5ec955Stony.xie /************************************************************************** 1040d5ec955Stony.xie * UART related constants 1050d5ec955Stony.xie **************************************************************************/ 1060d5ec955Stony.xie #define RK3328_BAUDRATE 1500000 1070d5ec955Stony.xie #define RK3328_UART_CLOCK 24000000 1080d5ec955Stony.xie 1090d5ec955Stony.xie /****************************************************************************** 1100d5ec955Stony.xie * System counter frequency related constants 1110d5ec955Stony.xie ******************************************************************************/ 1120d5ec955Stony.xie #define SYS_COUNTER_FREQ_IN_TICKS 24000000U 1130d5ec955Stony.xie #define SYS_COUNTER_FREQ_IN_MHZ 24 1140d5ec955Stony.xie 1150d5ec955Stony.xie /****************************************************************************** 1160d5ec955Stony.xie * GIC-400 & interrupt handling related constants 1170d5ec955Stony.xie ******************************************************************************/ 1180d5ec955Stony.xie 1190d5ec955Stony.xie /* Base rk_platform compatible GIC memory map */ 1200d5ec955Stony.xie #define RK3328_GICD_BASE (GIC400_BASE + 0x1000) 1210d5ec955Stony.xie #define RK3328_GICC_BASE (GIC400_BASE + 0x2000) 1220d5ec955Stony.xie #define RK3328_GICR_BASE 0 /* no GICR in GIC-400 */ 1230d5ec955Stony.xie 1240d5ec955Stony.xie /****************************************************************************** 1250d5ec955Stony.xie * sgi, ppi 1260d5ec955Stony.xie ******************************************************************************/ 1270d5ec955Stony.xie #define RK_IRQ_SEC_PHY_TIMER 29 1280d5ec955Stony.xie 1290d5ec955Stony.xie #define RK_IRQ_SEC_SGI_0 8 1300d5ec955Stony.xie #define RK_IRQ_SEC_SGI_1 9 1310d5ec955Stony.xie #define RK_IRQ_SEC_SGI_2 10 1320d5ec955Stony.xie #define RK_IRQ_SEC_SGI_3 11 1330d5ec955Stony.xie #define RK_IRQ_SEC_SGI_4 12 1340d5ec955Stony.xie #define RK_IRQ_SEC_SGI_5 13 1350d5ec955Stony.xie #define RK_IRQ_SEC_SGI_6 14 1360d5ec955Stony.xie #define RK_IRQ_SEC_SGI_7 15 1370d5ec955Stony.xie 1380d5ec955Stony.xie /* 139d31dcdc5SAntonio Nino Diaz * Define a list of Group 0 interrupts. 1400d5ec955Stony.xie */ 141d31dcdc5SAntonio Nino Diaz #define PLAT_RK_GICV2_G0_IRQS \ 1422d6f1f01SAntonio Nino Diaz INTR_PROP_DESC(RK_IRQ_SEC_PHY_TIMER, GIC_HIGHEST_SEC_PRIORITY, \ 143d31dcdc5SAntonio Nino Diaz GICV2_INTR_GROUP0, GIC_INTR_CFG_LEVEL), \ 1442d6f1f01SAntonio Nino Diaz INTR_PROP_DESC(RK_IRQ_SEC_SGI_6, GIC_HIGHEST_SEC_PRIORITY, \ 145d31dcdc5SAntonio Nino Diaz GICV2_INTR_GROUP0, GIC_INTR_CFG_LEVEL) 1460d5ec955Stony.xie 1470d5ec955Stony.xie #define SHARE_MEM_BASE 0x100000/* [1MB, 1MB+60K]*/ 1480d5ec955Stony.xie #define SHARE_MEM_PAGE_NUM 15 1490d5ec955Stony.xie #define SHARE_MEM_SIZE SIZE_K(SHARE_MEM_PAGE_NUM * 4) 1500d5ec955Stony.xie 151c3cf06f1SAntonio Nino Diaz #endif /* RK3328_DEF_H */ 152