xref: /rk3399_ARM-atf/plat/intel/soc/agilex/include/agilex_system_manager.h (revision 57c20e242711b2c255bca8ba35a8446afc570fae)
16197dc98SJit Loon Lim /*
26197dc98SJit Loon Lim  * Copyright (c) 2019-2023, Intel Corporation. All rights reserved.
3*815245e4SSieu Mun Tang  * Copyright (c) 2024, Altera Corporation. All rights reserved.
46197dc98SJit Loon Lim  *
56197dc98SJit Loon Lim  * SPDX-License-Identifier: BSD-3-Clause
66197dc98SJit Loon Lim  */
76197dc98SJit Loon Lim #ifndef AGX_SOCFPGA_SYSTEMMANAGER_H
86197dc98SJit Loon Lim #define AGX_SOCFPGA_SYSTEMMANAGER_H
96197dc98SJit Loon Lim 
106197dc98SJit Loon Lim #include "socfpga_plat_def.h"
116197dc98SJit Loon Lim 
126197dc98SJit Loon Lim /* System Manager Register Map */
136197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_SILICONID_1			0x00
146197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_SILICONID_2			0x04
156197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_WDDBG				0x08
166197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_MPU_STATUS			0x10
176197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_SDMMC_L3_MASTER			0x2C
186197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_NAND_L3_MASTER			0x34
196197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_USB0_L3_MASTER			0x38
206197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_USB1_L3_MASTER			0x3C
216197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_TSN_GLOBAL			0x40
226197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_EMAC_0				0x44 /* TSN_0 */
236197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_EMAC_1				0x48 /* TSN_1 */
246197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_EMAC_2				0x4C /* TSN_2 */
256197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_TSN_0_ACE			0x50
266197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_TSN_1_ACE			0x54
276197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_TSN_2_ACE			0x58
286197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_FPGAINTF_EN_1			0x68
296197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_FPGAINTF_EN_2			0x6C
306197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_FPGAINTF_EN_3			0x70
316197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_DMAC0_L3_MASTER			0x74
326197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_ETR_L3_MASTER			0x78
336197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_DMAC1_L3_MASTER			0x7C
346197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_SEC_CTRL_SLT			0x80
356197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_OSC_TRIM				0x84
366197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_DMAC0_CTRL_STATUS_REG		0x88
376197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_DMAC1_CTRL_STATUS_REG		0x8C
386197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_ECC_INTMASK_VALUE		0x90
396197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_ECC_INTMASK_SET			0x94
406197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_ECC_INTMASK_CLR			0x98
416197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_ECC_INTMASK_SERR			0x9C
426197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_ECC_INTMASK_DERR			0xA0
436197dc98SJit Loon Lim /* NOC configuration value for Agilex5 */
446197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_NOC_TIMEOUT			0xC0
456197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_NOC_IDLEREQ_SET			0xC4
466197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_NOC_IDLEREQ_CLR			0xC8
476197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_NOC_IDLEREQ_VAL			0xCC
486197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_NOC_IDLEACK			0xD0
496197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_NOC_IDLESTATUS			0xD4
506197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_FPGA2SOC_CTRL			0xD8
516197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_FPGA_CFG				0xDC
526197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_GPO				0xE4
536197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_GPI				0xE8
546197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_MPU				0xF0
556197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_SDM_HPS_SPARE			0xF4
566197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_HPS_SDM_SPARE			0xF8
576197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_DFI_INTF				0xFC
586197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_NAND_DD_CTRL			0x100
596197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_NAND_PHY_CTRL_REG		0x104
606197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_NAND_PHY_TSEL_REG		0x108
616197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_NAND_DQ_TIMING_REG		0x10C
626197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_PHY_DQS_TIMING_REG		0x110
636197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_NAND_PHY_GATE_LPBK_CTRL_REG	0x114
646197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_NAND_PHY_DLL_MASTER_CTRL_REG	0x118
656197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_NAND_PHY_DLL_SLAVE_CTRL_REG	0x11C
666197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_NAND_DD_DEFAULT_SETTING_REG0	0x120
676197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_NAND_DD_DEFAULT_SETTING_REG1	0x124
686197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_NAND_DD_STATUS_REG		0x128
696197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_NAND_DD_ID_LOW_REG		0x12C
706197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_NAND_DD_ID_HIGH_REG		0x130
716197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_NAND_WRITE_PROT_EN_REG		0x134
726197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_SDMMC_CMD_QUEUE_SETTING_REG	0x138
736197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_I3C_SLV_PID_LOW			0x13C
746197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_I3C_SLV_PID_HIGH			0x140
756197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_I3C_SLV_CTRL_0			0x144
766197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_I3C_SLV_CTRL_1			0x148
776197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_F2S_BRIDGE_CTRL			0x14C
786197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_DMA_TBU_STASH_CTRL_REG_0_DMA0	0x150
796197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_DMA_TBU_STASH_CTRL_REG_0_DMA1	0x154
806197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_SDM_TBU_STASH_CTRL_REG_1_SDM	0x158
816197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_IO_TBU_STASH_CTRL_REG_2_USB2	0x15C
826197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_IO_TBU_STASH_CTRL_REG_2_USB3	0x160
836197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_IO_TBU_STASH_CTRL_REG_2_SDMMC	0x164
846197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_IO_TBU_STASH_CTRL_REG_2_NAND	0x168
856197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_IO_TBU_STASH_CTRL_REG_2_ETR	0x16C
866197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_TSN_TBU_STASH_CTRL_REG_3_TSN0	0x170
876197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_TSN_TBU_STASH_CTRL_REG_3_TSN1	0x174
886197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_TSN_TBU_STASH_CTRL_REG_3_TSN2	0x178
896197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_DMA_TBU_STREAM_CTRL_REG_0_DMA0	0x17C
906197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_DMA_TBU_STREAM_CTRL_REG_0_DMA1	0x180
916197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_SDM_TBU_STREAM_CTRL_REG_1_SDM	0x184
926197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_IO_TBU_STREAM_CTRL_REG_2_USB2	0x188
936197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_IO_TBU_STREAM_CTRL_REG_2_USB3	0x18C
946197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_IO_TBU_STREAM_CTRL_REG_2_SDMMC	0x190
956197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_IO_TBU_STREAM_CTRL_REG_2_NAND	0x194
966197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_IO_TBU_STREAM_CTRL_REG_2_ETR	0x198
976197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_TSN_TBU_STREAM_CTRL_REG_3_TSN0	0x19C
986197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_TSN_TBU_STREAM_CTRL_REG_3_TSN1	0x1A0
996197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_TSN_TBU_STREAM_CTRL_REG_3_TSN2	0x1A4
1006197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_DMA_TBU_STREAM_ID_AX_REG_0_DMA0	0x1A8
1016197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_DMA_TBU_STREAM_ID_AX_REG_0_DMA1	0x1AC
1026197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_SDM_TBU_STREAM_ID_AX_REG_1_SDM	0x1B0
1036197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_IO_TBU_STREAM_ID_AX_REG_2_USB2	0x1B4
1046197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_IO_TBU_STREAM_ID_AX_REG_2_USB3	0x1B8
1056197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_IO_TBU_STREAM_ID_AX_REG_2_SDMMC	0x1BC
1066197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_IO_TBU_STREAM_ID_AX_REG_2_NAND	0x1C0
1076197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_IO_TBU_STREAM_ID_AX_REG_2_ETR	0x1C4
1086197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_IO_TBU_STREAM_ID_AX_REG_2_TSN0	0x1C8
1096197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_IO_TBU_STREAM_ID_AX_REG_2_TSN1	0x1CC
1106197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_IO_TBU_STREAM_ID_AX_REG_2_TSN2	0x1D0
1116197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_USB3_MISC_CTRL_REG0		0x1F0
1126197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_USB3_MISC_CTRL_REG1		0x1F4
1136197dc98SJit Loon Lim 
1146197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_BOOT_SCRATCH_COLD_0		0x200
1156197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_BOOT_SCRATCH_COLD_1		0x204
1166197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_BOOT_SCRATCH_COLD_2		0x208
1176197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_BOOT_SCRATCH_COLD_3		0x20C
1186197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_BOOT_SCRATCH_COLD_4		0x210
1196197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_BOOT_SCRATCH_COLD_5		0x214
1206197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_BOOT_SCRATCH_COLD_6		0x218
1216197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_BOOT_SCRATCH_COLD_7		0x21C
1226197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_BOOT_SCRATCH_COLD_8		0x220
1236197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_BOOT_SCRATCH_COLD_9		0x224
1246197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_MPFE_CONFIG			0x228
125*815245e4SSieu Mun Tang #define SOCFPGA_SYSMGR_MPFE_STATUS			0x22C
1266197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_BOOT_SCRATCH_WARM_0		0x230
1276197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_BOOT_SCRATCH_WARM_1		0x234
1286197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_BOOT_SCRATCH_WARM_2		0x238
1296197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_BOOT_SCRATCH_WARM_3		0x23C
1306197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_BOOT_SCRATCH_WARM_4		0x240
1316197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_BOOT_SCRATCH_WARM_5		0x244
1326197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_BOOT_SCRATCH_WARM_6		0x248
1336197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_BOOT_SCRATCH_WARM_7		0x24C
1346197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_BOOT_SCRATCH_WARM_8		0x250
1356197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_BOOT_SCRATCH_WARM_9		0x254
1366197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_BOOT_SCRATCH_POR_0		0x258
1376197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_BOOT_SCRATCH_POR_1		0x25C
1386197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_BOOT_SCRATCH_POR_2		0x260
1396197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_BOOT_SCRATCH_POR_3		0x264
1406197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_BOOT_SCRATCH_POR_4		0x268
1416197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_BOOT_SCRATCH_POR_5		0x26C
1426197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_BOOT_SCRATCH_POR_6		0x270
1436197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_BOOT_SCRATCH_POR_7		0x274
1446197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_BOOT_SCRATCH_POR_8		0x278
1456197dc98SJit Loon Lim #define SOCFPGA_SYSMGR_BOOT_SCRATCH_POR_9		0x27C
1466197dc98SJit Loon Lim 
147d6ae69c8SSieu Mun Tang /* QSPI ECC from SDM register */
148d6ae69c8SSieu Mun Tang #define SOCFPGA_ECC_QSPI_CTRL				0x08
149d6ae69c8SSieu Mun Tang #define SOCFPGA_ECC_QSPI_ERRINTEN			0x10
150d6ae69c8SSieu Mun Tang #define SOCFPGA_ECC_QSPI_ERRINTENS			0x14
151d6ae69c8SSieu Mun Tang #define SOCFPGA_ECC_QSPI_ERRINTENR			0x18
152d6ae69c8SSieu Mun Tang #define SOCFPGA_ECC_QSPI_INTMODE			0x1C
153d6ae69c8SSieu Mun Tang #define SOCFPGA_ECC_QSPI_INTSTAT			0x20
154d6ae69c8SSieu Mun Tang #define SOCFPGA_ECC_QSPI_INTTEST			0x24
155d6ae69c8SSieu Mun Tang #define SOCFPGA_ECC_QSPI_ECC_ACCCTRL			0x78
156d6ae69c8SSieu Mun Tang #define SOCFPGA_ECC_QSPI_ECC_STARTACC			0x7C
157d6ae69c8SSieu Mun Tang #define SOCFPGA_ECC_QSPI_ECC_WDCTRL			0x80
158d6ae69c8SSieu Mun Tang 
1596197dc98SJit Loon Lim #define DMA0_STREAM_CTRL_REG				0x10D1217C
1606197dc98SJit Loon Lim #define DMA1_STREAM_CTRL_REG				0x10D12180
1616197dc98SJit Loon Lim #define SDM_STREAM_CTRL_REG				0x10D12184
1626197dc98SJit Loon Lim #define USB2_STREAM_CTRL_REG				0x10D12188
1636197dc98SJit Loon Lim #define USB3_STREAM_CTRL_REG				0x10D1218C
1646197dc98SJit Loon Lim #define SDMMC_STREAM_CTRL_REG				0x10D12190
1656197dc98SJit Loon Lim #define NAND_STREAM_CTRL_REG				0x10D12194
1666197dc98SJit Loon Lim #define ETR_STREAM_CTRL_REG				0x10D12198
1676197dc98SJit Loon Lim #define TSN0_STREAM_CTRL_REG				0x10D1219C
1686197dc98SJit Loon Lim #define TSN1_STREAM_CTRL_REG				0x10D121A0
1696197dc98SJit Loon Lim #define TSN2_STREAM_CTRL_REG				0x10D121A4
1706197dc98SJit Loon Lim 
1716197dc98SJit Loon Lim /* Stream ID configuration value for Agilex5 */
1726197dc98SJit Loon Lim #define TSN0						0x00010001
1736197dc98SJit Loon Lim #define TSN1						0x00020002
1746197dc98SJit Loon Lim #define TSN2						0x00030003
1756197dc98SJit Loon Lim #define NAND						0x00040004
1766197dc98SJit Loon Lim #define SDMMC						0x00050005
1776197dc98SJit Loon Lim #define USB0						0x00060006
1786197dc98SJit Loon Lim #define USB1						0x00070007
1796197dc98SJit Loon Lim #define DMA0						0x00080008
1806197dc98SJit Loon Lim #define DMA1						0x00090009
1816197dc98SJit Loon Lim #define SDM						0x000A000A
1826197dc98SJit Loon Lim #define CORE_SIGHT_DEBUG				0x000B000B
1836197dc98SJit Loon Lim 
1846197dc98SJit Loon Lim /* Field Masking */
1856197dc98SJit Loon Lim #define SYSMGR_SDMMC_DRVSEL(x)				(((x) & 0x7) << 0)
1866197dc98SJit Loon Lim #define SYSMGR_SDMMC_SMPLSEL(x)				(((x) & 0x7) << 4)
1876197dc98SJit Loon Lim #define IDLE_DATA_LWSOC2FPGA				BIT(4)
1886197dc98SJit Loon Lim #define IDLE_DATA_SOC2FPGA				BIT(0)
1896197dc98SJit Loon Lim #define IDLE_DATA_MASK					(IDLE_DATA_LWSOC2FPGA | IDLE_DATA_SOC2FPGA)
1906197dc98SJit Loon Lim #define SYSMGR_ECC_OCRAM_MASK				BIT(1)
1916197dc98SJit Loon Lim #define SYSMGR_ECC_DDR0_MASK				BIT(16)
1926197dc98SJit Loon Lim #define SYSMGR_ECC_DDR1_MASK				BIT(17)
1936197dc98SJit Loon Lim #define WSTREAMIDEN_REG_CTRL				BIT(0)
1946197dc98SJit Loon Lim #define RSTREAMIDEN_REG_CTRL				BIT(1)
1956197dc98SJit Loon Lim #define WMMUSECSID_REG_VAL				BIT(4)
1966197dc98SJit Loon Lim #define RMMUSECSID_REG_VAL				BIT(5)
1976197dc98SJit Loon Lim 
1986197dc98SJit Loon Lim /* Macros */
199d6ae69c8SSieu Mun Tang #define SOCFPGA_ECC_QSPI(_reg)				(SOCFPGA_ECC_QSPI_REG_BASE \
200d6ae69c8SSieu Mun Tang 								+ (SOCFPGA_ECC_QSPI_##_reg))
201d6ae69c8SSieu Mun Tang 
2026197dc98SJit Loon Lim #define SOCFPGA_SYSMGR(_reg)				(SOCFPGA_SYSMGR_REG_BASE \
2036197dc98SJit Loon Lim 								+ (SOCFPGA_SYSMGR_##_reg))
2046197dc98SJit Loon Lim 
2056197dc98SJit Loon Lim #define ENABLE_STREAMID					WSTREAMIDEN_REG_CTRL | \
2066197dc98SJit Loon Lim 							RSTREAMIDEN_REG_CTRL
2076197dc98SJit Loon Lim #define ENABLE_STREAMID_SECURE_TX			WSTREAMIDEN_REG_CTRL | \
2086197dc98SJit Loon Lim 							RSTREAMIDEN_REG_CTRL | \
2096197dc98SJit Loon Lim 							WMMUSECSID_REG_VAL | RMMUSECSID_REG_VAL
2106197dc98SJit Loon Lim 
2116197dc98SJit Loon Lim #endif /* AGX5_SOCFPGA_SYSTEMMANAGER_H */
212