# Intel® Ethernet FLASH Firmware Utility

## Introduction

The Intel® Ethernet Flash Firmware Utility (BootUtil) is a utility that can be used to program the PCI option ROM on the flash memory of supported Intel PCI and PCI-Express-based network adapters, and to update configurations. BootUtil replaces existing utilities and provides the functionality of the older IBAUTIL, ISCSIUTL, LANUTIL, and FLAUTIL. BootUtil supports all the adapters supported by the previous utilities.

| NOTE: Updating the adapter's flash memory using BootUtil will erase any existing firmware image from the flash memory.

Intel provides the following flash firmware in FLB file format for programming to the flash memory:

> Intel® Boot Agent as PXE Option ROM for legacy BIOS
> http://www.intel.com/support/network/adapter/pro100/bootagent/
> Intel® iSCSI Remote Boot as iSCSI Option ROM for legacy BIOS
> http://www.intel.com/support/network/iscsi/remoteboot/
> Network Connectivity, UEFI network driver
> http://www.intel.com/support/network/sb/cs-006120.htm

OEMs may provide custom flash firmware images for OEM network adapters. Please refer to the instructions given by OEMs.

BootUtil allows the user to flash supported firmware to the adapter from the included master FLB file. This option ROM includes PXE, iSCSI, FCoE and UEFI drivers, and the image is programmed to the flash memory at once. BootUtil will also build the required combo images for supported adapters and program those images to the flash, as well. Since both discrete and combo images are supported, the -BOOTENABLE command ONLY works on combo images.

PXE+EFI and iSCSI+EFI image combinations are supported for all OEM generic adapters, however support is limited to devices which support both technologies as discrete images. However, flash size is a limiting factor, as the image size can change without notice.

The Master FLB file (BOOTIMG.FLB) is the new container for all the Intel® Boot Option ROMs. This file replaces the existing FLB files for FCoE, iSCSI, PXE, and EFI.

| NOTE: BootUtil supports older flb files to maintain backwards compatibility with the previous utilities.

BootUtil without command-line options will display a list of all supported Intel network ports in the system. BootUtil will also allow the user to enable or disable the flash memory on specific ports by using -FLASHENABLE or -FLASHDISABLE options in order to control access to the firmware from the system.
BootUtil allows the user to individually set iSCSI, FCoE, UEFI and PXE boot configurations by -NIC=xx -[OPTION]=[VALUE] options. The -I option is iSCSI specific and will not work for PXE configurations.

| NOTES:

- BootUtil displays up to 128 adapter ports.
- No configuration settings are supported for the UEFI driver.
- Functionality from the previous utility, IBAutil, is preserved in BootUtil.

BootUtil is located on the software installation CD in the \APPS\BootUtil\ directory. Check the Intel Customer Support (http://support.intel.com) website for the latest information and component updates.

## Running BootUtil

The syntax for issuing BootUtil command-line options is:

> `BOOTUTIL -[OPTION] or -[OPTION]=[VALUE]`

## Command-line Options

BootUtil accepts one executable option and its associated non-executable options in an execution. If conflicting executable options (such as -FLASHENABLE and -UPDATE used together) are supplied, BOOTUTIL exits with an error.

The options, where applicable, are listed in logical groups.

| NOTE: If you run BootUtil without any command-line options, the utility displays a list of all supported Intel network ports found in the system.

General Options |
--- | ---
Parameter | Description
`-HELP or -?` | Displays a list of command-line options.
`-EXITCODES` | Displays exit codes returned to the OS by BootUtil.
`-IMAGEVERSION or -IV` | Displays firmware types and version numbers from a resource image. If used with the -FILE option, the resource image is in the FLB file. If used with the -NIC option, the resource image is in the adapter flash. If used with the -ALL option, each resource image is continuously displayed for all adapters.
`-E` | Enumerates all supported network ports in the system.
`-O=[FILENAME]` | Must be used with –E or –NIC. If used with the -E option, saves a list of all NICs and their MAC addresses to the specified file. If used with the -NIC option, saves all iSCSI Remote Boot configuration options for the specified NIC to the specified file.
`-I=[FILENAME]` | Reads iSCSI boot configuration options from [FILENAME] script file and program settings on the selected port.
`-FILE=[FILENAME]` | Specifies the file name for -SAVEIMAGE, -RESTOREIMAGE, -SAVECONFIG or -RESTORECONFIG option.
`-P` | With this command, BootUtil pauses the screen after displaying every 25th line. In pause mode, the last line of the screen will contain information that: - screen has been paused, and - user can press Enter to continue
`-NODPL` | With this command, BootUtil does not display the PCI device location.

Power Management Options |
--- | ---
Parameter | Description
`-WOLDISABLE or -WOLD` | Disables Wake on Lan (WOL) functionality on the selected adapter.
`-WOLENABLE or -WOLE` | Enables Wake on Lan (WOL) functionality on the selected adapter.

Flash Programming Options |
--- | ---
Parameter | Description
`-UP or -UPDATE=[ROMType]` `[-FILE=Filename]` | Updates the flash memory of the adapter specified by the -NIC option with the given FLB flash firmware image file. If -QUIET is not specified, the user is prompted to confirm overwriting the existing firmware image before upgrading. If a Filename is not provided, the utility looks for the default bootimg.FLB file which contains all image types.

The following examples use pxe, but could also be efi, efi64, FCoE or iSCSI.
eg: Bootutil -Nic=x -up=pxe
or Bootutil -Nic=x -up=pxe -file=pxeimg.flb

If your adapter supports a combo option ROM, the following command option automatically detects the supported combo image and programs the adapter with that image.
-up=combo

up=pxe+efi and up=iscsi+efi are valid.

`-SAVEIMAGE or SI` | Saves the existing flash firmware image in the flash memory of the adapter specified by the -NIC option to a disk file. The destination file is specified by the -FILE option.
`-RESTOREIMAGE or RI` | Restores a previously-saved flash firmware image to the same network adapter using the -NIC option. The source file is specified by the -FILE option.
`-QUIET` | Runs BootUtil without confirmation prompts. This option is used with -IMAGEVERSION, -UP, -UPDATE, -RESTOREIMAGE, or -HELP option.

Adapter Selection Options |
--- | ---
Parameter | Description
`-ALL` | Selects all supported network ports found in the system.
`-NIC=XX` | Selects a specific network port in the system. If used without any executable option, it prints the iSCSI boot configuration of the selected port, or saves it in the file when the -O option is used.
`-TARGET=XX` | This is an FCoE-specific selection option. Legal values are 1,2,3,and 4. This option is required for configuration commands -WWPN, -FCOELUN, FCOEVLAN, and - BOOTORDER.
`-BLINK` | Blinks the LED on the selected port for ten seconds.

Adapter Flash Enable/Disable Options |
--- | ---
Parameter | Description
`-FLASHENABLE or -FE` | Enables the capability to run the flash firmware on the selected adapter.
`-FLASHDISABLE or -FD` | Disables the capability to run the flash firmware on the selected adapter.
`-BOOTENABLE=[PXE, ISCSIPRIMARY, ISCSISECONDARY, FCOE, or DISABLED]` | Selects flash firmware type to enable or disable on the selected port. The combo option ROM could have all capabilities. The monolithic option ROM has either PXE, FCoE, or iSCSI capability but not all. This command will NOT WORK on monolithic Option ROMs.

| NOTES: This manual command is not applicable to the UEFI network driver. The UEFI network driver is enabled by default and loaded automatically unless network ports are already used by other flash firmware.

PXE Boot Configuration options (can be used with -NIC or -ALL) |
--- | ---
Parameter | Description
`-DEFAULTCONFIG or -DEFCFG` | Sets the PXE configuration of the selected NIC back to default settings.
`-SETUPENABLE or -STE` | Enables Setup Menu.
`-SETUPDISABLE OR -STD` | Disables Setup Menu.
`-TITLEENABLE OR -TLE` | Enables Initial Title Message.
`-TITLEDISABLE OR -TLD` | Disables Initial Title Message.
`-MESSAGEENABLE or -MSE` | Enables display of the Control-S Setup message when PXE initializes.
`-MESSAGEDISABLE or -MSD` | Disables display of the Control-S Setup message when PXE initializes.
`-SETWAITTIME=X or -SWT=X` | Set the setup delay time for the NIC to X seconds. Valid delay times are 0, 2, 3, and 5.
`-MODE` | This parameter should not be used except as advised by Intel Support personnel.

iSCSI Boot Configuration Options |
--- | ---
Parameter | Description
`-SAVECONFIG` | Saves a snapshot of iSCSI boot configurations on the selected port to a binary file. Need to specify the file name by the -FILE option. WARNING: For security reasons it is recommended that CHAP settings are disabled when using this option.
`-RESTORECONFIG` | Restores previously-saved iSCSI boot configuration snapshot on the selected port. Need the -FILE option to specify the saved data. WARNING: This feature may create multiple primary or secondary ports if the same command is issued to multiple ports. Review the boot priority setting in the iSCSI setup menu for the next system boot.

Port Configuration Options for iSCSI Initiator | These options can either be used individually with the -NIC=XX option, or in a script file with the -I option. The value is specified in -[OPTION]=[VALUE] format.
-[OPTION]=[VALUE] | Description
--- | ---
`-INITIATORNAME` | Specifies the iSCSI Qualified Name (IQN) for the initiator.
`-INITIATORIP` | Specifies the initiator IPv4 address in dotted decimal notation.
`-INITIATORDHCP` | Enable or disable to get initiator configuration from DHCP.
`-NETMASK` | Specifies the initiator subnet mask in dotted decimal notation.
`-GATEWAY` | Specifies the gateway IPv4 address in dotted decimal notation.
`-BOOTPRIORITY` | Specifies iSCSI boot priority as PRIMARY, SECONDARY or DISABLE.

iSCSI Target Configuration Options | These options can either be used individually with the -NIC=XX option, or in a script file with the -I option. The value is specified in -[OPTION]=[VALUE] format.
-[OPTION]=[VALUE] | Description
`-TARGETNAME` | Specifies the iSCSI Qualified Name (IQN) for the target.
`-TARGETIP` | Specifies the target IPv4 address in dotted decimal notation.
`-TARGETDHCP` | Enable or Disable to get the target information from DHCP Root Path.
`-TARGETPORT` | Specifies the TCP port number on the target to connect to.
`-BOOTLUN` | Specifies the LUN number to boot from.

Authentication Configuration Options | These options can either be used individually with the -NIC=XX option, or in a script file with the -I option. The value is specified in -[OPTION]=[VALUE] format.
-[OPTION]=[VALUE] | Description
`-AUTHENTICATIONMETHOD` | Specifies either NONE, CHAP or MutualCHAP
`-CHAPUSERNAME` | Specifies CHAP user name.
`-CHAPSECRET` | Specifies a secret text string to go with the CHAP user name. Secret must be 12 to 16 characters long.
`-MUTUALCHAPSECRET` | Specifies the reverse (target) CHAP secret text string. Secret must be 12 to 16 characters long.
FCoE General Configuration Options | These options have to be used with the -NIC=XX option. They cannot be used with the -ALL option.
`-WWPNPREFIX` | Specifies the Prefix to use for the WWPN. The prefix comprises of 4 hex digits. Separators '-' or ':' are allowed but optional. eg: BOOTUTIL -NIC=1 -WWPNPREFIX=20-00
`-WWNNPREFIX` | Specifies the Prefix to use for the WWNN. The prefix comprises of 4 hex digits. Separators '-' or ':' are allowed but optional. eg: BOOTUTIL -NIC=1 -WWNNPREFIX=10-00
FCoE Target Configuration Options | These Options require the use of both the -NIC=XX Option AND the -TARGET=XX Option. The -ALL option is not allowed.
`-WWPN` | Specifies the WWPN for the selected Target. The WWPN consists of 16 HEX digits or 8 bytes. Each byte can be separated with '-' or ':' as an optional separator. eg: BOOTUTIL -NIC=1 -TARGET=1 -WWPN=00-11-22-33-44-55-66-77
`-FCOELUN` | Specifies the LUN for the selected FCoE Target. Valid range is 0..255.
`-FCOEVLAN` | Specifies the VLAN to use in order to connect to the selected target. Valid range is 0..4094.
`-BOOTORDER` | Specifies the boot order for the selected target. Valid range is 1-4. If 0 is specified then this target will be excluded from the boot order. Boot order values of 1-4 can only be assigned once to target(s) across all FCoE boot-enabled ports.
NOTE: These commands can all be used on the same command line to configure an entire target in one shot.
eg: BOOTUTIL -NIC=1 -TARGET=2 -WWPN=0011223344556677 -FCOELUN=0 -FCOEVLAN=1 -BOOTORDER=2

The CHAP Authentication feature of this product requires the following acknowledgements:
This product includes cryptographic software written by Eric Young (eay@cryptsoft.com). This product includes software written by Tim Hudson (tjh@cryptsoft.com)
This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.openssl.org/)

### Examples

The following examples show how to enter some typical BootUtil command lines:

#### Example 1:

To enable the flash firmware on the first network adapter for the system to be capable of executing the flash firmware.

> BootUtil -NIC=1 -FLASHENABLE

#### Example 2:

To disable the flash firmware on all the network adapters.

> BootUtil -ALL -FD

#### Example 3:

To display BootUtil FLB flash firmware types and versions.

> BootUtil -IMAGEVERSION

#### Example 4:

To update all ports of a supported NIC with PXE.

> 1. BootUtil -UP=PXE -ALL (Assumes input file is bootimg.flb)
> 2. Bootutil -UP=PXE -ALL -FILE=BOOTIMG.FLB (explicit user specified file)

#### Example 5:

To update a combo image on supported adapter (eg, pxe+iscsi).

> Bootutil -UP=Combo -NIC=2 -FILE=BOOTIMG.FLB

The above command will succeed if the PXE+ISCSI combination is supported on NIC #2. If not an error is displayed to the user.

| NOTE: THE -UP and -UPDATE commands are equivalent and interchangeable.

#### Example 6:

To enable PXE firmware on the third network port in the system.

> BootUtil -BOOTENABLE=PXE -NIC=3

| NOTE: This command will work only if PXE is part of a combo Option ROM and not a discrete Option ROM.

#### Example 7:

To disable the firmware on the second network port in the system.

> BootUtil -NIC=2 -BOOTENABLE=DISABLED

#### Example 8:

To get help descriptions.

> BootUtil -?

#### Example 9:

To enable DHCP for the iSCSI initiator on all the network ports in the system.

> BootUtil -INITIATORDHCP=ENABLE -ALL

#### Example 10:

To load the iSCSI boot configurations from a text script file to the first network port.

> BootUtil -I=CONFIG.TXT -NIC=1

## Exit Codes

BootUtil returns exit codes to the OS environment. Possible exit codes are listed below:

Code Name | Value
--- | ---
All BootUtil operations completed successfully | 0
Bad command line parameter | 1
No supported network port detected | 2
Invalid network port selected | 3
FLASH operation failed | 4
EEPROM read operation failed | 5
EEPROM write operation failed | 6
File content is missing or corrupt | 7
Operator termination | 8
LOM not supported for selected operation | 9
Network port is not bootable | 10
FLASH memory is disabled for flash firmware | 11
FLASH memory too small for selected firmware | 12
Programming iSCSI boot configurations failed | 13
System memory allocation failed | 14
File operation failed | 15
FCoE operation failed | 16