UEFI with RGMII is slow to boot

Hi All -

We have custom carrier board with an RGMII interface. We are using L4T 35.1. The RGMII interface is finally working. For what it is worth, the key piece is to remove the “interrupts” and “interrupt-parent” entry from the phy device tree node, as suggested by the patch in this forum post Orin rgmii cann't work. (We still haven’t figured out why that works).

Regardless, we have the RGMII port working with Orin from the main application kernel.

Our problem is that we still have a very slow boot process with the UEFI bootloader hanging here:

add-symbol-file /build/git/edkrepo/nvidia-uefi/Build/Jetson/DEBUG_GCC5/AARCH64/Silicon/NVIDIA/Drivers/EqosDeviceDxe/EqosDeviceDxe/DEBUG/EqosDeviceDxe.dll 0x8044D0000
Loading driver at 0x008044CF000 EntryPoint=0x008044E83A0 EqosDeviceDxe.efi
PROGRESS CODE: V03040002 I0
 
SNP:PHY: PhyDxeInitialization () Failed to reset Phy
DeviceDiscoveryBindingStart, driver returned Device Error to start notification

It takes about 50 seconds before timing out. This unacceptably lengthens our boot time.

Does anyone have any suggestions for how to make this step recognize the PHY or to disable the EQOS during this step but to still have it available later?

Thanks very much,
sam

Check your board config file. There would be one for kernel dtb and another one for bootloader dtb.

By default they are same file, but you can create a new file and do separate configuration.

@WayneWWW! Thank you! World record for fast reply.

As far as I can tell, the only bootloader dtb file we have is: this one

BPFDTB_FILE="tegra234-bpmp-3701-0000-3737-0000.dtb";

Is this the file you mean? If so, it is very empty:

Linux_for_Tegra/bootloader/t186ref# fdtget tegra234-bpmp-3701-0000-3737-0000.dtb / -l
clocks
mail
reset
serial
fps
i2c-busses
dummy@aon
regulators
vrs-11@pwm_cpu
vrs-11@pwm_core
vrs-11@pwm_gpu
vrs-11@pwm_cv
soctherm
sku
uphy
pdomains
external-memory

Should I add something to this file like:

ethernet@2310000 { 
    status = "disabled";
};

???

Thanks again for the speedy reply.

sam

Sorry, not that one. BPMP dtb is for power management. Not related to your kernel dtb nor bootloader dtb.
Bpmp is also not bootloader.

There should be some other dtb files.

Should be the variable for “TBCDTB”.

Copy. Trying now.

@WayneWWW -

Thank you this worked. The PHY reset still fails ( I don’t know why ) but it timesout in only 4 seconds instead of 50. This is a much more manageable situation.

This is a very important thing for us, thank you! Is it documented somewhere that we missed? I don’t find many references to the TBCDTB file in the materials we normally look at.

Thanks so much, please consider this resolved.

sam

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