• Karicheri, Muralidharan's avatar
    net: netcp: Add Keystone NetCP core ethernet driver · 84640e27
    Karicheri, Muralidharan authored
    The network coprocessor (NetCP) is a hardware accelerator available in
    Keystone SoCs that processes Ethernet packets. NetCP consists of following
    hardware components
    
     1 Gigabit Ethernet (GbE) subsystem with a Ethernet switch sub-module to
       send and receive packets.
     2 Packet Accelerator (PA) module to perform packet classification
       operations such as header matching, and packet modification operations
       such as checksum generation.
     3 Security Accelerator(SA) capable of performing IPSec operations on
       ingress/egress packets.
     4 An optional 10 Gigabit Ethernet Subsystem (XGbE) which includes a
       3-port Ethernet switch sub-module capable of 10Gb/s and 1Gb/s rates
       per Ethernet port.
     5 Packet DMA and Queue Management Subsystem (QMSS) to enqueue and dequeue
       packets and DMA the packets between memory and NetCP hardware components
       described above.
    
    NetCP core driver make use of the Keystone Navigator driver API to allocate
    DMA channel for the Ethenet device and to handle packet queue/de-queue,
    Please refer API's in include/linux/soc/ti/knav_dma.h and
    drivers/soc/ti/knav_qmss.h for details.
    
    NetCP driver consists of NetCP core driver and at a minimum Gigabit
    Ethernet (GBE) module (1) driver to implement the Network device function.
    Other modules (2,3) can be optionally added to achieve supported hardware
    acceleration function. The initial version of the driver include NetCP
    core driver and GBE driver modules.
    
    Please refer Documentation/devicetree/bindings/net/keystone-netcp.txt
    for design of the driver.
    
     Cc: David Miller <davem@davemloft.net>
     Cc: Rob Herring <robh+dt@kernel.org>
     Cc: Grant Likely <grant.likely@linaro.org>
     Cc: Santosh Shilimkar <santosh.shilimkar@kernel.org>
     Cc: Pawel Moll <pawel.moll@arm.com>
     Cc: Mark Rutland <mark.rutland@arm.com>
     Cc: Ian Campbell <ijc+devicetree@hellion.org.uk>
     Cc: Kumar Gala <galak@codeaurora.org>
    Signed-off-by: default avatarMurali Karicheri <m-karicheri2@ti.com>
    Signed-off-by: default avatarWingman Kwok <w-kwok2@ti.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    84640e27
netcp_core.c 55.2 KB