1*91f16700Schasinglulu /* 2*91f16700Schasinglulu * Copyright (c) 2019-2023, ARM Limited and Contributors. All rights reserved. 3*91f16700Schasinglulu * 4*91f16700Schasinglulu * SPDX-License-Identifier: BSD-3-Clause 5*91f16700Schasinglulu */ 6*91f16700Schasinglulu 7*91f16700Schasinglulu #ifndef PLAT_SOCFPGA_DEF_H 8*91f16700Schasinglulu #define PLAT_SOCFPGA_DEF_H 9*91f16700Schasinglulu 10*91f16700Schasinglulu #include <platform_def.h> 11*91f16700Schasinglulu #include "s10_system_manager.h" 12*91f16700Schasinglulu 13*91f16700Schasinglulu /* Platform Setting */ 14*91f16700Schasinglulu #define PLATFORM_MODEL PLAT_SOCFPGA_STRATIX10 15*91f16700Schasinglulu #define BOOT_SOURCE BOOT_SOURCE_SDMMC 16*91f16700Schasinglulu #define PLAT_PRIMARY_CPU 0 17*91f16700Schasinglulu #define PLAT_CLUSTER_ID_MPIDR_AFF_SHIFT MPIDR_AFF1_SHIFT 18*91f16700Schasinglulu #define PLAT_CPU_ID_MPIDR_AFF_SHIFT MPIDR_AFF0_SHIFT 19*91f16700Schasinglulu 20*91f16700Schasinglulu /* FPGA config helpers */ 21*91f16700Schasinglulu #define INTEL_SIP_SMC_FPGA_CONFIG_ADDR 0x400000 22*91f16700Schasinglulu #define INTEL_SIP_SMC_FPGA_CONFIG_SIZE 0x1000000 23*91f16700Schasinglulu 24*91f16700Schasinglulu /* QSPI Setting */ 25*91f16700Schasinglulu #define CAD_QSPIDATA_OFST 0xff900000 26*91f16700Schasinglulu #define CAD_QSPI_OFFSET 0xff8d2000 27*91f16700Schasinglulu 28*91f16700Schasinglulu /* Register Mapping */ 29*91f16700Schasinglulu #define SOCFPGA_CCU_NOC_REG_BASE 0xf7000000 30*91f16700Schasinglulu #define SOCFPGA_F2SDRAMMGR_REG_BASE U(0xf8024000) 31*91f16700Schasinglulu 32*91f16700Schasinglulu #define SOCFPGA_MMC_REG_BASE 0xff808000 33*91f16700Schasinglulu 34*91f16700Schasinglulu #define SOCFPGA_RSTMGR_REG_BASE 0xffd11000 35*91f16700Schasinglulu #define SOCFPGA_SYSMGR_REG_BASE 0xffd12000 36*91f16700Schasinglulu 37*91f16700Schasinglulu #define SOCFPGA_L4_PER_SCR_REG_BASE 0xffd21000 38*91f16700Schasinglulu #define SOCFPGA_L4_SYS_SCR_REG_BASE 0xffd21100 39*91f16700Schasinglulu #define SOCFPGA_SOC2FPGA_SCR_REG_BASE 0xffd21200 40*91f16700Schasinglulu #define SOCFPGA_LWSOC2FPGA_SCR_REG_BASE 0xffd21300 41*91f16700Schasinglulu 42*91f16700Schasinglulu /******************************************************************************* 43*91f16700Schasinglulu * Platform memory map related constants 44*91f16700Schasinglulu ******************************************************************************/ 45*91f16700Schasinglulu #define DRAM_BASE (0x0) 46*91f16700Schasinglulu #define DRAM_SIZE (0x80000000) 47*91f16700Schasinglulu 48*91f16700Schasinglulu #define OCRAM_BASE (0xFFE00000) 49*91f16700Schasinglulu #define OCRAM_SIZE (0x00040000) 50*91f16700Schasinglulu 51*91f16700Schasinglulu #define MEM64_BASE (0x0100000000) 52*91f16700Schasinglulu #define MEM64_SIZE (0x1F00000000) 53*91f16700Schasinglulu 54*91f16700Schasinglulu #define DEVICE1_BASE (0x80000000) 55*91f16700Schasinglulu #define DEVICE1_SIZE (0x60000000) 56*91f16700Schasinglulu 57*91f16700Schasinglulu #define DEVICE2_BASE (0xF7000000) 58*91f16700Schasinglulu #define DEVICE2_SIZE (0x08E00000) 59*91f16700Schasinglulu 60*91f16700Schasinglulu #define DEVICE3_BASE (0xFFFC0000) 61*91f16700Schasinglulu #define DEVICE3_SIZE (0x00008000) 62*91f16700Schasinglulu 63*91f16700Schasinglulu #define DEVICE4_BASE (0x2000000000) 64*91f16700Schasinglulu #define DEVICE4_SIZE (0x0100000000) 65*91f16700Schasinglulu 66*91f16700Schasinglulu #define BL2_BASE (0xffe00000) 67*91f16700Schasinglulu #define BL2_LIMIT (0xffe1b000) 68*91f16700Schasinglulu 69*91f16700Schasinglulu #define BL31_BASE (0x1000) 70*91f16700Schasinglulu #define BL31_LIMIT (0x81000) 71*91f16700Schasinglulu 72*91f16700Schasinglulu /******************************************************************************* 73*91f16700Schasinglulu * UART related constants 74*91f16700Schasinglulu ******************************************************************************/ 75*91f16700Schasinglulu #define PLAT_UART0_BASE (0xFFC02000) 76*91f16700Schasinglulu #define PLAT_UART1_BASE (0xFFC02100) 77*91f16700Schasinglulu 78*91f16700Schasinglulu /******************************************************************************* 79*91f16700Schasinglulu * GIC related constants 80*91f16700Schasinglulu ******************************************************************************/ 81*91f16700Schasinglulu #define PLAT_GIC_BASE (0xFFFC0000) 82*91f16700Schasinglulu #define PLAT_GICC_BASE (PLAT_GIC_BASE + 0x2000) 83*91f16700Schasinglulu #define PLAT_GICD_BASE (PLAT_GIC_BASE + 0x1000) 84*91f16700Schasinglulu #define PLAT_GICR_BASE 0 85*91f16700Schasinglulu 86*91f16700Schasinglulu #define PLAT_SYS_COUNTER_FREQ_IN_TICKS (400000000) 87*91f16700Schasinglulu #define PLAT_HZ_CONVERT_TO_MHZ (1000000) 88*91f16700Schasinglulu 89*91f16700Schasinglulu /******************************************************************************* 90*91f16700Schasinglulu * SDMMC related pointer function 91*91f16700Schasinglulu ******************************************************************************/ 92*91f16700Schasinglulu #define SDMMC_READ_BLOCKS mmc_read_blocks 93*91f16700Schasinglulu #define SDMMC_WRITE_BLOCKS mmc_write_blocks 94*91f16700Schasinglulu 95*91f16700Schasinglulu /******************************************************************************* 96*91f16700Schasinglulu * sysmgr.boot_scratch_cold6 & 7 (64bit) are used to indicate L2 reset 97*91f16700Schasinglulu * is done and HPS should trigger warm reset via RMR_EL3. 98*91f16700Schasinglulu ******************************************************************************/ 99*91f16700Schasinglulu #define L2_RESET_DONE_REG 0xFFD12218 100*91f16700Schasinglulu 101*91f16700Schasinglulu /* Platform specific system counter */ 102*91f16700Schasinglulu #define PLAT_SYS_COUNTER_FREQ_IN_MHZ get_cpu_clk() 103*91f16700Schasinglulu 104*91f16700Schasinglulu #endif /* PLATSOCFPGA_DEF_H */ 105*91f16700Schasinglulu 106