Intel(R) NVM Integrity Verification Tool Release Notes
======================================================
October 20, 2020

Contents
========
- OVERVIEW
- RUNNING THE UTILITY
  - OPTIONS
  - BASIC USAGE GUIDELINES
  - EXIT CODES
- INSTALLATION
- CUSTOMER SUPPORT
-LEGAL INFORMATION


OVERVIEW
========
Intel(R) NVM Integrity Verification Tool (NVMCHECK) verifies that the NVM image
is an authentic image.

NOTE: If the tool displays an error such as "Access error" or "Cannot
initialize port" you may be using an outdated driver. Please download the
latest driver from https://support.intel.com and try again.

NOTE: If the tool displays the error: "Unable to load the driver. Please close
all other applications and try again", you have a mix of old and new versions
of the utility tool on your system. Quit all open applications and retry your
operation. If the issue persists:
Download the latest version of the utility tools
Run the uninstall script to remove the old version of the tool driver
Run the install script from the downloaded tools package
Retry your operation
You may also need to download and install the latest Intel Ethernet
driver/PROSet package for your device.


Supported Operating Systems
---------------------------
Microsoft* Windows*
Microsoft Windows Server*
Linux* Kernel
Red Hat* Enterprise Linux*
SUSE* Linux Enterprise Server
UEFI
VMWare* ESXi*
FreeBSD

Notes:
- On systems running Linux, FreeBSD, or ESXi, the base driver must be present
for NVMCHECK to function correctly.

- On Microsoft Windows systems, if the driver required to run the tool is not
present on the system, it will automatically be installed when NVMCHECK is run.


RUNNING THE UTILITY
===================
Using the "/?" option will display a list of supported command line options.


OPTIONS:
--------
NVMCHECK can be run with any of the following command line options:

/HELP or /?
  Displays command line help.
/DEVICES
  Displays the device list.
/EXITCODES
  Displays the list of exit codes and descriptions returned for the run.
/NIC=XX
  Selects a specific device (1-32).
/VERIFY
  Verifies the NVM signature of the selected device.
/VERSION
  Displays the tool version and Quartzville SDK information.

Technical support options:
/HEADER
  Displays the NVM header of the selected device.
/KEY
  Displays the NVM key of the selected device.


BASIC USAGE GUIDELINES
----------------------
To display a list of installed adapters call NVMCHECK using the /DEVICES option.

NVMCHECK will display a list of network adapters installed in the system
similar to the following:

NIC B/D/F    Ven-Dev   MAC          ENA Branding string
=== ======== ========= ============ === ======================================
1)  01/00/00 8086-15D1 341278560000 NO  Intel(R) Ethernet Controller X550-T1
2)  02/00/00 8086-1583 000000000100 YES Intel(R) Ethernet Converged Network Ada
3)  04/00/00 8086-1533 94DE80A0381C YES Intel(R) I210 Gigabit Network Connectio

To perform an operation on an installed network adapter you must specify the
"/NIC=" parameter. For example, to verify the NVM on NIC 1 from the list above
call NVMCHECK like this:

NVMCHECK/NIC=1 /VERIFY

The tool will return:
  NVM Integrity verification [PASSED/FAILED]


EXIT CODES
==========
0   Success.
1   Unsupported operating system detected.
2   Incorrect command line parameters.
3   Unknown device.
4   The selected device is not supported.
5   Internal tool error.
6   Incorrect device index entered.
7   Error during adapter initialization.
8   Error when writing to register.
9   Memory allocation error.
10  Incorrect argument passed to a command line parameter.
11  Verification unsuccessful.
12  Failed to collect NVM data (e.g. key/header).
13  Communication with the base driver failed.
14  Desired device is in recovery mode. This device cannot be selected.
15  Tool initialization failed. The PCIe BAR address threshold was exceeded.


INSTALLATION
=============


Installing the tool on Microsoft* Windows*
------------------------------------------
To install the tools' drivers on Windows, run install.bat from the appropriate
directory of the install package.

Although the tool are not installed with install.bat, the driver that the tool
requires is copied into the local machine Windows driver directory. To run the
tool, launch a Command Prompt window from the Windows Start Menu. Go to the
media and directory where the tool is located and run the utility. The readme
files for each tool are found in the same directory as the tool. These tools
can be manually installed on the local hard drive in any directory.

The tool uses its own driver file (not the same as the system network driver).
If the driver sys file already exists in the drivers directory, install.bat may
fail to copy. Using the /y switch with install.bat will override and copy the
driver file regardless. However, this can be dangerous if an older version of
the driver is being used by another application such as Intel(R) PROSet for
Windows Device Manager. If a driver is already present in the drivers
directory, try running the tool from the command prompt. If it runs, then the
driver is fine. The tool will not run if the driver version present does not
match the driver version expected.

Note that you must have access to the %systemroot%\system32\drivers directory.
Only the administrator account has these privileges. You must be logged in as
administrator or the tools must be run as administrator.

Note that on Windows, any device that is disabled in device manager will not be
accessible by tools due to no memory resources. You would get an error code
0xC86A800E. To solve this problem, you can do one of the following:
1) Re-enable the device in device manager. Never disable this device when
   using tools.
2) Install an NDIS device driver for the device and make sure that it does
   not have a yellow or red bang by it in device manager.
3) Delete the device from device manager and restart the system. The install
   new hardware wizard should appear on next reboot. Do not cancel this. Just
   move the window aside and run the tool(s). Generally, you can click "cancel"
   on the wizard but there are some cases where Windows will disable the memory
   resources causing you to get back into the same state.


Installing the tool on EFI
--------------------------
The EFI 1.x tools are not supported in this release.

There is no installation required for EFI tools. The tools can simply be copied
from the appropriate directory to the drive that they will run from. The EFI2
binaries are for use with the UEFI Shell 2.X with the UEFI 2.3 HII protocol.
EFI2 tools will not run on the EFI Shell 1.X or if the UEFI 2.3 HII protocol is
not present.

Note that while EFI supports USB drives, there may be issues running tools from
the USB drive. Whether or not there are issues are BIOS specific. If you
experience issues, run the tool from hard disk instead.


Installing the tool on DOS
--------------------------
This tool no longer supports DOS. If you require DOS support, please download a
prior version.


Installing the tool on Linux*
----------------------------

In order to run this tool on Linux*, the base driver must be installed on the
system.

On kernel 4.16 or higher, ensure iomem parameter set to relaxed
---------------------------------------------------------------
On Linux* kernel 4.16 and higher, the iomem parameter is set to "strict" by
default, which may prevent the tool from accessing the MMIO of the device.
Trying to update a device when "strict" is set causes the device to lose link
during the update process.

If you wish to update a device without losing link, you can either:
1. Install Linux base drivers (igb or ixgbe) from Release 24.1, or newer.
2. Set the iomem kernel parameter to "relaxed" (i.e., iomem=relaxed) and reboot
the system before running the update utility.


INSTALLING THE TOOL ON VMWare* ESXi*
-----------------------------------

In order to run this tool on VMWare* ESXi*, the base driver must be installed
on the system.


INSTALLING THE TOOL ON FreeBSD*
------------------------------

In order to run this tool on FreeBSD*, the base driver must be installed on the
system.


CUSTOMER SUPPORT
================
- Main Intel web support site: http://support.intel.com

- Network products information: http://www.intel.com/network


LEGAL / DISCLAIMERS
===================
Copyright (C) 2002-2020, Intel Corporation. All rights reserved.

Intel Corporation assumes no responsibility for errors or omissions in this
document. Nor does Intel make any commitment to update the information
contained herein.

Intel and the Intel logo are trademarks of Intel Corporation or its
subsidiaries in the U.S. and/or other countries.

*Other names and brands may be claimed as the property of others.

This software is furnished under license and may only be used or copied in
accordance with the terms of the license. The information in this manual is
furnished for informational use only, is subject to change without notice, and
should not be construed as a commitment by Intel Corporation. Intel Corporation
assumes no responsibility or liability for any errors or inaccuracies that may
appear in this document or any software that may be provided in association
with this document. Except as permitted by such license, no part of this
document may be reproduced, stored in a retrieval system, or transmitted in any
form or by any means without the express written consent of Intel Corporation.


