]> www.infradead.org Git - users/jedix/linux-maple.git/commit
ixgbe: add device flash update via devlink
authorJedrzej Jagielski <jedrzej.jagielski@intel.com>
Thu, 10 Apr 2025 13:00:04 +0000 (15:00 +0200)
committerTony Nguyen <anthony.l.nguyen@intel.com>
Tue, 15 Apr 2025 14:36:32 +0000 (07:36 -0700)
commita0f45672d5e14af053d2dc5f552381351f6eeac0
tree80e39ba74e320e6346ed88b6e927ae5b7e753bd5
parent6eae2aeb60b6f1cfa97e6e8f296027f15173a67a
ixgbe: add device flash update via devlink

Use the pldmfw library to implement device flash update for
the Intel ixgbe networking device driver specifically for E610 devices.
This support uses the devlink flash update interface.

Using the pldmfw library, the provided firmware file will be scanned for
the three major components, "fw.undi" for the Option ROM, "fw.mgmt" for
the main NVM module containing the primary device firmware, and
"fw.netlist" containing the netlist module.

The flash is separated into two banks, the active bank containing the
running firmware, and the inactive bank which we use for update. Each
module is updated in a staged process. First, the inactive bank is
erased, preparing the device for update. Second, the contents of the
component are copied to the inactive portion of the flash. After all
components are updated, the driver signals the device to switch the
active bank during the next EMP reset.

With this implementation, basic flash update for the E610 hardware is
supported.

Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
Tested-by: Bharath R <bharath.r@intel.com>
Co-developed-by: Slawomir Mrozowicz <slawomirx.mrozowicz@intel.com>
Signed-off-by: Slawomir Mrozowicz <slawomirx.mrozowicz@intel.com>
Co-developed-by: Piotr Kwapulinski <piotr.kwapulinski@intel.com>
Signed-off-by: Piotr Kwapulinski <piotr.kwapulinski@intel.com>
Co-developed-by: Stefan Wegrzyn <stefan.wegrzyn@intel.com>
Signed-off-by: Stefan Wegrzyn <stefan.wegrzyn@intel.com>
Signed-off-by: Jedrzej Jagielski <jedrzej.jagielski@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Documentation/networking/devlink/ixgbe.rst
drivers/net/ethernet/intel/Kconfig
drivers/net/ethernet/intel/ixgbe/Makefile
drivers/net/ethernet/intel/ixgbe/devlink/devlink.c
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.c
drivers/net/ethernet/intel/ixgbe/ixgbe_e610.h
drivers/net/ethernet/intel/ixgbe/ixgbe_fw_update.c [new file with mode: 0644]
drivers/net/ethernet/intel/ixgbe/ixgbe_fw_update.h [new file with mode: 0644]
drivers/net/ethernet/intel/ixgbe/ixgbe_type_e610.h