mbox series

[v2,net-next,0/4] bnxt_en: Add new "allow_fw_live_reset" generic devlink parameter

Message ID 1590214105-10430-1-git-send-email-vasundhara-v.volam@broadcom.com
Headers show
Series bnxt_en: Add new "allow_fw_live_reset" generic devlink parameter | expand

Message

Vasundhara Volam May 23, 2020, 6:08 a.m. UTC
This patchset adds support for a "allow_fw_live_reset" generic devlink
parameter and use it in bnxt_en driver.

Firmware live reset allows users to reset the firmware in real time. For
example, after firmware upgrade, this feature can immediately reset to run
the new firmware without reloading the driver or rebooting the system. When
device reset is initiated, services running on the host interfaces will
momentarily pause and resume once reset is completed which is very similar
to momentary network outage.

User can initiate the fw reset by using "ethtool --reset ethX all" command.
Where ethX is any PF of the device with administrative privileges.

Firmware can initiate the live reset only when all the installed host
driver(s) also support the feature. For example, if a function is loaded
with a very old driver that is not aware of live reset capability,
firmware cannot initiate the reset until that driver is unloaded or
upgraded.

"allow_fw_live_reset" runtime configuration mode allows the user to control
this feature by enabling or disabling it in the host driver. And permanent
configuration mode allows the user to enable the firmware live reset
capability in NVRAM configuration of the device.

Also, firmware spec. is updated to 1.10.1.40.

v1->v2: Rename param to "allow_fw_live_reset" from "enable_hot_fw_reset".
Update documentation files and commit messages with more details of the
feature.

Vasundhara Volam (4):
  devlink: Add new "allow_fw_live_reset" generic device parameter.
  bnxt_en: Update firmware spec. to 1.10.1.40.
  bnxt_en: Use allow_fw_live_reset generic devlink parameter
  bnxt_en: Check if fw_live_reset is allowed before doing ETHTOOL_RESET

 Documentation/networking/devlink/bnxt.rst          | 13 +++++
 .../networking/devlink/devlink-params.rst          |  6 ++
 drivers/net/ethernet/broadcom/bnxt/bnxt.c          | 28 +++++++++-
 drivers/net/ethernet/broadcom/bnxt/bnxt.h          |  2 +
 drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c  | 61 +++++++++++++++++++++
 drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.h  |  1 +
 drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c  | 17 +++---
 drivers/net/ethernet/broadcom/bnxt/bnxt_hsi.h      | 64 +++++++++++++---------
 include/net/devlink.h                              |  4 ++
 net/core/devlink.c                                 |  5 ++
 10 files changed, 165 insertions(+), 36 deletions(-)