• Radhey Shyam Pandey's avatar
    net: axienet: Introduce dmaengine support · 6a91b846
    Radhey Shyam Pandey authored
    Add dmaengine framework to communicate with the xilinx DMAengine
    driver(AXIDMA).
    
    Axi ethernet driver uses separate channels for transmit and receive.
    Add support for these channels to handle TX and RX with skb and
    appropriate callbacks. Also add axi ethernet core interrupt for
    dmaengine framework support.
    
    The dmaengine framework was extended for metadata API support.
    However it still needs further enhancements to make it well suited for
    ethernet usecases. The ethernet features i.e ethtool set/get of DMA IP
    properties, ndo_poll_controller,(mentioned in TODO) are not supported
    and it requires follow-up discussions.
    
    dmaengine support has a dependency on xilinx_dma as it uses
    xilinx_vdma_channel_set_config() API to reset the DMA IP
    which internally reset MAC prior to accessing MDIO.
    
    Benchmark with netperf:
    
    xilinx-zcu102-20232:~$ netperf -H 192.168.10.20 -t TCP_STREAM
    MIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET
    to 192.168.10.20 () port 0 AF_INET
    Recv   Send    Send
    Socket Socket  Message  Elapsed
    Size   Size    Size     Time     Throughput
    bytes  bytes   bytes    secs.    10^6bits/sec
    
    131072  16384  16384    10.02     886.69
    
    xilinx-zcu102-20232:~$ netperf -H 192.168.10.20 -t UDP_STREAM
    MIGRATED UDP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET
    to 192.168.10.20 () port 0 AF_INET
    Socket  Message  Elapsed      Messages
    Size    Size     Time         Okay Errors   Throughput
    bytes   bytes    secs            #      #   10^6bits/sec
    
    212992   65507   10.00       15851      0     830.66
    212992           10.00       15851            830.66
    Signed-off-by: default avatarRadhey Shyam Pandey <radhey.shyam.pandey@amd.com>
    Link: https://lore.kernel.org/r/1700074613-1977070-4-git-send-email-radhey.shyam.pandey@amd.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    6a91b846
xilinx_axienet_main.c 76.9 KB