• Alexandre Belloni's avatar
    net: mscc: Add initial Ocelot switch support · a556c76a
    Alexandre Belloni authored
    Add a driver for Microsemi Ocelot Ethernet switch support.
    
    This makes two modules:
    mscc_ocelot_common handles all the common features that doesn't depend on
    how the switch is integrated in the SoC. Currently, it handles offloading
    bridging to the hardware. ocelot_io.c handles register accesses. This is
    unfortunately needed because the register layout is packed and then depends
    on the number of ports available on the switch. The register definition
    files are automatically generated.
    
    ocelot_board handles the switch integration on the SoC and on the board.
    
    Frame injection and extraction to/from the CPU port is currently done using
    register accesses which is quite slow. DMA is possible but the port is not
    able to absorb the whole switch bandwidth.
    Signed-off-by: default avatarAlexandre Belloni <alexandre.belloni@bootlin.com>
    Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    a556c76a
ocelot_dev_gmii.h 7.81 KB