Intel(R) Ethernet NVM Update Tool ================================= May 05, 2017 Contents ======== - Overview - Supported Operating Systems - Interactive Mode - Inventory Mode - Update Mode - Command Line Parameters - Command Line Examples - Exit Codes - Configuration File - Restrictions & Rules - Configuration File Syntax - Configuration File Example - EEPROM MAP Text File Syntax - EEPROM MAP File Example Overview ======== The Intel(R) Ethernet NVM Update tool is a utility for updating the non- volatile memory (NVM) of Intel(R) Ethernet devices. It can also update the PHY firmware (FW) on some devices. NVM Update tool operates in one of three modes: Interactive Mode, Inventory mode or Update mode. Notes: - Progress and debug information are not provided by default. Specify -l to send progress and debug information to a log file. Specify -l without a filename to send the information to the console. - On multi-port cards based on the Intel(R) X710 controller and Intel(R) XL710 controller, only one of the port's inventory and execution results are written to the log because all ports share the same results. - More than one update may be required to bring your device's NVM fully up to date. In this situation, the tool will display and log a message indicating that another update is required. - On systems running Oracle* Solaris* 11, when a reboot is required, you must perform a full reboot, not a fast reboot. - If the tool indicates that a power cycle is required, make sure that your system powers off completely. A system reset or soft power cycle will result in an incomplete update. We recommend you disconnect the power cable for 30 seconds to ensure a complete power off. - During an inventory operation, you may see link temporarily dropped until the NVM Update tool completes its current operation. This is because the PHY controller is stopped to avoid issues when the tool accesses the PHY NVM interface. - If both an NVM image and an FLB file are provided for the update, the OROM update will come from the FLB file. Supported Operating Systems --------------------------- Microsoft* Windows 7* and later Microsoft Windows Server* 2008 R2 and later Linux* Kernel 2.6/3.x and later Red Hat* Enterprise Linux* 6.5 and later SUSE* Linux Enterprise Server 10 SP4 and later UEFI 2.1 and later Oracle* Solaris* 11 VMWare* ESXi* 5.5 and later FreeBSD 10.1 and later Notes: - On systems running Linux, FreeBSD, Solaris, or ESXi, the base driver must be present for NVM Update tool 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 NVM Update tool is run. Interactive Mode ---------------- Provides an interactive session of the NVM Update tool. Enter interactive mode by *not* specifying the -u or -i parameters when you run the NVM Update tool. All other parameters work with Interactive Mode. Interactive Mode runs an inventory on the system and displays the available devices. You can then follow the prompts to specify which device or devices to update. Inventory progress and debug information are not provided by default. These can be logged to a file by specifying the -l option or displayed on the console (if no file name is specified). NOTES: - A configuration file named "nvmupdate.cfg" must be present in the same directory as the NVM Update tool for Interactive Mode to function correctly. Inventory Mode -------------- Inventory mode attempts to discover all Intel Ethernet devices present in the system and report the status of each device found. An integrity check is also performed on each device's NVM image to determine whether a correct image (i.e., valid pointers and checksum) is present. If you specify a configuration file, Inventory mode will only attempt to discover those devices listed in that configuration file. Inventory mode will also report whether an update to the current NVM image is available. Inventory progress and debug information are not provided by default, these can be logged to the file by specifying -l option or displayed on the console (if no file name provided). Inventory mode writes the following information to the XML-formatted results file: Vendor ID - The vendor ID (typically 8086) in hexadecimal format Device ID - The device ID in hexadecimal format Subdevice ID - The sub-device ID in hexadecimal format Subvendor ID - The sub-vendor ID in hexadecimal format Bus - PCI numbered bus identifier Dev - PCI numbered device identifier Function - PCI numbered function identifier Name - Branding string for the device EEPROM/NVM - EtrackID version OROM - subcomponents and version Module type - Displays whether a PHY NVM update is available Update availability - Displays whether an NVM update is available LAN MAC Address SAN MAC Address Alternative MAC Address Vital Product Data (VPD) variables in a "Key:Value" format Inventory progress and debug information is captured in the log file, or displayed on the system console if the -l parameter is used but no log file is specified. Update Mode ----------- You must specify a configuration file in order to use Update mode. Update mode attempts to discover all devices listed in the configuration file. For each discovered device, the NVM Update tool compares the currently installed NVM image version with a list of update versions in the configuration file. An update is only applied if a newer image is available (with some exceptions described later). The NVM Update tool writes the status of the update (success or failure) to the results file. The NVM Update tool only updates the entire EEPROM/NVM image. It does not update specific bits/words. Vital Product Data (VPD), End-user, and device-specific data are preserved. For each device specified in the configuration file, Update mode writes the Inventory mode information (listed previously) to the results file, plus the following: Version - the reported NVM version is the post-update version Status - update success or failure Note: Interrupting the update process may damage your device. Command Line Parameters ======================= When run with no parameters, the NVM Update tool displays runs in Interactive mode. Note that the -i and -u parameters are mutually exclusive; do not use both parameters at the same time. Parameter Syntax ---------------- -a Specify a path for all file operations. The path is applied to all operations (such as locating the configuration file and NVM images, as well as where the log file and results file will be generated). Any path specified in the config file will be appended to the -a path. This parameter is used only with the -i or -u parameters. -b Save a backup copy of the current NVM image(s). The NVM Update tool creates a subdirectory using the NIC(s) MAC address as the directory name and stores the backup files there. Use this parameter only with the -u parameter. -c Specify the name of the configuration file. This is a text file that contains descriptions of networking devices and firmware versions for those devices. The syntax of the configuration file can be found in the "Configuration File Syntax" section. If -c is not specified, nvmupdate.cfg is used. If you do not specify a config file, nvmupdate.cfg must be present in the same directory as the NVM Update tool for Interactive Mode to function correctly. -f Execute in Fast mode. If the version numbers match, skip the full binary comparison of the existing NVM image and the update NVM images. Setting this parameter will *not* detect corrupted settings and re-apply the update in order to fix them. This parameter cannot be used with -sv. -h or -? Display command line usage help. -i Inventory mode. -k Generate a SHA hash to compare against an internally-computed hash of the configuration file. If the hashes do not match, the NVM Update tool aborts the procedure and reports an error. -l Specify the name of the log file. This is a text file that contains a history of the NVM Update tool's execution, including the success or failure status for each operation, and what adapters and ORMs were discovered. The log file is overwritten each time the NVM Update tool is executed. If no file name is specified, the log messages are displayed on the system console. -m Update only the device with the specified MAC address. This is the LAN MAC address, not the SAN or AltMAC address. Note: The device must have an entry in the configuration file. -o Specify the name and path of the results file. This is an XML file that contains the inventory/update results. If no file name is specified, the inventory/update results are displayed on the system console. Like the log file, the results file is overwritten each time the NVM Update tool is executed. -p Keep existing option-ROM image (suppress update of the OROM). -r Roll back mode. Must be used with the -m parameter. You must have previously created a backup with the -b parameter for a restore point. -rd Reset user settings to default values during update. -s Silent mode. Specifying this option will suppress all output to the display. The NVM Update tool output is limited to the results file and the logfile. -sv Skip image verification. This parameter cannot be used with -f. -u Update mode. -v Display the version of the QV SDK and ethernet driver installed in the system (base driver for Linux, Solaris, ESXi, FreeBSD and QV driver for Windows). Command Line Examples --------------------- Enter interactive mode and display output and status to the screen: On an x64 Microsoft Windows system, type: nvmupdatew64e -l On an x64 Linux system, type: nvmupdate64e -l Enter Inventory mode and capture the status to a log file: On an x64 Microsoft Windows system, type: nvmupdatew64e -i -l nvmupdatelog.txt On an x64 Linux system, type: nvmupdate64e -i -l nvmupdatelog.txt Enter Update mode and specify a log file and configuration file On an x64 Microsoft Windows system, type: nvmupdatew64e -u -l nvmupdatelog.txt -c nvmupdate.cfg On an x64 Linux system, type: nvmupdate64e -u -l nvmupdatelog.txt -c nvmupdate.cfg Exit Codes ========== Upon exit, when possible, the NVM Update tool reports an overall status code to indicate the results of the operation. In general, a non-zero return code indicates an error occurred during processing. Value Description 0 All operations completed successfully. 1 General tool execution error. 2 The configuration file could not be opened/read, or a syntax error was discovered in the file. 3 The inventory process failed. 4 A file error occurred when creating/writing the results file. 5 Bad command line parameter. 6 An error occurred when updating a module. 7 A file error occurred when creating/writing the log file. 8 An error occurred accessing the device. 10 Package hash compare failed. Check integrity of the configuration file or correctness of the supplied hash. 12 The EEPROM MAP file could not be opened/read, or a syntax error was discovered in the file. 14 Reboot required to apply OROM size pointers (reboot to complete update). 15 Another instance of the NVM Update tool is already running. 18 An error occurred during link or PHY reset. 19 Device not found. 20 Communication with base driver failed. Please verify that the base driver is present. 21 Unsupported NVM image discovered. Please upgrade to the latest version of the NVM Update tool. 22 The image backup process failed. 23 The requested image cannot be applied over the existing NVM content. Please download the most recent update package and retry the update. 50 Please perform the indicated reset action and run the NVM Update tool again to complete the update. 51 Update available for one or more adapters. Configuration File ver. 1.12.0 ============================== The configuration file is a text file containing a short header followed by a series of 'device blocks'. The device blocks contain a series of tag:value pairs, each of which describes an Intel networking device and specifies approved versions of firmware for that device. The NVM Update tool checks a device to see if it is a candidate for update. The check matches on the following fields: - EtrackId (from the REPLACES field) + VENDOR + DEVICE + SUBVENDOR + SUBDEVICE - EtrackId (from the REPLACES field) + VENDOR + DEVICE - VENDOR + DEVICE + SUBVENDOR + SUBDEVICE Restrictions & Rules -------------------- - You can run only one instance of the tool at a time. - You cannot update the EEPROM and the NVM in the same session. Only one should be specified in the configuration file. - You can update the EEPROM and the OROM in the same session. The EEPROM will be updated first, followed by the OROM. - You can update the NVM and the OROM in the same session. The NVM will be updated first, followed by the OROM. - Inventory mode does not consider potential EEPROM/NVM image changes if a sequential OROM update is requested (e.g. an additional reboot might be required, indicated by exit code: 14). - On multiport adapters, due to there being only one EEPROM/flash that is shared by all ports, only port 0 will be updated (or the port with the MAC address specified with the -m command line parameter). - Blank lines or lines beginning with a semicolon (comments) are ignored. - Unrecognized keywords in the configuration file will result in the NVM Update tool exiting abnormally and reporting a syntax error (exit code=2). Run the NVM Update tool again, with the Enable Logging command line parameter (-l), to see what specific line is in error. - An OROM update is allowed only if the specified OROM component set matches combo rules (the vendor\device pairs defined in the .flb file). - An OROM downgrade is allowed only if a value of TRUE is assigned to the "OROM DOWNGRADE" key. - If the configuration file specifies the OROM IMAGE field, but does not specify any OROM components (PXE, EFI, etc.), the device's current set of OROM components is used as the component list. - An OROM update preserves the current configuration of components, or resets the configuration to the default if new settings do not allow for configuration preservation (e.g., when combo rules differ). - EtrackId of EEPROM or NVM and OROM components version values specified in the configuration file are compared against values stored in .eep/.bin or .flb files. If a mismatch is found, the inventory/update is aborted. - If the EtrackId of EEPROM or NVM and OROM components version values are not specified in the configuration file, then values from .eep/.bin or .flb are taken without verification. - EEP/NVM/OROM update is always allowed if running image versions cannot be specified or are invalid. - EEPROM/NVM downgrade is allowed only when the REPLACES key is specified with an active EtrackID value. - A candidate match based on sub IDs requires that both SUBVENDOR and SUBDEVICE fields are present in the configuration file. - If the REPLACES field is not present, you must include the SUBVENDOR and SUBDEVICE fields in the configuration file. SUBVENDOR and SUBDEVICE are optional if REPLACES is present. - The NVM Update tool will not report errors for devices that are not specified in the config file. Configuration File Syntax ------------------------- All configuration file fields are required, except for those indicated as "[Optional]". CURRENT FAMILY [Optional] Defines OEM version (x.y.z) for the file. CONFIG VERSION: Defines the version of the configuration file format in use. The parameter is in the format BEGIN DEVICE Demarcates the start of a device definition block. DEVICENAME: xxx [Optional] The branding string of the device. This is only used to make the file easier to read; it is not processed by the tool. VENDOR: xxxx The vendor ID, typically 8086, in hexadecimal. DEVICE: xxxx The device ID number, in hexadecimal. SUBVENDOR: xxxx The sub-vendor ID number, in hexadecimal. SUBDEVICE: xxxx The sub-device ID number, in hexadecimal. REVISION: xx [Optional] The revision number, in hexadecimal. If not provided, revision numbers of all devices in the system will be considered to match configuration file definitions. PXE: [Optional] The version number (x.xx.xx), in decimal format, for the PXE firmware subcomponent. The string NONE (or value 0.0.0) indicates that PXE should not be installed on this device. If is not specified, then the value is taken directly from the .flb file. EFI: [Optional] The version number (x.xx.xx), in decimal, for the EFI boot firmware subcomponent. The string NONE (or value 0.0.0) indicates that EFI should not be installed on this device. If is not specified, then the value is taken directly from the .flb file. EFI_IA64: [Optional] The version number (x.xx.xx), in decimal, for the EFI IA64 boot firmware subcomponent. The string NONE (or value 0.0.0) indicates that EFI_IA64 should not be installed on this device. If is not specified, then the value is taken directly from the .flb file. ISCSI: [Optional] The version number (x.xx.xx), in decimal, for the iSCSI boot firmware subcomponent. The string NONE (or value 0.0.0) indicates that iSCSI boot should not be installed on this device. If is not specified, then the value is taken directly from the .flb file. FCOE: [Optional] The version number (x.xx.xx), in decimal format, for the FCoE firmware subcomponent. The string NONE (or value 0.0.0) indicates that FCoE should not be installed on this device. If is not specified, then the value is taken directly from the .flb file. SMCLP: [Optional] The version number (x.xx.xx), in decimal, for the SMCLP firmware subcomponent. The string NONE (or value 0.0.0) indicates that SMCLP should not be installed on this device. If is not specified, then the value is taken directly from the .flb file. SKIP OROM: [Optional] If set to TRUE, keeps the existing option-ROM image (suppresses update of the OROM). OROM IMAGE: The name of the file that contains OROM components for this device (typically an .flb file). OROM DOWNGRADE: [Optional] If set to TRUE, allows the option-ROM image to be downgraded to a previous version. OROM DOWNGRADE permission is set to FALSE by default. OROM HASH: [Optional] Hash of the corresponding OROM IMAGE file. EEP IMAGE: The name of the file containing the EEPROM image for this device (typically an .flb file). EEP HASH: [Optional] Hash of corresponding EEP IMAGE file. EEPROM MAP: [Optional] The name of the text file that contains a list of words to be preserved, overwritten, or excluded from verification by the NVM Update tool. This key is to be part of each device configuration specified within a device block in the configuration file. EEPROM MAP is optional and has no default value. If no value is specified in the key, a configuration file error (exit code 2) is returned. Details regarding the format and content of this text file are given in the section "EEPROM MAP File Syntax" that follows. NVM IMAGE: [Optional] The name of the file that contains the entire NVM image (EEPROM, OROM and FW) for this device (typically an .flb file). NVM HASH: [Optional] Hash of the corresponding NVM IMAGE file. IMAGE DOWNGRADE: [Optional] If set to TRUE, allows the EEPROM or NVM image to be downgraded to a previous version. IMAGE DOWNGRADE permission is set to FALSE by default. EEPID: xxxx [Optional] The unique 32-bit ETrack-ID image tag, in hexadecimal. REPLACES: x [Optional] EEPID of the old image that the current image replaces. You can specify multiple old images by separating them with a space. Used to handle customized NVM settings that may have the same vendor and device ID information as other devices (for driver compatibility reasons) but need specific update files. If not present, then the section will wildcard match on the listed VENDOR, DEVICE, and SUBSYSTEM ID fields. RESET TYPE: The type of reset required after updating the EEPROM. Allows the developer of the EEPROM package to specify the correct reset type. Ignored if EEPROM is not updated (i.e., Option ROM update only). Valid values for reset_type are: NONE: No reset required. LINK: Link reset. PHY: PHY reset. HICR: FW reset (initiated by SW) only usable on HICR enabled devices. BMC: FW reset initiated by BMC via SMBus or NC-SI. Tool tells the user to reset the device via BMC or a power cycle of the system. REBOOT: Tool tells user to reboot the system. POWER: Tool tells user to power cycle the system. PHY DOWNGRADE: If set to TRUE, allows the PHY NVM image to be downgraded to a lower version. PHY DOWNGRADE permission is set to FALSE by default. PHY IMAGE: The name of the file that contains the PHY FW image for this device followed by the PHY family ID. The PHY family ID is compared to the device's NVM. The PHY FW will only update if the values match. PHY HASH: [Optional] Hash of the corresponding PHY IMAGE file. PHY VERSION: [Optional] The version number of the PHY NVM contained in . BEGIN PHY:ID= FAMILY= Demarcates the beginning of a PHY definition block, where: ID= The PHY ID in hexadecimal. Family= The PHY Family ID in hexadecimal. The PHY ID and PHY Family ID are compared to the device's NVM. The PHY FW will only update if the values match. A PHY definition block may contain the following fields: DOWNGRADE: [Optional] If set to TRUE, allows the PHY NVM image to be downgraded to a lower version. PHY DOWNGRADE permission is set to FALSE by default. HASH: [Optional] Hash of the corresponding PHY IMAGE file. IMAGE: The name of the file that contains the PHY FW image for this device. VERSION: [Optional] The version number of the PHY NVM contained in . END PHY Demarcates the end of a PHY definition block. PAL IMAGE: File that contains the platform adaption layer image for this device. PAL VERSION: [Optional] The version number of the platform adaption layer image. PAL HASH: [Optional] Hash of corresponding platform adaption layer image. PAL DOWNGRADE: If set to TRUE, allows the platform adaption layer image to be downgraded to a previous version. PAL DOWNGRADE permission is set to FALSE by default. SKIP PAL: [Optional] If set to TRUE, keeps the existing platform adaption layer image (suppresses update of the platform adaption layer). RO IMAGE: The name of the file that contain RO module image for the device. RO VERSION: The version number for the RO module,in hexadecimal format. RO HASH: Hash of the corresponding RO IMAGE file. FEATURES: [Optional] Device features which cannot be detected by the NVM Update tool. Valid values: DOUBLE_REBOOT_GPIO{n} - The device circuit handling a double reboot using GPIO{n} (where {n} is an integer value from 0 to 5). END DEVICE Demarcates the end of a device definition block. Configuration File Example -------------------------- The following is an example of a configuration file with one device block: CURRENT FAMILY: 12.1.1 CONFIG VERSION: 1.7.0 BEGIN DEVICE DEVICENAME: Intel x540 Adapter VENDOR: 8086 DEVICE: 10C9 SUBVENDOR: 8086 SUBDEVICE: A04C REVISION: 2 PXE: 1.3.04 EFI: 2.7.06 ISCSI: 3.8.17 FCOE: 4.8.04 SMCLP: 5.8.17 NVM IMAGE: nvmImage.bin OROM IMAGE: BootImg.flb EEP SETTINGS: userSet.txt EEPID: 800007A9 REPLACES: 80000692 EEPLAYOUT: 82599 RESET TYPE: POWER END DEVICE EEPROM MAP Text File Syntax =========================== EEPROM MAP FILE VERSION: 1.1.0: This version number will be used to find any mismatch between the NVM Update tool and EEPROM MAP file version. This is the only obligatory field in the file. Data in the file are divided into 3 major blocks: PRESERVE VERIFICATION EXCLUDED OVERWRITE Data from PRESERVE and VERIFICATION EXCLUDED blocks are excluded from image comparison. Image comparison occurs when the same version of the image is found on the NIC and in the files provided for the inventory/update, and after an update to verify if written image matches provided one. The comparison recognizes if the current image is corrupted. If the same set of data is provided in the PRESERVE and OVERWRITE blocks, data from OVERWRITE takes precedence. All PRESERVE actions occur before OVERWRITE actions, regardless of where they are in the map file. There is no conflict if the same data are provided in VERIFICATION EXCLUDED and either PRESERVE or OVERWRITE blocks. Within the PRESERVE and VERIFICATION EXCLUDED blocks, multiple sections of the same type definition may be included. The following blocks are analyzed: DIRECT - Section containing words' addresses. Data in this section (separated by white spaces) consist of: - word offset, e.g. "0x2E" - word bitmask, e.g. "0xFFFF" - consecutive number of words, e.g. "1" POINTER - Section containing pointers and offsets. Data in this section (separated by white spaces) consist of: - pointer address to selected area, e.g. "0x07" - word offset, e.g. "0x01" - word bitmask, e.g. "0xFFFF" - consecutive number of words, e.g. "3" DOUBLE POINTER - Section containing pointers, second level pointer offsets and third level offsets Data in this section (separated by white spaces) consist of: - pointer address to selected area (module pointer), e.g. "0x07" - pointer offset (value calculated as a relative to _module pointer), e.g. "0x02" - word offset, e.g. "0x0A" - word bitmask, e.g. "0xFFFF" - consecutive number of words, e.g. "1" TLV - Section containing TLVs to be preserved. - TLV type(hex), e.g. 1A2B The OVERWRITE block should contain blocks and sections with values: DIRECT - : Section containing words' addresses and their values. Data in this section consist of: - word offset, e.g. "0x2E" colon ":" - value (hex), e.g. "1A2B" POINTER - : Section containing pointers, offsets, and their values. Data in this section (separated by white spaces) consist of: - pointer address to selected area, e.g. "0x07" - word offset, e.g. "0x00" colon ":" - value (hex), e.g. "1A2B" DOUBLE POINTER - : Section containing pointers, second level pointer offsets and third level offsets. Data in this section (separated by white spaces) consist of: - pointer address to selected area (module pointer), e.g. "0x07" - pointer offset (value calculated as a relative to module pointer), e.g. "0x02" - offset, e.g. "0x0A" colon ":" - value (hex), e.g. "1A2B" TLV - : Section containing TLVs to be overwritten with new values. - TLV type(hex), e.g. 1A2B - - value (hex), e.g. "1A2B" VPD - : Section may contain 2 major VPD subsections (these subsections are optional and may be omitted): READ WRITE Data in this (sub)section consist of: - one of valid VPD fields defined in PCI VPD specification (e.g. PN, EC, SN, Vx) colon ":" (optional) - value (ASCII) (optional) e.g. "FFV13.00.00" If the value (and colon) is not provided in the section, the value from NVM image is used for update. This is the desired way to exclude selected VPD areas from being preserved. The EEPROM MAP file may contain comments after a ";" (semicolon). Each block and section need to have BEGIN and END statements. If the file referenced in the configuration file is not provided, or the data in the file is of the wrong format, the NVM Update tool will exit with exit code EEPROM MAP FILE ERROR (exit code: 12). If the file contains only the file version with no other definitions, the file is skipped. EEPROM MAP File Example ----------------------- Example EEPROM MAP file contents with data to be preserved, overwritten, and excluded from comparison: EEPROM MAP FILE VERSION: 1.0.0 BEGIN PRESERVE BEGIN DIRECT 0x0B 0xFFFF 1 ;Subsystem ID END DIRECT BEGIN POINTER 0x37 0x0 0xFFFF 6 ;Alternate MAC address END POINTER BEGIN DOUBLE POINTER 0x0C 0x11 0x00 0xFFFF 1 END DOUBLE POINTER END PRESERVE BEGIN VERIFICATION EXCLUDED BEGIN DIRECT 0x38 0x0003 1 ;APM Enable Port END DIRECT BEGIN POINTER 0x28 0x0 0xFFFF 6 END POINTER END VERIFICATION EXCLUDED BEGIN OVERWRITE BEGIN DIRECT 0x00 : 001B ;MAC address 0x01 : 1234 0x02 : 5678 END DIRECT BEGIN POINTER 0x29 0x01 : 1111 END POINTER BEGIN DOUBLE POINTER 0x0C 0x11 0x00 : ABCD END DOUBLE POINTER BEGIN VPD BEGIN READ V1 END READ BEGIN WRITE V3 : DTINIC END WRITE END VPD END OVERWRITE 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 TOOLS ON MICROSOFT* WINDOWS SERVER* NANO SERVER ============================================================== To install the tools on systems running Nano Server, you must use Microsoft* Windows PowerShell* to copy the tools and their driver files from a host system running a version of Windows other than Nano Server to the target system running Nano Server. The tools and their driver files are available from the installation media in the \TOOLS\Nanox64\SVTools folder. This is the installation procedure: 1. On the host system, open the installation media and copy the folder \TOOLS\Nanox64\SVTools to the target system running Nano Server. 2. Open a Windows PowerShell session to the target system. 3. Navigate to the location of the files you copied in Step 1 above. 4. Run install.bat. INSTALLING THE TOOLS ON EFI =========================== 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 TOOLS ON DOS =========================== The tools support various DOS versions. There is no installation required for DOS tools. The tools can simply be copied from the DOS directory on the CD to the drive that they will run from. It is expected that the tools have a clean boot environment. The tools will not run with memory managers and/or DOS networking drivers loaded. The tools expect that they have full, unlimited control of the hardware. The tools *WILL NOT* run properly if EMM386 is present. The tools run in protected mode, 32-bit DOS. Therefore, they will not be compatible with any TSR programs. INSTALLING THE TOOL ON LINUX* ============================= In order to run this tool on Linux*, the base driver must be installed on the system. INSTALLING THE TOOL ON VMWare* ESXi* =================================== In order to run this tool on VMWare* ESXi*, the base driver must be installed on the system. Note that there are two versions of the utility. For ESXi 6.0 and later, use nvmupdaten64e. For prior versions of ESXi, use nvmupdate64e. INSTALLING THE TOOL ON FreeBSD* =============================== In order to run this tool on FreeBSD*, the base driver must be installed on the system. Legal / Disclaimers =================== Copyright (C) 2013 - 2017, 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.