xref: /arm-trusted-firmware/plat/intel/soc/common/include/socfpga_noc.h (revision 91f16700b400a8c0651d24a598fc48ee2997a0d7)
1*91f16700Schasinglulu /*
2*91f16700Schasinglulu  * Copyright (c) 2020-2023, Intel Corporation. All rights reserved.
3*91f16700Schasinglulu  *
4*91f16700Schasinglulu  * SPDX-License-Identifier: BSD-3-Clause
5*91f16700Schasinglulu  */
6*91f16700Schasinglulu 
7*91f16700Schasinglulu #ifndef SOCFPGA_NOC_H
8*91f16700Schasinglulu #define SOCFPGA_NOC_H
9*91f16700Schasinglulu 
10*91f16700Schasinglulu /* Macros */
11*91f16700Schasinglulu #define SCR_AXI_AP_MASK					BIT(24)
12*91f16700Schasinglulu #define SCR_FPGA2SOC_MASK				BIT(16)
13*91f16700Schasinglulu #define SCR_MPU_MASK					BIT(0)
14*91f16700Schasinglulu #define DISABLE_L4_FIREWALL		(SCR_AXI_AP_MASK | SCR_FPGA2SOC_MASK \
15*91f16700Schasinglulu 						| SCR_MPU_MASK)
16*91f16700Schasinglulu #define DISABLE_BRIDGE_FIREWALL				0x0ffe0101
17*91f16700Schasinglulu 
18*91f16700Schasinglulu #define SOCFPGA_CCU_NOC(_ctrl, _dev)	(SOCFPGA_CCU_NOC_REG_BASE \
19*91f16700Schasinglulu 					+ (SOCFPGA_CCU_NOC_##_ctrl##_##_dev))
20*91f16700Schasinglulu 
21*91f16700Schasinglulu #define SOCFPGA_L4_PER_SCR(_reg)	(SOCFPGA_L4_PER_SCR_REG_BASE \
22*91f16700Schasinglulu 					+ (SOCFPGA_NOC_FW_L4_PER_SCR_##_reg))
23*91f16700Schasinglulu 
24*91f16700Schasinglulu #define SOCFPGA_L4_SYS_SCR(_reg)	(SOCFPGA_L4_SYS_SCR_REG_BASE \
25*91f16700Schasinglulu 					+ (SOCFPGA_NOC_FW_L4_SYS_SCR_##_reg))
26*91f16700Schasinglulu 
27*91f16700Schasinglulu /* L3 Interconnect Register Map */
28*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_PER_SCR_NAND_REGISTER			0x0000
29*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_PER_SCR_NAND_DATA			0x0004
30*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_PER_SCR_USB0_REGISTER			0x000c
31*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_PER_SCR_USB1_REGISTER			0x0010
32*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_PER_SCR_SPI_MASTER0			0x001c
33*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_PER_SCR_SPI_MASTER1			0x0020
34*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_PER_SCR_SPI_SLAVE0			0x0024
35*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_PER_SCR_SPI_SLAVE1			0x0028
36*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_PER_SCR_EMAC0				0x002c
37*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_PER_SCR_EMAC1				0x0030
38*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_PER_SCR_EMAC2				0x0034
39*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_PER_SCR_SDMMC				0x0040
40*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_PER_SCR_GPIO0				0x0044
41*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_PER_SCR_GPIO1				0x0048
42*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_PER_SCR_I2C0				0x0050
43*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_PER_SCR_I2C1				0x0054
44*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_PER_SCR_I2C2				0x0058
45*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_PER_SCR_I2C3				0x005c
46*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_PER_SCR_I2C4				0x0060
47*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_PER_SCR_SP_TIMER0			0x0064
48*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_PER_SCR_SP_TIMER1			0x0068
49*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_PER_SCR_UART0				0x006c
50*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_PER_SCR_UART1				0x0070
51*91f16700Schasinglulu 
52*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_SYS_SCR_DMA_ECC			0x0008
53*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_SYS_SCR_EMAC0RX_ECC			0x000c
54*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_SYS_SCR_EMAC0TX_ECC			0x0010
55*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_SYS_SCR_EMAC1RX_ECC			0x0014
56*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_SYS_SCR_EMAC1TX_ECC			0x0018
57*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_SYS_SCR_EMAC2RX_ECC			0x001c
58*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_SYS_SCR_EMAC2TX_ECC			0x0020
59*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_SYS_SCR_NAND_ECC			0x002c
60*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_SYS_SCR_NAND_READ_ECC			0x0030
61*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_SYS_SCR_NAND_WRITE_ECC		0x0034
62*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_SYS_SCR_OCRAM_ECC			0x0038
63*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_SYS_SCR_SDMMC_ECC			0x0040
64*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_SYS_SCR_USB0_ECC			0x0044
65*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_SYS_SCR_USB1_ECC			0x0048
66*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_SYS_SCR_CLK_MGR			0x004c
67*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_SYS_SCR_IO_MGR			0x0054
68*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_SYS_SCR_RST_MGR			0x0058
69*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_SYS_SCR_SYS_MGR			0x005c
70*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_SYS_SCR_OSC0_TIMER			0x0060
71*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_SYS_SCR_OSC1_TIMER			0x0064
72*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_SYS_SCR_WATCHDOG0			0x0068
73*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_SYS_SCR_WATCHDOG1			0x006c
74*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_SYS_SCR_WATCHDOG2			0x0070
75*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_SYS_SCR_WATCHDOG3			0x0074
76*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_SYS_SCR_DAP				0x0078
77*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_SYS_SCR_WATCHDOG4			0x007c
78*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_SYS_SCR_PWRMGR			0x0080
79*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_SYS_SCR_USB1_RXECC			0x0084
80*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_SYS_SCR_USB1_TXECC			0x0088
81*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_SYS_SCR_L4_NOC_PROBES			0x0090
82*91f16700Schasinglulu #define SOCFPGA_NOC_FW_L4_SYS_SCR_L4_NOC_QOS			0x0094
83*91f16700Schasinglulu 
84*91f16700Schasinglulu /* CCU NOC Register Map */
85*91f16700Schasinglulu 
86*91f16700Schasinglulu #define SOCFPGA_CCU_NOC_CPU0_RAM0				0x04688
87*91f16700Schasinglulu #define SOCFPGA_CCU_NOC_IOM_RAM0				0x18628
88*91f16700Schasinglulu 
89*91f16700Schasinglulu #define SOCFPGA_CCU_NOC_ADMASK_P_MASK				BIT(0)
90*91f16700Schasinglulu #define SOCFPGA_CCU_NOC_ADMASK_NS_MASK				BIT(1)
91*91f16700Schasinglulu 
92*91f16700Schasinglulu /* Function Definitions */
93*91f16700Schasinglulu 
94*91f16700Schasinglulu void enable_ns_peripheral_access(void);
95*91f16700Schasinglulu void enable_ns_bridge_access(void);
96*91f16700Schasinglulu void enable_ns_ocram_access(void);
97*91f16700Schasinglulu void enable_ocram_firewall(void);
98*91f16700Schasinglulu 
99*91f16700Schasinglulu #endif
100