1*91f16700Schasinglulu /* 2*91f16700Schasinglulu * Copyright (c) 2019, ARM Limited and Contributors. All rights reserved. 3*91f16700Schasinglulu * Copyright (c) 2019-2023, Intel Corporation. All rights reserved. 4*91f16700Schasinglulu * 5*91f16700Schasinglulu * SPDX-License-Identifier: BSD-3-Clause 6*91f16700Schasinglulu */ 7*91f16700Schasinglulu 8*91f16700Schasinglulu #ifndef PLAT_SOCFPGA_DEF_H 9*91f16700Schasinglulu #define PLAT_SOCFPGA_DEF_H 10*91f16700Schasinglulu 11*91f16700Schasinglulu #include "agilex5_memory_controller.h" 12*91f16700Schasinglulu #include "agilex5_system_manager.h" 13*91f16700Schasinglulu #include <platform_def.h> 14*91f16700Schasinglulu 15*91f16700Schasinglulu /* Platform Setting */ 16*91f16700Schasinglulu #define PLATFORM_MODEL PLAT_SOCFPGA_AGILEX5 17*91f16700Schasinglulu #define BOOT_SOURCE BOOT_SOURCE_SDMMC 18*91f16700Schasinglulu #define MMC_DEVICE_TYPE 1 /* MMC = 0, SD = 1 */ 19*91f16700Schasinglulu #define XLAT_TABLES_V2 U(1) 20*91f16700Schasinglulu #define PLAT_PRIMARY_CPU_A55 0x000 21*91f16700Schasinglulu #define PLAT_PRIMARY_CPU_A76 0x200 22*91f16700Schasinglulu #define PLAT_CLUSTER_ID_MPIDR_AFF_SHIFT MPIDR_AFF2_SHIFT 23*91f16700Schasinglulu #define PLAT_CPU_ID_MPIDR_AFF_SHIFT MPIDR_AFF1_SHIFT 24*91f16700Schasinglulu #define PLAT_L2_RESET_REQ 0xB007C0DE 25*91f16700Schasinglulu 26*91f16700Schasinglulu /* System Counter */ /* TODO: Update back to 400MHz */ 27*91f16700Schasinglulu #define PLAT_SYS_COUNTER_FREQ_IN_TICKS (80000000) 28*91f16700Schasinglulu #define PLAT_SYS_COUNTER_FREQ_IN_MHZ (80) 29*91f16700Schasinglulu 30*91f16700Schasinglulu /* FPGA config helpers */ 31*91f16700Schasinglulu #define INTEL_SIP_SMC_FPGA_CONFIG_ADDR 0x400000 32*91f16700Schasinglulu #define INTEL_SIP_SMC_FPGA_CONFIG_SIZE 0x2000000 33*91f16700Schasinglulu 34*91f16700Schasinglulu /* QSPI Setting */ 35*91f16700Schasinglulu #define CAD_QSPIDATA_OFST 0x10900000 36*91f16700Schasinglulu #define CAD_QSPI_OFFSET 0x108d2000 37*91f16700Schasinglulu 38*91f16700Schasinglulu /* Register Mapping */ 39*91f16700Schasinglulu #define SOCFPGA_CCU_NOC_REG_BASE 0x1c000000 40*91f16700Schasinglulu #define SOCFPGA_F2SDRAMMGR_REG_BASE 0x18001000 41*91f16700Schasinglulu 42*91f16700Schasinglulu #define SOCFPGA_MMC_REG_BASE 0x10808000 43*91f16700Schasinglulu #define SOCFPGA_MEMCTRL_REG_BASE 0x108CC000 44*91f16700Schasinglulu #define SOCFPGA_RSTMGR_REG_BASE 0x10d11000 45*91f16700Schasinglulu #define SOCFPGA_SYSMGR_REG_BASE 0x10d12000 46*91f16700Schasinglulu #define SOCFPGA_PINMUX_REG_BASE 0x10d13000 47*91f16700Schasinglulu #define SOCFPGA_NAND_REG_BASE 0x10B80000 48*91f16700Schasinglulu 49*91f16700Schasinglulu #define SOCFPGA_L4_PER_SCR_REG_BASE 0x10d21000 50*91f16700Schasinglulu #define SOCFPGA_L4_SYS_SCR_REG_BASE 0x10d21100 51*91f16700Schasinglulu #define SOCFPGA_SOC2FPGA_SCR_REG_BASE 0x10d21200 52*91f16700Schasinglulu #define SOCFPGA_LWSOC2FPGA_SCR_REG_BASE 0x10d21300 53*91f16700Schasinglulu 54*91f16700Schasinglulu /* Define maximum page size for NAND flash devices */ 55*91f16700Schasinglulu #define PLATFORM_MTD_MAX_PAGE_SIZE U(0x1000) 56*91f16700Schasinglulu 57*91f16700Schasinglulu /******************************************************************************* 58*91f16700Schasinglulu * Platform memory map related constants 59*91f16700Schasinglulu ******************************************************************************/ 60*91f16700Schasinglulu #define DRAM_BASE (0x80000000) 61*91f16700Schasinglulu #define DRAM_SIZE (0x80000000) 62*91f16700Schasinglulu 63*91f16700Schasinglulu #define OCRAM_BASE (0x00000000) 64*91f16700Schasinglulu #define OCRAM_SIZE (0x00080000) 65*91f16700Schasinglulu 66*91f16700Schasinglulu #define MEM64_BASE (0x0080000000) 67*91f16700Schasinglulu #define MEM64_SIZE (0x0080000000) 68*91f16700Schasinglulu 69*91f16700Schasinglulu //128MB PSS 70*91f16700Schasinglulu #define PSS_BASE (0x10000000) 71*91f16700Schasinglulu #define PSS_SIZE (0x08000000) 72*91f16700Schasinglulu 73*91f16700Schasinglulu //64MB MPFE 74*91f16700Schasinglulu #define MPFE_BASE (0x18000000) 75*91f16700Schasinglulu #define MPFE_SIZE (0x04000000) 76*91f16700Schasinglulu 77*91f16700Schasinglulu //16MB CCU 78*91f16700Schasinglulu #define CCU_BASE (0x1C000000) 79*91f16700Schasinglulu #define CCU_SIZE (0x01000000) 80*91f16700Schasinglulu 81*91f16700Schasinglulu //1MB GIC 82*91f16700Schasinglulu #define GIC_BASE (0x1D000000) 83*91f16700Schasinglulu #define GIC_SIZE (0x00100000) 84*91f16700Schasinglulu 85*91f16700Schasinglulu #define BL2_BASE (0x00000000) 86*91f16700Schasinglulu #define BL2_LIMIT (0x0001b000) 87*91f16700Schasinglulu 88*91f16700Schasinglulu #define BL31_BASE (0x80000000) 89*91f16700Schasinglulu #define BL31_LIMIT (0x82000000) 90*91f16700Schasinglulu 91*91f16700Schasinglulu /******************************************************************************* 92*91f16700Schasinglulu * UART related constants 93*91f16700Schasinglulu ******************************************************************************/ 94*91f16700Schasinglulu #define PLAT_UART0_BASE (0x10C02000) 95*91f16700Schasinglulu #define PLAT_UART1_BASE (0x10C02100) 96*91f16700Schasinglulu 97*91f16700Schasinglulu /******************************************************************************* 98*91f16700Schasinglulu * GIC related constants 99*91f16700Schasinglulu ******************************************************************************/ 100*91f16700Schasinglulu #define PLAT_GIC_BASE (0x1D000000) 101*91f16700Schasinglulu #define PLAT_GICC_BASE (PLAT_GIC_BASE + 0x20000) 102*91f16700Schasinglulu #define PLAT_GICD_BASE (PLAT_GIC_BASE + 0x00000) 103*91f16700Schasinglulu #define PLAT_GICR_BASE (PLAT_GIC_BASE + 0x60000) 104*91f16700Schasinglulu 105*91f16700Schasinglulu #define PLAT_INTEL_SOCFPGA_GICR_BASE PLAT_GICR_BASE 106*91f16700Schasinglulu 107*91f16700Schasinglulu /******************************************************************************* 108*91f16700Schasinglulu * SDMMC related pointer function 109*91f16700Schasinglulu ******************************************************************************/ 110*91f16700Schasinglulu #define SDMMC_READ_BLOCKS sdmmc_read_blocks 111*91f16700Schasinglulu #define SDMMC_WRITE_BLOCKS sdmmc_write_blocks 112*91f16700Schasinglulu 113*91f16700Schasinglulu /******************************************************************************* 114*91f16700Schasinglulu * sysmgr.boot_scratch_cold6 & 7 (64bit) are used to indicate L2 reset 115*91f16700Schasinglulu * is done and HPS should trigger warm reset via RMR_EL3. 116*91f16700Schasinglulu ******************************************************************************/ 117*91f16700Schasinglulu #define L2_RESET_DONE_REG 0x10D12218 118*91f16700Schasinglulu 119*91f16700Schasinglulu #endif /* PLAT_SOCFPGA_DEF_H */ 120