git: a9d78bb714e3 - stable/14 - ice_ddp: Update to 1.3.41.0

From: Eric Joyner <erj_at_FreeBSD.org>
Date: Wed, 30 Oct 2024 20:57:24 UTC
The branch stable/14 has been updated by erj:

URL: https://cgit.FreeBSD.org/src/commit/?id=a9d78bb714e37f950ad0ce1e82e8b456bb72325a

commit a9d78bb714e37f950ad0ce1e82e8b456bb72325a
Author:     Eric Joyner <erj@FreeBSD.org>
AuthorDate: 2024-10-28 22:48:47 +0000
Commit:     Eric Joyner <erj@FreeBSD.org>
CommitDate: 2024-10-30 20:51:47 +0000

    ice_ddp: Update to 1.3.41.0
    
    Primarily adds support for E830 devices, unlocking all of their
    functionality.
    
    As well, update the README and remove the non-FreeBSD sections
    from it.
    
    Signed-off-by: Eric Joyner <erj@FreeBSD.org>
    
    Sponsored by:   Intel Corporation
    
    (cherry picked from commit f9a039060e834e89e0b2de1e8a442d78bd5c083d)
---
 sys/conf/files.amd64                               |   6 +-
 sys/conf/files.arm64                               |   6 +-
 sys/conf/files.powerpc                             |   6 +-
 sys/contrib/dev/ice/README                         | 330 ++++++++-------------
 .../dev/ice/{ice-1.3.36.0.pkg => ice-1.3.41.0.pkg} | Bin 692776 -> 1352580 bytes
 sys/modules/ice_ddp/Makefile                       |   2 +-
 6 files changed, 133 insertions(+), 217 deletions(-)

diff --git a/sys/conf/files.amd64 b/sys/conf/files.amd64
index 58946eb3c663..80ebc2ab6768 100644
--- a/sys/conf/files.amd64
+++ b/sys/conf/files.amd64
@@ -193,7 +193,7 @@ dev/ice/irdma_di_if.m		optional	ice pci \
 dev/ice/ice_ddp_common.c	optional	ice pci \
 	compile-with "${NORMAL_C} -I$S/dev/ice"
 ice_ddp.c			optional ice_ddp	\
-	compile-with	"${AWK} -f $S/tools/fw_stub.awk ice_ddp.fw:ice_ddp:0x01032400 -mice_ddp -c${.TARGET}"	\
+	compile-with	"${AWK} -f $S/tools/fw_stub.awk ice_ddp.fw:ice_ddp:0x01032900 -mice_ddp -c${.TARGET}"	\
 	no-ctfconvert no-implicit-rule before-depend local	\
 	clean		"ice_ddp.c"
 ice_ddp.fwo			optional ice_ddp	\
@@ -202,8 +202,8 @@ ice_ddp.fwo			optional ice_ddp	\
 	no-implicit-rule				\
 	clean		"ice_ddp.fwo"
 ice_ddp.fw			optional ice_ddp	\
-	dependency	"$S/contrib/dev/ice/ice-1.3.36.0.pkg" \
-	compile-with	"${CP} $S/contrib/dev/ice/ice-1.3.36.0.pkg ice_ddp.fw" \
+	dependency	"$S/contrib/dev/ice/ice-1.3.41.0.pkg" \
+	compile-with	"${CP} $S/contrib/dev/ice/ice-1.3.41.0.pkg ice_ddp.fw" \
 	no-obj no-implicit-rule				\
 	clean		"ice_ddp.fw"
 dev/ioat/ioat.c			optional	ioat pci
diff --git a/sys/conf/files.arm64 b/sys/conf/files.arm64
index 0fefcca97c6c..563a8e93c3ad 100644
--- a/sys/conf/files.arm64
+++ b/sys/conf/files.arm64
@@ -322,7 +322,7 @@ dev/ice/irdma_di_if.m				optional ice pci \
 dev/ice/ice_ddp_common.c			optional ice pci \
 	compile-with "${NORMAL_C} -I$S/dev/ice"
 ice_ddp.c					optional ice_ddp	\
-	compile-with	"${AWK} -f $S/tools/fw_stub.awk ice_ddp.fw:ice_ddp:0x01032400 -mice_ddp -c${.TARGET}"	\
+	compile-with	"${AWK} -f $S/tools/fw_stub.awk ice_ddp.fw:ice_ddp:0x01032900 -mice_ddp -c${.TARGET}"	\
 	no-ctfconvert no-implicit-rule before-depend local	\
 	clean		"ice_ddp.c"
 ice_ddp.fwo					optional ice_ddp	\
@@ -331,8 +331,8 @@ ice_ddp.fwo					optional ice_ddp	\
 	no-implicit-rule				\
 	clean		"ice_ddp.fwo"
 ice_ddp.fw					optional ice_ddp	\
-	dependency	"$S/contrib/dev/ice/ice-1.3.36.0.pkg" \
-	compile-with	"${CP} $S/contrib/dev/ice/ice-1.3.36.0.pkg ice_ddp.fw" \
+	dependency	"$S/contrib/dev/ice/ice-1.3.41.0.pkg" \
+	compile-with	"${CP} $S/contrib/dev/ice/ice-1.3.41.0.pkg ice_ddp.fw" \
 	no-obj no-implicit-rule				\
 	clean		"ice_ddp.fw"
 
diff --git a/sys/conf/files.powerpc b/sys/conf/files.powerpc
index 1a0388884ee8..6d44d9114e25 100644
--- a/sys/conf/files.powerpc
+++ b/sys/conf/files.powerpc
@@ -95,7 +95,7 @@ dev/ice/irdma_di_if.m		optional	ice pci powerpc64 | ice pci powerpc64le \
 dev/ice/ice_ddp_common.c	optional	ice pci powerpc64 | ice pci powerpc64le \
 	compile-with "${NORMAL_C} -I$S/dev/ice"
 ice_ddp.c			optional	ice_ddp powerpc64 | ice pci powerpc64le \
-	compile-with	"${AWK} -f $S/tools/fw_stub.awk ice_ddp.fw:ice_ddp:0x01032400 -mice_ddp -c${.TARGET}"	\
+	compile-with	"${AWK} -f $S/tools/fw_stub.awk ice_ddp.fw:ice_ddp:0x01032900 -mice_ddp -c${.TARGET}"	\
 	no-ctfconvert no-implicit-rule before-depend local  \
 	clean		"ice_ddp.c"
 ice_ddp.fwo			optional	ice_ddp powerpc64 | ice pci powerpc64le \
@@ -104,8 +104,8 @@ ice_ddp.fwo			optional	ice_ddp powerpc64 | ice pci powerpc64le \
 	no-implicit-rule				\
 	clean		"ice_ddp.fwo"
 ice_ddp.fw			optional	ice_ddp powerpc64 | ice pci powerpc64le \
-	dependency	"$S/contrib/dev/ice/ice-1.3.36.0.pkg" \
-	compile-with	"${CP} $S/contrib/dev/ice/ice-1.3.36.0.pkg ice_ddp.fw" \
+	dependency	"$S/contrib/dev/ice/ice-1.3.41.0.pkg" \
+	compile-with	"${CP} $S/contrib/dev/ice/ice-1.3.41.0.pkg ice_ddp.fw" \
 	no-obj no-implicit-rule				\
 	clean		"ice_ddp.fw"
 dev/ixl/if_ixl.c		optional	ixl pci powerpc64 \
diff --git a/sys/contrib/dev/ice/README b/sys/contrib/dev/ice/README
index e2ce84d72e71..c0840ecb499f 100644
--- a/sys/contrib/dev/ice/README
+++ b/sys/contrib/dev/ice/README
@@ -1,285 +1,201 @@
 OS Default Dynamic Device Personalization (DDP) Package
-======================================================================
-May 12, 2022
+*******************************************************
 
+August 09, 2024
 
-Contents
-========
-- Overview
-- Supported Operating Systems
-- Safe Mode
-- Notes
-- Installation
-- Troubleshooting
-- Legal
 
+Contents
+^^^^^^^^
 
-Overview
-========
-Devices based on the Intel(R) Ethernet 800 Series require a Dynamic Device
-Personalization (DDP) package file to enable advanced features (such as dynamic
-tunneling, Intel(R) Ethernet Flow Director, RSS, and ADQ).
-
-DDP allows you to change the packet processing pipeline of a device by applying
-a profile package to the device at runtime. Profiles can be used to, for
-example, add support for new protocols, change existing protocols, or change
-default settings. DDP profiles can also be rolled back without rebooting the
-system.
-
-The DDP package loads during device initialization or driver runtime, depending
-on the operating system. The driver checks to see if the DDP package is present
-and compatible. If this file exists, the driver will load it into the device.
-If the DDP package file is missing or incompatible with the driver, the driver
-will go into Safe Mode where it will use the configuration contained in the
-device's NVM. Refer to the Intel(R) Ethernet Adapters and Devices User Guide
-for more information on Safe Mode.
-
-A general-purpose, default DDP package is automatically installed with all
-supported Intel Ethernet 800 Series drivers on supported operating systems.
-Additional DDP packages are available to address needs for specific market
-segments or targeted solutions.
-
-The default DDP package supports the following:
-- MAC
-- EtherType
-- VLAN
-- IPv4
-- IPv6
-- TCP
-- ARP
-- UDP
-- SCTP
-- ICMP
-- ICMPv6
-- CTRL
-- LLDP
-- VXLAN-GPE
-- VXLAN (non-GPE)
-- Geneve
-- GRE
-- NVGRE
-- RoCEv2
-- MPLS (up to 5 consecutive MPLS labels in the outermost Layer 2 header group)
+* OS Default Dynamic Device Personalization (DDP) Package
 
+  * Overview
 
-Supported Operating Systems
-===========================
-This DDP package is supported on the following operating systems:
-- Microsoft* Windows Server*
-- Linux*
-- FreeBSD*
-- VMware* ESXi*
+  * Supported Operating Systems
 
-Refer to the Intel(R) Ethernet Adapters and Devices User Guide for currently
-supported versions of these operating systems.
+  * Contents of This Package
 
+  * Related Documentation
 
-Safe Mode
-=========
-Safe Mode disables advanced and performance features, and supports only basic
-traffic and minimal functionality, such as updating the NVM or downloading a
-new driver or DDP package.
+  * Notes
 
-Refer to the Intel(R) Ethernet Adapters and Devices User Guide for more details
-on DDP and Safe Mode.
+  * Installation
 
+  * Troubleshooting
 
-Notes
-=====
-- In Linux, FreeBSD, and Windows, you cannot update the DDP package if any PF
-drivers are already loaded. To overwrite a package, unload all PFs and then
-reload the driver with the new package.
+  * Legal / Disclaimers
 
-- In ESXi, use esxcli to load and unload DDP packages for specific market
-segments during driver runtime.
- 
-- In FreeBSD and Windows, you can only use one DDP package per driver, even if
-you have more than one device installed that uses the driver.
 
-- In Linux, FreeBSD, and Windows, only the first loaded PF per device can
-download a package for that device. In ESXi, you can load different DDP
-packages for different PFs associated with a device.
+Overview
+========
 
-- If you are using DPDK, see the DPDK documentation at https://www.dpdk.org/
-for installation instructions and more information.
+Devices based on the Intel(R) Ethernet 800 Series require a Dynamic
+Device Personalization (DDP) package file to enable advanced features
+(such as dynamic tunneling, Intel(R) Ethernet Flow Director, RSS, and
+ADQ).
 
+DDP allows you to change the packet processing pipeline of a device by
+applying a profile package to the device at runtime. Profiles can be
+used to, for example, add support for new protocols, change existing
+protocols, or change default settings. DDP profiles can also be rolled
+back without rebooting the system.
 
-Installation
-============
+The DDP package loads during device initialization or driver runtime,
+depending on the operating system. The driver checks to see if the DDP
+package is present and compatible. If this file exists, the driver
+will load it into the device. If the DDP package file is missing or
+incompatible with the driver, the driver will go into Safe Mode where
+it will use the configuration contained in the device's NVM.
 
-Microsoft Windows
------------------
-TO INSTALL THE OS DEFAULT DDP PACKAGE:
+Safe Mode disables advanced and performance features, and supports
+only basic traffic and minimal functionality, such as updating the NVM
+or downloading a new driver or DDP package.
 
-The default DDP package is installed as part of the driver binary. You don't
-need to take additional steps to install the DDP package file.
+Refer to the Intel(R) Ethernet Adapters and Devices User Guide for
+more details on DDP and Safe Mode.
 
+A general-purpose, default DDP package is automatically installed with
+all supported Intel Ethernet 800 Series drivers on supported operating
+systems. Additional DDP packages are available to address needs for
+specific market segments or targeted solutions.
 
-FreeBSD
--------
-TO INSTALL THE OS DEFAULT DDP PACKAGE:
-
-The FreeBSD driver automatically installs the default DDP package file during
-driver installation. See the base driver README for general installation and
-building instructions.
-
-The DDP package loads during device initialization. The driver looks for the
-ice_ddp module and checks that it contains a valid DDP package file.
+The default DDP package supports the following:
 
-NOTE: It's important to do 'make install' during initial ice driver
-installation so that the driver loads the DDP package automatically.
+* MAC
 
+* EtherType
 
-Linux
------
-TO INSTALL THE OS DEFAULT DDP PACKAGE:
+* VLAN
 
-The Linux driver automatically installs the default DDP package file during
-driver installation. Read the base driver README for general installation and
-building instructions.
+* IPv4
 
-The DDP package loads during device initialization. The driver looks for
-intel/ice/ddp/ice.pkg in your firmware root (typically /lib/firmware/ or
-/lib/firmware/updates/) and checks that it contains a valid DDP package file.
-The ice.pkg file is a symbolic link to the default DDP package file installed
-by the linux-firmware software package or the out-of-tree driver installation.
+* IPv6
 
+* TCP
 
-TO INSTALL A DDP PACKAGE FOR SPECIFIC MARKET SEGMENTS:
+* ARP
 
-You can install specific DDP package files for different physical devices in
-the same system. To install a specific DDP package:
+* UDP
 
-1. Download the DDP package file (ice-x.x.x.x.zip) you want for your device. In
-addition to licensing information and this README, this zip file contains the
-following files:
-    ice-x.x.x.x.pkg
-    ice.pkg
+* SCTP
 
-NOTE: The ice.pkg file is a Linux symbolic link file pointing to
-ice-x.x.x.x.pkg (in the same path).
+* ICMP
 
-2. Rename the ice-x.x.x.x.pkg file as ice-xxxxxxxxxxxxxxxx.pkg, where
-'xxxxxxxxxxxxxxxx' is the unique 64-bit PCI Express device serial number (in
-hex) of the device you want the package downloaded on. The filename must
-include the complete serial number (including leading zeros) and be all
-lowercase. For example, if the 64-bit serial number is b887a3ffffca0568, then
-the file name would be ice-b887a3ffffca0568.pkg.
+* ICMPv6
 
-To find the serial number from the PCI bus address, you can use the following
-command:
+* CTRL
 
-# lspci -vv -s af:00.0 | grep -i Serial
-Capabilities: [150 v1] Device Serial Number b8-87-a3-ff-ff-ca-05-68
+* LLDP
 
-You can use the following command to format the serial number without the
-dashes:
+* VXLAN-GPE
 
-# lspci -vv -s af:00.0 | grep -i Serial | awk '{print $7}' | sed s/-//g
-b887a3ffffca0568
+* VXLAN (non-GPE)
 
-3. Copy the renamed DDP package file to /lib/firmware/updates/intel/ice/ddp/.
-If the directory does not yet exist, create it before copying the file.
+* Geneve
 
-4. Unload all of the PFs on the device.
+* GRE
 
-5. Reload the driver with the new package.
+* NVGRE
 
-NOTE: The presence of a device-specific DDP package file overrides the loading
-of the default DDP package file.
+* RoCEv2
 
+* MPLS (up to 5 consecutive MPLS labels in the outermost Layer 2
+  header group)
 
-ESX
----
-TO INSTALL THE OS DEFAULT DDP PACKAGE:
 
-The default DDP package is installed as part of the driver binary. You don't
-need to take additional steps to install the DDP package file.
+Supported Operating Systems
+===========================
 
-TO INSTALL A DDP PACKAGE FOR SPECIFIC MARKET SEGMENTS:
+This DDP package is supported on the following operating systems:
 
-You must first install the Intel(R) ESXCLI Plug-In for Managing Intel(R)
-Ethernet Network Adapters to be able to install and load market-specific DDP
-packages. Download it from:
-https://www.intel.com/content/www/us/en/download/19380/intel-esxcli-plug-in-for-
-managing-intel-ethernet-network-adapters.html
+* Microsoft* Windows Server*
 
-NOTE: ESXi support for DDP packages for specific market segments requires the
-following:
-- OS: ESXi 6.7 or higher
-- Driver: icen 1.9.1.x or higher
-- Tool: intnet 1.8.3.x or higher
+* Linux*
 
-To install and load this DDP package:
+* FreeBSD*
 
-1. Download and install the esxcli plug-in from the URL above.
+* VMware* ESXi*
 
-2. Download the DDP package.
+Refer to the Intel(R) Ethernet Adapters and Devices User Guide for
+currently supported versions of these operating systems.
 
-3. Copy the DDP package file to the following location: /store/intel/icen/ddp/.
-   If the directory does not yet exist, create it before copying the file.
 
-4. From the command prompt, run the following command to load the DDP package:
+Related Documentation
+=====================
 
-   # esxcli intnet ddp load -n <vmnicX> -p <ddp_file_name> -f
+See the "Intel(R) Ethernet Adapters and Devices User Guide" for
+additional information on features:
 
-   Where:
-    <vmnicX> = the name of the NIC
-    <ddp_file_name> = the name of the DDP package to load
-    -f = forces the package to load
+* https://cdrdv2.intel.com/v1/dl/getContent/705831/
 
-    NOTE: This operation will cause the driver to reset.
+Additionally, a detailed technology guide is available for this DDP
+package:
 
-5. Wait for the load result status.
+* https://cdrdv2.intel.com/v1/dl/getContent/617015
 
 
-To list all active DDP packages for all virtual NICs, run the following:
+Notes
+=====
 
-# esxcli intnet ddp list
+* In Linux, FreeBSD, and Windows, you cannot update the DDP package if
+  any PF drivers are already loaded. To overwrite a package, unload
+  all PFs and then reload the driver with the new package.
 
-To unload (roll back) a DDP package, run the following:
+* In FreeBSD and Windows, you can only use one DDP package per driver,
+  even if you have more than one device installed that uses the
+  driver.
 
-# esxcli intnet ddp rollback -n <vmnicX> -f
+* In Linux, FreeBSD, and Windows, only the first loaded PF per device
+  can download a package for that device. In ESXi, you can load
+  different DDP packages for different PFs associated with a device.
 
-NOTE: This operation will cause the driver to reset.
+* If you are using DPDK, see the DPDK documentation at
+  https://www.dpdk.org/ for installation instructions and more
+  information.
 
 
 Troubleshooting
 ===============
 
-Microsoft Windows
------------------
-If you encounter issues with the DDP package file, download the latest driver.
 
 FreeBSD
 -------
-If you encounter issues with the DDP package file, you may need to download an
-updated driver or ice_ddp module. See the log messages for more information.
 
-Linux
------
-If you encounter issues with the DDP package file, you may need to download an
-updated driver or DDP package file. Refer to the log messages for more
-information.
-
-ESX
----
-If you encounter issues with the DDP package file, download the latest driver.
+If you encounter issues with the DDP package file, you may need to
+download an updated driver or ice_ddp module. See the log messages for
+more information.
 
 
 Legal / Disclaimers
 ===================
-Copyright (c) 2019 - 2022, Intel Corporation.
 
-Intel and the Intel logo are trademarks of Intel Corporation or its
-subsidiaries in the U.S. and/or other countries.
+Copyright (c) 2019 - 2024, Intel Corporation.
+
+Intel technologies may require enabled hardware, software or service
+activation.
+
+No product or component can be absolutely secure.
+
+Your costs and results may vary.
+
+Intel, the Intel logo, and other Intel marks are trademarks of Intel
+Corporation or its subsidiaries.  Other names and brands may be
+claimed as the property of others.
+
+Performance varies by use, configuration, and other factors. Learn
+more at https://www.Intel.com/PerformanceIndex.
+
+The products described may contain design defects or errors known as
+errata which may cause the product to deviate from published
+specifications. Current characterized errata are available on request.
 
-*Other names and brands may be claimed as the property of others.
+This software and the related documents are Intel copyrighted
+materials, and your use of them is governed by the express license
+under which they were provided to you ("License"). Unless the License
+provides otherwise, you may not use, modify, copy, publish,
+distribute, disclose or transmit this software or the related
+documents without Intel's prior written permission.
 
-This software and the related documents are Intel copyrighted materials, and
-your use of them is governed by the express license under which they were
-provided to you ("License"). Unless the License provides otherwise, you may not
-use, modify, copy, publish, distribute, disclose or transmit this software or
-the related documents without Intel's prior written permission.
-This software and the related documents are provided as is, with no express or
-implied warranties, other than those that are expressly stated in the License.
+This software and the related documents are provided as is, with no
+express or implied warranties, other than those that are expressly
+stated in the License.
diff --git a/sys/contrib/dev/ice/ice-1.3.36.0.pkg b/sys/contrib/dev/ice/ice-1.3.41.0.pkg
similarity index 50%
rename from sys/contrib/dev/ice/ice-1.3.36.0.pkg
rename to sys/contrib/dev/ice/ice-1.3.41.0.pkg
index ce5dbf41f557..71e75a5d7836 100644
Binary files a/sys/contrib/dev/ice/ice-1.3.36.0.pkg and b/sys/contrib/dev/ice/ice-1.3.41.0.pkg differ
diff --git a/sys/modules/ice_ddp/Makefile b/sys/modules/ice_ddp/Makefile
index e0ef344a8283..cb5653911d5c 100644
--- a/sys/modules/ice_ddp/Makefile
+++ b/sys/modules/ice_ddp/Makefile
@@ -2,6 +2,6 @@
 .PATH: ${SRCTOP}/sys/contrib/dev/ice
 
 KMOD=	ice_ddp
-FIRMWS=	ice-1.3.36.0.pkg:ice_ddp:0x01032400
+FIRMWS=	ice-1.3.41.0.pkg:ice_ddp:0x01032900
 
 .include <bsd.kmod.mk>