bcm63xx_enet: add support for Broadcom BCM63xx integrated gigabit switch
authorMaxime Bizon <mbizon@freebox.fr>
Tue, 4 Jun 2013 21:53:35 +0000 (22:53 +0100)
committerDavid S. Miller <davem@davemloft.net>
Mon, 10 Jun 2013 21:28:28 +0000 (14:28 -0700)
commit6f00a0229627ca189529cad3f9154ac2f9e5c7db
tree20b010b5faa5fca26951f3f3575da92a9cf317fc
parent0ae99b5fede6f3a8d252d50bb4aba29544295219
bcm63xx_enet: add support for Broadcom BCM63xx integrated gigabit switch

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: Maxime Bizon <mbizon@freebox.fr>
Signed-off-by: Jonas Gorski <jogo@openwrt.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
arch/mips/bcm63xx/boards/board_bcm963xx.c
arch/mips/bcm63xx/dev-enet.c
arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_enet.h
arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h
arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h
drivers/net/ethernet/broadcom/bcm63xx_enet.c
drivers/net/ethernet/broadcom/bcm63xx_enet.h