xref: /freebsd-13.1/sys/contrib/dev/ice/README (revision c185d44f)
1*c185d44fSEric JoynerOS Default Dynamic Device Personalization (DDP) Package
2*c185d44fSEric Joyner======================================================================
31bd641afSEric JoynerJuly 7, 2020
471d10453SEric Joyner
571d10453SEric Joyner
671d10453SEric JoynerContents
771d10453SEric Joyner========
871d10453SEric Joyner- Overview
971d10453SEric Joyner- Safe Mode
1071d10453SEric Joyner- Notes
11*c185d44fSEric Joyner- Installation & Troubleshooting
1271d10453SEric Joyner- Legal
1371d10453SEric Joyner
1471d10453SEric Joyner
1571d10453SEric JoynerOverview
1671d10453SEric Joyner========
17*c185d44fSEric JoynerDevices based on the Intel(R) Ethernet 800 Series require a Dynamic Device
18*c185d44fSEric JoynerPersonalization (DDP) package file to enable advanced features (such as dynamic
19*c185d44fSEric Joynertunneling, Intel(R) Ethernet Flow Director, RSS, and ADQ).
2071d10453SEric Joyner
2171d10453SEric JoynerDDP allows you to change the packet processing pipeline of a device by applying
2271d10453SEric Joynera profile package to the device at runtime. Profiles can be used to, for
2371d10453SEric Joynerexample, add support for new protocols, change existing protocols, or change
2471d10453SEric Joynerdefault settings. DDP profiles can also be rolled back without rebooting the
2571d10453SEric Joynersystem.
2671d10453SEric Joyner
2771d10453SEric JoynerThe DDP package loads during device initialization. The driver checks to see if
2871d10453SEric Joynerthe DDP package is present and compatible. If this file exists, the driver will
2971d10453SEric Joynerload it into the device. If the DDP package file is missing or incompatible
3071d10453SEric Joynerwith the driver, the driver will go into Safe Mode where it will use the
31*c185d44fSEric Joynerconfiguration contained in the device's NVM. Refer to the Intel(R) Ethernet
32*c185d44fSEric JoynerAdapters and Devices User Guide for more information on Safe Mode.
3371d10453SEric Joyner
34*c185d44fSEric JoynerA general-purpose, default DDP package is automatically installed with all
35*c185d44fSEric Joynersupported Intel Ethernet 800 Series drivers on supported operating systems.
36*c185d44fSEric JoynerAdditional DDP packages are available to address needs for specific market
37*c185d44fSEric Joynersegments or targeted solutions.
3871d10453SEric Joyner
39*c185d44fSEric JoynerThe default DDP package supports the following:
4071d10453SEric Joyner- MAC
4171d10453SEric Joyner- EtherType
4271d10453SEric Joyner- VLAN
4371d10453SEric Joyner- IPv4
4471d10453SEric Joyner- IPv6
4571d10453SEric Joyner- TCP
4671d10453SEric Joyner- ARP
4771d10453SEric Joyner- UDP
4871d10453SEric Joyner- SCTP
4971d10453SEric Joyner- ICMP
5071d10453SEric Joyner- ICMPv6
5171d10453SEric Joyner- CTRL
5271d10453SEric Joyner- LLDP
5371d10453SEric Joyner- VXLAN-GPE
5471d10453SEric Joyner- VXLAN (non-GPE)
5571d10453SEric Joyner- Geneve
5671d10453SEric Joyner- GRE
5771d10453SEric Joyner- NVGRE
5871d10453SEric Joyner- RoCEv2
591bd641afSEric Joyner- MPLS (up to 5 consecutive MPLS labels in the outermost Layer 2 header group)
6071d10453SEric Joyner
6171d10453SEric Joyner
6271d10453SEric JoynerSafe Mode
6371d10453SEric Joyner=========
6471d10453SEric JoynerSafe Mode disables advanced and performance features, and supports only basic
6571d10453SEric Joynertraffic and minimal functionality, such as updating the NVM or downloading a
6671d10453SEric Joynernew driver or DDP package.
6771d10453SEric Joyner
68*c185d44fSEric JoynerRefer to the Intel(R) Ethernet Adapters and Devices User Guide for more details
69*c185d44fSEric Joyneron DDP and Safe Mode.
7071d10453SEric Joyner
7171d10453SEric Joyner
7271d10453SEric JoynerNotes
7371d10453SEric Joyner=====
7471d10453SEric Joyner- You cannot update the DDP package if any PF drivers are already loaded. To
7571d10453SEric Joyneroverwrite a package, unload all PFs and then reload the driver with the new
7671d10453SEric Joynerpackage.
7771d10453SEric Joyner
7871d10453SEric Joyner- Except for Linux, you can only use one DDP package per driver, even if you
7971d10453SEric Joynerhave more than one device installed that uses the driver.
8071d10453SEric Joyner
8171d10453SEric Joyner- Only the first loaded PF per device can download a package for that device.
8271d10453SEric Joyner
8371d10453SEric Joyner- If you are using DPDK, see the DPDK documentation at https://www.dpdk.org/
8471d10453SEric Joynerfor installation instructions and more information.
8571d10453SEric Joyner
8671d10453SEric Joyner
8771d10453SEric JoynerInstallation and Troubleshooting
8871d10453SEric Joyner================================
8971d10453SEric Joyner
9071d10453SEric JoynerMicrosoft* Windows*
9171d10453SEric Joyner-------------------
9271d10453SEric JoynerThe DDP package is installed as part of the driver binary. You don't need to
9371d10453SEric Joynertake additional steps to install the DDP package file.
9471d10453SEric Joyner
9571d10453SEric JoynerIf you encounter issues with the DDP package file, download the latest driver.
9671d10453SEric Joyner
9771d10453SEric Joyner
9871d10453SEric JoynerESX
9971d10453SEric Joyner---
10071d10453SEric JoynerThe DDP package is installed as part of the driver binary. You don't need to
10171d10453SEric Joynertake additional steps to install the DDP package file.
10271d10453SEric Joyner
10371d10453SEric JoynerIf you encounter issues with the DDP package file, download the latest driver.
10471d10453SEric Joyner
10571d10453SEric Joyner
10671d10453SEric JoynerFreeBSD
10771d10453SEric Joyner-------
10871d10453SEric JoynerThe FreeBSD driver automatically installs the default DDP package file during
109*c185d44fSEric Joynerdriver installation. See the base driver README for general installation and
11071d10453SEric Joynerbuilding instructions.
11171d10453SEric Joyner
11271d10453SEric JoynerThe DDP package loads during device initialization. The driver looks for the
11371d10453SEric Joynerice_ddp module and checks that it contains a valid DDP package file.
11471d10453SEric Joyner
11571d10453SEric JoynerIf you encounter issues with the DDP package file, you may need to download an
11671d10453SEric Joynerupdated driver or ice_ddp module. See the log messages for more information.
11771d10453SEric Joyner
11871d10453SEric JoynerNOTE: It's important to do 'make install' during initial ice driver
11971d10453SEric Joynerinstallation so that the driver loads the DDP package automatically.
12071d10453SEric Joyner
12171d10453SEric Joyner
12271d10453SEric JoynerLinux
12371d10453SEric Joyner-----
12471d10453SEric JoynerThe Linux driver automatically installs the default DDP package file during
125*c185d44fSEric Joynerdriver installation. Read the base driver README for general installation and
12671d10453SEric Joynerbuilding instructions.
12771d10453SEric Joyner
12871d10453SEric JoynerThe DDP package loads during device initialization. The driver looks for
12971d10453SEric Joynerintel/ice/ddp/ice.pkg in your firmware root (typically /lib/firmware/ or
13071d10453SEric Joyner/lib/firmware/updates/) and checks that it contains a valid DDP package file.
13171d10453SEric JoynerThe ice.pkg file is a symbolic link to the default DDP package file installed
132*c185d44fSEric Joynerby the linux-firmware software package or the out-of-tree driver installation.
13371d10453SEric Joyner
13471d10453SEric JoynerIf you encounter issues with the DDP package file, you may need to download an
135*c185d44fSEric Joynerupdated driver or DDP package file. Refer to the log messages for more
136*c185d44fSEric Joynerinformation.
13771d10453SEric Joyner
13871d10453SEric JoynerYou can install specific DDP package files for different physical devices in
13971d10453SEric Joynerthe same system. To install a specific DDP package:
14071d10453SEric Joyner
14171d10453SEric Joyner1. Download the DDP package file (ice-x.x.x.x.zip) you want for your device. In
14271d10453SEric Joyneraddition to licensing information and this README, this zip file contains the
14371d10453SEric Joynerfollowing files:
14471d10453SEric Joyner    ice-x.x.x.x.pkg
14571d10453SEric Joyner    ice.pkg
14671d10453SEric Joyner
14771d10453SEric JoynerNOTE: The ice.pkg file is a Linux symbolic link file pointing to
14871d10453SEric Joynerice-x.x.x.x.pkg (in the same path).
14971d10453SEric Joyner
15071d10453SEric Joyner2. Rename the ice-x.x.x.x.pkg file as ice-xxxxxxxxxxxxxxxx.pkg, where
15171d10453SEric Joyner'xxxxxxxxxxxxxxxx' is the unique 64-bit PCI Express device serial number (in
15271d10453SEric Joynerhex) of the device you want the package downloaded on. The filename must
15371d10453SEric Joynerinclude the complete serial number (including leading zeros) and be all
15471d10453SEric Joynerlowercase. For example, if the 64-bit serial number is b887a3ffffca0568, then
15571d10453SEric Joynerthe file name would be ice-b887a3ffffca0568.pkg.
15671d10453SEric Joyner
15771d10453SEric JoynerTo find the serial number from the PCI bus address, you can use the following
15871d10453SEric Joynercommand:
15971d10453SEric Joyner
16071d10453SEric Joyner# lspci -vv -s af:00.0 | grep -i Serial
16171d10453SEric JoynerCapabilities: [150 v1] Device Serial Number b8-87-a3-ff-ff-ca-05-68
16271d10453SEric Joyner
16371d10453SEric JoynerYou can use the following command to format the serial number without the
16471d10453SEric Joynerdashes:
16571d10453SEric Joyner
16671d10453SEric Joyner# lspci -vv -s af:00.0 | grep -i Serial | awk '{print $7}' | sed s/-//g
16771d10453SEric Joynerb887a3ffffca0568
16871d10453SEric Joyner
16971d10453SEric Joyner3. Copy the renamed DDP package file to /lib/firmware/updates/intel/ice/ddp/.
17071d10453SEric JoynerIf the directory does not yet exist, create it before copying the file.
17171d10453SEric Joyner
17271d10453SEric Joyner4. Unload all of the PFs on the device.
17371d10453SEric Joyner
17471d10453SEric Joyner5. Reload the driver with the new package.
17571d10453SEric Joyner
17671d10453SEric JoynerNOTE: The presence of a device-specific DDP package file overrides the loading
177*c185d44fSEric Joynerof the default DDP package file.
17871d10453SEric Joyner
17971d10453SEric Joyner
18071d10453SEric JoynerLegal / Disclaimers
18171d10453SEric Joyner===================
18271d10453SEric JoynerCopyright (c) 2019 - 2020, Intel Corporation.
18371d10453SEric Joyner
18471d10453SEric JoynerIntel and the Intel logo are trademarks of Intel Corporation or its
18571d10453SEric Joynersubsidiaries in the U.S. and/or other countries.
18671d10453SEric Joyner
18771d10453SEric Joyner*Other names and brands may be claimed as the property of others.
18871d10453SEric Joyner
18971d10453SEric JoynerThis software and the related documents are Intel copyrighted materials, and
19071d10453SEric Joyneryour use of them is governed by the express license under which they were
19171d10453SEric Joynerprovided to you ("License"). Unless the License provides otherwise, you may not
19271d10453SEric Joyneruse, modify, copy, publish, distribute, disclose or transmit this software or
19371d10453SEric Joynerthe related documents without Intel's prior written permission.
19471d10453SEric JoynerThis software and the related documents are provided as is, with no express or
19571d10453SEric Joynerimplied warranties, other than those that are expressly stated in the License.
196