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