[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <BLUPR0701MB2004690F775AD57D3CACB1CC8DF90@BLUPR0701MB2004.namprd07.prod.outlook.com>
Date: Tue, 23 May 2017 13:18:18 +0000
From: "Mintz, Yuval" <Yuval.Mintz@...ium.com>
To: Jiri Pirko <jiri@...nulli.us>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>
CC: "davem@...emloft.net" <davem@...emloft.net>,
"idosch@...lanox.com" <idosch@...lanox.com>,
"yotamg@...lanox.com" <yotamg@...lanox.com>,
"mlxsw@...lanox.com" <mlxsw@...lanox.com>,
Ben Hutchings <bhutchings@...arflare.com>
Subject: RE: [patch net-next 0/9] mlxsw: Support firmware flash
> Add support for device firmware flash on mlxsw spectrum. The firmware files
> are expected to be in the Mellanox Firmware Archive version 2 (MFA2)
> format.
>
> The firmware flash can be triggered via "ethtool -f" or on driver initialization
> time if the device firmware version does not meet the minimum firmware
> version supported by the driver.
>
> Currently, to activate the newly flashed firmware, the user needs to reboot
> his system.
>
> The first patch introduces the mlxfw module, which implements common
> logic needed for the firmware flash process on Mellanox products, such as
> the
> MFA2 format parsing and the firmware flash state machine logic. As the
> module implements common logic which will be needed by various different
> Mellanox drivers, it defines a set of callbacks needed to interact with the
> specific device.
>
> Patches 1-5 implement the needed mlxfw callbacks in the mlxsw spectrum
> driver.
>
> Patches 6-8 add the "ethtool -f" and the boot-time firmware upgrade on the
> mlxsw spectrum driver.
When we tried using `ethtool -E' for qed we got burned for trying to use the magic
value [1]. When we suggested extending it to allow some private data indications,
Ben claimed that this entire ethtool infrastructure is a thing of the past,
and we should try using MTD instead - a claim no one bothered to counter.
Creating proprietary file-formats, filling them with metadata and
complementary driver state-machines could easily overcome the original
obstacle we faced. But it raises the question of whether these APIs are
valid or obsolete.
[1] http://marc.info/?l=linux-netdev&m=146093513926921&w=4
[2] http://marc.info/?l=linux-netdev&m=146514461214421&w=2
> Patch 9 adds a fix needed for new firmware versions.
>
> Ido Schimmel (1):
> mlxsw: spectrum_router: Adjust RIF configuration for new firmware
> versions
>
> Yotam Gigi (8):
> Add the mlxfw module for Mellanox firmware flash process
> mlxsw: reg: Add Management Component Query Information register
> mlxsw: reg: Add Management Component Control register
> mlxsw: reg: Add Management Component Data Access register
> mlxsw: spectrum: Add the needed callbacks for mlxfw integration
> mlxsw: spectrum: Implement the ethtool flash_device callback
> mlxsw: core: Create the mlxsw_fw_rev struct
> mlxsw: spectrum: Validate firmware revision on init
>
> MAINTAINERS | 8 +
> drivers/net/ethernet/mellanox/Kconfig | 1 +
> drivers/net/ethernet/mellanox/Makefile | 1 +
> drivers/net/ethernet/mellanox/mlxfw/Kconfig | 6 +
> drivers/net/ethernet/mellanox/mlxfw/Makefile | 2 +
> drivers/net/ethernet/mellanox/mlxfw/mlxfw.h | 102 ++++
> drivers/net/ethernet/mellanox/mlxfw/mlxfw_fsm.c | 273 +++++++++
> drivers/net/ethernet/mellanox/mlxfw/mlxfw_mfa2.c | 620
> +++++++++++++++++++++
> drivers/net/ethernet/mellanox/mlxfw/mlxfw_mfa2.h | 66 +++
> .../net/ethernet/mellanox/mlxfw/mlxfw_mfa2_file.h | 60 ++
> .../ethernet/mellanox/mlxfw/mlxfw_mfa2_format.h | 103 ++++
> .../net/ethernet/mellanox/mlxfw/mlxfw_mfa2_tlv.h | 98 ++++
> .../ethernet/mellanox/mlxfw/mlxfw_mfa2_tlv_multi.c | 126 +++++
> .../ethernet/mellanox/mlxfw/mlxfw_mfa2_tlv_multi.h | 71 +++
> drivers/net/ethernet/mellanox/mlxsw/Kconfig | 1 +
> drivers/net/ethernet/mellanox/mlxsw/core.h | 12 +-
> drivers/net/ethernet/mellanox/mlxsw/reg.h | 219 ++++++++
> drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 266 +++++++++
> .../net/ethernet/mellanox/mlxsw/spectrum_router.c | 22 +
> 19 files changed, 2052 insertions(+), 5 deletions(-) create mode 100644
> drivers/net/ethernet/mellanox/mlxfw/Kconfig
> create mode 100644 drivers/net/ethernet/mellanox/mlxfw/Makefile
> create mode 100644 drivers/net/ethernet/mellanox/mlxfw/mlxfw.h
> create mode 100644 drivers/net/ethernet/mellanox/mlxfw/mlxfw_fsm.c
> create mode 100644 drivers/net/ethernet/mellanox/mlxfw/mlxfw_mfa2.c
> create mode 100644 drivers/net/ethernet/mellanox/mlxfw/mlxfw_mfa2.h
> create mode 100644
> drivers/net/ethernet/mellanox/mlxfw/mlxfw_mfa2_file.h
> create mode 100644
> drivers/net/ethernet/mellanox/mlxfw/mlxfw_mfa2_format.h
> create mode 100644
> drivers/net/ethernet/mellanox/mlxfw/mlxfw_mfa2_tlv.h
> create mode 100644
> drivers/net/ethernet/mellanox/mlxfw/mlxfw_mfa2_tlv_multi.c
> create mode 100644
> drivers/net/ethernet/mellanox/mlxfw/mlxfw_mfa2_tlv_multi.h
>
> --
> 2.9.3
Powered by blists - more mailing lists