Hi everyone,
I am working with a Jetson Orin NX 8GB module and I am struggling to permanently remove/disable the HTTPv6, HTTPv4, PXEv6, and PXEv4 boot options. My goal is to prevent the bootloader from attempting to initialize the PHY/Network during the early boot stage to ensure a fast and deterministic startup time.
System Information:
The Issue: Even though these network options are not at the top of my priority list, the bootloader still attempts to prepare the network interface during the pre-boot sequence. This causes inconsistent boot delays depending on the ethernet environment (noise, cable connectivity, etc.). I need a stable boot time where the system ignores the ethernet interface entirely until the OS starts.
What I have tried:
-
efibootmgr: I attempted to delete these entries using efibootmgr from the OS. However, they reappear automatically after every reboot.
-
UEFI Menu: I explored the UEFI/BIOS settings during startup, but there is no “Attempt HTTP boot” or “Enable/Disable PXE” option available in this firmware version to toggle these features off.
Request: Since I am new to the Jetson ecosystem, could you please provide guidance on how to permanently disable these network boot targets?
-
Do I need to modify specific configuration files in the Linux_for_Tegra/bootloader/ directory (like UefiDefaultVariableConfig) before re-flashing?
-
Is there a way to modify the UEFI variables via the serial console or a specific script to ensure these changes persist?
I would appreciate a step-by-step explanation on how to ensure the system skips the PHY initialization during boot.
Thanks in advance!
Hi,
Please try to access UEFI menu and do
Boot Maintenance Manager → Boot Options → Delete Boot Option and check whether meet your requirements.
Thanks
1 Like
Dear Moderator,
I also tried this way, After deleting the ethernet based boot options, they came back after rebooting.
Thanks.
Hi,
Please refer to the uefi source code edk2-nvidia/Silicon/NVIDIA/Drivers/TegraPlatformBootManager/TegraPlatformBootManagerDxe.c at r35.5.0-updates · NVIDIA/edk2-nvidia · GitHub and modify TegraPlatformBootManagerDxe.c
For example, add IsNetworkBootOption function and check it in IsValidLoadOption.
Rebulid the uefi follow the Build · NVIDIA/edk2-nvidia Wiki · GitHub.
And replace it under the Linux_for_Tegra/bootloader/uefi_jetson.bin
/*
Checks whether the boot option contains an IPv4 or IPv6 device path node,
indicating a network (PXE/HTTP) boot option.
@param[in] LoadOption Load option buffer.
@retval TRUE Load option is a network boot option.
@retval FALSE Load option is not a network boot option.
*/
STATIC
BOOLEAN
IsNetworkBootOption (
IN EFI_BOOT_MANAGER_LOAD_OPTION *LoadOption
)
{
VOID *DevicePathNode;
DevicePathNode = LoadOption->FilePath;
while (!IsDevicePathEndType (DevicePathNode)) {
if ((DevicePathType (DevicePathNode) == MESSAGING_DEVICE_PATH) &&
((DevicePathSubType (DevicePathNode) == MSG_IPv4_DP) ||
(DevicePathSubType (DevicePathNode) == MSG_IPv6_DP)))
{
return TRUE;
}
DevicePathNode = NextDevicePathNode (DevicePathNode);
}
return FALSE;
}
STATIC
BOOLEAN
IsValidLoadOption (
IN EFI_BOOT_MANAGER_LOAD_OPTION *LoadOption
)
{
EFI_STATUS Status;
EFI_HANDLE Handle;
EFI_DEVICE_PATH *DevicePath;
VOID *DevicePathNode;
CONTROLLER_DEVICE_PATH *Controller;
+ if (IsNetworkBootOption (LoadOption)) {
+ DEBUG ((DEBUG_INFO, "%a: Filtering out network boot option: %s\n", __FUNCTION__, LoadOption->Description));
+ return FALSE;
+ }
Thanks
1 Like