• Roger Quadros's avatar
    net: ti: icssg-prueth: Add ICSSG ethernet driver · 128d5874
    Roger Quadros authored
    This is the Ethernet driver for TI AM654 Silicon rev. 2
    with the ICSSG PRU Sub-system running dual-EMAC firmware.
    
    The Programmable Real-time Unit and Industrial Communication Subsystem
    Gigabit (PRU_ICSSG) is a low-latency microcontroller subsystem in the TI
    SoCs. This subsystem is provided for the use cases like implementation of
    custom peripheral interfaces, offloading of tasks from the other
    processor cores of the SoC, etc.
    
    Every ICSSG core has two Programmable Real-Time Unit(PRUs),
    two auxiliary Real-Time Transfer Unit (RT_PRUs), and
    two Transmit Real-Time Transfer Units (TX_PRUs). Each one of these runs
    its own firmware. Every ICSSG core has two MII ports connect to these
    PRUs and also a MDIO port.
    
    The cores can run different firmwares to support different protocols and
    features like switch-dev, timestamping, etc.
    
    It uses System DMA to transfer and receive packets and
    shared memory register emulation between the firmware and
    driver for control and configuration.
    
    This patch adds support for basic EMAC functionality with 1Gbps
    and 100Mbps link speed. 10M and half duplex mode are not supported
    currently as they require IEP, the support for which will be added later.
    Support for switch-dev, timestamp, etc. will be added later
    by subsequent patch series.
    Signed-off-by: default avatarRoger Quadros <rogerq@ti.com>
    Signed-off-by: default avatarVignesh Raghavendra <vigneshr@ti.com>
    Signed-off-by: default avatarGrygorii Strashko <grygorii.strashko@ti.com>
    Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
    Signed-off-by: default avatarMD Danish Anwar <danishanwar@ti.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    128d5874
icssg_prueth.c 45.4 KB