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