调试ORIN平台有线网络接口时遇到问题,MDIO接口正常,RGMII数据无信号,但RGMII tx/rx时钟都有信号

附上开机log,gpio/pinmux状态,dts配置,是否能帮看下,感谢!
dts_final.txt (504.5 KB)
gpio state.txt (7.1 KB)
pinmux_status.txt (10.5 KB)
mii-tool.txt (491 Bytes)
bootlog.txt (74.1 KB)

9.649290] tegra234-pinctrl 2430000.pinmux: Config param 0000 (nvidia,pull) not supported on group eqos_comp
[ 9.649295] tegra234-pinctrl 2430000.pinmux: pin_config_group_set op failed for group 27

Looks like your pinmux setting has something wrong. You should fix that first.

Previously when I was measuring, I might have made a mistake. In fact, the RGMII has both RX and TX signals. Additionally, the error message you mentioned above occurred because I configured the eqos_comp. If I don’t configure this pin, there is no error.
The log information below is printed after I reconfigured the settings. The current issue is that the PHY seems to be functioning normally, and signals can be detected on the RGMII RX/TX/CLK lines. However, the RX/TX packet statistics of the related network card remain at 0—meaning no data can be transmitted or received, and it fails to obtain an IP address.

[ 631.547799] nvethernet 2310000.ethernet eth0: Link is Up - 1Gbps/Full - flow control off
devices/platform/bus@0/2310000.ethernet/mdio_bus/2310000.ethernet/2310000.ethernet:01/driver → ‘../../../../../../../bus/mdio_bus/drivers/YT8531 Gigabit Ethernet’
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 3c:6d:66:0c:60:d5 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

boot log info.txt (73.1 KB)
pinconfig.txt (4.6 KB)

[ 8.197266] nvethernet 2310000.ethernet: Ethernet MAC index missing

Did you enable RGMII in UEFI dtb too? MAC address is handled by UEFI stage. If you don’t enable RGMII driver in UEFI, then it won’t have MAC ddress…

The log you shared does not match to what you are talking about…

I followed the configuration in the article “Jetson AGX Orin Platform Adaptation and Bring-Up”. I haven’t modified the UEFI settings, and I’m not sure how to change them.
Jetson AGX Orin Platform Adaptation and Bring-Up — NVIDIA Jetson Linux Developer Guide
I also noticed the MAC-related error. After checking the code in ether_linux.c, I found that it finally correctly prints the “Ethernet MAC address” message , so I didn’t pay much attention to this error.

The boot log is indeed missing some information, possibly due to the log level settings. Below is what I captured separately using the insmod/rmmod nvethernet.ko method.
[ 158.627360] nvethernet 2310000.ethernet: failed to read skip mac reset flag, default 0
[ 158.627363] nvethernet 2310000.ethernet: failed to read MDIO address
[ 158.627367] nvethernet 2310000.ethernet: Failed to read nvida,pause_frames, so setting to default support as disable
[ 158.627370] nvethernet 2310000.ethernet: setting to default DMA bit mask
[ 158.627376] nvethernet 2310000.ethernet: max-platform-mtu DT entry missing, setting default 1500
[ 158.870844] nvethernet 2310000.ethernet: Ethernet MAC index missing
[ 158.870868] nvethernet 2310000.ethernet: Ethernet MAC address: 3c:6d:66:0c:60:d5
[ 158.871782] -->macsec_probe()
[ 158.871813] nvethernet 2310000.ethernet: macsec parameter is missing or disabled
[ 158.871818] <–macsec_probe()
[ 158.871819] nvethernet 2310000.ethernet: Macsec not supported/Not enabled
[ 158.874302] nvethernet 2310000.ethernet: eth0 (HW ver: 53) created with 8 DMA channels
root@a:/linux_share# [ 162.208233] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[ 162.208637] nvethernet 2310000.ethernet eth0: Link is Up - 1Gbps/Full - flow control off

UEFI and kernel share the same DTB.
Thus if you want to change something in UEFI, you need to modify the device tree and flash the board again. If you modify the kernel dtb only in rootfs then it won’t change anything to UEFI.

If link is up but no IP is showed, please check ifconfig for this interface and see if anything like TX packet is 0.

As you can see, if I manually assign an address to eth0 (e.g., 192.168.55.100), then execute the ping command to the gateway, and subsequently check the interface status using ifconfig, it shows transmitted packets but no received packets. Meanwhile, when I probe the RGMII TX/RX signal lines with an oscilloscope, I can observe signal activity.

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.55.100 netmask 255.255.255.0 broadcast 192.168.55.255
ether 3c:6d:66:0c:60:d5 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 659 bytes 49827 (49.8 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

Please check your pinmux setting again to make sure it really matches to our document.

Attached are the modifications I made regarding Ethernet. In fact, I have reviewed them multiple times and also attempted adjustments such as pull-up/pull-down configurations on the pins, but the issue remains unresolved.

Additionally, I would like to ask whether the following files in the bootloader directory need to be modified and whether they could impact the problem:

  • bootloader/generic/BCT/tegra234-mb1-bct-pinmux-p3701-0000-a04.dtsi
  • bootloader/tegra234-mb1-bct-gpio-p3701-0000-a04.dtsi

changes.txt (11.2 KB)

Modify your pinmux setting in the MB1 BCT dtsi but not where you modified.

Could you please specify exactly which file I should modify?

Check your flash log. I won’t know what module you are using to flash.

The file goes different when you are using different module. Thus, check your flash log is the most precise way.

It could be tegra234-mb1-bct-pinmux-p3701-0000-a04.dtsi or anything else. Your flash log will tell.

Attached is the flashing log from my side. Could you help point out which specific file needs to be modified?
To clarify further, currently the files I modified are:
Linux_for_Tegra/source/hardware/nvidia/t23x/nv-public/nv-soc/tegra234-soc-overlay.dtsi
Linux_for_Tegra/source/hardware/nvidia/t23x/nv-public/nv-soc/tegra234-base-overlay.dtsi

flash log.txt (103.7 KB)

Searching “pinmux” in your log and the first result is the file.

Hi WayneWWW

After moving the changes from file Linux_for_Tegra/source/hardware/nvidia/t23x/nv-public/nv-soc/tegra234-soc-overlay.dtsi to file Linux_for_Tegra/bootloader/generic/BCT/tegra234-mb1-bct-pinmux-p3701-0000-a04.dtsi, the result doesn’t seem to show any difference.

boot.txt (72.7 KB)

Please enable full log first because previously you said this UART won’t give you full log level out.

From this log, I only saw you still had no eqos enabled in UEFI stage.

Hi WayneWWW,

I think the pinmux is already configured properly now. If I intentionally configure an incorrect value for the MDIO/RGMII settings—for example, setting all RX pins to “rsvd1”—there is a significant difference: the network interface cannot be registered at all, and the driver will print “HW MAC INIT FAIL” in the logs.

I believe the issue might not be related to pinctrl but rather to the MAC settings. For instance, do I need to set the nvidia,phy-iface-mode value in the EQOS case?

No, that node is not needed for RGMII.

Please dump out all pinmux register as this list to confirm if pnmux is really correct.

Hi WayneWWW,
The result is show as below:
root@ubuntu:/home/a# busybox devmem 0x02434070
0x00000458
root@ubuntu:/home/a# busybox devmem 0x02434078
0x00000000
root@ubuntu:/home/a# busybox devmem 0x02445058
0x00002400
root@ubuntu:/home/a# busybox devmem 0x02445018
0x00002400
root@ubuntu:/home/a# busybox devmem 0x02445010
0x00002400
root@ubuntu:/home/a# busybox devmem 0x02445008
0x00002400
root@ubuntu:/home/a# busybox devmem 0x02445000
0x00002400
root@ubuntu:/home/a# busybox devmem 0x02445068
0x00002400
root@ubuntu:/home/a# busybox devmem 0x02445040
0x00002450
root@ubuntu:/home/a# busybox devmem 0x02445030
0x00002450
root@ubuntu:/home/a# busybox devmem 0x02445028
0x00002450
root@ubuntu:/home/a# busybox devmem 0x02445020
0x00002450
root@ubuntu:/home/a# busybox devmem 0x02445070
0x00002450
root@ubuntu:/home/a# busybox devmem 0x02445060
0x00002450
root@ubuntu:/home/a# busybox devmem 0x02445038
0x00002448
root@ubuntu:/home/a# busybox devmem 0x02445048
0x00002400
root@ubuntu:/home/a# busybox devmem 0x02445050
0x00002000
root@ubuntu:/home/a# busybox devmem 0x022140a0
0x00000003
root@ubuntu:/home/a# busybox devmem 0x02214080
0x00000000

0x02214080 is 0. It means this GPIO is totally not enabled.

This is for TEGRA_MAIN_GPIO_(G,4).