aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/ice
Commit message (Collapse)AuthorAgeFilesLines
* ice(4): Handle allmulti flag in ice_if_promisc_set functionYogesh Bhosale2026-02-091-5/+20
| | | | | | | | | | | | | | In the ice_if_promisc_set function, the driver currently disables the IFF_ALLMULTI flag, thereby preventing the activation of multicast mode. To address this issue, implement appropriate handling to ensure the flag is managed correctly. Signed-off-by: Yogesh Bhosale <yogesh.bhosale@intel.com> Tested by: Gowthamkumar K S <gowtham.kumar.ks@intel.com> Differential Revision: https://reviews.freebsd.org/D54186 (cherry picked from commit 98bdf63f6e94be42a1787de73608de15bcb3419a)
* ice(4): Fix a typo in a source code commentGordon Bergling2025-08-281-1/+1
| | | | | | - s/firwmare/firmware/ (cherry picked from commit 62db40b5644726ca61e84aa56fff2fbaf30b05ca)
* MFC: ice: unbreak build with update to 1.42.5-kEric Joyner2025-07-2610-109/+126
| | | | | | | | | | | | | | | | | | | | | | - Removes duplicate E825C printout - Fixes a package download issue with E830 - Updates mentions of E830-XXV to E830-L - Fix FW logging on load issue by limiting the setting of FW log masks and other global configuration to just the first PF of the controller - Update ice_hw_autogen.h with timesync registers (unused in this driver) - Fix possible overflow condition in NVM access function - Blocks RDMA load on E830 devices Signed-off-by: Eric Joyner <erj@FreeBSD.org> Tested by: Jeffrey Pieper <jeffrey.e.pieper@intel.com> Relnotes: yes Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D46950 (cherry picked from commit 440addc642496f8d04fe17af9eb905ac4a5bdbd8) (cherry picked from commit 5f92347a9bc8f372eef46555e2ba3de65259f97d)
* ice: Update to 1.42.1-kEric Joyner2025-07-2440-2156/+5678
| | | | | | | | | | | | | | | | | | | | | Summary: - Adds E830 device support - Adds pre-release E825C support (for the Ethernet device included in an upcoming Xeon D platform) - Add sysctl for E810 devices to print out PHY debug statistics (mostly for FEC debugging) - Adds per-TX-queue tso counter sysctl to count how many times a TSO offload was requested for a packet, matching other Intel drivers - Various bug fixes Signed-off-by: Eric Joyner <erj@FreeBSD.org> Tested by: Jeffrey Pieper <jeffrey.e.pieper@intel.com> Relnotes: yes Sponsored by: Intel Corporation Differential Revisison: https://reviews.freebsd.org/D46949 (cherry picked from commit f2635e844dd138ac9dfba676f27d41750049af26)
* ice(4): properly use kernel option RSSBrian Poole2024-11-132-8/+11
| | | | | | | | | | | | | | | | | | | | | Header ice_rss.h uses the kernel RSS interface if option RSS is defined. However when ice_rss.h is included by ice_lib.h there is no prior inclusion of ice_opts.h to set RSS causing ifdef RSS to always fail. Add ice_opts.h to the top of ice_lib.h (like ice_iflib.h) so RSS can be defined when ice_rss.h is parsed. With that in place, compilation fails due to a missing defintion of ICE_DEFAULT_RSS_HASH_CONFIG. It is defined in ice_rss.h only when RSS is not defined. Since this define is not part of the kernel RSS interface but ice-specific, it should always be defined. Move its definition outside of ifdef RSS. PR: 255309 Reviewed by: mhorne, erj (earlier version) MFC after: 3 days Pull Request: https://github.com/freebsd/freebsd-src/pull/1460 (cherry picked from commit 6e5650896fe47398e49e3d81af60cc60dbb09e6e)
* ice(4): Stop checking for failures from malloc(M_WAITOK)Zhenlei Huang2024-09-303-33/+6
| | | | | | | | | | | As a consequence now ice_alloc_vsi_qmap() does not fail. Remove unneeded error checks. MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D45852 (cherry picked from commit 5f97656fa334b494d70866cb1bfff406d3efd92d) (cherry picked from commit bb8c6f43256d234d492c267d74526fc62102b23d)
* ice(4): Update to 1.39.13-kEric Joyner2024-07-3127-782/+2133
| | | | | | | | | | | | | | - Adds mirror interface functionality - Remove unused virtchnl headers Signed-off-by: Eric Joyner <erj@FreeBSD.org> MFC-with: 768329961dc0c041f7647f1c4549944a2ca168aa Sponsored by: Intel Corporation Tested by: jeffrey.e.pieper@intel.com Differential Revision: https://reviews.freebsd.org/D44004 (cherry picked from commit 9e54973fc33aa44b77d1c851cb36fcd82dc44cda)
* ice(4): Update copyright year to 2024Eric Joyner2024-07-3158-58/+58
| | | | | | | | | Signed-off-by: Eric Joyner <erj@FreeBSD.org> Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D44003 (cherry picked from commit 015f8cc5b0c10336a048f37a7071ea03516de242)
* ice(4): Update to 1.38.16-kEric Joyner2024-07-3131-749/+1360
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | New features - Add sysctl "link_active_on_if_down" (defaults to 1 to match previous behavior): set this to 0 to have the driver bring the physical link down when the interface is brought administratively down - Add sysctl "temp" to read chip temperature on E810 devices; this requires a 4.30 or newer NVM (see package sysutils/intel-nvmupdate-100g) Bug fixes and general changes - (linked to irdma) properly propagate PF reset request from irdma driver - (linked to irdma) properly notify irdma of an impending PF reset - (linked to irdma) move Protocol Engine error handling to irdma - Print log message when using a DDP that doesn't support the "TX balancing" mode - Block LLDP agent configuration when DSCP QoS mode is enabled - Fix kernel panic when updating NVM when adapter is in the "TX balancing" mode - Remove ice_sbq_cmd.h since it's unused - Fix LLDP RX filter to still allow LLDP frames to be received by SW after a PF reset in SW LLDP mode - Add ice_if_needs_restart handler in order to fix a bad VLAN and link down interaction - Issue PF reset during unload - nvmupdate process fixes - Use pci_msix_table_bar() to get MSI-X bar index at runtime instead of hardcoding it Signed-off-by: Eric Joyner <erj@FreeBSD.org> Reviewed by: anzhu@netapp.com Sponsored by: Intel Corporation, NetApp Differential Revision: https://reviews.freebsd.org/D41655 (cherry picked from commit 9c30461dd25bac49045acbeac10e00b6cc13d2bc)
* iflib drivers: Constify PCI ID LUTsMarius Strobl2024-01-051-1/+1
| | | | | | | | | | | | | | Since d49e83eac3baf16a22b1c5d42e8438b68b17e6f9, iflib(9) is ready for this change. While at it, make isc_driver_version strings (static) const where not apparently un-const on purpose, too. This reduces the size of the amd64 GENERIC by about 10 KiB. (cherry picked from commit 51e235148a4becba94e824a44bd69687644a7f56) Conflicts (drivers missing in stable/13): sys/dev/enetc/if_enetc.c sys/dev/enic/if_enic.c
* ice(4): Match irdma interface changesBartosz Sobczak2023-09-224-18/+69
| | | | | | | | | (This is a direct commit to stable/13) Signed-off-by: Bartosz Sobczak <bartosz.sobczak@intel.com> Signed-off-by: Eric Joyner <erj@FreeBSD.org> Sponsored by: Intel Corporation
* ice: Don't restart on VLAN changesKevin Bowling2023-09-111-0/+20
| | | | | | | | | | | | In rS360398, a new iflib device method was added with default of opt out for VLAN events needing an interface reset. This re-init is unnecessary for ice(4). Sponsored by: BBOX.io Differential Revision: https://reviews.freebsd.org/D41558 (cherry picked from commit 14a14e36aee2e6b848c239ac29090ad4cb66fbf7)
* sys: Remove $FreeBSD$: one-line sh patternWarner Losh2023-08-232-2/+0
| | | | | | | Remove /^\s*#[#!]?\s*\$FreeBSD\$.*$\n/ Similar commit in current: (cherry picked from commit 031beb4e239b)
* sys: Remove $FreeBSD$: one-line .c comment patternWarner Losh2023-08-2358-58/+0
| | | | | | | Remove /^/[*/]\s*\$FreeBSD\$.*\n/ Similar commit in current: (cherry picked from commit 71625ec9ad2a)
* ice(4): Update to 1.37.11-kEric Joyner2023-06-0260-344/+741
| | | | | | | | | | | | | | | This driver update has no corresponding ice_ddp update, and doesn't contain very many functional changes: - Some refactoring for future SR-IOV PF support - Various minor fixes Signed-off-by: Eric Joyner <erj@FreeBSD.org> Tested by: jeffrey.e.pieper@intel.com Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D39821 (cherry picked from commit 9dc2f6e26fc24b88f9046667708a5555c63fb461)
* ice(4): Use the existing CTLFLAG_RWTUN flag definitionZhenlei Huang2023-04-171-1/+1
| | | | | | | | | | | | Use it when possible, instead of separated flags. No functional change intended. Reviewed by: hselasky, erj MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D39466 (cherry picked from commit 5ff8018108278d06e024676c539e9f60f8189e83)
* ice(4): Update to 1.37.7-kPiotr Kubaj2023-02-1760-3654/+5805
| | | | | | | | | | | | | | | | | | | | | | | | | | | Notable changes include: - DSCP QoS Support (leveraging support added in rG9c950139051298831ce19d01ea5fb33ec6ea7f89) - Improved PFC handling and TC queue assignments (now all remaining queues are assigned to TC 0 when more than one TC is enabled and the number of available queues does not evenly divide between them) - Support for dumping the internal FW state for additional debugging by Intel support - Support for allowing "No FEC" to be a valid state for the LESM to negotiate when using non-standard compliant modules Also includes various bug fixes and smaller enhancements, too. Signed-off-by: Eric Joyner <erj@FreeBSD.org> Reviewed by: erj@ Tested by: Jeff Pieper <jeffrey.pieper@intel.com> MFC after: 3 days Relnotes: yes Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D38109 (cherry picked from commit 8923de59054358980102ea5acda6c6dd58273957)
* ice: Fix a typo in a source code commentGordon Bergling2023-01-141-1/+1
| | | | | | - s/reqest/requests/ (cherry picked from commit b6f9c6aadc686cf5a890afe16e26a0082fa25c87)
* ice(4): Add RDMA Client InterfaceEric Joyner2022-10-1818-8/+2019
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows the "irdma" driver to communicate with the ice(4) driver to allow it access to the underlying device's hardware resources as well as synchronize access to shared resources. This interface already existed in the standalone out-of-tree 1.34.2 driver; this commit adds and enables it in the in-kernel driver. Note: Adds hack to module Makefile to compile interface/.m files These are required for the RDMA client interface, but they don't build as-is like the normal .c files. The source directory doesn't seem to be included by default, so add lines that specifically add them as libraries so that ice_rdma.h can be found and the interface files will compile. Signed-off-by: Eric Joyner <erj@FreeBSD.org> Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D30889 (cherry picked from commit 8a13362d49bf07dfc654e25976d057adbe0ac9c1) (cherry picked from commit d8cce8145c39812cc31b50070c44d66ca21a5127)
* ice: Remove a double word in a source code commentGordon Bergling2022-04-141-1/+1
| | | | | | - s/is is/is/ (cherry picked from commit 8ece7189e0ad5aed326d5ece289a81d31a700abe)
* ice(4): Update to 1.34.2-kEric Joyner2022-03-0839-1424/+5067
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Adds FW logging support - Once enabled, this lets the firmware print event and error messages to the log, increasing the visibility into what the hardware is doing; this is useful for debugging - General bug fixes - Adds inital DCB support to the driver - Notably, this adds support for DCBX to the driver; now with the fw_lldp sysctl set to 1, the driver and adapter will adopt a DCBX configuration sent from a link partner - Adds statistcs sysctls for priority flow control frames - Adds new configuration sysctls for DCB-related features: (VLAN) user priority to TC mapping; ETS bandwidth allocation; priority flow control - Remove unused SR-IOV files (until support gets added) Signed-off-by: Eric Joyner <erj@FreeBSD.org> Tested by: jeffrey.e.pieper@intel.com MFC after: 3 days MFC with: 213e91399b, e438f0a975 Relnotes: yes Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D34024 (cherry picked from commit 56429daea255fa719169bb23ded66f8edb6f5408) (cherry picked from commit 61d83041ab111fe491409f2eca2b528108b9ec29)
* ice(4): Update to version 0.29.4-kEric Joyner2022-03-0729-874/+2865
| | | | | | | | | | | | | | | | | | Includes various feature improvements and bug fixes. Notable changes include: - Firmware logging support - Link management flow changes - New sysctl to report aggregated error counts - Health Status Event reporting from firmware (Use the new read-only tunables hw.ice.enable_health_events / dev.ice.#.enable_health_events to turn this off) Signed-off-by: Eric Joyner <erj@FreeBSD.org> Sponsored by: Intel Corporation (cherry picked from commit 9cf1841c4aaf8fbab06132ab9f76094f34ad7c7b)
* net: iflib: fix vlan processing in the driversVincenzo Maffione2022-01-271-8/+5
| | | | | | | | | | | | | | | | The logic that sets iri_vtag and M_VLANTAG does not handle the case where the 802.11q VLAN tag is 0. Fix this issue across the iflib drivers. While there, also improve and align the VLAN tag check extraction, by moving it outside the RX descriptor loop, eliminating a local variable and additional checks. PR: 260068 Reviewed by: kbowling, gallatin Reported by: erj MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D33156 (cherry picked from commit f7926a6d0c1029c8da265769e7c57b4065faa2df)
* net: iflib: let the drivers use isc_capenableVincenzo Maffione2022-01-271-1/+2
| | | | | | | | | | | | | | | Since isc_capenable (private copy of ifp->if_capenable) is now synchronized to if_capenable, use it in the drivers when checking the IFCAP_* bits. This results in better cache usage and avoids indirection through the ifp pointer. PR: 260068 Reviewed by: kbowling, gallatin MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D33156 (cherry picked from commit 52f45d8acee95199159b65a33c94142492c38e41)
* ice(4): Update to version 0.28.1-kEric Joyner2021-03-0951-716/+2876
| | | | | | | | | | | | | | | | | | This updates the driver to align with the version included in the "Intel Ethernet Adapter Complete Driver Pack", version 25.6. There are no major functional changes; this mostly contains bug fixes and changes to prepare for new features. This version of the driver uses the previously committed ice_ddp package 1.3.19.0. Signed-off-by: Eric Joyner <erj@FreeBSD.org> Tested by: jeffrey.e.pieper@intel.com Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D28640 (cherry picked from commit d08b8680e12ad692736c84238dcf45c70c228914)
* iflib: ensure that tx interrupts enabled and cleanupsMatt Macy2021-01-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Doing a 'dd' over iscsi will reliably cause stalls. Tx cleaning _should_ reliably happen as data is sent. However, currently if the transmit queue fills it will wait until the iflib timer (hz/2) runs. This change causes the the tx taskq thread to be run if there are completed descriptors. While here: - make timer interrupt delay a sysctl - simplify txd_db_check handling - comment on INTR types Background on the change: Initially doorbell updates were minimized by only writing to the register on every fourth packet. If txq_drain would return without writing to the doorbell it scheduled a callout on the next tick to do the doorbell write to ensure that the write otherwise happened "soon". At that time a sysctl was added for users to avoid the potential added latency by simply writing to the doorbell register on every packet. This worked perfectly well for e1000 and ixgbe ... and appeared to work well on ixl. However, as it turned out there was a race to this approach that would lockup the ixl MAC. It was possible for a lower producer index to be written after a higher one. On e1000 and ixgbe this was harmless - on ixl it was fatal. My initial response was to add a lock around doorbell writes - fixing the problem but adding an unacceptable amount of lock contention. The next iteration was to use transmit interrupts to drive delayed doorbell writes. If there were no packets in the queue all doorbell writes would be immediate as the queue started to fill up we could delay doorbell writes further and further. At the start of drain if we've cleaned any packets we know we've moved the state machine along and we write the doorbell (an obvious missing optimization was to skip that doorbell write if db_pending is zero). This change required that tx interrupts be scheduled periodically as opposed to just when the hardware txq was full. However, that just leads to our next problem. Initially dedicated msix vectors were used for both tx and rx. However, it was often possible to use up all available vectors before we set up all the queues we wanted. By having rx and tx share a vector for a given queue we could halve the number of vectors used by a given configuration. The problem here is that with this change only e1000 passed the necessary value to have the fast interrupt drive tx when appropriate. Reported by: mav@ Tested by: mav@ Reviewed by: gallatin@ MFC after: 1 month Sponsored by: iXsystems Differential Revision: https://reviews.freebsd.org/D27683
* ice: quiet -Wredundant-declsRyan Libby2020-12-171-9/+0
| | | | | | | | | | | Reapply r364240 after driver update in r365617. Reviewed by: lwhsu Sponsored by: Dell EMC Isilon Differential Revision: https://reviews.freebsd.org/D27561 Notes: svn path=/head/; revision=368745
* ice(4): Update to 0.26.16Eric Joyner2020-09-1031-2124/+2747
| | | | | | | | | | | | | | | | | | | | | | | Summary of changes: - Assorted bug fixes - Support for newer versions of the device firmware - Suspend/resume support - Support for Lenient Link Mode for E82X devices (e.g. can try to link with SFP/QSFP modules with bad EEPROMs) - Adds port-level rx_discards sysctl, similar to ixl(4)'s This version of the driver is intended to be used with DDP package 1.3.16.0, which has already been updated in a previous commit. Tested by: Jeffrey Pieper <jeffrey.e.pieper@intel.com> MFC after: 3 days MFC with: r365332, r365550 Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D26322 Notes: svn path=/head/; revision=365617
* Remove redeclaration found by gcc buildLi-Wen Hsu2020-08-151-17/+0
| | | | | | | | | Reviewed by: erj Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D25953 Notes: svn path=/head/; revision=364240
* ice(4): Introduce new driver for Intel E800 Ethernet controllersEric Joyner2020-05-2649-0/+63846
The ice(4) driver is the driver for the Intel E8xx series Ethernet controllers; currently with codenames Columbiaville and Columbia Park. These new controllers support 100G speeds, as well as introducing more queues, better virtualization support, and more offload capabilities. Future work will enable virtual functions (like in ixl(4)) and the other functionality outlined above. For full functionality, the kernel should be compiled with "device ice_ddp" like in the amd64 NOTES file, and/or ice_ddp_load="YES" should be added to /boot/loader.conf so that the DDP package file included in this commit can be downloaded to the adapter. Otherwise, the adapter will fall back to a single queue mode with limited functionality. A man page for this driver will be forthcoming. MFC after: 1 month Relnotes: yes Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D21959 Notes: svn path=/head/; revision=361541