• Jakub Kicinski's avatar
    devlink: add flash update command · 76726ccb
    Jakub Kicinski authored
    Add devlink flash update command. Advanced NICs have firmware
    stored in flash and often cryptographically secured. Updating
    that flash is handled by management firmware. Ethtool has a
    flash update command which served us well, however, it has two
    shortcomings:
     - it takes rtnl_lock unnecessarily - really flash update has
       nothing to do with networking, so using a networking device
       as a handle is suboptimal, which leads us to the second one:
     - it requires a functioning netdev - in case device enters an
       error state and can't spawn a netdev (e.g. communication
       with the device fails) there is no netdev to use as a handle
       for flashing.
    
    Devlink already has the ability to report the firmware versions,
    now with the ability to update the firmware/flash we will be
    able to recover devices in bad state.
    
    To enable updates of sub-components of the FW allow passing
    component name.  This name should correspond to one of the
    versions reported in devlink info.
    
    v1: - replace target id with component name (Jiri).
    Signed-off-by: default avatarJakub Kicinski <jakub.kicinski@netronome.com>
    Acked-by: default avatarJiri Pirko <jiri@mellanox.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    76726ccb
devlink.c 163 KB