OPNsense Forum

English Forums => Hardware and Performance => Topic started by: BrandyWine on September 05, 2025, 06:32:36 AM

Title: Intel NVM Tool
Post by: BrandyWine on September 05, 2025, 06:32:36 AM
We have access to legit NVM tool from Intel, to run on freeBSD.
For those who find a proven bin firmware you can use this tool to update the controller.

For just getting inventory, "nvmupdate64e -i -l -o inventory.xml", as shown in the readme

How to get the tool into the fw.

Download the large ~900MB zip v30.4 bundle from Intel, then extract out the tool from an NVM --> 800 series --> freeBSD folder (the higher # controllers have stuff for freeBSD, i225 does not, i210 does, etc).

Why the NVM util is a different size in 210 folder vs the 810 folder is a "?", it's the same utility for freeBSD. Maybe same tool compiled at different times and then never unified in the Intel bundle.

Bundle https://www.intel.com/content/www/us/en/download/15084/intel-ethernet-adapter-complete-driver-pack.html
look in Release_30.4.zip\NVMUpdatePackage\E810\E810_NVMUpdatePackage_v4_90_FreeBSD.tar.gz\E810_NVMUpdatePackage_v4_90_FreeBSD.tar\E810\FreeBSDx64\

NVM Update Package
******************

June 10, 2024


Contents
^^^^^^^^

* NVM Update Package

  * Overview

    * Adapters Based on the Intel® Ethernet 800 Series

  * Limitations and Prerequisites

    * Link Loss During and After NVM Update

    * Linux, FreeBSD, and ESX Requirements

    * UEFI Requirements

    * Firmware Recovery Mode

  * Updating Your NVM Using Interactive Mode

    * Using a Script

    * Results


Overview
========

An NVM Update Package contains all the required files to update the
NVM on the Intel® Ethernet adapters in your system. It contains the
Intel® Ethernet NVM Update Tool, configuration file, updated NVM
binaries, and required driver files.

Note:

  Some Intel® Ethernet Converged Network Adapter X710-T4 adapters may
  display the message, "Image differences found at offset 0x7...,"
  when performing an update using the 700 Series NVM Update Package.
  This behavior is expected.Updating the Option ROM on a device with
  Device ID 1586 is a two step process. The first update will change
  the Device ID to 1589. Reboot your system and run the update tool a
  second time to update the Option ROM for the new Device ID.


Adapters Based on the Intel® Ethernet 800 Series
------------------------------------------------

NVM binaries in the NVM Update Package are in the Platform Level Data
Model (PLDM) format defined by the DMTF in DSP0240. Refer to your
vendor's platform documentation for instructions on how to update your
device NVM using the baseboard management controller (BMC) or UEFI.


Limitations and Prerequisites
=============================

This package is intended to be used on Intel branded adapters. Please
contact your OEM vendor for an appropriate package. In some cases this
package may update an OEM device. This package only updates the NVM
image for the device family listed on the package. Each Intel Ethernet
product family has its own NVM Update Package.

Important:

  DO NOT:

  * Power down your system during the NVM Update.

  * Remove the NIC before the NVM Update completes.

  * Interrupt the NVM Update in any other way.

  Taking any of these actions could make your device unusable.


Link Loss During and After NVM Update
-------------------------------------

When you update a device based on the Intel® Ethernet Controller X710
and Intel® Ethernet Controller XL710, the device may lose the link
during and after the update. Power cycle your system after the NVM
update completes to resolve the issue.


Linux, FreeBSD, and ESX Requirements
------------------------------------

The base driver for your NIC must already be installed.


UEFI Requirements
-----------------

Create a bootable disk or other media and extract the update package
onto the media. Boot your system from the media and run the tool from
there.


Firmware Recovery Mode
----------------------

When a device is in Firmware Recovery mode, it will not pass traffic
or allow any configuration; you can only attempt to recover the
device's firmware. A device will enter Firmware Recovery mode if it
detects a problem that requires the firmware to be reprogrammed.

Note:

  Before starting the recovery process, make sure that your operating
  system, drivers, and tools have been installed properly. You must
  use the out-of-tree driver. Using the in-box or kernel driver may
  result in a *Cannot initialize port* warning.

Note:

  You must power cycle your system after using Recovery Mode to
  completely reset the firmware and hardware.


Updating Your NVM Using Interactive Mode
========================================

1. Extract the update package into a temporary folder.

2. Start the Intel Ethernet NVM Update Tool by running the executable.
   For example, on an x64 Microsoft* Windows* system, type:

      nvmupdatew64e

   On an x64 Linux* system, type:

      nvmupdate64e

3. Follow the prompts to update the NVM image on the desired device.


Using a Script
--------------

You can use a script to perform an inventory of all the Intel Ethernet
devices in the system or update the Intel Ethernet devices in the
system.

Update script example:

   nvmupdate64e -u -l -o results.xml -b -c nvmupdate.cfg

This script causes the Intel Ethernet NVM Update Tool to check the
installed Intel Ethernet devices against those contained in
*nvmupdate.cfg*. If a device contains an NVM version older than that
specified in the config file, the utility will update the device's
NVM. It will create an XML file containing the results of the update.

Note:

  Using "-b", which is optional, will create a backup of the current
  NVM image(s). This may add about 30% to the tool's execution time.

Inventory script example:

   nvmupdate64e -i -l -o inventory.xml

This script causes the Intel Ethernet NVM Update Tool to perform an
inventory of all the Intel Ethernet devices in the system and creates
an output file (called *inventory.xml*) of the results of the
inventory.


Results
-------

The Intel Ethernet NVM Update Tool will return an exit code of zero if
the update completed successfully.


Legal / Disclaimers
===================

Copyright (C) 2018 - 2024, Intel Corporation. All rights reserved.

Intel technologies may require enabled hardware, software or service
activation.

No product or component can be absolutely secure.

Your costs and results may vary.

Intel, the Intel logo, and other Intel marks are trademarks of Intel
Corporation or its subsidiaries.  Other names and brands may be
claimed as the property of others.

Performance varies by use, configuration, and other factors. Learn
more at https://www.Intel.com/PerformanceIndex.

The products described may contain design defects or errors known as
errata which may cause the product to deviate from published
specifications. Current characterized errata are available on request.

This software and the related documents are Intel copyrighted
materials, and your use of them is governed by the express license
under which they were provided to you ("License"). Unless the License
provides otherwise, you may not use, modify, copy, publish,
distribute, disclose or transmit this software or the related
documents without Intel's prior written permission.

This software and the related documents are provided as is, with no
express or implied warranties, other than those that are expressly
stated in the License.



 
Title: Re: Intel NVM Tool
Post by: Patrick M. Hausen on September 05, 2025, 06:58:22 AM
Thank you for taking the time to research and post!
Title: Re: Intel NVM Tool
Post by: pfry on September 05, 2025, 07:34:17 AM
Since you have to reboot anyway, I throw the Intel NVM updates on a FAT32 USB stick with an EFI shell (https://github.com/pbatard/UEFI-Shell/releases/tag/25H1) (for machines that don't have one built in) (command reference (https://uefi.org/sites/default/files/resources/UEFI_Shell_2_2.pdf)), and use the EFI updater. Probably not worth the effort for a few devices, but conveniently OS-independent. I usually make the stick DOS bootable and throw BIOS updates on it as well.
Title: Re: Intel NVM Tool
Post by: Greg_E on September 05, 2025, 03:07:55 PM
I usually put tools like this on an HBCD rescue disk with the drivers needed to operate. I should go through and update my old x520 based stuff to see if anything changes.

I do also have some a+e Intel i226-v cards installed, should probably look at those too.

For those playing along, version 30.1.1 is the last version to list the x520 cards. The Pro1000 stop at an earlier version.

One last edit, does anyone know where I can find the latest version of the user guide in PDF form? I want to put it on my ereader for easier reading. Version 23.5.2 has a complete manual, but it's clearly out of date.
Title: Re: Intel NVM Tool
Post by: spetrillo on September 05, 2025, 06:46:26 PM
Quote from: pfry on September 05, 2025, 07:34:17 AMSince you have to reboot anyway, I throw the Intel NVM updates on a FAT32 USB stick with an EFI shell (https://github.com/pbatard/UEFI-Shell/releases/tag/25H1) (for machines that don't have one built in) (command reference (https://uefi.org/sites/default/files/resources/UEFI_Shell_2_2.pdf)), and use the EFI updater. Probably not worth the effort for a few devices, but conveniently OS-independent. I usually make the stick DOS bootable and throw BIOS updates on it as well.

I am about to install an x550 card into my server. Would you mind detailing the steps, as the DOS bootable went out awhile ago.
Title: Re: Intel NVM Tool
Post by: pfry on September 05, 2025, 07:07:57 PM
Quote from: spetrillo on September 05, 2025, 06:46:26 PMI am about to install an x550 card into my server. Would you mind detailing the steps, as the DOS bootable went out awhile ago.

DOS is just for poking at the filesystem and flashing old motherboards. For the EFI shell, you just have to place the shell binary in the root directory of the USB drive and possibly rename it to what your BIOS expects (the default shellx64.efi usually works) and boot it from your BIOS boot menu. Server-type BIOSs usually have it built-in. Then just select the appropriate filesystem (reminiscent of the old DOS drive selection, e.g. "fs0:", "fs1:", etc.), navigate to the directory where the NVM updater and files are located (using typical commands like "ls" and "cd"), and execute the updater ("nvmupdate64e.efi").

Edit: Not that anyone uses ARM devices for OPNsense... but the only ARM EFI NVM updater I've seen is for the e810. Naturally you'd need the appropriate shell binary.
Title: Re: Intel NVM Tool
Post by: BrandyWine on September 05, 2025, 07:53:19 PM
If just flashing the nic controller (or any other eeprom), using a lightweight bootable linux usb is a bit friendlier since you can use all the tools available from that OS to poke around, as well as to flash a device. Caveat: bootable linux as long as the flashing tool works on linux, but good news is, linux is the most popular OS for these lower level tools.

One just needs to make sure the "boot from usb" is enabled in the mobo BIOS (so the system boots from usb is the usb is plugged in, etc), or a boot-time menu that allows you to select "boot from usb".