This is a Big Endian MIPS 1004kc based SoC. In DSL applications it is called the EN7516 and in xPON applications it is called the EN7527, though the EN7527 is extremely rare.
EN751627 is mostly the same as the EN751221 with a couple of differences.
| Address | Size | Name | Reference | Wiki Page |
|---|---|---|---|---|
| 0xBFA00000 | 0x100 | RBUS CORE | tc3162.h | - |
| 0xBFA10000 | 0x140 | SPI FLASH | spiflash_tc3162.c | SPI Flash (note: this has slightly more features than the EN751221 flash) |
| 0xBFA20000 | 0x200 | CHIP SCU | boot2.S | - |
| 0xBFA30000 | 0x10000 (?) | SRAM | boot2.S | - |
| 0xBFA80000 | 0x1000 | USB PHY | xhci-mtk.h | - |
| 0xBFA8C000 | 0x2000 | GIC Interrupt Controller | irq-gic.c | - |
| 0xBFA90000 | 0x60 | Unused mystery device | - | - |
| 0xBFAA0000 | 0x100 | xDSL DMT | - | - |
| 0xBFAC0000 | 0x1000 | PCIe1 PHY | pcie-phy.c | - |
| 0xBFAF0000 | 0x1000 | xPON PHY | phy_init.c | - |
| 0xBFAF1000 | 0x1000 | PCIe0 PHY | pcie-phy.c | - |
| 0xBFB00000 | 0x1000 | SCU (Main System Controller) | tc3162.h | - |
| 0xBFB10000 | 0x10 | SMC (Memory Controller) | tc3162.h | - |
| 0xBFB20000 | 0x650 | DRAMC | tc3162.h | - |
| 0xBFB30000 | 0x300 | GDMA | tc3162.h | GDMA |
| 0xBFB50000 | 0x4000 | FE (Ethernet) | fe_reg_en7512.h (similar to) | Frame Engine |
| 0xBFB54000 | 0x1000 | QDMA1 | qdma_reg.h (similar to) | - |
| 0xBFB55000 | 0x1000 | QDMA2 | qdma_reg.h (similar to) | - |
| 0xBFB58000 | 0x8000 | GSW | fe_reg_en7512.h | MT7530 Giga-Switch |
| 0xBFB64000 | 0x2000 | GPON MAC | gpon_reg.h | - |
| 0xBFB66000 | 0x2000 | EPON MAC | epon_reg.h | - |
| 0xBFB70000 | 0x10000 | CRYPTO | rt_mmap.h | Crypto Engine |
| 0xBFB80000 | 0x4000 | PCIe | pci-7512api.c | - |
| 0xBFB90000 | 0x4000 | XHCI (USB) | xhci-mtk.h | - |
| 0xBFBD0000 | 0x10000 | PCM | pcmdriver.h | - |
| 0xBFBE0000 | 0x100 | CPU TIMER (CPUs 2,3) | tc3162.h | High Precision Timer |
| 0xBFBE1000 | 0x30 | UART3 | kernel49/tc3162.h | UART |
| 0xBFBF0000 | 0x30 | UART1 | tc3162.h | UART |
| 0xBFBF0100 | 0x3C | TIMER | tc3162.h | - |
| 0xBFBF0200 | 0x7C | GPIO | tc3162.h | GPIO |
| 0xBFBF0300 | 0x30 | UART2 | tc3162.h | UART |
| 0xBFBF0400 | 0x100 | CPU TIMER (CPUs 0,1) | tc3162.h | High Precision Timer |
| 0xBFBF8000 | 0x100 | I2C | rt_mmap.h | I2C |
| 0xBFBF8200 | 0x100 | EFUSE | tc3162.h | - |
| Confirmed | Interrupt # | Name | Description |
|---|---|---|---|
| 0 | UART5_INT | UART interrupt | |
| 1 | UART4_INT | UART interrupt | |
| 2 | UART3_INT | UART interrupt | |
| 3 | UART2_INT | UART interrupt | |
| 4 | UART_INT | UART interrupt | |
| 5 | GPIO_INT | GPIO interrupt | |
| 6 | GDMA_INTR | DMA engine interrupt | |
| 7 | CRYPTO_INT | Crypto engine interrupt | |
| 8 | USB_HOST_2 | USB port1 | |
| 9 | IRQ_RT3XXX_USB | USB port0 | |
| 10 | HSDMA_INTR | "High Speed DMA" (?) | |
| 11 | WDMA1_WOE_INTR | Wifi DMA for WOE | |
| 12 | WDMA1_P1_INTR | Wifi port1 | |
| 13 | WDMA1_P0_INTR | Wifi port0 | |
| 14 | WDMA0_WOE_INTR | Wifi DMA for WOE | |
| 15 | WDMA0_P1_INTR | Wifi port1 | |
| 16 | WDMA0_P0_INTR | Wifi port0 | |
| 17 | WOE1_INTR | Wifi offload engine | |
| 18 | WOE0_INTR | Wifi offload engine | |
| 19 | PCIE_A_INT | PCIe port1 | |
| 20 | PCIE_0_INT | PCIe port0 | |
| 21 | MAC1_INT | MT7530 Switch | |
| 22 | XSI_PHY_INTR | XFI/HGSMII PHY interface | |
| 23 | XSI_MAC_INTR | XFI/HGSMII MAC interface | |
| 24 | QDMA_LAN3_INTR | Ethernet QDMA0 int3 | |
| 25 | QDMA_LAN2_INTR | Ethernet QDMA0 int2 | |
| 26 | QDMA_LAN1_INTR | Ethernet QDMA0 int1 | |
| 27 | QDMA_LAN0_INTR | Ethernet QDMA0 int0 | |
| 28 | QDMA_WAN3_INTR | Ethernet QDMA1 int3 | |
| 29 | QDMA_WAN2_INTR | Ethernet QDMA1 int2 | |
| 30 | QDMA_WAN1_INTR | Ethernet QDMA1 int1 | |
| 31 | QDMA_WAN0_INTR | Ethernet QDMA1 int0 | |
| 32 | TIMER2_INT | RT2880 Timer | |
| 33 | TIMER1_INT | RT2880 Timer | |
| 34 | TIMER0_INT | RT2880 Timer | |
| 35 | PCM2_INT | VoIP | |
| 36 | PCM1_INT | VoIP | |
| 37 | XPON_PHY_INTR | xPON | |
| 38 | XPON_MAC_INTR | xPON | |
| 39 | DMT_INT | xDSL discrete multi-tone | |
| 40 | DYINGGASP_INT | Dying gasp (fired on power loss) | |
| 41 | CPU_CM_PCINT | Performance Counter Overflow | |
| 42 | CPU_CM_ERR | Performance Counter Error | |
| 43 | FE_ERR_INTR | Frame Engine (Ethernet) Error | |
| 44 | EFUSE_ERR1_INTR | EFUSE error previous action unfinished | |
| 45 | EFUSE_ERR0_INTR | EFUSE error not setting key (on EN7528 this is rbus timeout interrupt) | |
| 46 | AUTO_MANUAL_INT | SPI flash controller invalid configuration | |
| 47 | PCIE_SERR_INT | PCIe error | |
| 48 | DRAM_PROTECTION | DRAM invalid access | |
| 49 | BUS_TOUT_INT | Pbus timeout | |
| 50 | TIMER5_INT | Watchdog timer | |
| 51 | SI_TIMER_INT | CPU Timer (percpu) |
|
| 52 | GIC_EDGE_NMI | Route NMI to CPU | |
| 53 | RESVINT1 | Reserved | |
| 54 | RESVINT2 | Reserved | |
| 55 | IPI_RESCHED_INT0 | Inter-process interrupt | |
| 56 | IPI_RESCHED_INT1 | Inter-process interrupt | |
| 57 | IPI_RESCHED_INT2 | Inter-process interrupt | |
| 58 | IPI_RESCHED_INT3 | Inter-process interrupt | |
| 59 | IPI_CALL_INT0 | Inter-process interrupt | |
| 60 | IPI_CALL_INT1 | Inter-process interrupt | |
| 61 | IPI_CALL_INT2 | Inter-process interrupt | |
| 62 | IPI_CALL_INT3 | Inter-process interrupt |