Intel(R) Ethernet Port Configuration Tool
=========================================
October 20, 2020

Contents
========
- OVERVIEW
- SUPPORTED OPERATING SYSTEMS
- RUNNING THE UTILITY
  - OPTIONS
  - BASIC USAGE EXAMPLE
  - EXIT CODES
- CUSTOMER SUPPORT
- LEGAL


OVERVIEW
========
The Intel(R) Ethernet Port Configuration Tool (EPCT) is a command line utility
that allows users to change the link type of a device. The supported types are
defined within the adapter's NVM. This utility displays only the devices that
potentially support reconfiguration.

NOTE: An immediate reboot is required to apply configuration changes. On
systems running Oracle* Solaris* 11, you must perform a full reboot, not a fast
reboot.

NOTE: You may lose link if you change the link type of your device from any
port option that contains three to seven ports to a port option that enables
multi-lane interfaces, such as 2x100G, 2x50G or 1x100G. One of the following
methods may resolve the issue:

- Use the utility to change the port option to 8x10G; reboot your system;
change to your originally desired configuration.

- Completely power cycle your system.

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 Server*
Linux* Kernel
Red Hat* Enterprise Linux*
SUSE* Linux Enterprise Server
UEFI
Oracle* Solaris*
VMWare* ESXi*
FreeBSD

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


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


OPTIONS
-------
The Intel(R) Ethernet Port Configuration Tool can be run with any of the
following command line options.
NOTE: The slash '/' character can be used in place of the dash '-' character.
NOTE: All options are case-sensitive.

-h -help -?
Displays command line help.

-h (parameter) -help (parameter) -? (parameter)
Displays help for the specified parameter.

-devices [branding]
Displays supported devices present in the system. If 'branding' is specified,
then the branding view is displayed.

-nic=(device_index)
Selects the device at the specified index.

-get
Displays port configuration for the device specified by -nic.

-set (option)
Configures the selected device with the specified option. The option string is
defined as:
QxPxS - if all port speeds are the same across both quads and all lines, or
P1xS1-P2xS2 - if each quad has a specific speed, or
P11xS11+<...>+P1nxS1n-P21xS21+<...>+P2mxS2m
Where:
Q - The desired quad number
P - The desired port number
S - The desired port speed
n - The desired port/speed combination for quad 0
m - The desired port/speed combination for quad 1

NOTE: An immediate reboot is required after changing the port settings.


Basic Usage Examples
====================
The following examples show the tool's -devices option, the -get option, and
the -set option.

-devices
--------
>epct -devices
NIC Seg:Bus:Fun   Ven-Dev   Connector Ports Speed    Quads  Lanes per PF
=== ============= ========= ========= ===== ======== ====== ============
1)  000:012       8086-1583 QSFP      2     50 Gbps  Single  1
2)  000:015       8086-1584 QSFP      4     25 Gbps  Single  1
3)  000:017       8086-1589 SFP       4     25 Gbps  Single  1
4)  000:030:00-01 8086-1588 QSFP      2     25 Gbps  Single  1
    000:030:02-05 8086-1587 QSFP      4     10 Gbps  Single  1

>epct -devices branding
NIC Seg:Bus Ven-Dev   Mode        Adapter Name
=== ======= ========= =========== =============================================
1)  000:012 8086-1583 N/A         Intel(R) Ethernet Converged Network Adapter
                                  XL710
2)  000:029 8086-1583 4x10        Intel(R) Ethernet Converged Network Adapter
                                  XL710
3)  000:129 8086-1599 2x25,2x10-  Intel(R) Ethernet Controller E810-XXV for
                      2x10        backplane
4)  000:132 8086-159A 2x50        Intel(R) Ethernet Controller E810-XXV for
                                  QSFP

-get
----
>epct -nic=1 -get
Available Port Options:
==========================================================================
Active  Port                             Quad 0           Quad 1
Option  Option (Gbps)                    L0  L1  L2  L3   L4  L5  L6  L7
======= =============================    ================ ================
        4x25                          -> 25  25  25  25   -   -   -   -
        2x1x100                       -> 100 -   -   -    100 -   -   -
   X    2x2x25                        -> 25  25  -   -    25  25  -   -
        2x50                          -> 50  -   50  -    -   -   -   -
        2x1x50                        -> 50  -   -   -    50  -   -   -
        2x4x10                        -> 10  10  10  10   10  10  10  10
        2x25+2x10-2x10                -> 25  25  10  10   10  10  -   -
        1x10+1x25+1x10+1x25-2x10      -> 10  25  10  25   10  10  -   -

-set
----
Set two ports to 50 Gbps. First port starts with lane L0 in quad 0 and second
with lane L4 in quad 1:
>epct -nic=1 -set 2x1x50

set 1st and 2nd ports to 25Gbps (respectively lanes L0 and L1 in quad 0), 3rd
and 4th port to 10Gbps (respectively lanes L2 and L3 in quad 0), 5th and 6th
port to 10Gbps (respectively lanes L4 and L5 in quad 1):
>epct -nic=1 -set 2x25+2x10-2x10

NOTE: An immediate reboot is required after changing the port settings.


Exit Codes
==========
Upon exit, when possible, the EPCT 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	Success.
1	No supported adapter found.
2	Insufficient privileges to run the tool.
3	No driver available.
4	Unsupported base driver version.
5	Bad command line parameter.
6	Invalid adapter selected.
7	Unsupported ports configuration selected.
8	Adapter does not support ports configuration.
9	Memory allocation error.
10	Adapter access error.
13	Cannot set new port option. Pending reboot detected.

NOTE: EFI versions of this tool may report an incorrect error code when no
adapter is installed. This is due to a known limitation in the UDK2015 UEFI
Development Kit (UDK) build environment.


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 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.


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) 2019 - 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.


