Uefi Error: Could not detect network connection

Hello,

I have a custom carrier board flashed with Jetpack 6.2 and the default rootfs. I customized the kernel and device tree. When I boot I get the following message: Error: Could not detect network connection.

The system boots successfully but I am wondering why there is an error shown in uefi. In the system are two ethernet ports one is connected like on the devkit.

The other is connected through pcie (lan743x). I did not make any device tree changes.

UPDATE: the driver has a problem:

[   13.010278] lan743x 0007:01:00.0 enP7p1s0: using MSIX interrupts, number of vectors = 6
[   13.010416] ------------[ cut here ]------------
[   13.010417] called from state RUNNING
[   13.010436] WARNING: CPU: 3 PID: 543 at drivers/net/phy/phy.c:1125 phy_start+0x54/0xc0
[   13.010448] Modules linked in: usb_f_acm(E) u_serial(E) algif_hash(E) usb_f_rndis(E) u_ether(E) algif_skcipher(E) af_alg(E) bnep(E) libcomposite(E) joydev(E) btusb(E) btrtl(E) btintel(E) btbcm(E) cdc_ether(E) usbnet(E) snd_soc_tegra186_asrc(OE) snd_soc_tegra210_admaif(OE) snd_soc_tegra_pcm(E) snd_soc_tegra210_afc(OE) snd_soc_tegra210_mixer(OE) snd_soc_tegra210_mvc(OE) snd_soc_tegra210_ope(OE) snd_soc_tegra186_dspk(OE) snd_soc_tegra210_dmic(OE) snd_soc_tegra186_arad(OE) snd_soc_tegra210_adx(OE) snd_soc_tegra210_amx(OE) snd_soc_tegra210_sfc(OE) snd_soc_tegra210_i2s(OE) iwlmvm mac80211(E) snd_soc_tegra210_ahub(OE) tegra210_adma(E) libarc4(E) nvvrs_pseq_rtc(OE) spidev(E) r8152(E) crct10dif_ce(E) snd_soc_tegra_machine_driver(OE) snd_soc_tegra_utils(OE) snd_soc_simple_card_utils(E) tegra234_oc_event(OE) rtc_ds1307(E) nvpmodel_clk_cap(OE) fusb301(OE) tegra_cactmon_mc_all(OE) mttcan(OE) nvpps(OE) can_dev(E) thermal_trip_event(OE) tegra234_aon(OE) tegra_aconnect(E) snd_hda_codec_hdmi(E)
[   13.010503]  snd_hda_tegra(E) snd_hda_codec(E) at24(E) snd_hda_core(E) pwm_tegra_tachometer(OE) lan743x(O) iwlwifi nvidia(O) spi_tegra114(E) mc_hwpm(OE) r8168(OE) cfg80211(E) nvidia_vrs_pseq(OE) tegra_dce(OE) tegra_pcie_dma_test(OE) tegra_pcie_edma(OE) host1x_fence(OE) tsecriscv(OE) nvhost_isp5(OE) nvhost_vi5(OE) nvhost_nvcsi_t194(OE) tegra_camera(OE) v4l2_dv_timings(E) nvhost_nvcsi(OE) tegra_camera_platform(OE) capture_ivc(OE) tegra_camera_rtcpu(OE) ivc_bus(OE) hsp_mailbox_client(OE) ivc_ext(OE) governor_userspace(E) v4l2_fwnode(E) v4l2_async(E) videobuf2_dma_contig(E) videobuf2_memops(E) videobuf2_v4l2(E) videobuf2_common(E) tegra_drm(OE) videodev(E) nvhost_capture(OE) tegra_wmark(OE) host1x_nvhost(OE) mc(E) nvhwpm(OE) cec(E) drm_kms_helper(E) nvidia_p2p(OE) ina3221(E) nvgpu(OE) governor_pod_scaling(OE) host1x(OE) mc_utils(OE) nvmap(OE) nvsciipc(OE) fuse(E) drm(E) ip_tables(E) x_tables(E) ipv6(E) pwm_fan(E) pwm_tegra(E) tegra_bpmp_thermal(E) tegra_xudc(E) ucsi_ccg(E) typec_ucsi(E)
[   13.010561]  typec(E) nvme(E) nvme_core(E) phy_tegra194_p2u(E) pcie_tegra194(E)
[   13.010569] CPU: 3 PID: 543 Comm: NetworkManager Tainted: G           OE     5.15.148-tegra #1
[   13.010572] Hardware name: NVIDIA NVIDIA Jetson Orin Nano Engineering Reference Developer Kit Super/Jetson, BIOS 36.4.3-gcid-38968081 01/08/2025
[   13.010575] pstate: 60400009 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[   13.010578] pc : phy_start+0x54/0xc0
[   13.010579] lr : phy_start+0x54/0xc0
[   13.010581] sp : ffff80000b6fb160
[   13.010582] x29: ffff80000b6fb160 x28: ffff00008f4f4980 x27: 0000000000000000
[   13.010585] x26: 0000000000000004 x25: 0000000000000005 x24: ffff00008f4f5000
[   13.010588] x23: ffff00008f4f4248 x22: ffffb6f6fa0f2cc0 x21: ffff00008f4f4000
[   13.010590] x20: ffff00008f4f4728 x19: ffff00008f4f4248 x18: ffffffffffffffff
[   13.010592] x17: 0000000000000202 x16: ffffb6f71ff287b0 x15: ffff80008b6fb0ad
[   13.010595] x14: 0000000000000000 x13: 206574617473206d x12: 6f72662064656c6c
[   13.010597] x11: 656820747563205b x10: 000000000000000a x9 : ffff80000b6fb160
[   13.010600] x8 : 000000000000000a x7 : 0000000000000007 x6 : 000000000000000a
[   13.010602] x5 : ffff0001f129d9f0 x4 : 00000000fffff30c x3 : ffffb6f721868768
[   13.010604] x2 : 0000000000000000 x1 : 0000000000000000 x0 : ffff000080bc0000
[   13.010607] Call trace:
[   13.010608]  phy_start+0x54/0xc0
[   13.010610]  lan743x_netdev_open+0x650/0x11a0 [lan743x]
[   13.010620]  __dev_open+0xf4/0x1e0
[   13.010629]  __dev_change_flags+0x19c/0x220
[   13.010633]  dev_change_flags+0x44/0x90
[   13.010636]  do_setlink+0x224/0xd50
[   13.010640]  __rtnl_newlink+0x568/0x8a0
[   13.010642]  rtnl_newlink+0x5c/0x90
[   13.010645]  rtnetlink_rcv_msg+0x130/0x330
[   13.010648]  netlink_rcv_skb+0x64/0x130
[   13.010653]  rtnetlink_rcv+0x30/0x40
[   13.010655]  netlink_unicast+0x300/0x360
[   13.010659]  netlink_sendmsg+0x1e4/0x450
[   13.010662]  __sock_sendmsg+0x68/0x80
[   13.010667]  ____sys_sendmsg+0x240/0x260
[   13.010670]  ___sys_sendmsg+0x90/0xe0
[   13.010672]  __sys_sendmsg+0x7c/0xe0
[   13.010674]  __arm64_sys_sendmsg+0x34/0x50
[   13.010676]  invoke_syscall+0x5c/0x130
[   13.010682]  el0_svc_common.constprop.0+0x64/0x110
[   13.010685]  do_el0_svc+0x74/0xa0
[   13.010688]  el0_svc+0x28/0x80
[   13.010693]  el0t_64_sync_handler+0xa4/0x130
[   13.010695]  el0t_64_sync+0x1a4/0x1a8
[   13.010698] ---[ end trace 1699385b92a455e3 ]---

Here is the uart boot log:
output_2025-03-26_10-06-26_could_not_detect_network_connection.log (81.0 KB)

I noticed some other problems:

  • the pcie ethernet appears in nmcli but when I connect a cable nothing happens
  • when I do not set a default user with the l4t_create_default_user.sh script and flash the device it always wants to start a ipv6 boot even though I adapted the boot order which does not include ipv6/ipv4 boot

Do I need to add/change something in uefi for it to work correctly?

Hi Xennor,

From the log you shared, it seems trying to boot from network.

Would you hit this error if you disconnect the device from ethernet port?

Hi KevinFFF,

I tried without any ethernet cables connected (devkit ethernet and pcie ethernet). The dmesg error still exists.
The Uefi Error disappeared.

For the kernel error, could you try to disable the phy in device tree to check if it could help?
Do you port custom phy on your custom board?

Hi KevinFFF,

we do not have a custom phy. We use the default.

We tried:

  • disable the lan743x driver with modprobe → the system freezes
  • blacklist the lan743x driver → this works. Now the reboot and shutdown issues disappear. Previously when we tried to shutdown it was stuck forever

Now I am not exactly sure how I should proceed.
Is it a driver an uefi or an device tree issue?

It is an pcie device therefore it should not be a device tree issue.
For uefi the problem still remains that it tries to do an ip boot even though I customized the boot order where ip boot is not listed.

how did you change the boot order?

you can try efibootmgr method, in case you havent tried.

example:

$ sudo efibootmgr -o 0008,000C,000B,000A,0009,0000,0006,0007

Hi,

thank you for sharing! I only tried with this. I will try that to.

It seems the issue is specific to lan743x driver.

Do you have network requirement in your use case?
If not, maybe you can try to remove the network stack in UEFI to check if it could help.

If yes, please share the current full serial console log for further check.

Hi again,

I found another potential solution. The Microchip Lan7430 is PCIEx1. On our board it is connected on pcie2 (PCIe x1 (C7)). The default devkit configuration is PCIEx2 which is gbe-uphy-config-8 (see here).
Therefore we need to add to our flash config:

ODMDATA+=",gbe-uphy-config-9";

Do I need to do these changes too? Or has this changed inbetween?

Does PCIe x1 (C9) need to be disabled? We do not use it.

Do you mean this modification resolve you current error showing in UEFI?

For PCIe configurations, it depends on your custom design.
I would suggest you creating another topic to discuss in details.

No I want to resolve the lan743x driver problem first. Might the pcie configuration be a cause of this?

In the microchip forum I found another person which has the same problem but no answer.

Yes, you have to correct the PCIe configuration before porting ethernet controller.

Both gbe-uphy-config-8 and gbe-uphy-config-9 should work for your case since you use only PCIe x1(C7). PCIe x2 (C7) would be compatible with your PCIe x1 (C7). And it should be fine if PCIe x1 (C9) not used in your case.

Thank you that is good to know.

Do you have some suggestions which pcie settings might need to be changed? I am going to check with the hardware guys that everything is working as it should.

I also reached out to microchip. Maybe it is only a driver issue.

How can this be done or is there an easier way?

I noticed that the Error: Could not detect network connection happens when I connect an usb to ethernet adapter. When I connect a ethernet cable it tries to start an IPv6 boot which it should not. I think I got that wrong when I first posted this question. I though the error came from the LAN Ports which are on the carrier board.

The ethernet adapter is a rtl8153a:

[ +0.146862] usbcore: registered new device driver r8152-cfgselector
[ +0.085519] r8152-cfgselector 1-3.1: reset high-speed USB device number 8 using tegra-xusb
[ +0.261178] r8152 1-3.1:1.0: load rtl8153a-4 v2 02/07/20 successfully
[ +0.074579] r8152 1-3.1:1.0 eth0: v1.12.13
[ +0.000127] usbcore: registered new interface driver r8152
[ +0.008664] usbcore: registered new interface driver cdc_ether

Please refer to the steps in Build with docker · NVIDIA/edk2-nvidia Wiki · GitHub to build UEFI source.

And you can simply configuring the following lines in edk2-nvidia/Platform/NVIDIA/Jetson/Jetson.defconfig at r36.4.3 · NVIDIA/edk2-nvidia · GitHub

+ # CONFIG_NETWORKING is not set
+ # CONFIG_NETWORKING_IPV4 is not set
+ # CONFIG_NETWORKING_IPV6 is not set
- CONFIG_NETWORKING_DEVICE_NVIDIA=y
+ # CONFIG_NETWORKING_DEVICE_NVIDIA is not set
- CONFIG_NETWORKING_DEVICE_ASIX=y
+ # CONFIG_NETWORKING_DEVICE_ASIX is not set
- CONFIG_NETWORKING_DEVICE_REALTEK=y
+ # CONFIG_NETWORKING_DEVICE_REALTEK is not set

Hi KevinFFF,

I changed the parameters and followed the instructions and build it successfully. I used edk2_docker edkrepo clone nvidia-uefi NVIDIA-Platforms r36.4.3-updates.
The only change I made is in the build command. I used edk2_docker edk2-nvidia/Platform/NVIDIA/Jetson/build.sh --init-defconfig edk2-nvidia/Platform/NVIDIA/Tegra/DefConfigs/t23x_general.defconfig.

What do I need to do now?

Do I only need to replace Linux_for_Tegra/bootloader/uefi_jetson.bin with nvidia-uefi/images/uefi_Jetson_RELEASE.bin?

Correct, please replace this UEFI binary file and run the following command to flash the board to apply the change.

$ sudo ./flash.sh -c bootloader/generic/cfg/flash_t234_qspi.xml jetson-orin-nano-devkit internal

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