This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

PROCESSOR-SDK-AM62X: AM6254

Part Number: PROCESSOR-SDK-AM62X
Other Parts Discussed in Thread: SK-AM62B-P1

Tool/software:

Dear Support Team,

       The SDK we use is processor_sdk_09_02_01_09, our company has customized the core board and base board based on AM6254, the hardware connection is as follows, one CPSW port ETH0 is connected to PC 1 (e.g. laptop), and the other CPSW port ETH1 is connected to PC 2 (e.g. laptop). Now we want to use CPSW's SWITCH mode, but we have a problem where the board can't ping PC1 and PC2. I collected some log information (am62x log.txt) and CPSW related device tree configuration (cpsw dts.txt). I've been researching for over a week and can't find what the problem is, can you help me see what's wrong? Thank you!

&cpsw3g {
        pinctrl-names = "default";
        pinctrl-0 = <&main_rgmii1_pins_default &main_rgmii2_pins_default>;

        cpts@3d000 {
                /* MAP HW3_TS_PUSH to GENF1 */
                ti,pps = <2 1>;
        };
};

&cpsw_port2 {
        phy-mode = "rgmii-rxid";
        phy-handle = <&cpsw3g_phy1>;
};

&cpsw3g_mdio {
        reset-gpios = <&mcu_gpio0 1 GPIO_ACTIVE_LOW &mcu_gpio0 3 GPIO_ACTIVE_LOW>;
                reset-delay-us = <100>;         /* set reset hold time to 100us */

        cpsw3g_phy1: ethernet-phy@1 {
                reg = <1>;
                ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
                ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
                ti,min-output-impedance;
        };
};


# our cpsw switch mode init script
root@AM62x-Tronlong:~# cat init_cpsw_switch_mode.sh
#!/bin/sh

ip link set dev eth0 down
ip link set dev eth1 down

devlink dev param set platform/8000000.ethernet name switch_mode value true cmode runtime

echo 1 > /sys/kernel/debug/8000000.ethernet/Port1/cut_thru_rx_pri_mask
echo 1 > /sys/kernel/debug/8000000.ethernet/Port1/cut_thru_tx_pri_mask
echo 1 > /sys/kernel/debug/8000000.ethernet/Port2/cut_thru_rx_pri_mask
echo 1 > /sys/kernel/debug/8000000.ethernet/Port2/cut_thru_tx_pri_mask

ethtool --set-priv-flags eth0 cut-thru on
ethtool --set-priv-flags eth1 cut-thru on

ip link add name br0 type bridge
ip link set dev br0 type bridge ageing_time 1000

ip link set dev eth0 up
sleep 5
ip link set dev eth1 up
sleep 5

ip link set dev eth0 master br0
ip link set dev eth1 master br0
ip link set dev br0 type bridge stp_state 1
ip link set dev br0 up

ip addr add 192.168.1.2/24 dev br0

bridge vlan add dev br0 vid 1 pvid untagged self


# run the init_cpsw_switch_mode.sh
root@AM62x-Tronlong:~# ./init_cpsw_switch_mode.sh
[   27.618499] am65-cpsw-nuss 8000000.ethernet eth0: Link is Down
[   27.638395] am65-cpsw-nuss 8000000.ethernet eth1: Link is Down
[   27.852007] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
[   28.063159] am65-cpsw-nuss 8000000.ethernet eth0: PHY [8000f00.mdio:00] driver [YT8521SH Gigabit Ethernet] (irq=POLL)
[   28.063192] am65-cpsw-nuss 8000000.ethernet: Init cut_thru
[   28.063202] am65-cpsw-nuss 8000000.ethernet eth0: configuring for phy/rgmii-rxid link mode
[   31.143589] am65-cpsw-nuss 8000000.ethernet: Port1: Enable cut_thru rx:00000001 tx:00000001 hwspeed:3 (00000101)
[   31.143649] am65-cpsw-nuss 8000000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx
[   31.143715] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   33.106962] am65-cpsw-nuss 8000000.ethernet eth1: PHY [8000f00.mdio:01] driver [TI DP83867] (irq=POLL)
[   33.106989] am65-cpsw-nuss 8000000.ethernet: Init cut_thru
[   33.106999] am65-cpsw-nuss 8000000.ethernet eth1: configuring for phy/rgmii-rxid link mode
[   37.191631] am65-cpsw-nuss 8000000.ethernet: Port2: Enable cut_thru rx:00000001 tx:00000001 hwspeed:3 (00000101)
[   37.191685] am65-cpsw-nuss 8000000.ethernet eth1: Link is Up - 1Gbps/Full - flow control rx/tx
[   37.191744] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
[   38.125196] br0: port 1(eth0) entered blocking state
[   38.125241] br0: port 1(eth0) entered disabled state
[   38.132580] device eth0 entered promiscuous mode
[   38.136980] kauditd_printk_skb: 3 callbacks suppressed
[   38.137009] audit: type=1700 audit(1722328862.992:13): dev=eth0 prom=256 old_prom=0 auid=4294967295 uid=0 gid=0 ses=4294967295
[   38.137683] audit: type=1300 audit(1722328862.992:13): arch=c00000b7 syscall=211 success=yes exit=40 a0=3 a1=ffffe7166408 a2=0 a3=ffffaa8f5840 items=0 ppid=1369 pid=1412 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=ttyS2 ses=4294967295 comm="ip" exe="/sbin/ip.iproute2" key=(null)
[   38.137703] audit: type=1327 audit(1722328862.992:13): proctitle=6970006C696E6B00736574006465760065746830006D617374657200627230
[   38.144927] br0: port 2(eth1) entered blocking state
[   38.144987] br0: port 2(eth1) entered disabled state
[   38.149660] device eth1 entered promiscuous mode
[   38.149735] audit: type=1700 audit(1722328863.012:14): dev=eth1 prom=256 old_prom=0 auid=4294967295 uid=0 gid=0 ses=4294967295
[   38.150458] audit: type=1300 audit(1722328863.012:14): arch=c00000b7 syscall=211 success=yes exit=40 a0=3 a1=ffffdaf8d228 a2=0 a3=ffffbb394840 items=0 ppid=1369 pid=1413 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=ttyS2 ses=4294967295 comm="ip" exe="/sbin/ip.iproute2" key=(null)
[   38.150511] audit: type=1327 audit(1722328863.012:14): proctitle=6970006C696E6B00736574006465760065746831006D617374657200627230
[   38.330644] br0: port 2(eth1) entered blocking state
[   38.330913] br0: port 1(eth0) entered blocking state
root@AM62x-Tronlong:~# [   39.356621] br0: port 1(eth0) entered blocking state
[   39.357562] br0: port 2(eth1) entered blocking state

root@AM62x-Tronlong:~# [   42.324726] br0: port 1(eth0) entered learning state
[   42.324999] br0: port 1(eth0) entered forwarding state
[   42.325103] br0: port 2(eth1) entered learning state
[   42.325176] br0: port 2(eth1) entered forwarding state
[   42.325665] IPv6: ADDRCONF(NETDEV_CHANGE): br0: link becomes ready



root@AM62x-Tronlong:~# ifconfig -a
br0       Link encap:Ethernet  HWaddr E2:88:D4:3A:74:9E
          inet addr:192.168.1.2  Bcast:0.0.0.0  Mask:255.255.255.0
          inet6 addr: fe80::e088:d4ff:fe3a:749e/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:36 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:4574 (4.4 KiB)

eth0      Link encap:Ethernet  HWaddr 28:B5:E8:DE:E7:93
          inet6 addr: fe80::2ab5:e8ff:fede:e793/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:36 errors:0 dropped:0 overruns:0 frame:0
          TX packets:168 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:4219 (4.1 KiB)  TX bytes:17780 (17.3 KiB)

eth1      Link encap:Ethernet  HWaddr 28:B5:E8:DE:E7:94
          inet6 addr: fe80::2ab5:e8ff:fede:e794/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:40 errors:0 dropped:0 overruns:0 frame:0
          TX packets:163 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:4061 (3.9 KiB)  TX bytes:17258 (16.8 KiB)

eth2      Link encap:Ethernet  HWaddr A2:4A:20:65:0D:EC
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:92 errors:0 dropped:0 overruns:0 frame:0
          TX packets:92 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:7678 (7.4 KiB)  TX bytes:7678 (7.4 KiB)

main_mcan0 Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          NOARP  MTU:16  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:10
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:227

mcu_mcan0 Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          NOARP  MTU:16  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:10
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

mcu_mcan1 Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          NOARP  MTU:16  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:10
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)



root@AM62x-Tronlong:~# netstat -nr
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 br0



root@AM62x-Tronlong:~# ethtool -S eth0
NIC statistics:
     p0_rx_good_frames: 531
     p0_rx_broadcast_frames: 28
     p0_rx_multicast_frames: 503
     p0_rx_crc_errors: 0
     p0_rx_oversized_frames: 0
     p0_rx_undersized_frames: 0
     p0_ale_drop: 0
     p0_ale_overrun_drop: 0
     p0_rx_octets: 51986
     p0_tx_good_frames: 76
     p0_tx_broadcast_frames: 54
     p0_tx_multicast_frames: 22
     p0_tx_octets: 8584
     p0_tx_64B_frames: 372
     p0_tx_65_to_127B_frames: 141
     p0_tx_128_to_255B_frames: 63
     p0_tx_256_to_511B_frames: 31
     p0_tx_512_to_1023B_frames: 0
     p0_tx_1024B_frames: 0
     p0_net_octets: 60570
     p0_rx_bottom_fifo_drop: 0
     p0_rx_port_mask_drop: 0
     p0_rx_top_fifo_drop: 0
     p0_ale_rate_limit_drop: 0
     p0_ale_vid_ingress_drop: 23
     p0_ale_da_eq_sa_drop: 0
     p0_ale_block_drop: 0
     p0_ale_secure_drop: 0
     p0_ale_auth_drop: 0
     p0_ale_unknown_ucast: 0
     p0_ale_unknown_ucast_bytes: 0
     p0_ale_unknown_mcast: 74
     p0_ale_unknown_mcast_bytes: 9608
     p0_ale_unknown_bcast: 0
     p0_ale_unknown_bcast_bytes: 0
     p0_ale_pol_match: 0
     p0_ale_pol_match_red: 0
     p0_ale_pol_match_yellow: 0
     p0_ale_mcast_sa_drop: 0
     p0_ale_dual_vlan_drop: 0
     p0_ale_len_err_drop: 0
     p0_ale_ip_next_hdr_drop: 0
     p0_ale_ipv4_frag_drop: 0
     p0_tx_mem_protect_err: 0
     p0_tx_pri0: 76
     p0_tx_pri1: 0
     p0_tx_pri2: 0
     p0_tx_pri3: 0
     p0_tx_pri4: 0
     p0_tx_pri5: 0
     p0_tx_pri6: 0
     p0_tx_pri7: 0
     p0_tx_pri0_bcnt: 8584
     p0_tx_pri1_bcnt: 0
     p0_tx_pri2_bcnt: 0
     p0_tx_pri3_bcnt: 0
     p0_tx_pri4_bcnt: 0
     p0_tx_pri5_bcnt: 0
     p0_tx_pri6_bcnt: 0
     p0_tx_pri7_bcnt: 0
     p0_tx_pri0_drop: 0
     p0_tx_pri1_drop: 0
     p0_tx_pri2_drop: 0
     p0_tx_pri3_drop: 0
     p0_tx_pri4_drop: 0
     p0_tx_pri5_drop: 0
     p0_tx_pri6_drop: 0
     p0_tx_pri7_drop: 0
     p0_tx_pri0_drop_bcnt: 0
     p0_tx_pri1_drop_bcnt: 0
     p0_tx_pri2_drop_bcnt: 0
     p0_tx_pri3_drop_bcnt: 0
     p0_tx_pri4_drop_bcnt: 0
     p0_tx_pri5_drop_bcnt: 0
     p0_tx_pri6_drop_bcnt: 0
     p0_tx_pri7_drop_bcnt: 0
     rx_good_frames: 217
     rx_broadcast_frames: 53
     rx_multicast_frames: 164
     rx_pause_frames: 0
     rx_crc_errors: 0
     rx_align_code_errors: 0
     rx_oversized_frames: 0
     rx_jabber_frames: 0
     rx_undersized_frames: 0
     rx_fragments: 0
     ale_drop: 168
     ale_overrun_drop: 0
     rx_octets: 26184
     tx_good_frames: 340
     tx_broadcast_frames: 86
     tx_multicast_frames: 254
     tx_pause_frames: 0
     tx_deferred_frames: 0
     tx_collision_frames: 31
     tx_single_coll_frames: 0
     tx_mult_coll_frames: 7
     tx_excessive_collisions: 0
     tx_late_collisions: 0
     rx_ipg_error: 0
     tx_carrier_sense_errors: 0
     tx_octets: 34267
     tx_64B_frames: 253
     tx_65_to_127B_frames: 201
     tx_128_to_255B_frames: 77
     tx_256_to_511B_frames: 26
     tx_512_to_1023B_frames: 0
     tx_1024B_frames: 0
     net_octets: 60451
     rx_bottom_fifo_drop: 0
     rx_port_mask_drop: 168
     rx_top_fifo_drop: 0
     ale_rate_limit_drop: 0
     ale_vid_ingress_drop: 64
     ale_da_eq_sa_drop: 0
     ale_block_drop: 0
     ale_secure_drop: 0
     ale_auth_drop: 0
     ale_unknown_ucast: 0
     ale_unknown_ucast_bytes: 0
     ale_unknown_mcast: 123
     ale_unknown_mcast_bytes: 13013
     ale_unknown_bcast: 40
     ale_unknown_bcast_bytes: 5548
     ale_pol_match: 0
     ale_pol_match_red: 0
     ale_pol_match_yellow: 0
     ale_mcast_sa_drop: 0
     ale_dual_vlan_drop: 0
     ale_len_err_drop: 0
     ale_ip_next_hdr_drop: 0
     ale_ipv4_frag_drop: 0
     iet_rx_assembly_err: 0
     iet_rx_assembly_ok: 0
     iet_rx_smd_err: 0
     iet_rx_frag: 0
     iet_tx_hold: 0
     iet_tx_frag: 0
     tx_mem_protect_err: 0
     tx_pri0: 340
     tx_pri1: 0
     tx_pri2: 0
     tx_pri3: 0
     tx_pri4: 0
     tx_pri5: 0
     tx_pri6: 0
     tx_pri7: 0
     tx_pri0_bcnt: 34191
     tx_pri1_bcnt: 0
     tx_pri2_bcnt: 0
     tx_pri3_bcnt: 0
     tx_pri4_bcnt: 0
     tx_pri5_bcnt: 0
     tx_pri6_bcnt: 0
     tx_pri7_bcnt: 0
     tx_pri0_drop: 0
     tx_pri1_drop: 0
     tx_pri2_drop: 0
     tx_pri3_drop: 0
     tx_pri4_drop: 0
     tx_pri5_drop: 0
     tx_pri6_drop: 0
     tx_pri7_drop: 0
     tx_pri0_drop_bcnt: 0
     tx_pri1_drop_bcnt: 0
     tx_pri2_drop_bcnt: 0
     tx_pri3_drop_bcnt: 0
     tx_pri4_drop_bcnt: 0
     tx_pri5_drop_bcnt: 0
     tx_pri6_drop_bcnt: 0
     tx_pri7_drop_bcnt: 0

root@AM62x-Tronlong:~# ethtool -S eth1
NIC statistics:
     p0_rx_good_frames: 533
     p0_rx_broadcast_frames: 28
     p0_rx_multicast_frames: 505
     p0_rx_crc_errors: 0
     p0_rx_oversized_frames: 0
     p0_rx_undersized_frames: 0
     p0_ale_drop: 0
     p0_ale_overrun_drop: 0
     p0_rx_octets: 52114
     p0_tx_good_frames: 76
     p0_tx_broadcast_frames: 54
     p0_tx_multicast_frames: 22
     p0_tx_octets: 8584
     p0_tx_64B_frames: 374
     p0_tx_65_to_127B_frames: 141
     p0_tx_128_to_255B_frames: 63
     p0_tx_256_to_511B_frames: 31
     p0_tx_512_to_1023B_frames: 0
     p0_tx_1024B_frames: 0
     p0_net_octets: 60698
     p0_rx_bottom_fifo_drop: 0
     p0_rx_port_mask_drop: 0
     p0_rx_top_fifo_drop: 0
     p0_ale_rate_limit_drop: 0
     p0_ale_vid_ingress_drop: 23
     p0_ale_da_eq_sa_drop: 0
     p0_ale_block_drop: 0
     p0_ale_secure_drop: 0
     p0_ale_auth_drop: 0
     p0_ale_unknown_ucast: 0
     p0_ale_unknown_ucast_bytes: 0
     p0_ale_unknown_mcast: 74
     p0_ale_unknown_mcast_bytes: 9608
     p0_ale_unknown_bcast: 0
     p0_ale_unknown_bcast_bytes: 0
     p0_ale_pol_match: 0
     p0_ale_pol_match_red: 0
     p0_ale_pol_match_yellow: 0
     p0_ale_mcast_sa_drop: 0
     p0_ale_dual_vlan_drop: 0
     p0_ale_len_err_drop: 0
     p0_ale_ip_next_hdr_drop: 0
     p0_ale_ipv4_frag_drop: 0
     p0_tx_mem_protect_err: 0
     p0_tx_pri0: 76
     p0_tx_pri1: 0
     p0_tx_pri2: 0
     p0_tx_pri3: 0
     p0_tx_pri4: 0
     p0_tx_pri5: 0
     p0_tx_pri6: 0
     p0_tx_pri7: 0
     p0_tx_pri0_bcnt: 8584
     p0_tx_pri1_bcnt: 0
     p0_tx_pri2_bcnt: 0
     p0_tx_pri3_bcnt: 0
     p0_tx_pri4_bcnt: 0
     p0_tx_pri5_bcnt: 0
     p0_tx_pri6_bcnt: 0
     p0_tx_pri7_bcnt: 0
     p0_tx_pri0_drop: 0
     p0_tx_pri1_drop: 0
     p0_tx_pri2_drop: 0
     p0_tx_pri3_drop: 0
     p0_tx_pri4_drop: 0
     p0_tx_pri5_drop: 0
     p0_tx_pri6_drop: 0
     p0_tx_pri7_drop: 0
     p0_tx_pri0_drop_bcnt: 0
     p0_tx_pri1_drop_bcnt: 0
     p0_tx_pri2_drop_bcnt: 0
     p0_tx_pri3_drop_bcnt: 0
     p0_tx_pri4_drop_bcnt: 0
     p0_tx_pri5_drop_bcnt: 0
     p0_tx_pri6_drop_bcnt: 0
     p0_tx_pri7_drop_bcnt: 0
     rx_good_frames: 233
     rx_broadcast_frames: 118
     rx_multicast_frames: 115
     rx_pause_frames: 0
     rx_crc_errors: 0
     rx_align_code_errors: 0
     rx_oversized_frames: 0
     rx_jabber_frames: 0
     rx_undersized_frames: 0
     rx_fragments: 0
     ale_drop: 121
     ale_overrun_drop: 0
     rx_octets: 27513
     tx_good_frames: 277
     tx_broadcast_frames: 27
     tx_multicast_frames: 250
     tx_pause_frames: 0
     tx_deferred_frames: 0
     tx_collision_frames: 7
     tx_single_coll_frames: 0
     tx_mult_coll_frames: 31
     tx_excessive_collisions: 0
     tx_late_collisions: 0
     rx_ipg_error: 0
     tx_carrier_sense_errors: 0
     tx_octets: 28701
     tx_64B_frames: 256
     tx_65_to_127B_frames: 130
     tx_128_to_255B_frames: 104
     tx_256_to_511B_frames: 20
     tx_512_to_1023B_frames: 0
     tx_1024B_frames: 0
     net_octets: 56214
     rx_bottom_fifo_drop: 0
     rx_port_mask_drop: 121
     rx_top_fifo_drop: 0
     ale_rate_limit_drop: 0
     ale_vid_ingress_drop: 6
     ale_da_eq_sa_drop: 0
     ale_block_drop: 0
     ale_secure_drop: 0
     ale_auth_drop: 0
     ale_unknown_ucast: 0
     ale_unknown_ucast_bytes: 0
     ale_unknown_mcast: 92
     ale_unknown_mcast_bytes: 10623
     ale_unknown_bcast: 47
     ale_unknown_bcast_bytes: 4611
     ale_pol_match: 0
     ale_pol_match_red: 0
     ale_pol_match_yellow: 0
     ale_mcast_sa_drop: 0
     ale_dual_vlan_drop: 0
     ale_len_err_drop: 0
     ale_ip_next_hdr_drop: 0
     ale_ipv4_frag_drop: 0
     iet_rx_assembly_err: 0
     iet_rx_assembly_ok: 0
     iet_rx_smd_err: 0
     iet_rx_frag: 0
     iet_tx_hold: 0
     iet_tx_frag: 0
     tx_mem_protect_err: 0
     tx_pri0: 277
     tx_pri1: 0
     tx_pri2: 0
     tx_pri3: 0
     tx_pri4: 0
     tx_pri5: 0
     tx_pri6: 0
     tx_pri7: 0
     tx_pri0_bcnt: 28685
     tx_pri1_bcnt: 0
     tx_pri2_bcnt: 0
     tx_pri3_bcnt: 0
     tx_pri4_bcnt: 0
     tx_pri5_bcnt: 0
     tx_pri6_bcnt: 0
     tx_pri7_bcnt: 0
     tx_pri0_drop: 0
     tx_pri1_drop: 0
     tx_pri2_drop: 0
     tx_pri3_drop: 0
     tx_pri4_drop: 0
     tx_pri5_drop: 0
     tx_pri6_drop: 0
     tx_pri7_drop: 0
     tx_pri0_drop_bcnt: 0
     tx_pri1_drop_bcnt: 0
     tx_pri2_drop_bcnt: 0
     tx_pri3_drop_bcnt: 0
     tx_pri4_drop_bcnt: 0
     tx_pri5_drop_bcnt: 0
     tx_pri6_drop_bcnt: 0
     tx_pri7_drop_bcnt: 0


root@AM62x-Tronlong:~# brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.e288d43a749e       yes             eth0
                                                        eth1

root@AM62x-Tronlong:~# brctl showmacs br0
port no mac addr                is local?       ageing timer
  1     28:b5:e8:de:e7:93       yes                0.00
  1     28:b5:e8:de:e7:93       yes                0.00
  2     28:b5:e8:de:e7:94       yes                0.00
  2     28:b5:e8:de:e7:94       yes                0.00

  • Hello,

    Thank you for sharing the log information including the results of ethtool -S

    Now we want to use CPSW's SWITCH mode, but we have a problem where the board can't ping PC1 and PC2.

    Just to clarify, when you say the board cannot ping PC1 and PC2, do you mean when you try to ping from PC1 to PC2 through your custom board as a CPSW switch, the ping fails? Can you show a log of what shows up when the ping fails?

    I did a comparison of your init_cpsw_switch_mode.sh script with the SDK documentation on enabling CPSW switch mode and it looks like you're missing the below line in your script. Could you try adding the below line to your script and test again?

    ...
    ip addr add 10.0.0.1/8 dev br0
    
    bridge vlan add dev br0 vid 1 self <--- this line is missing
    bridge vlan add dev br0 vid 1 pvid untagged self
    ...

    This command is needed for Linux Kernel 6.1 because of changes in the bridge stack in the kernel (please see https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1307112/am6442-what-is-bridge-command-added-in-sdk06_01_00_08 for more information).

    I did a quick test on my setup of 3 TI EVMs with the middle EVM (EVM2) being SK-AM62B-P1 configured as CPSW switch using the script from the SDK documentation. Ping works from EVM1 to EVM3, with the middle AM62x EVM as CPSW switch. 

    -Daolin

  • Thanks! Now it's working fine.