xref: /rk3399_ARM-atf/plat/intel/soc/stratix10/include/socfpga_plat_def.h (revision 33ddc01ac5d04377d8f65b18109dabfbe7254488)
1328718f2SHadi Asyrafi /*
2b653f3caSJit Loon Lim  * Copyright (c) 2019-2023, ARM Limited and Contributors. All rights reserved.
3b3d28508SSieu Mun Tang  * Copyright (c) 2024, Altera Corporation. All rights reserved.
4328718f2SHadi Asyrafi  *
5328718f2SHadi Asyrafi  * SPDX-License-Identifier: BSD-3-Clause
6328718f2SHadi Asyrafi  */
7328718f2SHadi Asyrafi 
8328718f2SHadi Asyrafi #ifndef PLAT_SOCFPGA_DEF_H
9328718f2SHadi Asyrafi #define PLAT_SOCFPGA_DEF_H
10328718f2SHadi Asyrafi 
11328718f2SHadi Asyrafi #include <platform_def.h>
12a72f86acSSieu Mun Tang #include <lib/utils_def.h>
13b653f3caSJit Loon Lim #include "s10_system_manager.h"
14328718f2SHadi Asyrafi 
15328718f2SHadi Asyrafi /* Platform Setting */
16328718f2SHadi Asyrafi #define PLATFORM_MODEL				PLAT_SOCFPGA_STRATIX10
17b653f3caSJit Loon Lim #define PLAT_PRIMARY_CPU			0
18b653f3caSJit Loon Lim #define PLAT_CLUSTER_ID_MPIDR_AFF_SHIFT		MPIDR_AFF1_SHIFT
19b653f3caSJit Loon Lim #define PLAT_CPU_ID_MPIDR_AFF_SHIFT		MPIDR_AFF0_SHIFT
201838a39aSSieu Mun Tang #define PLAT_HANDOFF_OFFSET			0xFFE3F000
21b3d28508SSieu Mun Tang #define PLAT_TIMER_BASE_ADDR			0xFFD01000
22328718f2SHadi Asyrafi 
23f571183bSSieu Mun Tang /* FPGA config helpers */
24f571183bSSieu Mun Tang #define INTEL_SIP_SMC_FPGA_CONFIG_ADDR		0x400000
25f571183bSSieu Mun Tang #define INTEL_SIP_SMC_FPGA_CONFIG_SIZE		0x1000000
26f571183bSSieu Mun Tang 
27b653f3caSJit Loon Lim /* QSPI Setting */
28b653f3caSJit Loon Lim #define CAD_QSPIDATA_OFST			0xff900000
29b653f3caSJit Loon Lim #define CAD_QSPI_OFFSET				0xff8d2000
30b653f3caSJit Loon Lim 
31beba2040SSieu Mun Tang /* FIP Setting */
32beba2040SSieu Mun Tang #define PLAT_FIP_BASE				(0)
33beba2040SSieu Mun Tang #define PLAT_FIP_MAX_SIZE			(0x1000000)
34beba2040SSieu Mun Tang 
35f29765fdSSieu Mun Tang /* SDMMC Setting */
36beba2040SSieu Mun Tang #define PLAT_MMC_DATA_BASE			(0xffe3c000)
37beba2040SSieu Mun Tang #define PLAT_MMC_DATA_SIZE			(0x2000)
38f29765fdSSieu Mun Tang #define SOCFPGA_MMC_BLOCK_SIZE			U(8192)
39f29765fdSSieu Mun Tang 
40328718f2SHadi Asyrafi /* Register Mapping */
41bc1a573dSAbdul Halim, Muhammad Hadi Asyrafi #define SOCFPGA_CCU_NOC_REG_BASE		0xf7000000
4211f4f030SSieu Mun Tang #define SOCFPGA_F2SDRAMMGR_REG_BASE		U(0xf8024000)
43bc1a573dSAbdul Halim, Muhammad Hadi Asyrafi 
44328718f2SHadi Asyrafi #define SOCFPGA_MMC_REG_BASE                    0xff808000
4520335ca8SHadi Asyrafi 
46391eeeefSHadi Asyrafi #define SOCFPGA_RSTMGR_REG_BASE			0xffd11000
4720335ca8SHadi Asyrafi #define SOCFPGA_SYSMGR_REG_BASE			0xffd12000
488be16e44SJit Loon Lim #define SOCFPGA_ECC_QSPI_REG_BASE		0xffa22000
4920335ca8SHadi Asyrafi 
5020335ca8SHadi Asyrafi #define SOCFPGA_L4_PER_SCR_REG_BASE		0xffd21000
5120335ca8SHadi Asyrafi #define SOCFPGA_L4_SYS_SCR_REG_BASE		0xffd21100
5220335ca8SHadi Asyrafi #define SOCFPGA_SOC2FPGA_SCR_REG_BASE		0xffd21200
5320335ca8SHadi Asyrafi #define SOCFPGA_LWSOC2FPGA_SCR_REG_BASE		0xffd21300
5420335ca8SHadi Asyrafi 
55b653f3caSJit Loon Lim /*******************************************************************************
56b653f3caSJit Loon Lim  * Platform memory map related constants
57b653f3caSJit Loon Lim  ******************************************************************************/
58b653f3caSJit Loon Lim #define DRAM_BASE				(0x0)
59b653f3caSJit Loon Lim #define DRAM_SIZE				(0x80000000)
60b653f3caSJit Loon Lim 
61b653f3caSJit Loon Lim #define OCRAM_BASE				(0xFFE00000)
62b653f3caSJit Loon Lim #define OCRAM_SIZE				(0x00040000)
63b653f3caSJit Loon Lim 
64b653f3caSJit Loon Lim #define MEM64_BASE				(0x0100000000)
65b653f3caSJit Loon Lim #define MEM64_SIZE				(0x1F00000000)
66b653f3caSJit Loon Lim 
67b653f3caSJit Loon Lim #define DEVICE1_BASE				(0x80000000)
68b653f3caSJit Loon Lim #define DEVICE1_SIZE				(0x60000000)
69b653f3caSJit Loon Lim 
70b653f3caSJit Loon Lim #define DEVICE2_BASE				(0xF7000000)
71b653f3caSJit Loon Lim #define DEVICE2_SIZE				(0x08E00000)
72b653f3caSJit Loon Lim 
73b653f3caSJit Loon Lim #define DEVICE3_BASE				(0xFFFC0000)
74b653f3caSJit Loon Lim #define DEVICE3_SIZE				(0x00008000)
75b653f3caSJit Loon Lim 
76b653f3caSJit Loon Lim #define DEVICE4_BASE				(0x2000000000)
77b653f3caSJit Loon Lim #define DEVICE4_SIZE				(0x0100000000)
78b653f3caSJit Loon Lim 
79b653f3caSJit Loon Lim #define BL2_BASE				(0xffe00000)
802d46b2e4SJit Loon Lim #define BL2_LIMIT				(0xffe2b000)
81b653f3caSJit Loon Lim 
82b653f3caSJit Loon Lim #define BL31_BASE				(0x1000)
83b653f3caSJit Loon Lim #define BL31_LIMIT				(0x81000)
84b653f3caSJit Loon Lim 
85b653f3caSJit Loon Lim /*******************************************************************************
86b653f3caSJit Loon Lim  * UART related constants
87b653f3caSJit Loon Lim  ******************************************************************************/
88b653f3caSJit Loon Lim #define PLAT_UART0_BASE				(0xFFC02000)
89b653f3caSJit Loon Lim #define PLAT_UART1_BASE				(0xFFC02100)
90b653f3caSJit Loon Lim 
91b653f3caSJit Loon Lim /*******************************************************************************
9247ca43bcSSieu Mun Tang  * WDT related constants
9347ca43bcSSieu Mun Tang  ******************************************************************************/
9447ca43bcSSieu Mun Tang #define WDT_BASE				(0xFFD00200)
9547ca43bcSSieu Mun Tang 
9647ca43bcSSieu Mun Tang /*******************************************************************************
97b653f3caSJit Loon Lim  * GIC related constants
98b653f3caSJit Loon Lim  ******************************************************************************/
99b653f3caSJit Loon Lim #define PLAT_GIC_BASE				(0xFFFC0000)
100b653f3caSJit Loon Lim #define PLAT_GICC_BASE				(PLAT_GIC_BASE + 0x2000)
101b653f3caSJit Loon Lim #define PLAT_GICD_BASE				(PLAT_GIC_BASE + 0x1000)
102b653f3caSJit Loon Lim #define PLAT_GICR_BASE				0
103b653f3caSJit Loon Lim 
104a72f86acSSieu Mun Tang #define PLAT_SYS_COUNTER_FREQ_IN_TICKS		(400000000)
105b653f3caSJit Loon Lim #define PLAT_HZ_CONVERT_TO_MHZ			(1000000)
106b653f3caSJit Loon Lim 
1077931d332SJit Loon Lim /*******************************************************************************
1087931d332SJit Loon Lim  * SDMMC related pointer function
1097931d332SJit Loon Lim  ******************************************************************************/
1107931d332SJit Loon Lim #define SDMMC_READ_BLOCKS			mmc_read_blocks
1117931d332SJit Loon Lim #define SDMMC_WRITE_BLOCKS			mmc_write_blocks
1127931d332SJit Loon Lim 
1137931d332SJit Loon Lim /*******************************************************************************
114646a9a16SJit Loon Lim  * sysmgr.boot_scratch_cold6 Bits[3:0] is used to indicate L2 reset
1157931d332SJit Loon Lim  * is done and HPS should trigger warm reset via RMR_EL3.
1167931d332SJit Loon Lim  ******************************************************************************/
117646a9a16SJit Loon Lim /*
118646a9a16SJit Loon Lim  * Magic key bits: 4 bits[3:0] from boot scratch register COLD6 are used to
119646a9a16SJit Loon Lim  * indicate the below requests/status
120646a9a16SJit Loon Lim  *     0x0       : Default value on reset, not used
121646a9a16SJit Loon Lim  *     0x1       : L2/warm reset is completed
122646a9a16SJit Loon Lim  *     0x2 - 0xF : Reserved for future use
123646a9a16SJit Loon Lim  */
124*7e94cc10SBoon Khai Ng #define BS_REG_MAGIC_KEYS_MASK			0xFFFFFFFF
125*7e94cc10SBoon Khai Ng #define L2_RESET_DONE_STATUS			0x1228E5E7
126646a9a16SJit Loon Lim 
127646a9a16SJit Loon Lim #define L2_RESET_DONE_REG			SOCFPGA_SYSMGR(BOOT_SCRATCH_COLD_6)
1287931d332SJit Loon Lim 
129f65bdf3aSBenjaminLimJL /* Platform specific system counter */
130a72f86acSSieu Mun Tang #define PLAT_SYS_COUNTER_FREQ_IN_MHZ		U(400)
131f65bdf3aSBenjaminLimJL 
132328718f2SHadi Asyrafi #endif /* PLATSOCFPGA_DEF_H */
133328718f2SHadi Asyrafi 
134