Jetson Orin NX 8GB: Persistent Network Boot Options (PXE/HTTP) – No "Disable" option in UEFI Menu (L4T R35.5.0)

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:

  • Module: Jetson Orin NX 8GB

  • L4T Version: R35 (release), Revision 5.0 (JetPack 5.1.x)

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:

  1. efibootmgr: I attempted to delete these entries using efibootmgr from the OS. However, they reappear automatically after every reboot.

  2. 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 ManagerBoot OptionsDelete 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