From: Parvathi Pudi <parvathi@couthit.com>
To: andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com,
kuba@kernel.org, pabeni@redhat.com, danishanwar@ti.com,
parvathi@couthit.com, rogerq@kernel.org, pmohan@couthit.com,
basharath@couthit.com, afd@ti.com
Cc: linux-kernel@vger.kernel.org, netdev@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, pratheesh@ti.com,
prajith@ti.com, vigneshr@ti.com, praneeth@ti.com, srk@ti.com,
rogerq@ti.com, krishna@couthit.com, mohan@couthit.com
Subject: [PATCH net-next 0/3] RSTP SWITCH support for PRU-ICSSM Ethernet driver
Date: Thu, 25 Sep 2025 19:32:09 +0530 [thread overview]
Message-ID: <20250925141246.3433603-1-parvathi@couthit.com> (raw)
Hi,
The DUAL-EMAC patch series for Megabit Industrial Communication Sub-system
(ICSSM), which provides the foundational support for Ethernet functionality
over PRU-ICSS on the TI SOCs (AM335x, AM437x, and AM57x), was merged into
net-next recently [1].
This patch series enhances the PRU-ICSSM Ethernet driver to support
RSTP SWITCH mode, which has been implemented based on "switchdev" and
interacts with "mstp daemon" to support Rapid Spanning Tree Protocol
(RSTP) as well.
Once the RSTP SWITCH mode is enabled, forwarding of Ethernet packets using
either the traditional store-and-forward mechanism or via cut-through is
offloaded to the two PRU based Ethernet interfaces available within the
ICSSM. The firmware running on the PRU inspects the STP port states and
performs multiple checks before forwarding a packet. This improves the
overall system performance and significantly reduces the packet forwarding
latency.
Protocol switching from dual EMAC to RSTP SWITCH mode can be done as follows.
Assuming eth2 and eth3 are the two physical ports of the ICSS2 instance:
>> brctl addbr br0
>> ip maddr add 01:80:c2:00:00:00 dev br0
>> ip link set dev br0 address $(cat /sys/class/net/eth2/address)
>> brctl addif br0 eth2
>> brctl addif br0 eth3
>> mstpd
>> brctl stp br0 on
>> mstpctl setforcevers br0 rstp
>> ip link set dev br0 up
To revert back to the default dual EMAC mode, the steps are as follows:
>> ip link set dev br0 down
>> brctl delif br0 eth2
>> brctl delif br0 eth3
>> brctl delbr br0
The patches presented in this series have gone through the patch verification
tools and no warnings or errors are reported.
Sample test logs obtained from AM33x, AM43x and AM57x verifying the
functionality on Linux next kernel are available here:
[Interface up Testing](https://gist.github.com/ParvathiPudi/ee90d6f7778f01660eec714d128ee224)
[Ping Testing](https://gist.github.com/ParvathiPudi/ea7fc58da454b9c1d15517f84a502ae2)
[Iperf Testing](https://gist.github.com/ParvathiPudi/505d8c6e9de231098215c59b66dee20b)
[1] https://lore.kernel.org/all/20250912104741.528721-1-parvathi@couthit.com/
Thanks and Regards,
Parvathi.
Roger Quadros (3):
net: ti: icssm-prueth: Adds helper functions to configure and maintain
FDB
net: ti: icssm-prueth: Adds switchdev support for icssm_prueth driver
net: ti: icssm-prueth: Adds support for ICSSM RSTP switch
drivers/net/ethernet/ti/Makefile | 2 +-
drivers/net/ethernet/ti/icssm/icssm_prueth.c | 554 +++++++++-
drivers/net/ethernet/ti/icssm/icssm_prueth.h | 27 +-
.../ethernet/ti/icssm/icssm_prueth_fdb_tbl.h | 66 ++
.../ethernet/ti/icssm/icssm_prueth_switch.c | 999 ++++++++++++++++++
.../ethernet/ti/icssm/icssm_prueth_switch.h | 37 +
drivers/net/ethernet/ti/icssm/icssm_switch.h | 82 ++
.../net/ethernet/ti/icssm/icssm_switchdev.c | 332 ++++++
.../net/ethernet/ti/icssm/icssm_switchdev.h | 13 +
.../ti/icssm/icssm_vlan_mcast_filter_mmap.h | 120 +++
10 files changed, 2209 insertions(+), 23 deletions(-)
create mode 100644 drivers/net/ethernet/ti/icssm/icssm_prueth_fdb_tbl.h
create mode 100644 drivers/net/ethernet/ti/icssm/icssm_prueth_switch.c
create mode 100644 drivers/net/ethernet/ti/icssm/icssm_prueth_switch.h
create mode 100644 drivers/net/ethernet/ti/icssm/icssm_switchdev.c
create mode 100644 drivers/net/ethernet/ti/icssm/icssm_switchdev.h
create mode 100644 drivers/net/ethernet/ti/icssm/icssm_vlan_mcast_filter_mmap.h
--
2.43.0
next reply other threads:[~2025-09-25 14:14 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-25 14:02 Parvathi Pudi [this message]
2025-09-25 14:02 ` [PATCH net-next 1/3] net: ti: icssm-prueth: Adds helper functions to configure and maintain FDB Parvathi Pudi
2025-09-25 14:33 ` Andrew Lunn
2025-09-26 13:14 ` Parvathi Pudi
2025-09-25 14:02 ` [PATCH net-next 2/3] net: ti: icssm-prueth: Adds switchdev support for icssm_prueth driver Parvathi Pudi
2025-09-25 14:02 ` [PATCH net-next 3/3] net: ti: icssm-prueth: Adds support for ICSSM RSTP switch Parvathi Pudi
2025-09-25 14:19 ` [PATCH net-next 0/3] RSTP SWITCH support for PRU-ICSSM Ethernet driver Andrew Lunn
2025-09-26 13:09 ` Parvathi Pudi
2025-09-26 13:13 ` Andrew Lunn
2025-09-29 6:14 ` Parvathi Pudi
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=20250925141246.3433603-1-parvathi@couthit.com \
--to=parvathi@couthit.com \
--cc=afd@ti.com \
--cc=andrew+netdev@lunn.ch \
--cc=basharath@couthit.com \
--cc=danishanwar@ti.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=krishna@couthit.com \
--cc=kuba@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mohan@couthit.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=pmohan@couthit.com \
--cc=prajith@ti.com \
--cc=praneeth@ti.com \
--cc=pratheesh@ti.com \
--cc=rogerq@kernel.org \
--cc=rogerq@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