Skip to content

Commit e276cfb

Browse files
r-vigneshdavem330
authored andcommitted
docs: networking: ti: Add driver doc for AM65 NUSS switch driver
J721e, J7200 and AM64 have multi port switches which can work in multi mac mode and in switch mode. Add documentation explaining how to use different modes. Borrowed from: Documentation/networking/device_drivers/ethernet/ti/cpsw_switchdev.rst Signed-off-by: Vignesh Raghavendra <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 86e8b07 commit e276cfb

File tree

2 files changed

+144
-0
lines changed

2 files changed

+144
-0
lines changed

Documentation/networking/device_drivers/ethernet/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ Contents:
4949
stmicro/stmmac
5050
ti/cpsw
5151
ti/cpsw_switchdev
52+
ti/am65_nuss_cpsw_switchdev
5253
ti/tlan
5354
toshiba/spider_net
5455

Lines changed: 143 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,143 @@
1+
.. SPDX-License-Identifier: GPL-2.0
2+
3+
===================================================================
4+
Texas Instruments K3 AM65 CPSW NUSS switchdev based ethernet driver
5+
===================================================================
6+
7+
:Version: 1.0
8+
9+
Port renaming
10+
=============
11+
12+
In order to rename via udev::
13+
14+
ip -d link show dev sw0p1 | grep switchid
15+
16+
SUBSYSTEM=="net", ACTION=="add", ATTR{phys_switch_id}==<switchid>, \
17+
ATTR{phys_port_name}!="", NAME="sw0$attr{phys_port_name}"
18+
19+
20+
Multi mac mode
21+
==============
22+
23+
- The driver is operating in multi-mac mode by default, thus
24+
working as N individual network interfaces.
25+
26+
Devlink configuration parameters
27+
================================
28+
29+
See Documentation/networking/devlink/am65-nuss-cpsw-switch.rst
30+
31+
Enabling "switch"
32+
=================
33+
34+
The Switch mode can be enabled by configuring devlink driver parameter
35+
"switch_mode" to 1/true::
36+
37+
devlink dev param set platform/c000000.ethernet \
38+
name switch_mode value true cmode runtime
39+
40+
This can be done regardless of the state of Port's netdev devices - UP/DOWN, but
41+
Port's netdev devices have to be in UP before joining to the bridge to avoid
42+
overwriting of bridge configuration as CPSW switch driver completely reloads its
43+
configuration when first port changes its state to UP.
44+
45+
When the both interfaces joined the bridge - CPSW switch driver will enable
46+
marking packets with offload_fwd_mark flag.
47+
48+
All configuration is implemented via switchdev API.
49+
50+
Bridge setup
51+
============
52+
53+
::
54+
55+
devlink dev param set platform/c000000.ethernet \
56+
name switch_mode value true cmode runtime
57+
58+
ip link add name br0 type bridge
59+
ip link set dev br0 type bridge ageing_time 1000
60+
ip link set dev sw0p1 up
61+
ip link set dev sw0p2 up
62+
ip link set dev sw0p1 master br0
63+
ip link set dev sw0p2 master br0
64+
65+
[*] bridge vlan add dev br0 vid 1 pvid untagged self
66+
67+
[*] if vlan_filtering=1. where default_pvid=1
68+
69+
Note. Steps [*] are mandatory.
70+
71+
72+
On/off STP
73+
==========
74+
75+
::
76+
77+
ip link set dev BRDEV type bridge stp_state 1/0
78+
79+
VLAN configuration
80+
==================
81+
82+
::
83+
84+
bridge vlan add dev br0 vid 1 pvid untagged self <---- add cpu port to VLAN 1
85+
86+
Note. This step is mandatory for bridge/default_pvid.
87+
88+
Add extra VLANs
89+
===============
90+
91+
1. untagged::
92+
93+
bridge vlan add dev sw0p1 vid 100 pvid untagged master
94+
bridge vlan add dev sw0p2 vid 100 pvid untagged master
95+
bridge vlan add dev br0 vid 100 pvid untagged self <---- Add cpu port to VLAN100
96+
97+
2. tagged::
98+
99+
bridge vlan add dev sw0p1 vid 100 master
100+
bridge vlan add dev sw0p2 vid 100 master
101+
bridge vlan add dev br0 vid 100 pvid tagged self <---- Add cpu port to VLAN100
102+
103+
FDBs
104+
----
105+
106+
FDBs are automatically added on the appropriate switch port upon detection
107+
108+
Manually adding FDBs::
109+
110+
bridge fdb add aa:bb:cc:dd:ee:ff dev sw0p1 master vlan 100
111+
bridge fdb add aa:bb:cc:dd:ee:fe dev sw0p2 master <---- Add on all VLANs
112+
113+
MDBs
114+
----
115+
116+
MDBs are automatically added on the appropriate switch port upon detection
117+
118+
Manually adding MDBs::
119+
120+
bridge mdb add dev br0 port sw0p1 grp 239.1.1.1 permanent vid 100
121+
bridge mdb add dev br0 port sw0p1 grp 239.1.1.1 permanent <---- Add on all VLANs
122+
123+
Multicast flooding
124+
==================
125+
CPU port mcast_flooding is always on
126+
127+
Turning flooding on/off on swithch ports:
128+
bridge link set dev sw0p1 mcast_flood on/off
129+
130+
Access and Trunk port
131+
=====================
132+
133+
::
134+
135+
bridge vlan add dev sw0p1 vid 100 pvid untagged master
136+
bridge vlan add dev sw0p2 vid 100 master
137+
138+
139+
bridge vlan add dev br0 vid 100 self
140+
ip link add link br0 name br0.100 type vlan id 100
141+
142+
Note. Setting PVID on Bridge device itself works only for
143+
default VLAN (default_pvid).

0 commit comments

Comments
 (0)