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>
|
||
|---|---|---|
| .. | ||
| bcm63xx_board.h | ||
| bcm63xx_cpu.h | ||
| bcm63xx_cs.h | ||
| bcm63xx_dev_dsp.h | ||
| bcm63xx_dev_enet.h | ||
| bcm63xx_dev_flash.h | ||
| bcm63xx_dev_pci.h | ||
| bcm63xx_dev_pcmcia.h | ||
| bcm63xx_dev_spi.h | ||
| bcm63xx_dev_uart.h | ||
| bcm63xx_dev_usb_usbd.h | ||
| bcm63xx_gpio.h | ||
| bcm63xx_io.h | ||
| bcm63xx_irq.h | ||
| bcm63xx_iudma.h | ||
| bcm63xx_nvram.h | ||
| bcm63xx_regs.h | ||
| bcm63xx_reset.h | ||
| bcm63xx_timer.h | ||
| bcm963xx_tag.h | ||
| board_bcm963xx.h | ||
| cpu-feature-overrides.h | ||
| gpio.h | ||
| ioremap.h | ||
| irq.h | ||
| spaces.h | ||
| war.h | ||