mirror_ubuntu-kernels/drivers/net/ethernet/intel/ice
Jacob Keller e67fbcfbb4 ice: display stored UNDI firmware version via devlink info
Just as we recently added support for other stored firmware flash
versions, support display of the stored UNDI Option ROM version via
devlink info.

To do this, we need to introduce a new ice_get_inactive_orom_ver
function. This is a little trickier than with other flash versions. The
Option ROM version data was being read from a special "Boot
Configuration" block of the NVM Preserved Field Area. This block only
contains the *active* Option ROM version data. It is populated when the
device firmware finishes updating the Option ROM.

This method is ineffective at reading the stored Option ROM version
data. Instead of reading from this section of the flash, replace this
version extraction with one which locates the Combo Version information
from within the Option ROM binary.

This data is stored within the Option ROM at a 512 byte offset, in
a simple structured format. The structure uses a simple modulo 256
checksum for integrity verification. Scan through the Option ROM to
locate the CIVD data section, and extract the Combo Version.

Refactor ice_get_orom_ver_info so that it takes the bank select
enumeration parameter. Use this to implement ice_get_inactive_orom_ver.

Although all ice devices have a Boot Configuration block in the NVM PFA,
not all devices have a valid Option ROM. In this case, the old
ice_get_orom_ver_info would "succeed" but report a version of all
zeros. The new implementation would fail to locate the $CIV section in
the Option ROM and report an error. Thus, we must ensure that
ice_init_nvm does not fail if ice_get_orom_ver_info fails.

Use the new ice_get_inactive_orom_ver to allow reporting the Option ROM
versions for a pending update via devlink info.

Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Tested-by: Tony Brelinski <tonyx.brelinski@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
2021-02-05 11:44:16 -08:00
..
ice_adminq_cmd.h ice: display stored netlist versions via devlink info 2021-02-05 11:43:37 -08:00
ice_arfs.c ice: Implement aRFS 2020-05-22 22:02:34 -07:00
ice_arfs.h ice: Implement aRFS 2020-05-22 22:02:34 -07:00
ice_base.c xsk: Propagate napi_id to XDP socket Rx path 2020-12-01 00:09:25 +01:00
ice_base.h ice: Add support to enable/disable all Rx queues before waiting 2020-02-15 16:39:55 -08:00
ice_common.c ice: join format strings to same line as ice_debug 2020-12-09 08:11:55 -08:00
ice_common.h ice: Implement LFC workaround 2020-07-29 08:38:54 -07:00
ice_controlq.c ice: join format strings to same line as ice_debug 2020-12-09 08:11:55 -08:00
ice_controlq.h ice: Handle critical FW error during admin queue initialization 2020-05-27 17:48:23 -07:00
ice_dcb_lib.c ice: fix link event handling timing 2020-07-29 08:38:54 -07:00
ice_dcb_lib.h ice: Implement LFC workaround 2020-07-29 08:38:54 -07:00
ice_dcb_nl.c ice: remove unused macro 2020-05-27 17:03:40 -07:00
ice_dcb_nl.h ice: Implement DCBNL support 2019-11-08 12:02:14 -08:00
ice_dcb.c ice: Implement LFC workaround 2020-07-29 08:38:54 -07:00
ice_dcb.h ice: replace single-element array used for C struct hack 2020-07-01 16:35:23 -07:00
ice_devids.h ice: fix define for E822 backplane device 2020-02-19 13:39:33 -08:00
ice_devlink.c ice: display stored UNDI firmware version via devlink info 2021-02-05 11:44:16 -08:00
ice_devlink.h ice: refactor devlink_port to be per-VSI 2020-10-09 13:14:19 -07:00
ice_ethtool_fdir.c ice: fix FDir IPv6 flexbyte 2021-01-26 10:43:49 -08:00
ice_ethtool.c ice: create flash_info structure and separate NVM version 2021-02-05 11:35:34 -08:00
ice_fdir.c ice: remove unused args from ice_get_open_tunnel_port() 2020-09-28 12:50:12 -07:00
ice_fdir.h ice: Enable flex-bytes support 2020-05-22 21:44:48 -07:00
ice_flex_pipe.c ice: join format strings to same line as ice_debug 2020-12-09 08:11:55 -08:00
ice_flex_pipe.h ice: convert to new udp_tunnel infrastructure 2020-09-28 12:50:12 -07:00
ice_flex_type.h ice: convert to new udp_tunnel infrastructure 2020-09-28 12:50:12 -07:00
ice_flow.c ice: join format strings to same line as ice_debug 2020-12-09 08:11:55 -08:00
ice_flow.h ice: Fix pointer cast warnings 2020-10-09 13:14:19 -07:00
ice_fltr.c ice: refactor filter functions 2020-05-21 22:10:04 -07:00
ice_fltr.h ice: refactor filter functions 2020-05-21 22:10:04 -07:00
ice_fw_update.c ice: report timeout length for erasing during devlink flash 2021-02-05 09:34:24 -08:00
ice_fw_update.h ice: add support for flash update overwrite mask 2020-09-25 17:20:57 -07:00
ice_hw_autogen.h ice: Misc minor fixes 2020-08-01 08:44:04 -07:00
ice_lan_tx_rx.h ice: update PTYPE lookup table 2020-08-01 08:44:04 -07:00
ice_lib.c ice: Fix MSI-X vector fallback logic 2021-01-26 10:44:17 -08:00
ice_lib.h ice: fix memory leak if register_netdev_fails 2020-09-25 07:39:24 -07:00
ice_main.c ice: display stored netlist versions via devlink info 2021-02-05 11:43:37 -08:00
ice_nvm.c ice: display stored UNDI firmware version via devlink info 2021-02-05 11:44:16 -08:00
ice_nvm.h ice: display stored UNDI firmware version via devlink info 2021-02-05 11:44:16 -08:00
ice_osdep.h
ice_protocol_type.h ice: Enable flex-bytes support 2020-05-22 21:44:48 -07:00
ice_sched.c ice: join format strings to same line as ice_debug 2020-12-09 08:11:55 -08:00
ice_sched.h ice: avoid unnecessary single-member variable-length structs 2020-07-01 16:33:29 -07:00
ice_sriov.c ice: remove unnecessary fallthrough comments 2020-02-15 16:56:48 -08:00
ice_sriov.h
ice_status.h ice: display stored netlist versions via devlink info 2021-02-05 11:43:37 -08:00
ice_switch.c ice: join format strings to same line as ice_debug 2020-12-09 08:11:55 -08:00
ice_switch.h ice: Initialize Flow Director resources 2020-05-22 21:26:37 -07:00
ice_txrx_lib.c ice: drop dead code in ice_receive_skb() 2021-01-09 14:24:25 -08:00
ice_txrx_lib.h ice: Rename build_ctob to ice_build_ctob 2020-05-21 22:10:04 -07:00
ice_txrx.c net: use the new dev_page_is_reusable() instead of private versions 2021-02-04 18:20:14 -08:00
ice_txrx.h intel-ethernet: clean up W=1 warnings in kdoc 2020-09-25 16:28:59 -07:00
ice_type.h ice: display stored netlist versions via devlink info 2021-02-05 11:43:37 -08:00
ice_virtchnl_pf.c ice: remove repeated words 2020-10-09 13:14:19 -07:00
ice_virtchnl_pf.h ice: Allow 2 queue pairs per VF on SR-IOV initialization 2020-08-01 08:44:04 -07:00
ice_xsk.c ice, xsk: clear the status bits for the next_to_use descriptor 2020-12-16 10:51:07 -08:00
ice_xsk.h xsk: i40e: ice: ixgbe: mlx5: Pass buffer pool to driver instead of umem 2020-08-31 21:15:03 +02:00
ice.h ice: Fix MSI-X vector fallback logic 2021-01-26 10:44:17 -08:00
Makefile ice: implement device flash update via devlink 2020-07-28 17:07:06 -07:00