History log of /freebsd-current/sys/dev/ixl/i40e_osdep.c
Revision Date Author Comments
# 71625ec9 16-Aug-2023 Warner Losh <imp@FreeBSD.org>

sys: Remove $FreeBSD$: one-line .c comment pattern

Remove /^/[*/]\s*\$FreeBSD\$.*\n/


# 1d02c6b1 15-Feb-2023 Krzysztof Galazka <krzysztof.galazka@intel.com>

ixl(4): Fix MAC/VLAN filters accounting

- Account for a filter required to enable reception of untagged frames
while registering and unregistering VLANs to avoid trying to add more
filters than HW supports

- While adding MAC/VLAN filters, pre-set matching method field in the
Admin Queue Command response buffer to expected error value to work
around an issue with some FW versions, which do not update that field if
operation fails, and be able correctly track which filters were
configured in HW.

- Remove unused IXL_MAX_FILTERS macro definition

- Update number of available MAC/VLAN filters as in newer FW versions it
was decreased by one.

- Simplify i40e_dma_mem structure

Signed-off-by: Krzysztof Galazka <krzysztof.galazka@intel.com>
Signed-off-by: Eric Joyner <erj@FreeBSD.org>

Reviewed by: erj@
Tested by: Gowtham Kumar Ks <gowtham.kumar.ks@intel.com>
MFC after: 3 days
Sponsored by: Intel Corporation
Differential Revision: https://reviews.freebsd.org/D37457


# 7d4dceec 03-Feb-2021 Krzysztof Galazka <krzysztof.galazka@intel.com>

ixl(4): Fix VLAN HW filtering

X700 family of controllers has limited number of available VLAN
HW filters. Driver did not handle properly a case when user
assigned more VLANs to the interface which had all filters
already in use. Fix that by disabling HW filtering when
it is impossible to create filters for all requested VLANs.
Keep track of registered VLANs using bitstring to be able
to re-enable HW filtering when number of requested VLANs
drops below the limit.

Also switch all allocations to use M_IXL malloc type
to ease detecting memory leaks in the driver.

Reviewed by: erj
Tested by: gowtham.kumar.ks@intel.com
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D28137


# b4a7ce06 09-Jun-2020 Eric Joyner <erj@FreeBSD.org>

ixl(4): Add FW recovery mode support and other things

Update the iflib version of ixl driver based on the OOT version ixl-1.11.29.

Major changes:

- Extract iflib specific functions from ixl_pf_main.c to ixl_pf_iflib.c
to simplify code sharing between legacy and iflib version of driver

- Add support for most recent FW API version (1.10), which extends FW
LLDP Agent control by user to X722 devices

- Improve handling of device global reset

- Add support for the FW recovery mode

- Use virtchnl function to validate virtual channel messages instead of
using separate checks

- Fix MAC/VLAN filters accounting

Submitted by: Krzysztof Galazka <krzysztof.galazka@intel.com>
Reviewed by: erj@
Tested by: Jeffrey Pieper <jeffrey.e.pieper@intel.com>
MFC after: 1 week
Relnotes: yes
Sponsored by: Intel Corporation
Differential Revision: https://reviews.freebsd.org/D24564


# 77c1fcec 12-Oct-2018 Eric Joyner <erj@FreeBSD.org>

ixl/iavf(4): Change ixlv to iavf and update it to use iflib(9)

Finishes the conversion of the 40Gb Intel Ethernet drivers to iflib(9) for
FreeBSD 12.0, and fixes numerous bugs in both ixl(4) and iavf(4).

This commit also re-adds the VF driver to GENERIC since it now compiles and
functions.

The VF driver name was changed from ixlv(4) to iavf(4) because the VF driver is
now intended to be used with future products, not just with Fortville/Fort Park
VFs.

A man page update that documents these drivers is forthcoming in a separate
commit.

Reviewed by: sbruno@, kbowling@
Tested by: jeffrey.e.pieper@intel.com
Approved by: re (gjb@)
Relnotes: yes
Sponsored by: Intel Corporation
Differential Revision: https://reviews.freebsd.org/D16429


# f4cc2d17 18-Jun-2018 Eric Joyner <erj@FreeBSD.org>

ixl(4): Update version number to 2.0.0-k

And update copyrights to current year.

MFC after: 1 month
Sponsored by: Intel Corporation


# 1031d839 18-Jun-2018 Eric Joyner <erj@FreeBSD.org>

ixl(4): Update to use iflib

Update the driver to use iflib in order to bring performance,
maintainability, and (hopefully) stability benefits to the driver.

The driver currently isn't completely ported; features that are missing:

- VF driver (ixlv)
- SR-IOV host support
- RDMA support

The plan is to have these re-added to the driver before the next FreeBSD release.

Reviewed by: gallatin@
Contributions by: gallatin@, mmacy@, krzysztof.galazka@intel.com
Tested by: jeffrey.e.pieper@intel.com
MFC after: 1 month
Sponsored by: Intel Corporation
Differential Revision: https://reviews.freebsd.org/D15577


# ceebc2f3 01-May-2018 Eric Joyner <erj@FreeBSD.org>

ixl(4): Update to 1.9.9-k

Refresh upstream driver before impending conversion to iflib.

Major changes:

- Support for descriptor writeback mode (required by ixlv(4) for AVF support)
- Ability to disable firmware LLDP agent by user (PR 221530)
- Fix for TX queue hang when using TSO (PR 221919)
- Separate descriptor ring sizes for TX and RX rings

PR: 221530, 221919
Submitted by: Krzysztof Galazka <krzysztof.galazka@intel.com>
Reviewed by: #IntelNetworking
MFC after: 1 day
Relnotes: Yes
Sponsored by: Intel Corporation
Differential Revision: https://reviews.freebsd.org/D14985


# cb6b8299 09-Feb-2017 Eric Joyner <erj@FreeBSD.org>

ixl(4): Update to 1.7.12-k

Refresh upstream driver before impending conversion to iflib.

Major new features:

- Support for Fortville-based 25G adapters
- Support for I2C reads/writes

(To prevent getting or sending corrupt data, you should set
dev.ixl.0.debug.disable_fw_link_management=1 when using I2C
[this will disable link!], then set it to 0 when done. The driver implements
the SIOCGI2C ioctl, so ifconfig -v works for reading I2C data,
but there are read_i2c and write_i2c sysctls under the .debug sysctl tree
[the latter being useful for upper page support in QSFP+]).

- Addition of an iWARP client interface (so the future iWARP driver for
X722 devices can communicate with the base driver).
- Compiling this option in is enabled by default, with "options IXL_IW" in
GENERIC.

Differential Revision: https://reviews.freebsd.org/D9227
Reviewed by: sbruno
MFC after: 2 weeks
Sponsored by: Intel Corporation


# 4294f337 07-Aug-2016 Sean Bruno <sbruno@FreeBSD.org>

ixl(4): Update to ixl-1.6.6-k.

Submitted by: erj
Reviewed by: jeffrey.e.pieper@intel.com
MFC after: 3 days
Sponsored by: Intel Corporation
Differential Revision: https://reviews.freebsd.org/D7391


# 6d011ad5 12-May-2016 Eric Joyner <erj@FreeBSD.org>

ixl: Update to 1.4.24-k.

Changes by author:

Eric Joyner ixl: Fix compile error when IXL_DEBUG is defined.
Eric Joyner ixl: Fix taskqueues created in init() not being freed in stop().
Eric Joyner ixl: Add additional debug sysctls, for Tx and Rx queue stats.
Eric Joyner ixl: Enable dynamic itr by default.
Eric Joyner ixl: Edit spacing, comments, function signatures (to conform to style(9)).
Eric Joyner ixl: Check for errors when tearing down msix interrupts.
Eric Joyner ixl: Remove unnecessary register reads/writes.
Eric Joyner ixl: Remove admin queue interrupt enable from general interrupt enable.
Eric Joyner ixl: Update switch config after teardown/reset flow in init().
Eric Joyner ixl: Add additional admin queue error code output to admin queue call errors.
Eric Joyner ixl: Don't destroy i40e spinlock if it's already uninitialized.
Shannon Nelson i40e-shared: clean event descriptor before use
Anjali Singhai Jain i40e-shared: When in promisc mode apply promisc mode to Tx Traffic as well
Kevin Scott i40e_shared: Increase timeout when checking GLGEN_RSTAT_DEVSTATE bit
Eric Joyner ixlv: Fix IXL_DEBUG compile issue.
Eric Joyner ixlv: Attempt to fix panic/other issues when rapidly unloading/loading driver.
Eric Joyner ixl/ixlv: Revert m_collapse() in ixl_xmit() to m_defrag().
Deepthi Kavalur i40e_shared: Trace logging HW capabilities
Eric Joyner ixlv: Correctly unlock/relock around init() call in vc_completion().
Eric Joyner ixl: Stop preventing changing flow control mode for CR4 media.
Eric Joyner ixl: Set IPv6 TCP offload flag when doing TSO.

Differential Revision: https://reviews.freebsd.org/D6211
Reviewed by: sbruno, kmacy, jeffrey.e.pieper@intel.com
MFC after: 2 weeks
Sponsored by: Intel Corporation


# 6c426059 12-May-2016 Eric Joyner <erj@FreeBSD.org>

ixl: Update to 1.4.20-k.

Changes by author:

Eric Joyner ixl: Add more error messages/checks to ixl_vsi_assign_msix().
Eric Joyner ixl/ixlv: Clarify a comment about descriptors.
Eric Joyner ixl/ixlv: Improve i40e_debug() implementation.
Eric Joyner ixl/ixlv: Remove unused ASSERT() macro; move struct around.
Eric Joyner ixl: Set initial advertised speed value in init_locked().
Eric Joyner ixl: Fix flow control sysctl value being stored when new value is invalid.
Eric Joyner Edit comments and spacing.
Carolyn Wyborny i40e-shared: Add functions to blink led on Coppervale PHY
Eric Joyner ixl: Re-do interrupt setup.
Eric Joyner ixl: Remove VFLR task setup from legacy flow.
Eric Joyner ixl: Shutdown/setup HMC when handling an EMPR reset.

Differential Revision: https://reviews.freebsd.org/D6211
Reviewed by: sbruno, kmacy, jeffrey.e.pieper@intel.com
MFC after: 2 weeks
Sponsored by: Intel Corporation


# ac83ea83 12-May-2016 Eric Joyner <erj@FreeBSD.org>

ixl: Update to 1.4.5-k.

This first update will revert some upstream changes; forthcoming updates will reinstate them.

Changes, by author:

Anjali Singhai Jain i40e-shared: Add WB_ON_ITR offload support
Shannon Nelson i40e-shared: fix phy_types bitmap type
Kevin Scott i40e-shared: Store off PHY capabilities
Shannon Nelson i40e-shared: fix byteswap of phy_type
Jingjing Wu i40e-shared: Fix compile issue related to const string
Greg Bowers i40e-shared: Add AQ defines for non-willing Apps (DCB)
Greg Bowers i40e-shared: Support for non-willing Apps (DCB)
Shannon Nelson i40e-shared: use upper-32 bit macro for address
Shannon Nelson i40e-shared: grab the AQ spinlocks before clearing registers
Eric Joyner ixl: Properly strip out X722_SUPPORT (temporarily).
Eric Joyner ixl: Allow Fort Pond devices to advertise 100M in set_advertise sysctl.

Differential Revision: https://reviews.freebsd.org/D6211
Reviewed by: sbruno, kmacy, jeffrey.e.pieper@intel.com
MFC after: 2 weeks
Sponsored by: Intel Corporation


# 4e8e1ebd 19-May-2015 John Baldwin <jhb@FreeBSD.org>

Remove executable property from several ixl(4) source files.

Differential Revision: https://reviews.freebsd.org/D2583
Reviewed by: erj


# e5100ee2 06-Nov-2014 Jack F Vogel <jfv@FreeBSD.org>

Update the Intel i40e drivers, ixl version 1.2.8, ixlv version 1.1.18
-Improved VF stability, thanks to changes from Ryan Stone,
and Juniper.
- RSS fixes in the ixlv driver
- link detection in the ixlv driver
- New sysctl's added in ixl and ixlv
- reset timeout increased for ixlv
- stability fixes in detach
- correct media reporting
- Coverity warnings fixed
- Many small bug fixes
- VF Makefile modified - nvm shared code needed
- remove unused sleep channels in ixlv_sc struct

Submitted by: Eric Joyner (committed by jfv)
MFC after: 1 week


# d94ca7cf 18-Sep-2014 Bjoern A. Zeeb <bz@FreeBSD.org>

Revert r270808, which were changes to common code (i40e_alloc.h).

Rather than #define-ing common code function calls to OS-dependent
ones, make the osdep versions match the common code expectations,
adjust the FreeBSD specific code to use those, and remove the
#defines.

In the FreeBSD specific code, use "i40e_mem_reserved" for the
now expected but unused argument to i40e_allocate_dma_mem().

Reviewed by: gnn, eric.joyner intel.com
MFC after: 3 days


# ea022094 18-Sep-2014 Bjoern A. Zeeb <bz@FreeBSD.org>

For consistency with the shared header file (and to avoid confusion
with mbufs normally called *m in one place), rename the function
arguments to "mem".

This is a non-functional change.

Reviewed by: gnn, eric.joyner intel.com
MFC after: 3 days


# 61ae650d 22-Aug-2014 Jack F Vogel <jfv@FreeBSD.org>

Update to the Intel Base driver for the Intel XL710 Ethernet Controller Family
- It was decided to change the driver name to if_ixl for FreeBSD
- This release adds the VF Driver to the tree, it can be built into
the kernel or as the if_ixlv module
- The VF driver is independent for the first time, this will be
desireable when full SRIOV capability is added to the OS.
- Thanks to my new coworker Eric Joyner for his superb work in
both the core and vf driver code.

Enjoy everyone!

Submitted by: jack.vogel@intel.com and eric.joyner@intel.com
MFC after: 3 days (hoping to make 10.1)