[RFC PATCH net-next 00/28] Add CPSW Proxy Client driver

From: Siddharth Vadapalli
Date: Sat May 18 2024 - 08:43:10 EST


Hello,

This series introduces the CPSW Proxy Client driver to interface with
Ethernet Switch Firmware (EthFw) running on a remote core on TI's K3
SoCs. Further details are in patch 01/28 which adds documentation for
the driver and describes the intended use-case, design and execution
of the driver.

Please DO NOT MERGE this series. I will appreciate feedback on this
series in the form of both documentation enhancements and code review.

This series does not depend on other series and applies cleanly on the
latest net-next commit:
4b377b4868ef kprobe/ftrace: fix build error due to bad function definition

However, for purposes of functionality, device-tree changes are required
in the form of a device-tree overlay in order to mark device-tree nodes
as reserved for EthFw's use.

I have tested this series on J721E EVM verifying:
1. Ping/Iperf
2. Interface Up-Down
3. Module Removal

Linux Logs:
https://gist.github.com/Siddharth-Vadapalli-at-TI/0972e74383cd1ec16e2f82c0d447f90b

EthFw Logs corresponding to the Linux Logs shared above:
https://gist.github.com/Siddharth-Vadapalli-at-TI/28743298daf113f90be9ceb26c46b16b

Regards,
Siddharth.

Siddharth Vadapalli (28):
docs: networking: ti: add driver doc for CPSW Proxy Client
net: ethernet: ti: add RPMsg structures for Ethernet Switch Firmware
net: ethernet: ti: introduce the CPSW Proxy Client
net: ethernet: ti: cpsw-proxy-client: add support for creating
requests
net: ethernet: ti: cpsw-proxy-client: enable message exchange with
EthFw
net: ethernet: ti: cpsw-proxy-client: add helper to get virtual port
info
net: ethernet: ti: cpsw-proxy-client: add helper to attach virtual
ports
net: ethernet: ti: cpsw-proxy-client: add helpers to alloc/free
resources
net: ethernet: ti: cpsw-proxy-client: add helper to init TX DMA
Channels
net: ethernet: ti: cpsw-proxy-client: add helper to init RX DMA
Channels
net: ethernet: ti: cpsw-proxy-client: add NAPI TX polling function
net: ethernet: ti: cpsw-proxy-client: add NAPI RX polling function
net: ethernet: ti: cpsw-proxy-client: add helper to create netdevs
net: ethernet: ti: cpsw-proxy-client: add and register dma irq
handlers
net: ethernet: ti: cpsw-proxy-client: add helpers to (de)register MAC
net: ethernet: ti: cpsw-proxy-client: implement and register ndo_open
net: ethernet: ti: cpsw-proxy-client: implement and register ndo_stop
net: ethernet: ti: cpsw-proxy-client: implement and register
ndo_start_xmit
net: ethernet: ti: cpsw-proxy-client: implement and register
ndo_get_stats64
net: ethernet: ti: cpsw-proxy-client: implement and register
ndo_tx_timeout
net: ethernet: ti: cpsw-proxy-client: register
ndo_validate/ndo_set_mac_addr
net: ethernet: ti: cpsw-proxy-client: implement .get_link ethtool op
net: ethernet: ti: cpsw-proxy-client: add sw tx/rx irq coalescing
net: ethernet: ti: cpsw-proxy-client: export coalescing support
net: ethernet: ti: cpsw-proxy-client: add helpers to (de)register IPv4
net: ethernet: ti: cpsw-proxy-client: add ndo_set_rx_mode member
net: ethernet: ti: cpsw-proxy-client: add helper to detach virtual
ports
net: ethernet: ti: cpsw-proxy-client: enable client driver
functionality

.../ethernet/ti/cpsw_proxy_client.rst | 182 ++
drivers/net/ethernet/ti/Kconfig | 14 +
drivers/net/ethernet/ti/Makefile | 3 +
drivers/net/ethernet/ti/cpsw-proxy-client.c | 2354 +++++++++++++++++
drivers/net/ethernet/ti/ethfw_abi.h | 370 +++
5 files changed, 2923 insertions(+)
create mode 100644 Documentation/networking/device_drivers/ethernet/ti/cpsw_proxy_client.rst
create mode 100644 drivers/net/ethernet/ti/cpsw-proxy-client.c
create mode 100644 drivers/net/ethernet/ti/ethfw_abi.h

--
2.40.1