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