netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next 0/5] Add RPMSG Ethernet Driver
@ 2025-07-23  8:03 MD Danish Anwar
  2025-07-23  8:03 ` [PATCH net-next 1/5] net: rpmsg-eth: Add Documentation for RPMSG-ETH Driver MD Danish Anwar
                   ` (4 more replies)
  0 siblings, 5 replies; 24+ messages in thread
From: MD Danish Anwar @ 2025-07-23  8:03 UTC (permalink / raw)
  To: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
	Simon Horman, Jonathan Corbet, Andrew Lunn, Mengyuan Lou,
	MD Danish Anwar, Michael Ellerman, Madhavan Srinivasan, Fan Gong,
	Lee Trager, Lorenzo Bianconi, Geert Uytterhoeven, Lukas Bulwahn,
	Parthiban Veerasooran
  Cc: netdev, linux-doc, linux-kernel

This patch series introduces the RPMSG Ethernet driver, which provides a
virtual Ethernet interface for communication between a host processor and
a remote processor using the RPMSG framework. The driver enables
Ethernet-like packet transmission and reception over shared memory,
facilitating inter-core communication in systems with heterogeneous
processors.

This series is a rework of [1]. There was comment from Andrew Lunn
<andrew@lunn.ch> to modify this driver and make it generic so that other
vendors can also use it.

I have tried to generalize the driver. Since there has been lots of changes
since [1], I am posting this as a new series.

The series includes the following patches:

1. Documentation:
  - Adds comprehensive documentation for the RPMSG Ethernet driver.
  - Details the shared memory layout, communication protocol, and usage
    instructions.
  - Provides a guide for vendors to develop compatible firmware.

2. Basic RPMSG Skeleton:
  - Introduces the basic RPMSG Ethernet driver skeleton.
  - Implements probe, remove, and callback functions.
  - Sets up the foundation for RPMSG communication.

3. Netdev Registration:
  - Registers the RPMSG Ethernet device as a netdev.
  - Enhances the RPMSG callback to handle shared memory for TX and RX
    buffers.
  - Introduces shared memory structures and initializes the netdev.

4. Netdev Operations:
  - Implements netdev operations such as `ndo_open`, `ndo_stop`,
    `ndo_start_xmit`, and `ndo_set_mac_address`.
  - Adds support for NAPI-based RX processing and a timer-based RX
    polling mechanism.
  - Introduces a state machine to manage the driver's state transitions.

5. Multicast Filtering:
  - Adds support for multicast address filtering.
  - Implements the `ndo_set_rx_mode` callback to manage multicast
    addresses.
  - Introduces a workqueue-based mechanism for asynchronous RX mode
    updates.

Key Features:
- Virtual Ethernet interface using RPMSG.
- Shared memory-based packet transmission and reception.
- Support for multicast address management.
- Dynamic MAC address assignment.
- Efficient packet processing using NAPI.
- State machine for managing interface states.

This driver is designed to be generic and vendor-agnostic. Vendors can
develop firmware for the remote processor to make it compatible with this
driver by adhering to the shared memory layout and communication protocol
described in the documentation.

This patch series has been tested on a TI AM64xx platform with a compatible
remote processor firmware. Feedback and suggestions for improvement are
welcome.

[1] https://lore.kernel.org/all/20240531064006.1223417-1-y-mallik@ti.com/

MD Danish Anwar (5):
  net: rpmsg-eth: Add Documentation for RPMSG-ETH Driver
  net: rpmsg-eth: Add basic rpmsg skeleton
  net: rpmsg-eth: Register device as netdev
  net: rpmsg-eth: Add netdev ops
  net: rpmsg-eth: Add support for multicast filtering

 .../device_drivers/ethernet/index.rst         |   1 +
 .../device_drivers/ethernet/rpmsg_eth.rst     | 339 ++++++++
 drivers/net/ethernet/Kconfig                  |  10 +
 drivers/net/ethernet/Makefile                 |   1 +
 drivers/net/ethernet/rpmsg_eth.c              | 743 ++++++++++++++++++
 drivers/net/ethernet/rpmsg_eth.h              | 305 +++++++
 6 files changed, 1399 insertions(+)
 create mode 100644 Documentation/networking/device_drivers/ethernet/rpmsg_eth.rst
 create mode 100644 drivers/net/ethernet/rpmsg_eth.c
 create mode 100644 drivers/net/ethernet/rpmsg_eth.h


base-commit: 56613001dfc9b2e35e2d6ba857cbc2eb0bac4272
-- 
2.34.1


^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2025-08-29  0:39 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-07-23  8:03 [PATCH net-next 0/5] Add RPMSG Ethernet Driver MD Danish Anwar
2025-07-23  8:03 ` [PATCH net-next 1/5] net: rpmsg-eth: Add Documentation for RPMSG-ETH Driver MD Danish Anwar
2025-07-23 13:49   ` Jakub Kicinski
2025-07-24  6:54     ` MD Danish Anwar
2025-08-04 12:10     ` [cocci] " Julia Lawall
2025-07-23 16:24   ` Andrew Lunn
2025-07-24  8:24     ` MD Danish Anwar
2025-07-24 16:37       ` Andrew Lunn
2025-07-25  7:04         ` Anwar, Md Danish
2025-08-28  7:08         ` MD Danish Anwar
2025-08-29  0:39   ` Bagas Sanjaya
2025-07-23  8:03 ` [PATCH net-next 2/5] net: rpmsg-eth: Add basic rpmsg skeleton MD Danish Anwar
2025-07-24 19:18   ` Krzysztof Kozlowski
2025-07-28  8:10     ` MD Danish Anwar
2025-07-28 12:40       ` Krzysztof Kozlowski
2025-07-29  9:46         ` MD Danish Anwar
2025-07-29 12:32           ` Krzysztof Kozlowski
2025-07-30  6:01             ` MD Danish Anwar
2025-07-30  6:13               ` Krzysztof Kozlowski
2025-07-30 15:11                 ` Anwar, Md Danish
2025-08-28  7:07                   ` MD Danish Anwar
2025-07-23  8:03 ` [PATCH net-next 3/5] net: rpmsg-eth: Register device as netdev MD Danish Anwar
2025-07-23  8:03 ` [PATCH net-next 4/5] net: rpmsg-eth: Add netdev ops MD Danish Anwar
2025-07-23  8:03 ` [PATCH net-next 5/5] net: rpmsg-eth: Add support for multicast filtering MD Danish Anwar

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).