linux/drivers/net/ethernet
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
..
3com
8390
adaptec
aeroflex
agere
alacritech
allwinner net: allwinner: Fix some resources leak in the error handling path of the probe and in the remove function 2020-12-16 11:37:31 -08:00
alteon
altera
amazon net, xdp: Introduce xdp_prepare_buff utility routine 2021-01-08 13:39:24 -08:00
amd net: remove ndo_udp_tunnel_* callbacks 2021-01-07 12:53:29 -08:00
apm
apple
aquantia atlantic: remove architecture depends 2020-12-28 15:04:25 -08:00
arc
atheros
broadcom bnxt_en: Convert to use netif_level() helpers. 2021-01-26 17:25:59 -08:00
brocade
cadence net: macb: ignore tx_clk if MII is used 2021-01-21 19:50:47 -08:00
calxeda
cavium net/ethernet: convert to use module_platform_driver in octeon_mgmt.c 2021-01-29 19:02:43 -08:00
chelsio chelsio: cxgb: Disable the card on error in threaded interrupt 2021-02-03 17:41:01 -08:00
cirrus
cisco net: remove ndo_udp_tunnel_* callbacks 2021-01-07 12:53:29 -08:00
cortina
davicom
dec
dlink
emulex net: remove ndo_udp_tunnel_* callbacks 2021-01-07 12:53:29 -08:00
ezchip
faraday Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-12-11 22:29:38 -08:00
freescale net: fec: Silence M5272 build warnings 2021-02-02 19:02:26 -08:00
fujitsu
google
hisilicon net: hns3: remove redundant null check of an array 2021-02-04 18:37:47 -08:00
huawei
i825xx drivers: net: ethernet: i825xx: Fix couple of spellings in the file ether1.c 2021-02-04 19:07:55 -08:00
ibm Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-02-02 14:21:31 -08:00
intel ice: display stored UNDI firmware version via devlink info 2021-02-05 11:44:16 -08:00
marvell octeontx2-af: Handle CPT function level reset 2021-02-03 17:31:34 -08:00
mediatek net: ethernet: mediatek: support setting MTU 2021-01-25 18:23:14 -08:00
mellanox net: use the new dev_page_is_reusable() instead of private versions 2021-02-04 18:20:14 -08:00
micrel net: ks8851: remove definition of DEBUG 2021-01-15 17:53:29 -08:00
microchip lan743x: fix endianness when accessing descriptors 2021-01-28 18:37:48 -08:00
moxa
mscc net: mscc: ocelot: fix error code in mscc_ocelot_probe() 2021-02-03 16:18:10 -08:00
myricom
natsemi net/sonic: Fix some resource leaks in error handling paths 2021-01-05 15:59:20 -08:00
neterion net: vxget: clean up sparse warnings 2020-12-14 19:18:11 -08:00
netronome bpf: Rename BPF_XADD and prepare to encode other atomics in .imm 2021-01-14 18:34:29 -08:00
ni net: nixge: fix spelling mistake in Kconfig: "Instuments" -> "Instruments" 2020-12-17 10:54:31 -08:00
nvidia
nxp
oki-semi
packetengines
pasemi
pensando net: add inline function skb_csum_is_sctp 2021-01-19 14:31:25 -08:00
qlogic net/qla3xxx: switch from 'pci_' to 'dma_' API 2021-01-18 20:26:21 -08:00
qualcomm net: qualcomm: rmnet: Update rmnet device MTU based on real device 2020-12-10 13:30:26 -08:00
rdc
realtek r8169: Add support for another RTL8168FP 2021-02-02 18:02:55 -08:00
renesas Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-01-20 12:16:11 -08:00
rocker rocker: Simplify the calculation of variables 2021-01-27 17:35:48 -08:00
samsung
seeq
sfc sfc: reduce the number of requested xdp ev queues 2021-01-22 19:16:45 -08:00
sgi
silan
sis
smsc net: smsc911x: Make Runtime PM handling more fine-grained 2021-01-19 17:46:39 -08:00
socionext net, xdp: Introduce xdp_prepare_buff utility routine 2021-01-08 13:39:24 -08:00
stmicro Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-01-28 17:09:31 -08:00
sun
synopsys
tehuti
ti net: ethernet: ti: am65-cpsw: add support for am64x cpsw3g 2021-01-19 17:32:34 -08:00
toshiba net: ethernet: toshiba: spider_net: Document a whole bunch of function parameters 2021-01-16 18:13:28 -08:00
tundra
via
wiznet
xilinx Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-12-11 22:29:38 -08:00
xircom
xscale net: ixp4xx_eth: Use DEFINE_SPINLOCK() for spinlock 2021-01-05 15:43:41 -08:00
dnet.c
dnet.h
ec_bhf.c
ethoc.c net: ethernet: Fix memleak in ethoc_probe 2020-12-23 12:28:53 -08:00
fealnx.c
jme.c
jme.h
Kconfig net: remove aurora nb8800 driver 2021-01-21 19:48:38 -08:00
korina.c net: korina: fix return value 2020-12-16 15:01:07 -08:00
lantiq_etop.c
lantiq_xrx200.c
Makefile net: remove aurora nb8800 driver 2021-01-21 19:48:38 -08:00