Hi Folks -
We are unable to get RGMII working with Orin and L4T 35.1.
There are many posts on the forum about this topic already:
- Jetson AGX Orin RGMII to use
- Jetson ORIN: RGMII can't send data
- Orin rgmii cann't work
- Use rgmii on orin, the speed drop from 1g to 10M
- Enable RGMII questions
- Flashing Module with RGMII fails
- RGMII Enabling Problem
- RGMII with switch can't work
- Problem with RGMII Ethernet with JetPack 5.0.2 (was working with JetPack 5.0.1DP)
- Gigabit ethernet interface MTU automatically reduced
Following these posts and the adaptation guide, we are still unable to get the RGMII to work. Any advice for further troubleshooting will be very welcome.
DETAILS
- We have a custom carrier board with the Marvel 88E1512 Phy connected exactly as the Xavier Carrier Board. The carrier ethernet has been validated with a Xavier and L4T32.6.1.
- We build the kernel following the developers guide, with source_synced to tag jetson_35.1
- We modify the ODMDATA field to disable the 10G ethernet and allow the Orin to boot.
- We update the UEFI with the debug version following the instructions on the github wiki (and other forum posts)
- We modify the pinmux as suggested in the developers guide. (There are errors in the current version of the guide).
- We modify the device tree as suggested in the developers guide.
RESULTS
A bunch of the relevant log files:
- Bootlog including DEBUG UEFI: boot_log.txt (187.9 KB)
- Pinmux: Orin-jetson_agx_orin-pinmux.dtsi (62.5 KB)
- GPIO: Orin-jetson_agx_orin-gpio-default.dtsi (3.8 KB)
- Device Tree: orin.dts (273.1 KB)
The key error message seems to come from the bootlog UEFI showing a failure to reset the PHY:
PROGRESS CODE: V03040003 I0
add-symbol-file /build/git/edkrepo/nvidia-uefi/Build/Jetson/DEBUG_GCC5/AARCH64/Silicon/NVIDIA/Drivers/EqosDeviceDxe/EqosDeviceDxe/DEBUG/EqosDeviceDxe.dll 0x804232000
Loading driver at 0x00804231000 EntryPoint=0x0080424A384 EqosDeviceDxe.efi
PROGRESS CODE: V03040002 I0
SNP:PHY: PhyDxeInitialization () Failed to reset Phy
DeviceDiscoveryBindingStart, driver returned Device Error to start notification
SNP:PHY: PhyDxeInitialization () Failed to reset Phy
DeviceDiscoveryBindingStart, driver returned Device Error to start notification
It is also worth noting that the UEFI boot process hangs for a long time here.
Once the device boots, we checked all the pin configurations using busybox. For example:
busybox devmem 0x2445000
0x2400
busybox devmem 0x2445020
0x2458
busybox devmem 0x2434070
0x0058
busybox devmem 0x2434078
0x0000
All of the EQOS “T” pins are 0x2400 which translates to SFIO and COMP_DRIVE_2X. All the EQOS “R” pins are 0x2458, corresponds to SFIO, COMP_DRIVE_2X, INPUT, TRISTATE, and PULL UP. The ENET_INT and ENET_RST_N are INPUT with Pull Down and OUTPUT with None, repectively.
We put a scope probe on the ENET_RST_N line and do not see any signals, nor do we see any clock on TXC_0.
As far as we can tell, the pinmux and the device tree are configured correctly but the UEFI driver is not finding or initializing the 88E1512.
Any help or suggestions would be greatly appreciated.
-s