-
- Downloads
bcm63xx_enet: add support Broadcom BCM6345 Ethernet
This patch adds support for the Broadcom BCM6345 SoC Ethernet. BCM6345 has a slightly different and older DMA engine which requires the following modifications: - the width of the DMA channels on BCM6345 is 64 bytes vs 16 bytes, which means that the helpers enet_dma{c,s} need to account for this channel width and we can no longer use macros - BCM6345 DMA engine does not have any internal SRAM for transfering buffers - BCM6345 buffer allocation and flow control is not per-channel but global (done in RSET_ENETDMA) - the DMA engine bits are right-shifted by 3 compared to other DMA generations - the DMA enable/interrupt masks are a little different (we need to enabled more bits for 6345) - some register have the same meaning but are offsetted in the ENET_DMAC space so a lookup table is required to return the proper offset The MAC itself is identical and requires no modifications to work. Signed-off-by:Florian Fainelli <florian@openwrt.org> Acked-by:
Ralf Baechle <ralf@linux-mips.org> Signed-off-by:
David S. Miller <davem@davemloft.net>
Showing
- arch/mips/bcm63xx/dev-enet.c 63 additions, 2 deletionsarch/mips/bcm63xx/dev-enet.c
- arch/mips/include/asm/mach-bcm63xx/bcm63xx_cpu.h 2 additions, 1 deletionarch/mips/include/asm/mach-bcm63xx/bcm63xx_cpu.h
- arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_enet.h 94 additions, 0 deletionsarch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_enet.h
- arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h 35 additions, 8 deletionsarch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h
- drivers/net/ethernet/broadcom/bcm63xx_enet.c 120 additions, 80 deletionsdrivers/net/ethernet/broadcom/bcm63xx_enet.c
- drivers/net/ethernet/broadcom/bcm63xx_enet.h 15 additions, 0 deletionsdrivers/net/ethernet/broadcom/bcm63xx_enet.h
Please register or sign in to comment