From: MD Danish Anwar <danishanwar@ti.com>
To: Andrew Lunn <andrew+netdev@lunn.ch>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Bjorn Andersson <andersson@kernel.org>,
Mathieu Poirier <mathieu.poirier@linaro.org>,
Simon Horman <horms@kernel.org>, Jonathan Corbet <corbet@lwn.net>,
Nishanth Menon <nm@ti.com>, Vignesh Raghavendra <vigneshr@ti.com>,
Mengyuan Lou <mengyuanlou@net-swift.com>,
MD Danish Anwar <danishanwar@ti.com>,
Xin Guo <guoxin09@huawei.com>, Lei Wei <quic_leiwei@quicinc.com>,
Lee Trager <lee@trager.us>, Michael Ellerman <mpe@ellerman.id.au>,
Fan Gong <gongfan1@huawei.com>,
Lorenzo Bianconi <lorenzo@kernel.org>,
Geert Uytterhoeven <geert+renesas@glider.be>,
Lukas Bulwahn <lukas.bulwahn@redhat.com>,
Parthiban Veerasooran <Parthiban.Veerasooran@microchip.com>,
Suman Anna <s-anna@ti.com>
Cc: Tero Kristo <kristo@kernel.org>, <netdev@vger.kernel.org>,
<devicetree@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
<linux-remoteproc@vger.kernel.org>, <linux-doc@vger.kernel.org>,
<linux-arm-kernel@lists.infradead.org>, <srk@ti.com>,
Roger Quadros <rogerq@kernel.org>
Subject: [PATCH net-next v2 0/8] Add RPMSG Ethernet Driver
Date: Tue, 2 Sep 2025 14:37:38 +0530 [thread overview]
Message-ID: <20250902090746.3221225-1-danishanwar@ti.com> (raw)
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.
Key features of this driver:
1. Virtual Ethernet interface using RPMSG framework
2. Shared memory-based packet transmission and reception
3. Support for multicast address filtering
4. Dynamic MAC address assignment
5. NAPI support for efficient packet processing
6. State machine for managing interface states
The series begins by adding device tree binding documentation, continues
with core driver implementation, and concludes with platform-specific DTS
changes for the TI K3 AM64 SoC. The driver is designed to be generic and
can be used by any vendor that implements compatible firmware for their
remote processors.
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.
Changes since v1:
- Added dt binding for rpmsg-eth node similar to `qcom,glink-edge.yaml`
and `google,cros-ec.yaml`
- Added phandle to rpmsg-eth node to dt binding `ti,k3-r5f-rproc.yaml`
- In the driver, shared memory region is now obtained from the rpmsg-eth
node in device tree.
- Dropped base address from rpmsg callback. Since base address is obtained
from device tree, no need for rpmsg callback to share this base address
again.
- Dropped usage of pointers and strictly using only offsets while
communicating to firmware.
- Updated documentation based on the changes in driver and bindings.
- Added "Naming convention" section to documentation to clarify naming and
various terms used in the driver and documentation.
- Kept the naming should be consistent throughout the documentation and
driver as suggested by Andrew Lunn <andrew@lunn.ch>
- Added device tree patch in the series to clarify how the changes will be
done in device tree and how the driver will use device tree information.
v1 https://lore.kernel.org/all/20250723080322.3047826-1-danishanwar@ti.com/
MD Danish Anwar (8):
dt-bindings: net: ti,rpmsg-eth: Add DT binding for RPMSG ETH
dt-bindings: remoteproc: k3-r5f: Add rpmsg-eth subnode
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
arch: arm64: dts: k3-am64*: Add rpmsg-eth node
.../devicetree/bindings/net/ti,rpmsg-eth.yaml | 38 ++
.../bindings/remoteproc/ti,k3-r5f-rproc.yaml | 6 +
.../device_drivers/ethernet/index.rst | 1 +
.../device_drivers/ethernet/rpmsg_eth.rst | 368 ++++++++++
arch/arm64/boot/dts/ti/k3-am642-evm.dts | 11 +-
drivers/net/ethernet/Kconfig | 10 +
drivers/net/ethernet/Makefile | 1 +
drivers/net/ethernet/rpmsg_eth.c | 639 ++++++++++++++++++
drivers/net/ethernet/rpmsg_eth.h | 283 ++++++++
9 files changed, 1356 insertions(+), 1 deletion(-)
create mode 100644 Documentation/devicetree/bindings/net/ti,rpmsg-eth.yaml
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: 2fd4161d0d2547650d9559d57fc67b4e0a26a9e3
--
2.34.1
next reply other threads:[~2025-09-02 12:27 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-02 9:07 MD Danish Anwar [this message]
2025-09-02 9:07 ` [PATCH net-next v2 1/8] dt-bindings: net: ti,rpmsg-eth: Add DT binding for RPMSG ETH MD Danish Anwar
2025-09-03 7:18 ` Krzysztof Kozlowski
2025-09-03 7:43 ` MD Danish Anwar
2025-09-03 7:18 ` Krzysztof Kozlowski
2025-09-02 9:07 ` [PATCH net-next v2 2/8] dt-bindings: remoteproc: k3-r5f: Add rpmsg-eth subnode MD Danish Anwar
2025-09-03 7:19 ` Krzysztof Kozlowski
2025-09-03 7:57 ` MD Danish Anwar
2025-09-03 12:54 ` Krzysztof Kozlowski
2025-09-03 13:32 ` Anwar, Md Danish
2025-09-03 14:06 ` Andrew Lunn
2025-09-03 14:23 ` Krzysztof Kozlowski
2025-09-05 8:56 ` MD Danish Anwar
2025-09-03 14:19 ` Krzysztof Kozlowski
2025-09-02 9:07 ` [PATCH net-next v2 3/8] net: rpmsg-eth: Add Documentation for RPMSG-ETH Driver MD Danish Anwar
2025-09-02 9:07 ` [PATCH net-next v2 4/8] net: rpmsg-eth: Add basic rpmsg skeleton MD Danish Anwar
2025-09-02 9:07 ` [PATCH net-next v2 5/8] net: rpmsg-eth: Register device as netdev MD Danish Anwar
2025-09-02 9:07 ` [PATCH net-next v2 6/8] net: rpmsg-eth: Add netdev ops MD Danish Anwar
2025-09-02 9:07 ` [PATCH net-next v2 7/8] net: rpmsg-eth: Add support for multicast filtering MD Danish Anwar
2025-09-02 9:07 ` [PATCH net-next v2 8/8] arch: arm64: dts: k3-am64*: Add rpmsg-eth node MD Danish Anwar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250902090746.3221225-1-danishanwar@ti.com \
--to=danishanwar@ti.com \
--cc=Parthiban.Veerasooran@microchip.com \
--cc=andersson@kernel.org \
--cc=andrew+netdev@lunn.ch \
--cc=conor+dt@kernel.org \
--cc=corbet@lwn.net \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=edumazet@google.com \
--cc=geert+renesas@glider.be \
--cc=gongfan1@huawei.com \
--cc=guoxin09@huawei.com \
--cc=horms@kernel.org \
--cc=kristo@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=kuba@kernel.org \
--cc=lee@trager.us \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-remoteproc@vger.kernel.org \
--cc=lorenzo@kernel.org \
--cc=lukas.bulwahn@redhat.com \
--cc=mathieu.poirier@linaro.org \
--cc=mengyuanlou@net-swift.com \
--cc=mpe@ellerman.id.au \
--cc=netdev@vger.kernel.org \
--cc=nm@ti.com \
--cc=pabeni@redhat.com \
--cc=quic_leiwei@quicinc.com \
--cc=robh@kernel.org \
--cc=rogerq@kernel.org \
--cc=s-anna@ti.com \
--cc=srk@ti.com \
--cc=vigneshr@ti.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox