Add the mlxfw module for Mellanox firmware flash process
authorYotam Gigi <yotamg@mellanox.com>
Tue, 23 May 2017 19:56:23 +0000 (21:56 +0200)
committerDavid S. Miller <davem@davemloft.net>
Thu, 25 May 2017 21:46:17 +0000 (17:46 -0400)
commit410ed13cae39df563e31240992fcb32364d186a1
treeb9ef0723300f9b189c685eb8815072a4ab3e9b5f
parentff5f58f53cf19eb3a5a26057dc6f44166e1771be
Add the mlxfw module for Mellanox firmware flash process

The mlxfw module is in charge of common logic needed to flash Mellanox
devices firmware, which consists of:
 - Parse the Mellanox Firmware Archive version 2 (MFA2) format, which is
   the format used to store the Mellanox firmware. The MFA2 format file can
   hold firmware for many different silicon variants, differentiated by a
   unique ID called PSID. In addition, the MFA2 file data section is
   compressed using xz compression to save both file-system space and
   memory at extraction time.
 - Implement the firmware flash state machine logic, which is a common
   logic for Mellanox products needed to flash the firmware to the device.

As the module is shared between different Mellanox products, it defines a
set of callbacks to be implemented by the specific driver for hardware
interaction.

Signed-off-by: Yotam Gigi <yotamg@mellanox.com>
Reviewed-by: Ido Schimmel <idosch@mellanox.com>
Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
14 files changed:
MAINTAINERS
drivers/net/ethernet/mellanox/Kconfig
drivers/net/ethernet/mellanox/Makefile
drivers/net/ethernet/mellanox/mlxfw/Kconfig [new file with mode: 0644]
drivers/net/ethernet/mellanox/mlxfw/Makefile [new file with mode: 0644]
drivers/net/ethernet/mellanox/mlxfw/mlxfw.h [new file with mode: 0644]
drivers/net/ethernet/mellanox/mlxfw/mlxfw_fsm.c [new file with mode: 0644]
drivers/net/ethernet/mellanox/mlxfw/mlxfw_mfa2.c [new file with mode: 0644]
drivers/net/ethernet/mellanox/mlxfw/mlxfw_mfa2.h [new file with mode: 0644]
drivers/net/ethernet/mellanox/mlxfw/mlxfw_mfa2_file.h [new file with mode: 0644]
drivers/net/ethernet/mellanox/mlxfw/mlxfw_mfa2_format.h [new file with mode: 0644]
drivers/net/ethernet/mellanox/mlxfw/mlxfw_mfa2_tlv.h [new file with mode: 0644]
drivers/net/ethernet/mellanox/mlxfw/mlxfw_mfa2_tlv_multi.c [new file with mode: 0644]
drivers/net/ethernet/mellanox/mlxfw/mlxfw_mfa2_tlv_multi.h [new file with mode: 0644]