• F
    bcm63xx_enet: add support Broadcom BCM6345 Ethernet · 3dc6475c
    Florian Fainelli 提交于
    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: NFlorian Fainelli <florian@openwrt.org>
    Acked-by: NRalf Baechle <ralf@linux-mips.org>
    Signed-off-by: NDavid S. Miller <davem@davemloft.net>
    3dc6475c
bcm63xx_enet.c 72.8 KB