This series introduces support for the new attribute to devlink flash
update, DEVLINK_ATTR_FLASH_UPDATE_OVERWRITE_MASK.

This attribute is a bitfield which allows userspace to specify what set of
subfields to overwrite when performing a flash update for a device.

The intention is to support the ability to control the behavior of
overwriting the configuration and identifying fields in the Intel ice device
flash update process. This is necessary  as the firmware layout for the ice
device includes some settings and configuration within the same flash
section as the main firmware binary.

This series, and the accompanying kernel series, introduce support for the
attribute. Once applied, the overwrite support can be be invoked via
devlink:

  # overwrite settings
  devlink dev flash pci/0000:af:00.0 file firmware.bin overwrite settings

  # overwrite identifiers and settings
  devlink dev flash pci/0000:af:00.0 file firmware.bin overwrite settings 
overwrite identifiers

The overwrite mask is determined by combining all of the "overwrite
<section>" arguments into a bitmask by doing bitwise OR. The "selector" for
the nla_bitfield32 will always be specified as the
DEVLINK_SUPPORTED_FLASH_OVERWRITE_SECTIONS provided in our copy of the uapi
header.

Changes since v2:
* remove the use of GENMASK from the userspace API header.
* separate iproute2 and net-next patches to avoid confusion.
* convert to using an nla_bitfield32 using the mnl_attr_push().

Jacob Keller (2):
  Update devlink header for overwrite mask attribute
  devlink: support setting the overwrite mask

 devlink/devlink.c            | 48 ++++++++++++++++++++++++++++++++++--
 include/uapi/linux/devlink.h | 24 ++++++++++++++++++
 2 files changed, 70 insertions(+), 2 deletions(-)


base-commit: e8e8f16ed155dfbe026ad3c22458d1277e17794e
-- 
2.28.0.218.ge27853923b9d.dirty

Reply via email to