xref: /arm-trusted-firmware/plat/intel/soc/agilex5/include/agilex5_system_manager.h (revision 91f16700b400a8c0651d24a598fc48ee2997a0d7)
1*91f16700Schasinglulu /*
2*91f16700Schasinglulu  * Copyright (c) 2019-2023, Intel Corporation. All rights reserved.
3*91f16700Schasinglulu  *
4*91f16700Schasinglulu  * SPDX-License-Identifier: BSD-3-Clause
5*91f16700Schasinglulu  */
6*91f16700Schasinglulu #ifndef AGX5_SOCFPGA_SYSTEMMANAGER_H
7*91f16700Schasinglulu #define AGX5_SOCFPGA_SYSTEMMANAGER_H
8*91f16700Schasinglulu 
9*91f16700Schasinglulu #include "socfpga_plat_def.h"
10*91f16700Schasinglulu 
11*91f16700Schasinglulu /* System Manager Register Map */
12*91f16700Schasinglulu #define SOCFPGA_SYSMGR_SILICONID_1					0x00
13*91f16700Schasinglulu #define SOCFPGA_SYSMGR_SILICONID_2					0x04
14*91f16700Schasinglulu #define SOCFPGA_SYSMGR_WDDBG						0x08
15*91f16700Schasinglulu #define SOCFPGA_SYSMGR_MPU_STATUS					0x10
16*91f16700Schasinglulu #define SOCFPGA_SYSMGR_SDMMC_L3_MASTER					0x2C
17*91f16700Schasinglulu #define SOCFPGA_SYSMGR_NAND_L3_MASTER					0x34
18*91f16700Schasinglulu #define SOCFPGA_SYSMGR_USB0_L3_MASTER					0x38
19*91f16700Schasinglulu #define SOCFPGA_SYSMGR_USB1_L3_MASTER					0x3C
20*91f16700Schasinglulu #define SOCFPGA_SYSMGR_TSN_GLOBAL					0x40
21*91f16700Schasinglulu #define SOCFPGA_SYSMGR_EMAC_0						0x44 /* TSN_0 */
22*91f16700Schasinglulu #define SOCFPGA_SYSMGR_EMAC_1						0x48 /* TSN_1 */
23*91f16700Schasinglulu #define SOCFPGA_SYSMGR_EMAC_2						0x4C /* TSN_2 */
24*91f16700Schasinglulu #define SOCFPGA_SYSMGR_TSN_0_ACE					0x50
25*91f16700Schasinglulu #define SOCFPGA_SYSMGR_TSN_1_ACE					0x54
26*91f16700Schasinglulu #define SOCFPGA_SYSMGR_TSN_2_ACE					0x58
27*91f16700Schasinglulu #define SOCFPGA_SYSMGR_FPGAINTF_EN_1					0x68
28*91f16700Schasinglulu #define SOCFPGA_SYSMGR_FPGAINTF_EN_2					0x6C
29*91f16700Schasinglulu #define SOCFPGA_SYSMGR_FPGAINTF_EN_3					0x70
30*91f16700Schasinglulu #define SOCFPGA_SYSMGR_DMAC0_L3_MASTER					0x74
31*91f16700Schasinglulu #define SOCFPGA_SYSMGR_ETR_L3_MASTER					0x78
32*91f16700Schasinglulu #define SOCFPGA_SYSMGR_DMAC1_L3_MASTER					0x7C
33*91f16700Schasinglulu #define SOCFPGA_SYSMGR_SEC_CTRL_SLT					0x80
34*91f16700Schasinglulu #define SOCFPGA_SYSMGR_OSC_TRIM						0x84
35*91f16700Schasinglulu #define SOCFPGA_SYSMGR_DMAC0_CTRL_STATUS_REG				0x88
36*91f16700Schasinglulu #define SOCFPGA_SYSMGR_DMAC1_CTRL_STATUS_REG				0x8C
37*91f16700Schasinglulu #define SOCFPGA_SYSMGR_ECC_INTMASK_VALUE				0x90
38*91f16700Schasinglulu #define SOCFPGA_SYSMGR_ECC_INTMASK_SET					0x94
39*91f16700Schasinglulu #define SOCFPGA_SYSMGR_ECC_INTMASK_CLR					0x98
40*91f16700Schasinglulu #define SOCFPGA_SYSMGR_ECC_INTMASK_SERR					0x9C
41*91f16700Schasinglulu #define SOCFPGA_SYSMGR_ECC_INTMASK_DERR					0xA0
42*91f16700Schasinglulu /* NOC configuration value */
43*91f16700Schasinglulu #define SOCFPGA_SYSMGR_NOC_TIMEOUT					0xC0
44*91f16700Schasinglulu #define SOCFPGA_SYSMGR_NOC_IDLEREQ_SET					0xC4
45*91f16700Schasinglulu #define SOCFPGA_SYSMGR_NOC_IDLEREQ_CLR					0xC8
46*91f16700Schasinglulu #define SOCFPGA_SYSMGR_NOC_IDLEREQ_VAL					0xCC
47*91f16700Schasinglulu #define SOCFPGA_SYSMGR_NOC_IDLEACK					0xD0
48*91f16700Schasinglulu #define SOCFPGA_SYSMGR_NOC_IDLESTATUS					0xD4
49*91f16700Schasinglulu #define SOCFPGA_SYSMGR_FPGA2SOC_CTRL					0xD8
50*91f16700Schasinglulu #define SOCFPGA_SYSMGR_FPGA_CFG						0xDC
51*91f16700Schasinglulu #define SOCFPGA_SYSMGR_GPO						0xE4
52*91f16700Schasinglulu #define SOCFPGA_SYSMGR_GPI						0xE8
53*91f16700Schasinglulu #define SOCFPGA_SYSMGR_MPU						0xF0
54*91f16700Schasinglulu #define SOCFPGA_SYSMGR_SDM_HPS_SPARE					0xF4
55*91f16700Schasinglulu #define SOCFPGA_SYSMGR_HPS_SDM_SPARE					0xF8
56*91f16700Schasinglulu #define SOCFPGA_SYSMGR_DFI_INTF						0xFC
57*91f16700Schasinglulu #define SOCFPGA_SYSMGR_NAND_DD_CTRL					0x100
58*91f16700Schasinglulu #define SOCFPGA_SYSMGR_NAND_PHY_CTRL_REG				0x104
59*91f16700Schasinglulu #define SOCFPGA_SYSMGR_NAND_PHY_TSEL_REG				0x108
60*91f16700Schasinglulu #define SOCFPGA_SYSMGR_NAND_DQ_TIMING_REG				0x10C
61*91f16700Schasinglulu #define SOCFPGA_SYSMGR_PHY_DQS_TIMING_REG				0x110
62*91f16700Schasinglulu #define SOCFPGA_SYSMGR_NAND_PHY_GATE_LPBK_CTRL_REG			0x114
63*91f16700Schasinglulu #define SOCFPGA_SYSMGR_NAND_PHY_DLL_MASTER_CTRL_REG			0x118
64*91f16700Schasinglulu #define SOCFPGA_SYSMGR_NAND_PHY_DLL_SLAVE_CTRL_REG			0x11C
65*91f16700Schasinglulu #define SOCFPGA_SYSMGR_NAND_DD_DEFAULT_SETTING_REG0			0x120
66*91f16700Schasinglulu #define SOCFPGA_SYSMGR_NAND_DD_DEFAULT_SETTING_REG1			0x124
67*91f16700Schasinglulu #define SOCFPGA_SYSMGR_NAND_DD_STATUS_REG				0x128
68*91f16700Schasinglulu #define SOCFPGA_SYSMGR_NAND_DD_ID_LOW_REG				0x12C
69*91f16700Schasinglulu #define SOCFPGA_SYSMGR_NAND_DD_ID_HIGH_REG				0x130
70*91f16700Schasinglulu #define SOCFPGA_SYSMGR_NAND_WRITE_PROT_EN_REG				0x134
71*91f16700Schasinglulu #define SOCFPGA_SYSMGR_SDMMC_CMD_QUEUE_SETTING_REG			0x138
72*91f16700Schasinglulu #define SOCFPGA_SYSMGR_I3C_SLV_PID_LOW					0x13C
73*91f16700Schasinglulu #define SOCFPGA_SYSMGR_I3C_SLV_PID_HIGH					0x140
74*91f16700Schasinglulu #define SOCFPGA_SYSMGR_I3C_SLV_CTRL_0					0x144
75*91f16700Schasinglulu #define SOCFPGA_SYSMGR_I3C_SLV_CTRL_1					0x148
76*91f16700Schasinglulu #define SOCFPGA_SYSMGR_F2S_BRIDGE_CTRL					0x14C
77*91f16700Schasinglulu #define SOCFPGA_SYSMGR_DMA_TBU_STASH_CTRL_REG_0_DMA0			0x150
78*91f16700Schasinglulu #define SOCFPGA_SYSMGR_DMA_TBU_STASH_CTRL_REG_0_DMA1			0x154
79*91f16700Schasinglulu #define SOCFPGA_SYSMGR_SDM_TBU_STASH_CTRL_REG_1_SDM			0x158
80*91f16700Schasinglulu #define SOCFPGA_SYSMGR_IO_TBU_STASH_CTRL_REG_2_USB2			0x15C
81*91f16700Schasinglulu #define SOCFPGA_SYSMGR_IO_TBU_STASH_CTRL_REG_2_USB3			0x160
82*91f16700Schasinglulu #define SOCFPGA_SYSMGR_IO_TBU_STASH_CTRL_REG_2_SDMMC			0x164
83*91f16700Schasinglulu #define SOCFPGA_SYSMGR_IO_TBU_STASH_CTRL_REG_2_NAND			0x168
84*91f16700Schasinglulu #define SOCFPGA_SYSMGR_IO_TBU_STASH_CTRL_REG_2_ETR			0x16C
85*91f16700Schasinglulu #define SOCFPGA_SYSMGR_TSN_TBU_STASH_CTRL_REG_3_TSN0			0x170
86*91f16700Schasinglulu #define SOCFPGA_SYSMGR_TSN_TBU_STASH_CTRL_REG_3_TSN1			0x174
87*91f16700Schasinglulu #define SOCFPGA_SYSMGR_TSN_TBU_STASH_CTRL_REG_3_TSN2			0x178
88*91f16700Schasinglulu #define SOCFPGA_SYSMGR_DMA_TBU_STREAM_CTRL_REG_0_DMA0			0x17C
89*91f16700Schasinglulu #define SOCFPGA_SYSMGR_DMA_TBU_STREAM_CTRL_REG_0_DMA1			0x180
90*91f16700Schasinglulu #define SOCFPGA_SYSMGR_SDM_TBU_STREAM_CTRL_REG_1_SDM			0x184
91*91f16700Schasinglulu #define SOCFPGA_SYSMGR_IO_TBU_STREAM_CTRL_REG_2_USB2			0x188
92*91f16700Schasinglulu #define SOCFPGA_SYSMGR_IO_TBU_STREAM_CTRL_REG_2_USB3			0x18C
93*91f16700Schasinglulu #define SOCFPGA_SYSMGR_IO_TBU_STREAM_CTRL_REG_2_SDMMC			0x190
94*91f16700Schasinglulu #define SOCFPGA_SYSMGR_IO_TBU_STREAM_CTRL_REG_2_NAND			0x194
95*91f16700Schasinglulu #define SOCFPGA_SYSMGR_IO_TBU_STREAM_CTRL_REG_2_ETR			0x198
96*91f16700Schasinglulu #define SOCFPGA_SYSMGR_TSN_TBU_STREAM_CTRL_REG_3_TSN0			0x19C
97*91f16700Schasinglulu #define SOCFPGA_SYSMGR_TSN_TBU_STREAM_CTRL_REG_3_TSN1			0x1A0
98*91f16700Schasinglulu #define SOCFPGA_SYSMGR_TSN_TBU_STREAM_CTRL_REG_3_TSN2			0x1A4
99*91f16700Schasinglulu #define SOCFPGA_SYSMGR_DMA_TBU_STREAM_ID_AX_REG_0_DMA0			0x1A8
100*91f16700Schasinglulu #define SOCFPGA_SYSMGR_DMA_TBU_STREAM_ID_AX_REG_0_DMA1			0x1AC
101*91f16700Schasinglulu #define SOCFPGA_SYSMGR_SDM_TBU_STREAM_ID_AX_REG_1_SDM			0x1B0
102*91f16700Schasinglulu #define SOCFPGA_SYSMGR_IO_TBU_STREAM_ID_AX_REG_2_USB2			0x1B4
103*91f16700Schasinglulu #define SOCFPGA_SYSMGR_IO_TBU_STREAM_ID_AX_REG_2_USB3			0x1B8
104*91f16700Schasinglulu #define SOCFPGA_SYSMGR_IO_TBU_STREAM_ID_AX_REG_2_SDMMC			0x1BC
105*91f16700Schasinglulu #define SOCFPGA_SYSMGR_IO_TBU_STREAM_ID_AX_REG_2_NAND			0x1C0
106*91f16700Schasinglulu #define SOCFPGA_SYSMGR_IO_TBU_STREAM_ID_AX_REG_2_ETR			0x1C4
107*91f16700Schasinglulu #define SOCFPGA_SYSMGR_IO_TBU_STREAM_ID_AX_REG_2_TSN0			0x1C8
108*91f16700Schasinglulu #define SOCFPGA_SYSMGR_IO_TBU_STREAM_ID_AX_REG_2_TSN1			0x1CC
109*91f16700Schasinglulu #define SOCFPGA_SYSMGR_IO_TBU_STREAM_ID_AX_REG_2_TSN2			0x1D0
110*91f16700Schasinglulu #define SOCFPGA_SYSMGR_USB3_MISC_CTRL_REG0				0x1F0
111*91f16700Schasinglulu #define SOCFPGA_SYSMGR_USB3_MISC_CTRL_REG1				0x1F4
112*91f16700Schasinglulu 
113*91f16700Schasinglulu #define SOCFPGA_SYSMGR_BOOT_SCRATCH_COLD_0				0x200
114*91f16700Schasinglulu #define SOCFPGA_SYSMGR_BOOT_SCRATCH_COLD_1				0x204
115*91f16700Schasinglulu #define SOCFPGA_SYSMGR_BOOT_SCRATCH_COLD_2				0x208
116*91f16700Schasinglulu #define SOCFPGA_SYSMGR_BOOT_SCRATCH_COLD_3				0x20C
117*91f16700Schasinglulu #define SOCFPGA_SYSMGR_BOOT_SCRATCH_COLD_4				0x210
118*91f16700Schasinglulu #define SOCFPGA_SYSMGR_BOOT_SCRATCH_COLD_5				0x214
119*91f16700Schasinglulu #define SOCFPGA_SYSMGR_BOOT_SCRATCH_COLD_6				0x218
120*91f16700Schasinglulu #define SOCFPGA_SYSMGR_BOOT_SCRATCH_COLD_7				0x21C
121*91f16700Schasinglulu #define SOCFPGA_SYSMGR_BOOT_SCRATCH_COLD_8				0x220
122*91f16700Schasinglulu #define SOCFPGA_SYSMGR_BOOT_SCRATCH_COLD_9				0x224
123*91f16700Schasinglulu #define SOCFPGA_SYSMGR_MPFE_CONFIG					0x228
124*91f16700Schasinglulu #define SOCFPGA_SYSMGR_MPFE_status					0x22C
125*91f16700Schasinglulu #define SOCFPGA_SYSMGR_BOOT_SCRATCH_WARM_0				0x230
126*91f16700Schasinglulu #define SOCFPGA_SYSMGR_BOOT_SCRATCH_WARM_1				0x234
127*91f16700Schasinglulu #define SOCFPGA_SYSMGR_BOOT_SCRATCH_WARM_2				0x238
128*91f16700Schasinglulu #define SOCFPGA_SYSMGR_BOOT_SCRATCH_WARM_3				0x23C
129*91f16700Schasinglulu #define SOCFPGA_SYSMGR_BOOT_SCRATCH_WARM_4				0x240
130*91f16700Schasinglulu #define SOCFPGA_SYSMGR_BOOT_SCRATCH_WARM_5				0x244
131*91f16700Schasinglulu #define SOCFPGA_SYSMGR_BOOT_SCRATCH_WARM_6				0x248
132*91f16700Schasinglulu #define SOCFPGA_SYSMGR_BOOT_SCRATCH_WARM_7				0x24C
133*91f16700Schasinglulu #define SOCFPGA_SYSMGR_BOOT_SCRATCH_WARM_8				0x250
134*91f16700Schasinglulu #define SOCFPGA_SYSMGR_BOOT_SCRATCH_WARM_9				0x254
135*91f16700Schasinglulu #define SOCFPGA_SYSMGR_BOOT_SCRATCH_POR_0				0x258
136*91f16700Schasinglulu #define SOCFPGA_SYSMGR_BOOT_SCRATCH_POR_1				0x25C
137*91f16700Schasinglulu #define SOCFPGA_SYSMGR_BOOT_SCRATCH_POR_2				0x260
138*91f16700Schasinglulu #define SOCFPGA_SYSMGR_BOOT_SCRATCH_POR_3				0x264
139*91f16700Schasinglulu #define SOCFPGA_SYSMGR_BOOT_SCRATCH_POR_4				0x268
140*91f16700Schasinglulu #define SOCFPGA_SYSMGR_BOOT_SCRATCH_POR_5				0x26C
141*91f16700Schasinglulu #define SOCFPGA_SYSMGR_BOOT_SCRATCH_POR_6				0x270
142*91f16700Schasinglulu #define SOCFPGA_SYSMGR_BOOT_SCRATCH_POR_7				0x274
143*91f16700Schasinglulu #define SOCFPGA_SYSMGR_BOOT_SCRATCH_POR_8				0x278
144*91f16700Schasinglulu #define SOCFPGA_SYSMGR_BOOT_SCRATCH_POR_9				0x27C
145*91f16700Schasinglulu 
146*91f16700Schasinglulu #define DMA0_STREAM_CTRL_REG						0x10D1217C
147*91f16700Schasinglulu #define DMA1_STREAM_CTRL_REG						0x10D12180
148*91f16700Schasinglulu #define SDM_STREAM_CTRL_REG						0x10D12184
149*91f16700Schasinglulu #define USB2_STREAM_CTRL_REG						0x10D12188
150*91f16700Schasinglulu #define USB3_STREAM_CTRL_REG						0x10D1218C
151*91f16700Schasinglulu #define SDMMC_STREAM_CTRL_REG						0x10D12190
152*91f16700Schasinglulu #define NAND_STREAM_CTRL_REG						0x10D12194
153*91f16700Schasinglulu #define ETR_STREAM_CTRL_REG						0x10D12198
154*91f16700Schasinglulu #define TSN0_STREAM_CTRL_REG						0x10D1219C
155*91f16700Schasinglulu #define TSN1_STREAM_CTRL_REG						0x10D121A0
156*91f16700Schasinglulu #define TSN2_STREAM_CTRL_REG						0x10D121A4
157*91f16700Schasinglulu 
158*91f16700Schasinglulu /* Stream ID configuration value for Agilex5 */
159*91f16700Schasinglulu #define TSN0								0x00010001
160*91f16700Schasinglulu #define TSN1								0x00020002
161*91f16700Schasinglulu #define TSN2								0x00030003
162*91f16700Schasinglulu #define NAND								0x00040004
163*91f16700Schasinglulu #define SDMMC								0x00050005
164*91f16700Schasinglulu #define USB0								0x00060006
165*91f16700Schasinglulu #define USB1								0x00070007
166*91f16700Schasinglulu #define DMA0								0x00080008
167*91f16700Schasinglulu #define DMA1								0x00090009
168*91f16700Schasinglulu #define SDM								0x000A000A
169*91f16700Schasinglulu #define CORE_SIGHT_DEBUG						0x000B000B
170*91f16700Schasinglulu 
171*91f16700Schasinglulu /* Field Masking */
172*91f16700Schasinglulu #define SYSMGR_SDMMC_DRVSEL(x)						(((x) & 0x7) << 0)
173*91f16700Schasinglulu #define SYSMGR_SDMMC_SMPLSEL(x)						(((x) & 0x7) << 4)
174*91f16700Schasinglulu 
175*91f16700Schasinglulu #define SYSMGR_F2S_BRIDGE_CTRL_EN					BIT(0)
176*91f16700Schasinglulu #define IDLE_DATA_LWSOC2FPGA						BIT(4)
177*91f16700Schasinglulu #define IDLE_DATA_SOC2FPGA						BIT(0)
178*91f16700Schasinglulu #define IDLE_DATA_MASK							(IDLE_DATA_LWSOC2FPGA \
179*91f16700Schasinglulu 									| IDLE_DATA_SOC2FPGA)
180*91f16700Schasinglulu #define SYSMGR_ECC_OCRAM_MASK						BIT(1)
181*91f16700Schasinglulu #define SYSMGR_ECC_DDR0_MASK						BIT(16)
182*91f16700Schasinglulu #define SYSMGR_ECC_DDR1_MASK						BIT(17)
183*91f16700Schasinglulu 
184*91f16700Schasinglulu #define WSTREAMIDEN_REG_CTRL						BIT(0)
185*91f16700Schasinglulu #define RSTREAMIDEN_REG_CTRL						BIT(1)
186*91f16700Schasinglulu #define WMMUSECSID_REG_VAL						BIT(4)
187*91f16700Schasinglulu #define RMMUSECSID_REG_VAL						BIT(5)
188*91f16700Schasinglulu 
189*91f16700Schasinglulu /* Macros */
190*91f16700Schasinglulu #define SOCFPGA_SYSMGR(_reg)						(SOCFPGA_SYSMGR_REG_BASE \
191*91f16700Schasinglulu 									+ (SOCFPGA_SYSMGR_##_reg))
192*91f16700Schasinglulu 
193*91f16700Schasinglulu #define ENABLE_STREAMID							WSTREAMIDEN_REG_CTRL \
194*91f16700Schasinglulu 									| RSTREAMIDEN_REG_CTRL
195*91f16700Schasinglulu #define ENABLE_STREAMID_SECURE_TX					WSTREAMIDEN_REG_CTRL \
196*91f16700Schasinglulu 									| RSTREAMIDEN_REG_CTRL \
197*91f16700Schasinglulu 									| WMMUSECSID_REG_VAL \
198*91f16700Schasinglulu 									| RMMUSECSID_REG_VAL
199*91f16700Schasinglulu 
200*91f16700Schasinglulu #endif /* AGX5_SOCFPGA_SYSTEMMANAGER_H */
201