1. 14 6月, 2013 1 次提交
    • 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
  2. 11 6月, 2013 2 次提交
    • M
      bcm63xx_enet: add support for Broadcom BCM63xx integrated gigabit switch · 6f00a022
      Maxime Bizon 提交于
      Newer Broadcom BCM63xx SoCs: 6328, 6362 and 6368 have an integrated switch
      which needs to be driven slightly differently from the traditional
      external switches. This patch introduces changes in arch/mips/bcm63xx in order
      to:
      
      - register a bcm63xx_enetsw driver instead of bcm63xx_enet driver
      - update DMA channels configuration & state RAM base addresses
      - add a new platform data configuration knob to define the number of
        ports per switch/device and force link on some ports
      - define the required switch registers
      
      On the driver side, the following changes are required:
      
      - the switch ports need to be polled to ensure the link is up and
        running and RX/TX can properly work
      - basic switch configuration needs to be performed for the switch to
        forward packets to the CPU
      - update the MIB counters since the integrated
      Signed-off-by: NMaxime Bizon <mbizon@freebox.fr>
      Signed-off-by: NJonas Gorski <jogo@openwrt.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      6f00a022
    • M
      bcm63xx_enet: split DMA channel register accesses · 0ae99b5f
      Maxime Bizon 提交于
      The current bcm63xx_enet driver always uses bcmenet_shared_base whenever
      it needs to access DMA channel configuration space or access the DMA
      channel state RAM. Split these register in 3 parts to be more accurate:
      
      - global DMA configuration
      - per DMA channel configuration space
      - per DMA channel state RAM space
      
      This is preliminary to support new chips where the global DMA
      configuration remains the same, but there is a varying number of DMA
      channels located at a different memory offset.
      Signed-off-by: NMaxime Bizon <mbizon@freebox.fr>
      Signed-off-by: NJonas Gorski <jogo@openwrt.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      0ae99b5f
  3. 27 7月, 2010 1 次提交
  4. 18 9月, 2009 1 次提交