git: a9d78bb714e3 - stable/14 - ice_ddp: Update to 1.3.41.0
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
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>