No network communication with RGMII on Custom board for Orin AGX Industrial

I’m working on support for Orin Industrial with a custom carrier board. The Ethernet device is detected, but I’m not able to ping any device on the network. Ethtool reported fail:

ethtool -t eth0
The test result is FAIL
The test extra info:
 1. MAC Loopback                         2
 2. PHY Loopback                         2
 3. MMC Counters                         -1

But kernel logs are not reporting any issue:

sudo dmesg|grep eth
[    0.000000] psci: probing for conduit method from DT.
[    4.866779] optee: probing for conduit method.
[    9.684509] systemd[1]: /etc/systemd/system/nvs-service.service:41: Standard output type syslog is obsolete, automatically updating to journal. Please update your unit file, and consider removing the setting altogether.
[    9.694257] systemd[1]: /etc/systemd/system/nvargus-daemon.service:42: Standard output type syslog is obsolete, automatically updating to journal. Please update your unit file, and consider removing the setting altogether.
[   12.496312] nvpps c6a0000.nvpps: primary-emac found ethernet@6800000
[   12.496381] nvpps c6a0000.nvpps: using ptp notifier method on emac ethernet@6800000
[   12.571216] nvethernet 2310000.ethernet: Adding to iommu group 49
[   12.571424] nvethernet 2310000.ethernet: failed to read skip mac reset flag, default 0
[   12.571428] nvethernet 2310000.ethernet: failed to read MDIO address
[   12.571435] nvethernet 2310000.ethernet: setting to default DMA bit mask
[   12.822313] nvethernet 2310000.ethernet: Ethernet MAC address: 48:b0:2d:ef:10:ec
[   12.826932] nvethernet 2310000.ethernet: Macsec not enabled
[   12.826936] nvethernet 2310000.ethernet: Macsec: Reduced MTU: 1466 Max: 8000
[   12.829006] nvethernet 2310000.ethernet: eth0 (HW ver: 53) created with 8 DMA channels

interrupt.txt (19.5 KB)
gpio.txt (6.9 KB)
dmesg.txt (55.5 KB)

Dtsi and dts files:
tegra234-mb1-bct-pinmux-p3701-0000-a04.dtsi.txt (63.6 KB)
tegra234-mb1-bct-gpio-p3701-0000-a04.dtsi.txt (4.8 KB)
tegra234-p3737-0000+p3701-0008-nv.dts.txt (1.2 KB)

Schematics:
Orin Industial

Looks no obvious mistake.

What is the result of “ethtool -S eth0”? after trying to ping ?

Result:

sudo ifconfig eth0 192.168.50.10 netmask 255.255.255.0 up
tester@ubuntu:~$ sudo route add default gw 192.168.50.1
tester@ubuntu:~$ ping 192.168.50.1
PING 192.168.50.1 (192.168.50.1) 56(84) bytes of data.
From 192.168.50.10 icmp_seq=1 Destination Host Unreachable
From 192.168.50.10 icmp_seq=2 Destination Host Unreachable
From 192.168.50.10 icmp_seq=3 Destination Host Unreachable
From 192.168.50.10 icmp_seq=4 Destination Host Unreachable
From 192.168.50.10 icmp_seq=5 Destination Host Unreachable
From 192.168.50.10 icmp_seq=6 Destination Host Unreachable
^C
--- 192.168.50.1 ping statistics ---
8 packets transmitted, 0 received, +6 errors, 100% packet loss, time 7146ms
pipe 4
tester@ubuntu:~$ sudo ethtool -S eth0 
NIC statistics:
     mmc_tx_octetcount_gb: 0
     mmc_tx_framecount_gb: 0
     mmc_tx_broadcastframe_g: 0
     mmc_tx_multicastframe_g: 0
     mmc_tx_64_octets_gb: 0
     mmc_tx_65_to_127_octets_gb: 0
     mmc_tx_128_to_255_octets_gb: 0
     mmc_tx_256_to_511_octets_gb: 0
     mmc_tx_512_to_1023_octets_gb: 0
     mmc_tx_1024_to_max_octets_gb: 0
     mmc_tx_unicast_gb: 0
     mmc_tx_multicast_gb: 0
     mmc_tx_broadcast_gb: 0
     mmc_tx_underflow_error: 0
     mmc_tx_singlecol_g: 0
     mmc_tx_multicol_g: 0
     mmc_tx_deferred: 0
     mmc_tx_latecol: 0
     mmc_tx_exesscol: 0
     mmc_tx_carrier_error: 0
     mmc_tx_octetcount_g: 0
     mmc_tx_framecount_g: 0
     mmc_tx_excessdef: 0
     mmc_tx_pause_frame: 0
     mmc_tx_vlan_frame_g: 0
     mmc_rx_framecount_gb: 148
     mmc_rx_octetcount_gb: 9472
     mmc_rx_octetcount_g: 9472
     mmc_rx_broadcastframe_g: 148
     mmc_rx_multicastframe_g: 0
     mmc_rx_crc_error: 0
     mmc_rx_align_error: 0
     mmc_rx_runt_error: 0
     mmc_rx_jabber_error: 0
     mmc_rx_undersize_g: 0
     mmc_rx_oversize_g: 0
     mmc_rx_64_octets_gb: 148
     mmc_rx_65_to_127_octets_gb: 0
     mmc_rx_128_to_255_octets_gb: 0
     mmc_rx_256_to_511_octets_gb: 0
     mmc_rx_512_to_1023_octets_gb: 0
     mmc_rx_1024_to_max_octets_gb: 0
     mmc_rx_unicast_g: 0
     mmc_rx_length_error: 0
     mmc_rx_outofrangetype: 0
     mmc_rx_pause_frames: 0
     mmc_rx_fifo_overflow: 0
     mmc_rx_vlan_frames_gb: 0
     mmc_rx_watchdog_error: 0
     mmc_rx_receive_error: 0
     mmc_rx_ctrl_frames_g: 0
     mmc_tx_lpi_usec_cntr: 0
     mmc_tx_lpi_tran_cntr: 0
     mmc_rx_lpi_usec_cntr: 0
     mmc_rx_lpi_tran_cntr: 0
     mmc_rx_ipv4_gd: 0
     mmc_rx_ipv4_hderr: 0
     mmc_rx_ipv4_nopay: 0
     mmc_rx_ipv4_frag: 0
     mmc_rx_ipv4_udsbl: 0
     mmc_rx_ipv6_gd_octets: 0
     mmc_rx_ipv6_hderr_octets: 0
     mmc_rx_ipv6_nopay_octets: 0
     mmc_rx_udp_gd: 0
     mmc_rx_udp_err: 0
     mmc_rx_tcp_gd: 0
     mmc_rx_tcp_err: 0
     mmc_rx_icmp_gd: 0
     mmc_rx_icmp_err: 0
     mmc_rx_ipv4_gd_octets: 0
     mmc_rx_ipv4_hderr_octets: 0
     mmc_rx_ipv4_nopay_octets: 0
     mmc_rx_ipv4_frag_octets: 0
     mmc_rx_ipv4_udsbl_octets: 0
     mmc_rx_ipv6_gd: 0
     mmc_rx_ipv6_hderr: 0
     mmc_rx_ipv6_nopay: 0
     mmc_rx_udp_gd_octets: 0
     mmc_rx_udp_err_octets: 0
     mmc_rx_tcp_gd_octets: 0
     mmc_rx_tcp_err_octets: 0
     mmc_rx_icmp_gd_octets: 0
     mmc_rx_icmp_err_octets: 0
     mmc_tx_octetcount_gb_h: 0
     mmc_tx_framecount_gb_h: 0
     mmc_tx_broadcastframe_g_h: 0
     mmc_tx_multicastframe_g_h: 0
     mmc_tx_64_octets_gb_h: 0
     mmc_tx_65_to_127_octets_gb_h: 0
     mmc_tx_128_to_255_octets_gb_h: 0
     mmc_tx_256_to_511_octets_gb_h: 0
     mmc_tx_512_to_1023_octets_gb_h: 0
     mmc_tx_1024_to_max_octets_gb_h: 0
     mmc_tx_unicast_gb_h: 0
     mmc_tx_multicast_gb_h: 0
     mmc_tx_broadcast_gb_h: 0
     mmc_tx_underflow_error_h: 0
     mmc_tx_octetcount_g_h: 0
     mmc_tx_framecount_g_h: 0
     mmc_tx_pause_frame_h: 0
     mmc_tx_vlan_frame_g_h: 0
     mmc_rx_framecount_gb_h: 0
     mmc_rx_octetcount_gb_h: 0
     mmc_rx_octetcount_g_h: 0
     mmc_rx_broadcastframe_g_h: 0
     mmc_rx_multicastframe_g_h: 0
     mmc_rx_crc_error_h: 0
     mmc_rx_64_octets_gb_h: 0
     mmc_rx_65_to_127_octets_gb_h: 0
     mmc_rx_128_to_255_octets_gb_h: 0
     mmc_rx_256_to_511_octets_gb_h: 0
     mmc_rx_512_to_1023_octets_gb_h: 0
     mmc_rx_1024_to_max_octets_gb_h: 0
     mmc_rx_unicast_g_h: 0
     mmc_rx_length_error_h: 0
     mmc_rx_outofrangetype_h: 0
     mmc_rx_pause_frames_h: 0
     mmc_rx_fifo_overflow_h: 0
     mmc_rx_vlan_frames_gb_h: 0
     mmc_rx_ipv4_gd_h: 0
     mmc_rx_ipv4_hderr_h: 0
     mmc_rx_ipv4_nopay_h: 0
     mmc_rx_ipv4_frag_h: 0
     mmc_rx_ipv4_udsbl_h: 0
     mmc_rx_ipv6_gd_octets_h: 0
     mmc_rx_ipv6_hderr_octets_h: 0
     mmc_rx_ipv6_nopay_octets_h: 0
     mmc_rx_udp_gd_h: 0
     mmc_rx_udp_err_h: 0
     mmc_rx_tcp_gd_h: 0
     mmc_rx_tcp_err_h: 0
     mmc_rx_icmp_gd_h: 0
     mmc_rx_icmp_err_h: 0
     mmc_rx_ipv4_gd_octets_h: 0
     mmc_rx_ipv4_hderr_octets_h: 0
     mmc_rx_ipv4_nopay_octets_h: 0
     mmc_rx_ipv4_frag_octets_h: 0
     mmc_rx_ipv4_udsbl_octets_h: 0
     mmc_rx_ipv6_gd_h: 0
     mmc_rx_ipv6_hderr_h: 0
     mmc_rx_ipv6_nopay_h: 0
     mmc_rx_udp_gd_octets_h: 0
     mmc_rx_udp_err_octets_h: 0
     mmc_rx_tcp_gd_octets_h: 0
     mmc_rx_tcp_err_octets_h: 0
     mmc_rx_icmp_gd_octets_h: 0
     mmc_rx_icmp_err_octets_h: 0
     mmc_tx_fpe_frag_cnt: 0
     mmc_tx_fpe_hold_req_cnt: 0
     mmc_rx_packet_reass_err_cnt: 0
     mmc_rx_packet_smd_err_cnt: 0
     mmc_rx_packet_asm_ok_cnt: 0
     mmc_rx_fpe_fragment_cnt: 0
     re_alloc_rxbuf_failed[0]: 0
     re_alloc_rxbuf_failed[1]: 0
     re_alloc_rxbuf_failed[2]: 0
     re_alloc_rxbuf_failed[3]: 0
     re_alloc_rxbuf_failed[4]: 0
     re_alloc_rxbuf_failed[5]: 0
     re_alloc_rxbuf_failed[6]: 0
     re_alloc_rxbuf_failed[7]: 0
     re_alloc_rxbuf_failed[8]: 0
     re_alloc_rxbuf_failed[9]: 0
     tx_normal_irq_n[0]: 0
     tx_normal_irq_n[1]: 0
     tx_normal_irq_n[2]: 0
     tx_normal_irq_n[3]: 0
     tx_normal_irq_n[4]: 0
     tx_normal_irq_n[5]: 0
     tx_normal_irq_n[6]: 0
     tx_normal_irq_n[7]: 0
     tx_normal_irq_n[8]: 0
     tx_normal_irq_n[9]: 0
     tx_usecs_swtimer_n[0]: 0
     tx_usecs_swtimer_n[1]: 0
     tx_usecs_swtimer_n[2]: 0
     tx_usecs_swtimer_n[3]: 0
     tx_usecs_swtimer_n[4]: 0
     tx_usecs_swtimer_n[5]: 0
     tx_usecs_swtimer_n[6]: 0
     tx_usecs_swtimer_n[7]: 0
     tx_usecs_swtimer_n[8]: 0
     tx_usecs_swtimer_n[9]: 0
     rx_normal_irq_n[0]: 0
     rx_normal_irq_n[1]: 0
     rx_normal_irq_n[2]: 0
     rx_normal_irq_n[3]: 0
     rx_normal_irq_n[4]: 0
     rx_normal_irq_n[5]: 0
     rx_normal_irq_n[6]: 0
     rx_normal_irq_n[7]: 0
     rx_normal_irq_n[8]: 0
     rx_normal_irq_n[9]: 0
     link_disconnect_count: 0
     link_connect_count: 0
     tx_clean_n[0]: 0
     tx_clean_n[1]: 0
     tx_clean_n[2]: 0
     tx_clean_n[3]: 0
     tx_clean_n[4]: 0
     tx_clean_n[5]: 0
     tx_clean_n[6]: 0
     tx_clean_n[7]: 0
     tx_clean_n[8]: 0
     tx_clean_n[9]: 0
     tx_pkt_n: 0
     rx_pkt_n: 148
     tx_vlan_pkt_n: 0
     rx_vlan_pkt_n: 0
     tx_tso_pkt_n: 0
     q_tx_pkt_n[0]: 0
     q_tx_pkt_n[1]: 0
     q_tx_pkt_n[2]: 0
     q_tx_pkt_n[3]: 0
     q_tx_pkt_n[4]: 0
     q_tx_pkt_n[5]: 0
     q_tx_pkt_n[6]: 0
     q_tx_pkt_n[7]: 0
     q_tx_pkt_n[8]: 0
     q_tx_pkt_n[9]: 0
     q_rx_pkt_n[0]: 0
     q_rx_pkt_n[1]: 148
     q_rx_pkt_n[2]: 0
     q_rx_pkt_n[3]: 0
     q_rx_pkt_n[4]: 0
     q_rx_pkt_n[5]: 0
     q_rx_pkt_n[6]: 0
     q_rx_pkt_n[7]: 0
     q_rx_pkt_n[8]: 0
     q_rx_pkt_n[9]: 0
     ip_header_error: 0
     jabber_timeout_error: 0
     pkt_flush_error: 0
     payload_cs_error: 0
     loss_of_carrier_error: 0
     no_carrier_error: 0
     late_collision_error: 0
     excessive_collision_error: 0
     excessive_deferal_error: 0
     underflow_error: 0
     rx_crc_error: 0
     rx_frame_error: 0
     clear_tx_err: 0
     clear_rx_err: 0
     frp_parsed: 0
     frp_dropped: 0
     frp_err: 0
     frp_incomplete: 0
     const_gate_ctr_err: 0
     head_of_line_blk_sch: 0
     hlbs_q[0]: 0
     hlbs_q[1]: 0
     hlbs_q[2]: 0
     hlbs_q[3]: 0
     hlbs_q[4]: 0
     hlbs_q[5]: 0
     hlbs_q[6]: 0
     hlbs_q[7]: 0
     head_of_line_blk_frm: 0
     hlbf_q[0]: 0
     hlbf_q[1]: 0
     hlbf_q[2]: 0
     hlbf_q[3]: 0
     hlbf_q[4]: 0
     hlbf_q[5]: 0
     hlbf_q[6]: 0
     hlbf_q[7]: 0
     base_time_reg_err: 0
     sw_own_list_complete: 0
     tx_proc_stopped_irq_n[0]: 0
     tx_proc_stopped_irq_n[1]: 0
     tx_proc_stopped_irq_n[2]: 0
     tx_proc_stopped_irq_n[3]: 0
     tx_proc_stopped_irq_n[4]: 0
     tx_proc_stopped_irq_n[5]: 0
     tx_proc_stopped_irq_n[6]: 0
     tx_proc_stopped_irq_n[7]: 0
     tx_proc_stopped_irq_n[8]: 0
     tx_proc_stopped_irq_n[9]: 0
     rx_proc_stopped_irq_n[0]: 0
     rx_proc_stopped_irq_n[1]: 0
     rx_proc_stopped_irq_n[2]: 0
     rx_proc_stopped_irq_n[3]: 0
     rx_proc_stopped_irq_n[4]: 0
     rx_proc_stopped_irq_n[5]: 0
     rx_proc_stopped_irq_n[6]: 0
     rx_proc_stopped_irq_n[7]: 0
     rx_proc_stopped_irq_n[8]: 0
     rx_proc_stopped_irq_n[9]: 0
     tx_buf_unavail_irq_n[0]: 0
     tx_buf_unavail_irq_n[1]: 0
     tx_buf_unavail_irq_n[2]: 0
     tx_buf_unavail_irq_n[3]: 0
     tx_buf_unavail_irq_n[4]: 0
     tx_buf_unavail_irq_n[5]: 0
     tx_buf_unavail_irq_n[6]: 0
     tx_buf_unavail_irq_n[7]: 0
     tx_buf_unavail_irq_n[8]: 0
     tx_buf_unavail_irq_n[9]: 0
     rx_buf_unavail_irq_n[0]: 0
     rx_buf_unavail_irq_n[1]: 0
     rx_buf_unavail_irq_n[2]: 0
     rx_buf_unavail_irq_n[3]: 0
     rx_buf_unavail_irq_n[4]: 0
     rx_buf_unavail_irq_n[5]: 0
     rx_buf_unavail_irq_n[6]: 0
     rx_buf_unavail_irq_n[7]: 0
     rx_buf_unavail_irq_n[8]: 0
     rx_buf_unavail_irq_n[9]: 0
     rx_watchdog_irq_n: 0
     fatal_bus_error_irq_n: 0
     ts_lock_add_fail: 0
     ts_lock_del_fail: 0
     mgbe_ip_header_err: 0
     mgbe_jabber_timeout_err: 0
     mgbe_payload_cs_err: 0
     mgbe_tx_underflow_err: 0

It looks like the RX is fine but TX still has problem?

Yes, it behave like this. It was working fine for Xavier, but for Orin it looks like it is working only partially.

Hello,
We have similar issue with our carrier board. On Xavier everything works fine but on AGX Industrial TX is not working. Have you made any progress?

I was able to make it working with fixed-link and it is working fine with 1gb/s but I can’t make it work correctly with mdio and I don’t understand why.

ethtool -S eth0
NIC statistics:
     mmc_tx_octetcount_gb: 1676853
     mmc_tx_framecount_gb: 9595
     mmc_tx_broadcastframe_g: 3449
     mmc_tx_multicastframe_g: 5819
     mmc_tx_64_octets_gb: 667
     mmc_tx_65_to_127_octets_gb: 4644
     mmc_tx_128_to_255_octets_gb: 1432
     mmc_tx_256_to_511_octets_gb: 2849
     mmc_tx_512_to_1023_octets_gb: 3
     mmc_tx_1024_to_max_octets_gb: 0
     mmc_tx_unicast_gb: 327
     mmc_tx_multicast_gb: 5819
     mmc_tx_broadcast_gb: 3449
     mmc_tx_underflow_error: 0
     mmc_tx_singlecol_g: 0
     mmc_tx_multicol_g: 0
     mmc_tx_deferred: 0
     mmc_tx_latecol: 0
     mmc_tx_exesscol: 0
     mmc_tx_carrier_error: 0
     mmc_tx_octetcount_g: 1676853
     mmc_tx_framecount_g: 9595
     mmc_tx_excessdef: 0
     mmc_tx_pause_frame: 0
     mmc_tx_vlan_frame_g: 0
     mmc_rx_framecount_gb: 62485
     mmc_rx_octetcount_gb: 4021227
     mmc_rx_octetcount_g: 4021227
     mmc_rx_broadcastframe_g: 62306
     mmc_rx_multicastframe_g: 8
     mmc_rx_crc_error: 0
     mmc_rx_align_error: 0
     mmc_rx_runt_error: 0
     mmc_rx_jabber_error: 0
     mmc_rx_undersize_g: 0
     mmc_rx_oversize_g: 0
     mmc_rx_64_octets_gb: 62361
     mmc_rx_65_to_127_octets_gb: 46
     mmc_rx_128_to_255_octets_gb: 38
     mmc_rx_256_to_511_octets_gb: 34
     mmc_rx_512_to_1023_octets_gb: 2
     mmc_rx_1024_to_max_octets_gb: 4
     mmc_rx_unicast_g: 171
     mmc_rx_length_error: 0
     mmc_rx_outofrangetype: 0
     mmc_rx_pause_frames: 0
     mmc_rx_fifo_overflow: 0
     mmc_rx_vlan_frames_gb: 0
     mmc_rx_watchdog_error: 0
     mmc_rx_receive_error: 0
     mmc_rx_ctrl_frames_g: 0
     mmc_tx_lpi_usec_cntr: 0
     mmc_tx_lpi_tran_cntr: 0
     mmc_rx_lpi_usec_cntr: 0
     mmc_rx_lpi_tran_cntr: 0
     mmc_rx_ipv4_gd: 126
     mmc_rx_ipv4_hderr: 0
     mmc_rx_ipv4_nopay: 0
     mmc_rx_ipv4_frag: 0
     mmc_rx_ipv4_udsbl: 0
     mmc_rx_ipv6_gd_octets: 0
     mmc_rx_ipv6_hderr_octets: 0
     mmc_rx_ipv6_nopay_octets: 0
     mmc_rx_udp_gd: 74
     mmc_rx_udp_err: 0
     mmc_rx_tcp_gd: 50
     mmc_rx_tcp_err: 0
     mmc_rx_icmp_gd: 2
     mmc_rx_icmp_err: 0
     mmc_rx_ipv4_gd_octets: 27963
     mmc_rx_ipv4_hderr_octets: 0
     mmc_rx_ipv4_nopay_octets: 0
     mmc_rx_ipv4_frag_octets: 0
     mmc_rx_ipv4_udsbl_octets: 0
     mmc_rx_ipv6_gd: 0
     mmc_rx_ipv6_hderr: 0
     mmc_rx_ipv6_nopay: 0
     mmc_rx_udp_gd_octets: 14371
     mmc_rx_udp_err_octets: 0
     mmc_rx_tcp_gd_octets: 10980
     mmc_rx_tcp_err_octets: 0
     mmc_rx_icmp_gd_octets: 92
     mmc_rx_icmp_err_octets: 0
     mmc_tx_octetcount_gb_h: 0
     mmc_tx_framecount_gb_h: 0
     mmc_tx_broadcastframe_g_h: 0
     mmc_tx_multicastframe_g_h: 0
     mmc_tx_64_octets_gb_h: 0
     mmc_tx_65_to_127_octets_gb_h: 0
     mmc_tx_128_to_255_octets_gb_h: 0
     mmc_tx_256_to_511_octets_gb_h: 0
     mmc_tx_512_to_1023_octets_gb_h: 0
     mmc_tx_1024_to_max_octets_gb_h: 0
     mmc_tx_unicast_gb_h: 0
     mmc_tx_multicast_gb_h: 0
     mmc_tx_broadcast_gb_h: 0
     mmc_tx_underflow_error_h: 0
     mmc_tx_octetcount_g_h: 0
     mmc_tx_framecount_g_h: 0
     mmc_tx_pause_frame_h: 0
     mmc_tx_vlan_frame_g_h: 0
     mmc_rx_framecount_gb_h: 0
     mmc_rx_octetcount_gb_h: 0
     mmc_rx_octetcount_g_h: 0
     mmc_rx_broadcastframe_g_h: 0
     mmc_rx_multicastframe_g_h: 0
     mmc_rx_crc_error_h: 0
     mmc_rx_64_octets_gb_h: 0
     mmc_rx_65_to_127_octets_gb_h: 0
     mmc_rx_128_to_255_octets_gb_h: 0
     mmc_rx_256_to_511_octets_gb_h: 0
     mmc_rx_512_to_1023_octets_gb_h: 0
     mmc_rx_1024_to_max_octets_gb_h: 0
     mmc_rx_unicast_g_h: 0
     mmc_rx_length_error_h: 0
     mmc_rx_outofrangetype_h: 0
     mmc_rx_pause_frames_h: 0
     mmc_rx_fifo_overflow_h: 0
     mmc_rx_vlan_frames_gb_h: 0
     mmc_rx_ipv4_gd_h: 0
     mmc_rx_ipv4_hderr_h: 0
     mmc_rx_ipv4_nopay_h: 0
     mmc_rx_ipv4_frag_h: 0
     mmc_rx_ipv4_udsbl_h: 0
     mmc_rx_ipv6_gd_octets_h: 0
     mmc_rx_ipv6_hderr_octets_h: 0
     mmc_rx_ipv6_nopay_octets_h: 0
     mmc_rx_udp_gd_h: 0
     mmc_rx_udp_err_h: 0
     mmc_rx_tcp_gd_h: 0
     mmc_rx_tcp_err_h: 0
     mmc_rx_icmp_gd_h: 0
     mmc_rx_icmp_err_h: 0
     mmc_rx_ipv4_gd_octets_h: 0
     mmc_rx_ipv4_hderr_octets_h: 0
     mmc_rx_ipv4_nopay_octets_h: 0
     mmc_rx_ipv4_frag_octets_h: 0
     mmc_rx_ipv4_udsbl_octets_h: 0
     mmc_rx_ipv6_gd_h: 0
     mmc_rx_ipv6_hderr_h: 0
     mmc_rx_ipv6_nopay_h: 0
     mmc_rx_udp_gd_octets_h: 0
     mmc_rx_udp_err_octets_h: 0
     mmc_rx_tcp_gd_octets_h: 0
     mmc_rx_tcp_err_octets_h: 0
     mmc_rx_icmp_gd_octets_h: 0
     mmc_rx_icmp_err_octets_h: 0
     mmc_tx_fpe_frag_cnt: 0
     mmc_tx_fpe_hold_req_cnt: 0
     mmc_rx_packet_reass_err_cnt: 0
     mmc_rx_packet_smd_err_cnt: 0
     mmc_rx_packet_asm_ok_cnt: 0
     mmc_rx_fpe_fragment_cnt: 0
     re_alloc_rxbuf_failed[0]: 0
     re_alloc_rxbuf_failed[1]: 0
     re_alloc_rxbuf_failed[2]: 0
     re_alloc_rxbuf_failed[3]: 0
     re_alloc_rxbuf_failed[4]: 0
     re_alloc_rxbuf_failed[5]: 0
     re_alloc_rxbuf_failed[6]: 0
     re_alloc_rxbuf_failed[7]: 0
     re_alloc_rxbuf_failed[8]: 0
     re_alloc_rxbuf_failed[9]: 0
     tx_normal_irq_n[0]: 0
     tx_normal_irq_n[1]: 0
     tx_normal_irq_n[2]: 0
     tx_normal_irq_n[3]: 0
     tx_normal_irq_n[4]: 0
     tx_normal_irq_n[5]: 0
     tx_normal_irq_n[6]: 0
     tx_normal_irq_n[7]: 0
     tx_normal_irq_n[8]: 0
     tx_normal_irq_n[9]: 0
     tx_usecs_swtimer_n[0]: 7063
     tx_usecs_swtimer_n[1]: 2503
     tx_usecs_swtimer_n[2]: 0
     tx_usecs_swtimer_n[3]: 0
     tx_usecs_swtimer_n[4]: 0
     tx_usecs_swtimer_n[5]: 0
     tx_usecs_swtimer_n[6]: 0
     tx_usecs_swtimer_n[7]: 0
     tx_usecs_swtimer_n[8]: 0
     tx_usecs_swtimer_n[9]: 0
     rx_normal_irq_n[0]: 0
     rx_normal_irq_n[1]: 0
     rx_normal_irq_n[2]: 0
     rx_normal_irq_n[3]: 0
     rx_normal_irq_n[4]: 0
     rx_normal_irq_n[5]: 0
     rx_normal_irq_n[6]: 0
     rx_normal_irq_n[7]: 0
     rx_normal_irq_n[8]: 0
     rx_normal_irq_n[9]: 0
     link_disconnect_count: 0
     link_connect_count: 1
     tx_clean_n[0]: 8480
     tx_clean_n[1]: 3004
     tx_clean_n[2]: 0
     tx_clean_n[3]: 0
     tx_clean_n[4]: 0
     tx_clean_n[5]: 0
     tx_clean_n[6]: 0
     tx_clean_n[7]: 0
     tx_clean_n[8]: 0
     tx_clean_n[9]: 0
     tx_pkt_n: 9593
     rx_pkt_n: 62485
     tx_vlan_pkt_n: 0
     rx_vlan_pkt_n: 0
     tx_tso_pkt_n: 0
     q_tx_pkt_n[0]: 7089
     q_tx_pkt_n[1]: 2506
     q_tx_pkt_n[2]: 0
     q_tx_pkt_n[3]: 0
     q_tx_pkt_n[4]: 0
     q_tx_pkt_n[5]: 0
     q_tx_pkt_n[6]: 0
     q_tx_pkt_n[7]: 0
     q_tx_pkt_n[8]: 0
     q_tx_pkt_n[9]: 0
     q_rx_pkt_n[0]: 171
     q_rx_pkt_n[1]: 62314
     q_rx_pkt_n[2]: 0
     q_rx_pkt_n[3]: 0
     q_rx_pkt_n[4]: 0
     q_rx_pkt_n[5]: 0
     q_rx_pkt_n[6]: 0
     q_rx_pkt_n[7]: 0
     q_rx_pkt_n[8]: 0
     q_rx_pkt_n[9]: 0
     ip_header_error: 0
     jabber_timeout_error: 0
     pkt_flush_error: 0
     payload_cs_error: 0
     loss_of_carrier_error: 0
     no_carrier_error: 0
     late_collision_error: 0
     excessive_collision_error: 0
     excessive_deferal_error: 0
     underflow_error: 0
     rx_crc_error: 0
     rx_frame_error: 0
     clear_tx_err: 0
     clear_rx_err: 0
     frp_parsed: 0
     frp_dropped: 0
     frp_err: 0
     frp_incomplete: 0
     const_gate_ctr_err: 0
     head_of_line_blk_sch: 0
     hlbs_q[0]: 0
     hlbs_q[1]: 0
     hlbs_q[2]: 0
     hlbs_q[3]: 0
     hlbs_q[4]: 0
     hlbs_q[5]: 0
     hlbs_q[6]: 0
     hlbs_q[7]: 0
     head_of_line_blk_frm: 0
     hlbf_q[0]: 0
     hlbf_q[1]: 0
     hlbf_q[2]: 0
     hlbf_q[3]: 0
     hlbf_q[4]: 0
     hlbf_q[5]: 0
     hlbf_q[6]: 0
     hlbf_q[7]: 0
     base_time_reg_err: 0
     sw_own_list_complete: 0
     tx_proc_stopped_irq_n[0]: 0
     tx_proc_stopped_irq_n[1]: 0
     tx_proc_stopped_irq_n[2]: 0
     tx_proc_stopped_irq_n[3]: 0
     tx_proc_stopped_irq_n[4]: 0
     tx_proc_stopped_irq_n[5]: 0
     tx_proc_stopped_irq_n[6]: 0
     tx_proc_stopped_irq_n[7]: 0
     tx_proc_stopped_irq_n[8]: 0
     tx_proc_stopped_irq_n[9]: 0
     rx_proc_stopped_irq_n[0]: 0
     rx_proc_stopped_irq_n[1]: 0
     rx_proc_stopped_irq_n[2]: 0
     rx_proc_stopped_irq_n[3]: 0
     rx_proc_stopped_irq_n[4]: 0
     rx_proc_stopped_irq_n[5]: 0
     rx_proc_stopped_irq_n[6]: 0
     rx_proc_stopped_irq_n[7]: 0
     rx_proc_stopped_irq_n[8]: 0
     rx_proc_stopped_irq_n[9]: 0
     tx_buf_unavail_irq_n[0]: 0
     tx_buf_unavail_irq_n[1]: 0
     tx_buf_unavail_irq_n[2]: 0
     tx_buf_unavail_irq_n[3]: 0
     tx_buf_unavail_irq_n[4]: 0
     tx_buf_unavail_irq_n[5]: 0
     tx_buf_unavail_irq_n[6]: 0
     tx_buf_unavail_irq_n[7]: 0
     tx_buf_unavail_irq_n[8]: 0
     tx_buf_unavail_irq_n[9]: 0
     rx_buf_unavail_irq_n[0]: 0
     rx_buf_unavail_irq_n[1]: 0
     rx_buf_unavail_irq_n[2]: 0
     rx_buf_unavail_irq_n[3]: 0
     rx_buf_unavail_irq_n[4]: 0
     rx_buf_unavail_irq_n[5]: 0
     rx_buf_unavail_irq_n[6]: 0
     rx_buf_unavail_irq_n[7]: 0
     rx_buf_unavail_irq_n[8]: 0
     rx_buf_unavail_irq_n[9]: 0
     rx_watchdog_irq_n: 0
     fatal_bus_error_irq_n: 0
     ts_lock_add_fail: 0
     ts_lock_del_fail: 0
     mgbe_ip_header_err: 0
     mgbe_jabber_timeout_err: 0
     mgbe_payload_cs_err: 0
     mgbe_tx_underflow_err: 0
ethtool  eth0
Settings for eth0:
        Supported ports: [ TP    MII ]
        Supported link modes:   1000baseT/Full
        Supported pause frame use: Symmetric Receive-only
        Supports auto-negotiation: Yes
        Supported FEC modes: Not reported
        Advertised link modes:  1000baseT/Full
        Advertised pause frame use: No
        Advertised auto-negotiation: Yes
        Advertised FEC modes: Not reported
        Speed: 1000Mb/s
        Duplex: Full
        Auto-negotiation: on
        Port: MII
        PHYAD: 0
        Transceiver: external
netlink error: Operation not permitted
        Current message level: 0x00000000 (0)
                              
        Link detected: yes
ethtool  eth0
Settings for eth0:
        Supported ports: [ TP    MII ]
        Supported link modes:   1000baseT/Full
        Supported pause frame use: Symmetric Receive-only
        Supports auto-negotiation: Yes
        Supported FEC modes: Not reported
        Advertised link modes:  1000baseT/Full
        Advertised pause frame use: No
        Advertised auto-negotiation: Yes
        Advertised FEC modes: Not reported
        Speed: 1000Mb/s
        Duplex: Full
        Auto-negotiation: on
        Port: MII
        PHYAD: 0
        Transceiver: external
netlink error: Operation not permitted
        Current message level: 0x00000000 (0)
                              
        Link detected: yes
sudo ethtool -t eth0                                                                                                                                                                                                                                                     
The test result is FAIL
The test extra info:
 1. MAC Loopback                         0
 2. PHY Loopback                         -110
 3. MMC Counters                         0

@WayneWWW any sugestion what I should check?

Review the hardware with the design guide.

It was nothing wrong with design guide. After long debugging I found that without configuring PG4 as input in MB1, ethernet won’t work correctly.
ODMDATA should contain gbe-uphy-config-0 or gbe-uphy-config-1
tegra234-mb1-bct-pinmux-p3701-0000-a04.dtsi.txt (63.6 KB)
tegra234-mb1-bct-pinmux-p3701-0000.dtsi.txt (63.6 KB)
tegra234-mb1-bct-gpio-p3701-0000-a04.dtsi.txt (4.8 KB)

Kernel Device tree requires only:

		ethernet@6800000 {
			status = "disable";
		};

		ethernet@2310000 {
			status = "okay";
			nvidia,mac-addr-idx = <0>;
			nvidia,max-platform-mtu = <16383>;
			nvidia,pause_frames = <0>;
			nvidia,phy-reset-gpio = <&gpio TEGRA234_MAIN_GPIO(G, 5) 0>;
			phy-handle = <&phy>;
			phy-mode = "rgmii-id";
			local-mac-address = [1a 2b 3c 4d 5e 6f];
			
			  mdio {
				  compatible = "nvidia,eqos-mdio";
				  #address-cells = <1>;
				  #size-cells = <0>;
			
				  phy: phy@1 {
					  reg = <0>;
					  nvidia,phy-rst-pdelay-msec = <224>; /* msec */
					  nvidia,phy-rst-duration-usec = <10000>; /* usec */
					  interrupt-parent = <&gpio>;
					  interrupts = <TEGRA234_MAIN_GPIO(G, 4) IRQ_TYPE_LEVEL_LOW>;
					  marvell,copper-mode;
					  marvell,reg-init = <0x03 0x12 0x7fff 0x880>;
				  };
			  };			
		};

“ODMDATA should contain gbe-uphy-config-0 or gbe-uphy-config-1”

This sounds not make much sense. RGMII is not part of UPHY setting. Changing this should not matter to the result. Unless your RGMII design has something related to the MGBE.

I don’t have MGBE chip so as in Developer Guide states:

You must change gbe-uphy-config from 22 to 0 or 1 if your CVB is not using MGBE. The board will not boot without this required change.

https://docs.nvidia.com/jetson/archives/r36.3/DeveloperGuide/HR/JetsonModuleAdaptationAndBringUp/JetsonAgxOrinSeries.html#uphy-lane-configuration

Ok. This is more related to the boot itself but not directly related to the issue.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.