]> www.infradead.org Git - users/jedix/linux-maple.git/commit
net: ti: icssg-prueth: Add support for ICSSG switch firmware
authorMD Danish Anwar <danishanwar@ti.com>
Tue, 28 May 2024 11:37:34 +0000 (17:07 +0530)
committerPaolo Abeni <pabeni@redhat.com>
Thu, 30 May 2024 13:37:26 +0000 (15:37 +0200)
commitabd5576b9c57fbf1ac2421463900061f4d67d96f
treea5c3d58180399bd8b46a1e309d0b02cad8abfa0c
parent972383aecf43c3664750496d5395e669c35ba06e
net: ti: icssg-prueth: Add support for ICSSG switch firmware

Add support for ICSSG switch firmware using existing Dual EMAC driver
with switchdev.

Limitations:
VLAN offloading is limited to 0-256 IDs.
MDB/FDB static entries are limited to 511 entries and different FDBs can
hash to same bucket and thus may not completely offloaded

Example assuming ETH1 and ETH2 as ICSSG2 interfaces:

Switch to ICSSG Switch mode:
 ip link add name br0 type bridge
 ip link set dev eth1 master br0
 ip link set dev eth2 master br0
 ip link set dev br0 up
 bridge vlan add dev br0 vid 1 pvid untagged self

Going back to Dual EMAC mode:

 ip link set dev br0 down
 ip link set dev eth1 nomaster
 ip link set dev eth2 nomaster
 ip link del name br0 type bridge

By default, Dual EMAC firmware is loaded, and can be changed to switch
mode by above steps

Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: MD Danish Anwar <danishanwar@ti.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/ethernet/ti/Kconfig
drivers/net/ethernet/ti/Makefile
drivers/net/ethernet/ti/icssg/icssg_classifier.c
drivers/net/ethernet/ti/icssg/icssg_common.c
drivers/net/ethernet/ti/icssg/icssg_config.c
drivers/net/ethernet/ti/icssg/icssg_config.h
drivers/net/ethernet/ti/icssg/icssg_prueth.c