lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
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

Powered by Openwall GNU/*/Linux Powered by OpenVZ