• Rafał Miłecki's avatar
    bgmac: driver for GBit MAC core on BCMA bus · dd4544f0
    Rafał Miłecki authored
    BCMA is a Broadcom specific bus with devices AKA cores. All recent BCMA
    based SoCs have gigabit ethernet provided by the GBit MAC core. This
    patch adds driver for such a cores registering itself as a netdev. It
    has been tested on a BCM4706 and BCM4718 chipsets.
    
    In the kernel tree there is already b44 driver which has some common
    things with bgmac, however there are many differences that has led to
    the decision or writing a new driver:
    1) GBit MAC cores appear on BCMA bus (not SSB as in case of b44)
    2) There is 64bit DMA engine which differs from 32bit one
    3) There is no CAM (Content Addressable Memory) in GBit MAC
    4) We have 4 TX queues on GBit MAC devices (instead of 1)
    5) Many registers have different addresses/values
    6) RX header flags are also different
    
    The driver in it's state is functional how, however there is of course
    place for improvements:
    1) Supporting more net_device_ops
    2) SUpporting more ethtool_ops
    3) Unaligned addressing in DMA
    4) Writing separated PHY driver
    Signed-off-by: default avatarRafał Miłecki <zajec5@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    dd4544f0
bgmac.c 39 KB