Skip to content

Commit 55e54c0

Browse files
committed
Merge: ixgbe: Driver Update
MR: https://gitlab.com/redhat/centos-stream/src/kernel/centos-stream-9/-/merge_requests/7041 46761fd ixgbe: Add support for E610 FW Admin Command Interface 7c3aa0f ixgbe: Add support for E610 device capabilities detection 23c0e5a ixgbe: Add link management support for E610 device d2483eb ixgbe: Add support for NVM handling in E610 device e5b132b ixgbe: Add support for EEPROM dump in E610 device a0834bd ixgbe: Add ixgbe_x540 multiple header inclusion protection 34b4157 ixgbe: Clean up the E610 link management related code 4600cdf ixgbe: Enable link management in E610 device 208fff3 PCI: Add PCI_VDEVICE_SUB helper macro 4c44b45 ixgbevf: Add support for Intel(R) E610 device b1e44b4 ixgbe: fix media cage present detection for E610 device 4020659 ixgbe: fix media type detection for E610 device 4b2c75f ixgbe: Break include dependency cycle 15915b4 ixgbe: downgrade logging of unsupported VF API version to debug f72ce14 ixgbe: Correct BASE-BX10 compliance code 4ce1aee ixgbevf: Remove unused ixgbevf_hv_mbx_ops c824125 ixgbe: Fix passing 0 to ERR_PTR in ixgbe_run_xdp() 35f715c ixgbevf: Fix passing 0 to ERR_PTR in ixgbevf_run_xdp() 61fb097 ixgbe: Fix possible skb NULL pointer dereference 18a9b8e ixgbe: add PTP support for E610 device affead2 ixgbe: add support for thermal sensor event reception 4020659 ixgbe: fix media type detection for E610 device 8fa7292 treewide: Switch/rename to timer_delete[_sync]() cdcb380 ixgbe: Fix unreachable retry logic in combined and byte I2C write functions fd5ef52 ixgbe: wrap netdev_priv() usage a028523 ixgbe: add initial devlink support f6b588a ixgbe: add handler for devlink .info_get() 5f21415 ixgbe: add E610 functions for acquiring flash data 70db078 ixgbe: read the OROM version information 904c2b4 ixgbe: read the netlist version information 8210ff7 ixgbe: add .info_get extension specific for E610 devices 4654ec6 ixgbe: add E610 functions getting PBA and FW ver info 6eae2ae ixgbe: extend .info_get() with stored versions a0f4567 ixgbe: add device flash update via devlink c9e563c ixgbe: add support for devlink reload b5aae90 ixgbe: add FW API version check 29cb3b8 ixgbe: add E610 implementation of FW recovery mode 4811b0c ixgbe: add support for FW rollback mode JIRA: https://issues.redhat.com/browse/RHEL-80419 JIRA: https://issues.redhat.com/browse/RHEL-86539 JIRA: https://issues.redhat.com/browse/RHEL-99401 Signed-off-by: Corinna Vinschen <vinschen@redhat.com> Approved-by: Michal Schmidt <mschmidt@redhat.com> Approved-by: Myron Stowe <mstowe@redhat.com> Approved-by: CKI KWF Bot <cki-ci-bot+kwf-gitlab-com@redhat.com> Merged-by: Jarod Wilson <jarod@redhat.com>
2 parents 19eb223 + e5c73e8 commit 55e54c0

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+7769
-252
lines changed

Documentation/networking/devlink/devlink-info.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,10 @@ In case software/firmware components are loaded from the disk (e.g.
8686
``/lib/firmware``) only the running version should be reported via
8787
the kernel API.
8888

89+
Please note that any security versions reported via devlink are purely
90+
informational. Devlink does not use a secure channel to communicate with
91+
the device.
92+
8993
Generic Versions
9094
================
9195

Documentation/networking/devlink/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ parameters, info versions, and other features it supports.
8282
i40e
8383
ionic
8484
ice
85+
ixgbe
8586
mlx4
8687
mlx5
8788
mlxsw
Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
.. SPDX-License-Identifier: GPL-2.0
2+
3+
=====================
4+
ixgbe devlink support
5+
=====================
6+
7+
This document describes the devlink features implemented by the ``ixgbe``
8+
device driver.
9+
10+
Info versions
11+
=============
12+
13+
Any of the versions dealing with the security presented by ``devlink-info``
14+
is purely informational. Devlink does not use a secure channel to communicate
15+
with the device.
16+
17+
The ``ixgbe`` driver reports the following versions
18+
19+
.. list-table:: devlink info versions implemented
20+
:widths: 5 5 5 90
21+
22+
* - Name
23+
- Type
24+
- Example
25+
- Description
26+
* - ``board.id``
27+
- fixed
28+
- H49289-000
29+
- The Product Board Assembly (PBA) identifier of the board.
30+
* - ``fw.undi``
31+
- running
32+
- 1.1937.0
33+
- Version of the Option ROM containing the UEFI driver. The version is
34+
reported in ``major.minor.patch`` format. The major version is
35+
incremented whenever a major breaking change occurs, or when the
36+
minor version would overflow. The minor version is incremented for
37+
non-breaking changes and reset to 1 when the major version is
38+
incremented. The patch version is normally 0 but is incremented when
39+
a fix is delivered as a patch against an older base Option ROM.
40+
* - ``fw.undi.srev``
41+
- running
42+
- 4
43+
- Number indicating the security revision of the Option ROM.
44+
* - ``fw.bundle_id``
45+
- running
46+
- 0x80000d0d
47+
- Unique identifier of the firmware image file that was loaded onto
48+
the device. Also referred to as the EETRACK identifier of the NVM.
49+
* - ``fw.mgmt.api``
50+
- running
51+
- 1.5.1
52+
- 3-digit version number (major.minor.patch) of the API exported over
53+
the AdminQ by the management firmware. Used by the driver to
54+
identify what commands are supported. Historical versions of the
55+
kernel only displayed a 2-digit version number (major.minor).
56+
* - ``fw.mgmt.build``
57+
- running
58+
- 0x305d955f
59+
- Unique identifier of the source for the management firmware.
60+
* - ``fw.mgmt.srev``
61+
- running
62+
- 3
63+
- Number indicating the security revision of the firmware.
64+
* - ``fw.psid.api``
65+
- running
66+
- 0.80
67+
- Version defining the format of the flash contents.
68+
* - ``fw.netlist``
69+
- running
70+
- 1.1.2000-6.7.0
71+
- The version of the netlist module. This module defines the device's
72+
Ethernet capabilities and default settings, and is used by the
73+
management firmware as part of managing link and device
74+
connectivity.
75+
* - ``fw.netlist.build``
76+
- running
77+
- 0xee16ced7
78+
- The first 4 bytes of the hash of the netlist module contents.
79+
80+
Flash Update
81+
============
82+
83+
The ``ixgbe`` driver implements support for flash update using the
84+
``devlink-flash`` interface. It supports updating the device flash using a
85+
combined flash image that contains the ``fw.mgmt``, ``fw.undi``, and
86+
``fw.netlist`` components.
87+
88+
.. list-table:: List of supported overwrite modes
89+
:widths: 5 95
90+
91+
* - Bits
92+
- Behavior
93+
* - ``DEVLINK_FLASH_OVERWRITE_SETTINGS``
94+
- Do not preserve settings stored in the flash components being
95+
updated. This includes overwriting the port configuration that
96+
determines the number of physical functions the device will
97+
initialize with.
98+
* - ``DEVLINK_FLASH_OVERWRITE_SETTINGS`` and ``DEVLINK_FLASH_OVERWRITE_IDENTIFIERS``
99+
- Do not preserve either settings or identifiers. Overwrite everything
100+
in the flash with the contents from the provided image, without
101+
performing any preservation. This includes overwriting device
102+
identifying fields such as the MAC address, Vital product Data (VPD) area,
103+
and device serial number. It is expected that this combination be used with an
104+
image customized for the specific device.
105+
106+
Reload
107+
======
108+
109+
The ``ixgbe`` driver supports activating new firmware after a flash update
110+
using ``DEVLINK_CMD_RELOAD`` with the ``DEVLINK_RELOAD_ACTION_FW_ACTIVATE``
111+
action.
112+
113+
.. code:: shell
114+
115+
$ devlink dev reload pci/0000:01:00.0 reload action fw_activate
116+
117+
The new firmware is activated by issuing a device specific Embedded
118+
Management Processor reset which requests the device to reset and reload the
119+
EMP firmware image.
120+
121+
The driver does not currently support reloading the driver via
122+
``DEVLINK_RELOAD_ACTION_DRIVER_REINIT``.

drivers/net/ethernet/intel/Kconfig

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,8 @@ config IXGBE
164164
depends on PCI
165165
depends on PTP_1588_CLOCK_OPTIONAL
166166
select MDIO
167+
select NET_DEVLINK
168+
select PLDMFW
167169
select PHYLIB
168170
help
169171
This driver supports Intel(R) 10GbE PCI Express family of

drivers/net/ethernet/intel/ixgbe/Makefile

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
# SPDX-License-Identifier: GPL-2.0
2-
# Copyright(c) 1999 - 2018 Intel Corporation.
2+
# Copyright(c) 1999 - 2024 Intel Corporation.
33
#
44
# Makefile for the Intel(R) 10GbE PCI Express ethernet driver
55
#
66

7+
subdir-ccflags-y += -I$(src)
78
obj-$(CONFIG_IXGBE) += ixgbe.o
89

910
ixgbe-y := ixgbe_main.o ixgbe_common.o ixgbe_ethtool.o \
1011
ixgbe_82599.o ixgbe_82598.o ixgbe_phy.o ixgbe_sriov.o \
1112
ixgbe_mbx.o ixgbe_x540.o ixgbe_x550.o ixgbe_lib.o ixgbe_ptp.o \
12-
ixgbe_xsk.o
13+
ixgbe_xsk.o ixgbe_e610.o devlink/devlink.o ixgbe_fw_update.o
1314

1415
ixgbe-$(CONFIG_IXGBE_DCB) += ixgbe_dcb.o ixgbe_dcb_82598.o \
1516
ixgbe_dcb_82599.o ixgbe_dcb_nl.o

0 commit comments

Comments
 (0)