> However, this implementation is wrong. It is exposing the > ETHTOOL_GEEPROM and ETHTOOL_SEEPROM interface and abusing it to > implement a non-standard interface that is custom to the out-of-tree Intel > drivers to support the flash update utility. > > This implementation was widely rejected when discovered in i40e and in > submissions for the ice driver. It abuses the ETHTOOL_GEEPROM and > ETHTOOL_SEEPROM interface in order to allow tools to access the hardware. > The use violates the documented behavior of the ethtool interface and breaks > the intended functionality of ETHTOOL_GEEPROM and ETHTOOL_SEEPROM.
Thank you for your detailed explanation. > The correct way to implement flash update is via the devlink dev flash > interface, using request_firmware, and implementing the entire update > process in the driver. The common portions of this could be done in a shared > module. In that case, does Intel have a plan to implement this mechanism in in-kernel drivers? > Attempting to support the broken legacy update that is supported by the out- > of-tree drivers is a non-starter for upstream. We (Intel) have known this for > some time, and this is why the patches and support have never been > published. Although the utility in question has been enhanced to perform firmware update against Intel 1G/10G NICs by using the /dev/mem, this method would not work when the secure boot is enabled. Considering out-of-band firmware update (via the BMC) is not supported for Intel 1G/10G NICs, it would be desirable to have the support for the devlink dev flash interface in in-kernel drivers (igb & ixgbe). Thanks Richard