CPSW port not able to ping from PC

Part Number: AM6421

Tool/software:

HI

 We are using CPSW port on linux  in our Custom AM64X board.

  WE are unable to ping to the PC.

   AM64x Custom Board IP : 192.168.1.10

   PC ip : 192.168.1.100

   The PHY DP83822 is connected to AM64x over RMII interface.

  Below are the dmesg logs

[    1.287904] davinci_mdio 8000f00.mdio: Configuring MDIO in manual mode
[    1.321722] davinci_mdio 8000f00.mdio: davinci mdio revision 9.7, bus freq 1000000
[    1.329227] TI DP83822 8000f00.mdio:00: dp83822_read_straps MII_DP83822_SOR1[0x467] VAL :[0x43f3]*********
[    1.329245] TI DP83822 8000f00.mdio:00: dp83822_config_intr*********
[    1.329889] davinci_mdio 8000f00.mdio: phy[0]: device 8000f00.mdio:00, driver TI DP83822
[    1.330103] am65-cpsw-nuss 8000000.ethernet: initialized cpsw ale version 1.4
[    1.335939] am65-cpsw-nuss 8000000.ethernet: CPTS ver 0x4e8a010c, freq:500000000, add_val:1 pps:0
[    1.353671] am65-cpsw-nuss 8000000.ethernet: set new flow-id-base 16
[    1.373892] am65-cpts 39000000.cpts: CPTS ver 0x4e8a010c, freq:500000000, add_val:1 pps:0

[   14.757272] am65-cpsw-nuss 8000000.ethernet eth0: PHY [8000f00.mdio:00] driver [TI DP83822] (irq=POLL)
[   14.757303] am65-cpsw-nuss 8000000.ethernet eth0: configuring for phy/rmii link mode

[   17.828388] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready

We are able to read PHY  DP83822 registers

Other informations are as below.


root@am64xx-evm:~# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.10  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::1e63:49ff:fe10:63d1  prefixlen 64  scopeid 0x20<link>
        ether 1c:63:49:10:63:d1  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 38  bytes 4838 (4.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 95  bytes 7834 (7.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 95  bytes 7834 (7.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

root@am64xx-evm:~# ethtool eth0
Settings for eth0:
    Supported ports: [ TP     MII ]
    Supported link modes:   10baseT/Half 10baseT/Full
                            100baseT/Half 100baseT/Full
    Supported pause frame use: Symmetric
    Supports auto-negotiation: Yes
    Supported FEC modes: Not reported
    Advertised link modes:  10baseT/Half 10baseT/Full
                            100baseT/Half 100baseT/Full
    Advertised pause frame use: Symmetric
    Advertised auto-negotiation: Yes
    Advertised FEC modes: Not reported
    Link partner advertised link modes:  10baseT/Half 10baseT/Full
                                         100baseT/Half 100baseT/Full
    Link partner advertised pause frame use: Symmetric Receive-only
    Link partner advertised auto-negotiation: Yes
    Link partner advertised FEC modes: Not reported
    Speed: 100Mb/s
    Duplex: Full
    Auto-negotiation: on
    Port: Twisted Pair
    PHYAD: 0
    Transceiver: external
    MDI-X: Unknown
    Supports Wake-on: gs
    Wake-on: d
        SecureOn password: 00:00:00:00:00:00
        Current message level: 0x000020f7 (8439)
                               drv probe link ifdown ifup rx_err tx_err hw
    Link detected: yes

Our Modified DEvice tree


&cpsw3g {
    status = "okay";
    pinctrl-names = "default";
               
         pinctrl-0 = <&rmii1_pins_default>;

    /* Map HW8_TS_PUSH to GENF1 */
    /*cpts@3d000 {
        ti,pps = <7 1>;
    };*/
};

&cpsw3g_mdio {
    status = "okay";
    pinctrl-names = "default";
    pinctrl-0 = <&mdio1_pins_default>;
    
    //reset-gpios =  <&mcu_gpio0 4 GPIO_ACTIVE_LOW>;    //commented by us
    //reset-delay-us = <2>;                    //commented by us

    cpsw3g_phy0: ethernet-phy@0 {
        status = "okay";  
        compatible = "ti,dp83822", "ethernet-phy-ieee802.3-c22", "TI DP83822";
        
        reg = <0>;
   
    };
};
    
    rmii1_pins_default: rmii1-pins-default {
        pinctrl-single,pins = <
            AM64X_IOPAD(0x0154, PIN_INPUT, 5) /* (V12) PRG1_PRU1_GPO19.RMII1_CRS_DV */
            AM64X_IOPAD(0x0124, PIN_INPUT, 5) /* (V15) PRG1_PRU1_GPO7.RMII1_RXD0 */
            AM64X_IOPAD(0x012c, PIN_INPUT, 5) /* (V14) PRG1_PRU1_GPO9.RMII1_RXD1 */
            AM64X_IOPAD(0x00dc, PIN_INPUT, 5) /* (U15) PRG1_PRU0_GPO9.RMII1_RX_ER */
            AM64X_IOPAD(0x0130, PIN_OUTPUT, 5) /* (W14) PRG1_PRU1_GPO10.RMII1_TXD0 */
            AM64X_IOPAD(0x014c, PIN_OUTPUT, 5) /* (AA14) PRG1_PRU1_GPO17.RMII1_TXD1 */
            AM64X_IOPAD(0x0150, PIN_OUTPUT, 5) /* (Y13) PRG1_PRU1_GPO18.RMII1_TX_EN */
            AM64X_IOPAD(0x00e0, PIN_OUTPUT, 5) /* (U14) PRG1_PRU0_GPO10.RMII_REF_CLK */
        >;
    };

&cpsw_port1 {
    status = "okay";       
 
    phy-mode = "rmii";
    phy-handle = <&cpsw3g_phy0>;
    
    
};

Please help  us in resolving the issue.

  • Hello, 

    First, can you answer a couple of questions for me?

    1. Your test setup is a direct Ethernet connection between the PC and your custom board?

    2. Which Linux SDK version are you using?

    3. Can you share the results of "ethtool -S eth0" on your custom board after the ping failure?

    4. Is the PC a Linux PC where you can run "ethtool -S <interface name>"? If yes, please share the results of running that on the Linux PC connected to your custom board after the ping failure.

    The above questions are part of the steps to debug these types of ping issues from our Ethernet Debug Guide: https://www.ti.com/lit/an/spradj8/spradj8.pdf 

    -Daolin

  • Hi Daolin Qiu,

     Thank you for the response.

     

    1. Your test setup is a direct Ethernet connection between the PC and your custom board?

        we tried belwo options

         a)Direct Ethernet connection between the PC and Custom Board.

          b) Connecting both PC and Custom BOard to a HUB.

    2. Which Linux SDK version are you using?

         ti-processor-sdk-linux-rt-am64xx-evm-09.02.01.10

    3. Can you share the results of "ethtool -S eth0" on your custom board after the ping failure?

        Before Ping

                 

      root@am64xx-evm:~# ethtool -S eth0
    NIC statistics:
    p0_rx_good_frames: 39
    p0_rx_broadcast_frames: 0
    p0_rx_multicast_frames: 39
    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: 5060
    p0_tx_good_frames: 0
    p0_tx_broadcast_frames: 0
    p0_tx_multicast_frames: 0
    p0_tx_octets: 0
    p0_tx_64B_frames: 2
    p0_tx_65_to_127B_frames: 19
    p0_tx_128_to_255B_frames: 18
    p0_tx_256_to_511B_frames: 0
    p0_tx_512_to_1023B_frames: 0
    p0_tx_1024B_frames: 0
    p0_net_octets: 5060
    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: 0
    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: 0
    p0_ale_unknown_mcast_bytes: 0
    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: 0
    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: 0
    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: 0
    rx_broadcast_frames: 0
    rx_multicast_frames: 0
    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: 0
    ale_overrun_drop: 0
    rx_octets: 0
    tx_good_frames: 0
    tx_broadcast_frames: 0
    tx_multicast_frames: 0
    tx_pause_frames: 0
    tx_deferred_frames: 0
    tx_collision_frames: 0
    tx_single_coll_frames: 0
    tx_mult_coll_frames: 0
    tx_excessive_collisions: 0
    tx_late_collisions: 0
    rx_ipg_error: 0
    tx_carrier_sense_errors: 0
    tx_octets: 0
    tx_64B_frames: 0
    tx_65_to_127B_frames: 0
    tx_128_to_255B_frames: 0
    tx_256_to_511B_frames: 0
    tx_512_to_1023B_frames: 0
    tx_1024B_frames: 0
    net_octets: 0
    rx_bottom_fifo_drop: 0
    rx_port_mask_drop: 0
    rx_top_fifo_drop: 0
    ale_rate_limit_drop: 0
    ale_vid_ingress_drop: 0
    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: 0
    ale_unknown_mcast_bytes: 0
    ale_unknown_bcast: 0
    ale_unknown_bcast_bytes: 0
    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: 39
    tx_pri1: 0
    tx_pri2: 0
    tx_pri3: 0
    tx_pri4: 0
    tx_pri5: 0
    tx_pri6: 0
    tx_pri7: 0
    tx_pri0_bcnt: 5060
    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

    After Ping Command

    root@am64xx-evm:~# ping 192.168.1.100
    PING 192.168.1.100 (192.168.1.100): 56 data bytes
    ^C
    --- 192.168.1.100 ping statistics ---
    18 packets transmitted, 0 packets received, 100% packet loss
    
    
    root@am64xx-evm:~# ethtool -S eth0
    NIC statistics:
    p0_rx_good_frames: 55
    p0_rx_broadcast_frames: 15
    p0_rx_multicast_frames: 40
    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: 6094
    p0_tx_good_frames: 0
    p0_tx_broadcast_frames: 0
    p0_tx_multicast_frames: 0
    p0_tx_octets: 0
    p0_tx_64B_frames: 17
    p0_tx_65_to_127B_frames: 20
    p0_tx_128_to_255B_frames: 18
    p0_tx_256_to_511B_frames: 0
    p0_tx_512_to_1023B_frames: 0
    p0_tx_1024B_frames: 0
    p0_net_octets: 6094
    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: 0
    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: 0
    p0_ale_unknown_mcast_bytes: 0
    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: 0
    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: 0
    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: 0
    rx_broadcast_frames: 0
    rx_multicast_frames: 0
    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: 0
    ale_overrun_drop: 0
    rx_octets: 0
    tx_good_frames: 0
    tx_broadcast_frames: 0
    tx_multicast_frames: 0
    tx_pause_frames: 0
    tx_deferred_frames: 0
    tx_collision_frames: 0
    tx_single_coll_frames: 0
    tx_mult_coll_frames: 0
    tx_excessive_collisions: 0
    tx_late_collisions: 0
    rx_ipg_error: 0
    tx_carrier_sense_errors: 0
    tx_octets: 0
    tx_64B_frames: 0
    tx_65_to_127B_frames: 0
    tx_128_to_255B_frames: 0
    tx_256_to_511B_frames: 0
    tx_512_to_1023B_frames: 0
    tx_1024B_frames: 0
    net_octets: 0
    rx_bottom_fifo_drop: 0
    rx_port_mask_drop: 0
    rx_top_fifo_drop: 0
    ale_rate_limit_drop: 0
    ale_vid_ingress_drop: 0
    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: 0
    ale_unknown_mcast_bytes: 0
    ale_unknown_bcast: 0
    ale_unknown_bcast_bytes: 0
    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: 55
    tx_pri1: 0
    tx_pri2: 0
    tx_pri3: 0
    tx_pri4: 0
    tx_pri5: 0
    tx_pri6: 0
    tx_pri7: 0
    tx_pri0_bcnt: 6094
    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 the log are given above: 0
    tx_pri5_drop_bcnt: 0
    tx_pri6_drop_bcnt: 0
    tx_pri7_drop_bcnt: 0
    
    

    4. Is the PC a Linux PC where you can run "ethtool -S <interface name>"? If yes, please share the results of running that on the Linux PC connected to your custom board after the ping failure.

      The PC is LInux PC.THe logs are given above.

    Thank You

  • Hello,

    The PC is LInux PC.THe logs are given above.

    I went ahead to put those logs into a code block (Insert > Code). For future logs, please try to insert into a code block or add as an attachment as directly copying into E2E response will clutter the view.

    The logs you have provided appear to be only the log from the AM64x custom board. Do you have an equivalent output by running  "ethtool -S <interface name>" on the Linux PC? The goal is to check the RX and TX stats on both link partners to help narrow down the ping issue.

    From the ethtool statistics on the AM64x custom board, I see no "tx_good_frames" being sent out from the custom board. I expect to see nonzero transmit frames (tx_good_frame) due to ping being initiated from the custom board. Even if ping was not initiated, there should still be some nonzero transmit frames as long as there is a link up detected. See Section 9 Follow the Packet in https://www.ti.com/lit/an/spradj8/spradj8.pdf for an explanation of why.

    Could you also share the results of "cat /proc/net/snmp" both before and after the ping test?

    2. Which Linux SDK version are you using?

         ti-processor-sdk-linux-rt-am64xx-evm-09.02.01.10

    Any particular reason to using SDK version 09.02.01.10 as opposed to the latest SDK release 10.1?

    -Daolin

  • Hi Daolin Qiu,

     Please find the logs below as requested.

    Before Ping ON Custom Board
    ---------------------------
    root@am64xx-evm:~# cat /proc/net/snmp 
    Ip: Forwarding DefaultTTL InReceives InHdrErrors InAddrErrors ForwDatagrams InUnknownProtos InDiscards InDelivers OutRequests OutDiscards OutNoRoutes ReasmTimeout ReasmReqds ReasmOKs ReasmFails FragOKs FragFails FragCreates
    Ip: 2 64 109 0 0 0 0 0 107 112 20 480 0 0 0 0 0 0 0
    Icmp: InMsgs InErrors InCsumErrors InDestUnreachs InTimeExcds InParmProbs InSrcQuenchs InRedirects InEchos InEchoReps InTimestamps InTimestampReps InAddrMasks InAddrMaskReps OutMsgs OutErrors OutDestUnreachs OutTimeExcds OutParmProbs OutSrcQuenchs OutRedirects OutEchos OutEchoReps OutTimestamps OutTimestampReps OutAddrMasks OutAddrMaskReps
    Icmp: 40 0 0 40 0 0 0 0 0 0 0 0 0 0 40 0 40 0 0 0 0 0 0 0 0 0 0
    IcmpMsg: InType3 OutType3
    IcmpMsg: 40 40
    Tcp: RtoAlgorithm RtoMin RtoMax MaxConn ActiveOpens PassiveOpens AttemptFails EstabResets CurrEstab InSegs OutSegs RetransSegs InErrs OutRsts InCsumErrors
    Tcp: 1 200 120000 -1 0 0 0 0 0 0 0 0 0 0 0
    Udp: InDatagrams NoPorts InErrors OutDatagrams RcvbufErrors SndbufErrors InCsumErrors IgnoredMulti MemErrors
    Udp: 27 40 0 67 0 0 0 0 0
    UdpLite: InDatagrams NoPorts InErrors OutDatagrams RcvbufErrors SndbufErrors InCsumErrors IgnoredMulti MemErrors
    UdpLite: 0 0 0 0 0 0 0 0 0
    
    After ping on Custom Board
    --------------------------
    root@am64xx-evm:~# ping 192.168.1.100
    PING 192.168.1.100 (192.168.1.100): 56 data bytes
    ^C
    --- 192.168.1.100 ping statistics ---
    12 packets transmitted, 0 packets received, 100% packet loss
    
    root@am64xx-evm:~# cat /proc/net/snmp
    Ip: Forwarding DefaultTTL InReceives InHdrErrors InAddrErrors ForwDatagrams InUnknownProtos InDiscards InDelivers OutRequests OutDiscards OutNoRoutes ReasmTimeout ReasmReqds ReasmOKs ReasmFails FragOKs FragFails FragCreates
    Ip: 2 64 121 0 0 0 0 0 119 136 20 1680 0 0 0 0 0 0 0
    Icmp: InMsgs InErrors InCsumErrors InDestUnreachs InTimeExcds InParmProbs InSrcQuenchs InRedirects InEchos InEchoReps InTimestamps InTimestampReps InAddrMasks InAddrMaskReps OutMsgs OutErrors OutDestUnreachs OutTimeExcds OutParmProbs OutSrcQuenchs OutRedirects OutEchos OutEchoReps OutTimestamps OutTimestampReps OutAddrMasks OutAddrMaskReps
    Icmp: 52 0 0 52 0 0 0 0 0 0 0 0 0 0 64 0 52 0 0 0 0 12 0 0 0 0 0
    IcmpMsg: InType3 OutType3 OutType8
    IcmpMsg: 52 52 12
    Tcp: RtoAlgorithm RtoMin RtoMax MaxConn ActiveOpens PassiveOpens AttemptFails EstabResets CurrEstab InSegs OutSegs RetransSegs InErrs OutRsts InCsumErrors
    Tcp: 1 200 120000 -1 0 0 0 0 0 0 0 0 0 0 0
    Udp: InDatagrams NoPorts InErrors OutDatagrams RcvbufErrors SndbufErrors InCsumErrors IgnoredMulti MemErrors
    Udp: 27 40 0 67 0 0 0 0 0
    UdpLite: InDatagrams NoPorts InErrors OutDatagrams RcvbufErrors SndbufErrors InCsumErrors IgnoredMulti MemErrors
    UdpLite: 0 0 0 0 0 0 0 0 0
    root@am64xx-evm:~# 
    
    
    
    
    Before Ping on Linux PC
    -----------------------
    $ cat /proc/net/snmp
    Ip: Forwarding DefaultTTL InReceives InHdrErrors InAddrErrors ForwDatagrams InUnknownProtos InDiscards InDelivers OutRequests OutDiscards OutNoRoutes ReasmTimeout ReasmReqds ReasmOKs ReasmFails FragOKs FragFails FragCreates OutTransmits
    Ip: 2 64 27380 0 341 0 0 0 25348 22984 0 417 2 1734 211 2 0 0 0 22984
    Icmp: InMsgs InErrors InCsumErrors InDestUnreachs InTimeExcds InParmProbs InSrcQuenchs InRedirects InEchos InEchoReps InTimestamps InTimestampReps InAddrMasks InAddrMaskReps OutMsgs OutErrors OutRateLimitGlobal OutRateLimitHost OutDestUnreachs OutTimeExcds OutParmProbs OutSrcQuenchs OutRedirects OutEchos OutEchoReps OutTimestamps OutTimestampReps OutAddrMasks OutAddrMaskReps
    Icmp: 99 0 0 98 0 0 0 0 1 0 0 0 0 0 485 0 0 22 478 0 0 0 0 6 1 0 0 0 0
    IcmpMsg: InType3 InType8 OutType0 OutType3 OutType8
    IcmpMsg: 98 1 1 478 6
    Tcp: RtoAlgorithm RtoMin RtoMax MaxConn ActiveOpens PassiveOpens AttemptFails EstabResets CurrEstab InSegs OutSegs RetransSegs InErrs OutRsts InCsumErrors
    Tcp: 1 200 120000 -1 251 0 9 12 8 6777 7147 259 50 162 0
    Udp: InDatagrams NoPorts InErrors OutDatagrams RcvbufErrors SndbufErrors InCsumErrors IgnoredMulti MemErrors
    Udp: 17449 487 63 15775 63 0 0 445 0
    UdpLite: InDatagrams NoPorts InErrors OutDatagrams RcvbufErrors SndbufErrors InCsumErrors IgnoredMulti MemErrors
    UdpLite: 0 0 0 0 0 0 0 0 0
    
    
    After ping on Linux PC
    ----------------------
    $ ping 192.168.1.10
    PING 192.168.1.10 (192.168.1.10) 56(84) bytes of data.
    From 192.168.1.100 icmp_seq=1 Destination Host Unreachable
    From 192.168.1.100 icmp_seq=2 Destination Host Unreachable
    From 192.168.1.100 icmp_seq=3 Destination Host Unreachable
    ^C
    --- 192.168.1.10 ping statistics ---
    6 packets transmitted, 0 received, +3 errors, 100% packet loss, time 5134ms
    pipe 3
    
    
    $ cat /proc/net/snmp
    Ip: Forwarding DefaultTTL InReceives InHdrErrors InAddrErrors ForwDatagrams InUnknownProtos InDiscards InDelivers OutRequests OutDiscards OutNoRoutes ReasmTimeout ReasmReqds ReasmOKs ReasmFails FragOKs FragFails FragCreates OutTransmits
    Ip: 2 64 28803 0 341 0 0 0 26771 24413 0 421 2 1734 211 2 0 0 0 24413
    Icmp: InMsgs InErrors InCsumErrors InDestUnreachs InTimeExcds InParmProbs InSrcQuenchs InRedirects InEchos InEchoReps InTimestamps InTimestampReps InAddrMasks InAddrMaskReps OutMsgs OutErrors OutRateLimitGlobal OutRateLimitHost OutDestUnreachs OutTimeExcds OutParmProbs OutSrcQuenchs OutRedirects OutEchos OutEchoReps OutTimestamps OutTimestampReps OutAddrMasks OutAddrMaskReps
    Icmp: 105 0 0 104 0 0 0 0 1 0 0 0 0 0 503 0 0 22 484 0 0 0 0 18 1 0 0 0 0
    IcmpMsg: InType3 InType8 OutType0 OutType3 OutType8
    IcmpMsg: 104 1 1 484 18
    Tcp: RtoAlgorithm RtoMin RtoMax MaxConn ActiveOpens PassiveOpens AttemptFails EstabResets CurrEstab InSegs OutSegs RetransSegs InErrs OutRsts InCsumErrors
    Tcp: 1 200 120000 -1 251 0 9 12 8 6777 7151 259 50 162 0
    Udp: InDatagrams NoPorts InErrors OutDatagrams RcvbufErrors SndbufErrors InCsumErrors IgnoredMulti MemErrors
    Udp: 18866 487 63 17192 63 0 0 445 0
    UdpLite: InDatagrams NoPorts InErrors OutDatagrams RcvbufErrors SndbufErrors InCsumErrors IgnoredMulti MemErrors
    UdpLite: 0 0 0 0 0 0 0 0 0
    
    
    Before Ping on Linux PC
    -----------------------
    $ ethtool -S enp2s0
    NIC statistics:
         tx_packets: 6492
         rx_packets: 20223
         tx_errors: 0
         rx_errors: 0
         rx_missed: 10
         align_errors: 0
         tx_single_collisions: 0
         tx_multi_collisions: 0
         unicast: 6830
         broadcast: 5986
         multicast: 7407
         tx_aborted: 0
         tx_underrun: 0
    $ ping 192.168.1.10
    PING 192.168.1.10 (192.168.1.10) 56(84) bytes of data.
    ^C
    --- 192.168.1.10 ping statistics ---
    3 packets transmitted, 0 received, 100% packet loss, time 2056ms
    
    After Ping on Linux PC
    -----------------------
    $ ethtool -S enp2s0
    NIC statistics:
         tx_packets: 6547
         rx_packets: 22063
         tx_errors: 0
         rx_errors: 0
         rx_missed: 10
         align_errors: 0
         tx_single_collisions: 0
         tx_multi_collisions: 0
         unicast: 6871
         broadcast: 6137
         multicast: 9055
         tx_aborted: 0
         tx_underrun: 0
    
    Before Ping ON Custom Board
    ---------------------------
    root@am64xx-evm:~# ethtool -S eth0
    NIC statistics:
         p0_rx_good_frames: 54
         p0_rx_broadcast_frames: 9
         p0_rx_multicast_frames: 45
         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: 6096
         p0_tx_good_frames: 0
         p0_tx_broadcast_frames: 0
         p0_tx_multicast_frames: 0
         p0_tx_octets: 0
         p0_tx_64B_frames: 11
         p0_tx_65_to_127B_frames: 25
         p0_tx_128_to_255B_frames: 18
         p0_tx_256_to_511B_frames: 0
         p0_tx_512_to_1023B_frames: 0
         p0_tx_1024B_frames: 0
         p0_net_octets: 6096
         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: 0
         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: 0
         p0_ale_unknown_mcast_bytes: 0
         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: 0
         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: 0
         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: 0
         rx_broadcast_frames: 0
         rx_multicast_frames: 0
         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: 0
         ale_overrun_drop: 0
         rx_octets: 0
         tx_good_frames: 0
         tx_broadcast_frames: 0
         tx_multicast_frames: 0
         tx_pause_frames: 0
         tx_deferred_frames: 0
         tx_collision_frames: 0
         tx_single_coll_frames: 0
         tx_mult_coll_frames: 0
         tx_excessive_collisions: 0
         tx_late_collisions: 0
         rx_ipg_error: 0
         tx_carrier_sense_errors: 0
         tx_octets: 0
         tx_64B_frames: 0
         tx_65_to_127B_frames: 0
         tx_128_to_255B_frames: 0
         tx_256_to_511B_frames: 0
         tx_512_to_1023B_frames: 0
         tx_1024B_frames: 0
         net_octets: 0
         rx_bottom_fifo_drop: 0
         rx_port_mask_drop: 0
         rx_top_fifo_drop: 0
         ale_rate_limit_drop: 0
         ale_vid_ingress_drop: 0
         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: 0
         ale_unknown_mcast_bytes: 0
         ale_unknown_bcast: 0
         ale_unknown_bcast_bytes: 0
         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: 54
         tx_pri1: 0
         tx_pri2: 0
         tx_pri3: 0
         tx_pri4: 0
         tx_pri5: 0
         tx_pri6: 0
         tx_pri7: 0
         tx_pri0_bcnt: 6096
         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
         
         
    After Ping ON Custom Board
    ---------------------------
    
     root@am64xx-evm:~# ping 192.168.1.100
    PING 192.168.1.100 (192.168.1.100): 56 data bytes
    ^C
    --- 192.168.1.100 ping statistics ---
    6 packets transmitted, 0 packets received, 100% packet loss
    root@am64xx-evm:~# ethtool -S eth0
    NIC statistics:
         p0_rx_good_frames: 81
         p0_rx_broadcast_frames: 15
         p0_rx_multicast_frames: 66
         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: 9242
         p0_tx_good_frames: 0
         p0_tx_broadcast_frames: 0
         p0_tx_multicast_frames: 0
         p0_tx_octets: 0
         p0_tx_64B_frames: 17
         p0_tx_65_to_127B_frames: 39
         p0_tx_128_to_255B_frames: 22
         p0_tx_256_to_511B_frames: 3
         p0_tx_512_to_1023B_frames: 0
         p0_tx_1024B_frames: 0
         p0_net_octets: 9242
         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: 0
         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: 0
         p0_ale_unknown_mcast_bytes: 0
         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: 0
         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: 0
         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: 0
         rx_broadcast_frames: 0
         rx_multicast_frames: 0
         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: 0
         ale_overrun_drop: 0
         rx_octets: 0
         tx_good_frames: 0
         tx_broadcast_frames: 0
         tx_multicast_frames: 0
         tx_pause_frames: 0
         tx_deferred_frames: 0
         tx_collision_frames: 0
         tx_single_coll_frames: 0
         tx_mult_coll_frames: 0
         tx_excessive_collisions: 0
         tx_late_collisions: 0
         rx_ipg_error: 0
         tx_carrier_sense_errors: 0
         tx_octets: 0
         tx_64B_frames: 0
         tx_65_to_127B_frames: 0
         tx_128_to_255B_frames: 0
         tx_256_to_511B_frames: 0
         tx_512_to_1023B_frames: 0
         tx_1024B_frames: 0
         net_octets: 0
         rx_bottom_fifo_drop: 0
         rx_port_mask_drop: 0
         rx_top_fifo_drop: 0
         ale_rate_limit_drop: 0
         ale_vid_ingress_drop: 0
         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: 0
         ale_unknown_mcast_bytes: 0
         ale_unknown_bcast: 0
         ale_unknown_bcast_bytes: 0
         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: 81
         tx_pri1: 0
         tx_pri2: 0
         tx_pri3: 0
         tx_pri4: 0
         tx_pri5: 0
         tx_pri6: 0
         tx_pri7: 0
         tx_pri0_bcnt: 9242
         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@am64xx-evm:~# 
    

    2. Which Linux SDK version are you using?

         ti-processor-sdk-linux-rt-am64xx-evm-09.02.01.10

         Any particular reason to using SDK version 09.02.01.10 as opposed to the latest SDK release 10.1?

        --

          We started using the Processor SDK and Industrial SDK from SDK from version 8 onwards.

          Right now our both Processor SDK and Industrial Communication SDK production version in on SDK 9.2.

           and Industrial SDK 10.x is not yet released.

         Since our  production version  is 9.2.  we want to continue on 9.2.

  • Hello,

    1. Your test setup is a direct Ethernet connection between the PC and your custom board?

        we tried belwo options

         a)Direct Ethernet connection between the PC and Custom Board.

          b) Connecting both PC and Custom BOard to a HUB.

    Was the result of your log from test setup (a)? A direct connection is much easier to debug with. 

    Also, is the Linux PC connected via Ethernet port to any device other than the custom board (device under test)?

    I see from the device tree snippets and the result of "ifconfig" on the custom board, there is only one Ethernet interface (eth0). Just to clarify, you have no other Ethernet interfaces on the custom board other than eth0?

    I see from your /proc/net/snmp output that there are outgoing ICMP messages (OutMsgs and InMsgs), however no tx_good_frames on the MAC hardware statistics (ethtool -S). This indicates to me that while there are outgoing packets on an upper layer TCP/IP layer, these packets don't seem to be reaching the MAC hardware layer. This also seems to be supported with your "ifconfig" results in your initial post ("TX packets 38"). 

    I need to discuss with a colleague about this zero tx_good_frames issue. Without this working, any outgoing communication from your custom board will not work.

    -Daolin

  • Hi Daolin Qiu,

    Was the result of your log from test setup (a)? A direct connection is much easier to debug with. 

    - Yes we are using direct connection only.

       No other device is connected to the PC Ethernet Port other than Custom Board.

       We appreciate your early reply. Since customer is waiting for the product delivery.

    Thank You.

  • Hi Narashimha Rao,

    Just to clarify, you have no other Ethernet interfaces on the custom board other than eth0?

    Can you additionally confirm this?

    I need to discuss with a colleague about this zero tx_good_frames issue. Without this working, any outgoing communication from your custom board will not work.

    After speaking with a colleague, the "p0_rx_good_frames" counter from the "ethtool -S eth0" stats should match with the result from "tx_good_frames". From your custom board log, "p0_rx_good_frames: 81"; however, as mentioned before, "tx_good_frames: 0". This means the Ethernet packets are exiting from the internal host port (p0_rx_good_frames) of CPSW but not exiting from the physical MAC layer (tx_good_frames). It seems like the packets are queued up for transmission in software but for some reason not exiting the physical port.

    1. Can you probe the RMII reference clock (RMII_REF_CLK) and check if it is the expected 50MHz? 

    2. When probing the RMII reference clock, please try both measuring close to the PHY and to the processor's MAC if possible.

    3. Can you also share a snippet of your schematic where the CPSW signals are routed? Please note anything shared directly on this thread is viewable to the public so if you need to share offline, please let me know.

    We want to check if the hardware signals are setup so packets can exit the physical MAC layer.

    Since customer is waiting for the product delivery.

    What is the timeline for the customer's product delivery? Can you share what end application is this product?

    -Daolin

  • Hi Daolin Qiu,

     Daolin Qiu said:

          Just to clarify, you have no other Ethernet interfaces on the custom board other than eth0?
    Rao Said:
          We have only eth0 CPSW port on Linux Main Domain.
      
          We are using 2 other ICSSG ports for Industrial Communication protocols in MCU domain, which are working fine.

    1. Can you probe the RMII reference clock (RMII_REF_CLK) and check if it is the expected 50MHz? 

    2. When probing the RMII reference clock, please try both measuring close to the PHY and to the processor's MAC if possible.

    Rao Said:

       We have measured the RMII reference clock (RMII_REF_CLK) and is as expected 50MHz.

        The RMII reference clock is same on both sides , close to PHY and near Processor MAC pins.

     Daolin Qiu said:

    3. Can you also share a snippet of your schematic where the CPSW signals are routed? Please note anything shared directly on this thread is viewable to the public so if you need to share offline, please let me know.

    We are using the DP83822 phy.

    We are using the DP83822 phy.

     Daolin Qiu said:

    What is the timeline for the customer's product delivery? Can you share what end application is this product?

    Rao Said:

    The timeline for customer product delivery is before 15-FEB-2025, with OPC ported on Linux using CPSW RMII ethernet port.

    We appreciate a fast response. 

    Thank You.

  • Hello,

    We are using 2 other ICSSG ports for Industrial Communication protocols in MCU domain, which are working fine.

    When testing ping on the CPSW interface, were these two other ICSSG ports connected to another device and were actively running (i.e. MCU domain enabled)?

    3. Can you also share a snippet of your schematic where the CPSW signals are routed? Please note anything shared directly on this thread is viewable to the public so if you need to share offline, please let me know.

    We are using the DP83822 phy.

    We are using the DP83822 phy.

    Can you additionally, share the part of the snippet showing where those CPSW_RMII_x signals are connected to?

    -Daolin

  • Hi,

     Daolin Qiu said:

    When testing ping on the CPSW interface, were these two other ICSSG ports connected to another device and were actively running (i.e. MCU domain enabled)?

    Yes When testing ping on CPSW interface, The other two ICSSG ports are connected to another device and were actively running in MCU domain(R5F0_0).

    Daolin Qiu said:

    Can you additionally, share the part of the snippet showing where those CPSW_RMII_x signals are connected to?

    CPSW_RMII signals schematic in our custom board

                 

  • Hello, 

    Can you try reading the CPSW_STATN_TXGOODFRAMES_k register? Use the AM64x TRM Section 12.2.1.6.8.14 CPSW_STATN_TXGOODFRAMES_k Register to determine the exact address to read depending on the CPSW port being used (which looks to be eth0, port 1, in your board design). You can use something like "devmem2 0x0803A234" for port 0 following the formula in the TRM. Does this align with the "tx_good_frames: 0" statistic from before?

    Additionally, can you read the CPSW_STAT0_RXGOODFRAMES register (TRM 12.2.1.6.8.1). Does the result align with "p0_rx_good_frames: 81" statistic from before?

    Yes When testing ping on CPSW interface, The other two ICSSG ports are connected to another device and were actively running in MCU domain(R5F0_0).

    Also, can you disconnect these two ICSSG ports (and ideally stop the R5F0_0 core from running) and retest ping on the CPSW interface (let's work on one port at a time)? Are the ethtool results the same?

    Last question, have you enabled any sort of MAC loopback test?

    -Daolin