Mstflint - an open source version of MFT (Mellanox Firmware Tools)
Clone or download
DanGoldbergMellanox Merge branch 'master_devel'
Conflicts:
	kernel/mstflint_kernel.spec
	mstflint.spec.in
	small_utils/congestion.cpp
	small_utils/congestion.h
	tools_layouts/reg_access_hca_layouts.c
	tools_layouts/reg_access_hca_layouts.h
Latest commit 2171795 Dec 2, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
cmdif Title: Porting from MFT 4.11.0. Nov 5, 2018
cmdparser Title: Poting of MFT 4.10.0 to mstflint. Jul 1, 2018
common Title: Add Support for providing RC version Oct 14, 2018
debian Title: Fixed changelog version. Nov 22, 2018
dev_mgt Title: Porting from MFT, based on 4.11.0 release. Nov 20, 2018
ext_libs Title: Added missing fPIC flags in Makefiles. Nov 15, 2018
flint Title: Porting from MFT, based on 4.11.0 release. Nov 20, 2018
fw_comps_mgr Title: Porting from MFT 4.11.0. Nov 5, 2018
include/mtcr_ul Title: Porting from MFT 4.11.0. Nov 5, 2018
kernel Title: Version updated to 4.11.0 and update changelog. Nov 21, 2018
libmfa Coding style alignment Jun 27, 2018
m4 Fixes of the new flags Aug 23, 2017
mad_ifc Title: Porting from MFT 4.11.0. Nov 5, 2018
man Title: Updated man pages and fixed tool's name in mstmcra usage print. Nov 21, 2018
mflash Title: Porting from MFT, based on 4.11.0 release. Nov 20, 2018
mft_utils Title: Porting from MFT 4.11.0. Nov 5, 2018
mlxarchive Title: Porting from MFT, based on 4.11.0 release. Nov 20, 2018
mlxconfig Title: Updated host DB in mlxconfig. Nov 22, 2018
mlxfwops Title: Porting from MFT, based on 4.11.0 release. Nov 20, 2018
mlxfwupdate Title: Poting of MFT 4.10.0 to mstflint. Jul 1, 2018
mlxsign_lib Title: Added missing fPIC flags in Makefiles. Nov 15, 2018
mstdump Title: Added missing fPIC flags in Makefiles. Nov 15, 2018
mtcr_freebsd Title: Porting from MFT 4.11.0. Nov 5, 2018
mtcr_py Added gcc 8 and python 3 support Jul 4, 2018
mtcr_ul Merge branch 'master_devel' Dec 2, 2018
mvpd Title: Porting from MFT 4.11.0. Nov 5, 2018
reg_access Merge branch 'master_devel' Dec 2, 2018
small_utils Title: Updated man pages and fixed tool's name in mstmcra usage print. Nov 21, 2018
tools_crypto Title: Added missing fPIC flags in Makefiles. Nov 15, 2018
tools_layouts Merge branch 'master_devel' Dec 2, 2018
tools_res_mgmt Title: Porting from MFT 4.11.0. Nov 5, 2018
xz_utils Title: Porting from MFT 4.11.0. Nov 5, 2018
COPYING Added COPYING file Mar 8, 2012
LICENSE Replaced wrong proprietary license to BSD/GPL on few source files. Aug 14, 2013
Makefile.am Title: Moved xz_utils to --enable_fw_mgr tools. It's the dependency o… Nov 25, 2018
README Update README Feb 27, 2018
autogen.sh Fixes of the new flags Aug 23, 2017
configure.ac Revert "Revert "openssl is now enabled by default."" Nov 29, 2018
gitversion.sh porting of mft-3.6.0 to mstflint-3.6.0 Mar 31, 2014
mstflint.spec.in Merge branch 'master_devel' Dec 2, 2018

README

Mellanox Technologies - www.mellanox.com
****************************************

MSTFLINT Package - Firmware Burning and Diagnostics Tools

1) Overview
    This package contains a burning tool and diagnostic tools for Mellanox
    manufactured HCA/NIC cards. It also provides access to the relevant source
    code. Please see the file LICENSE for licensing details.
	This package is based on a subset of the Mellanox Firmware Tools (MFT) package.
	For a full documentation of the MFT package, please refer to the downloads page
	in Mellanox web site.

    ----------------------------------------------------------------------------
    NOTES:
    As of mstflint-4.8.0 ./configure --enable-cs will be deprecated, instead need to use
    ./configure --enable-openssl which will enable all open SSL features including CS.

    As of mstflint-4.6.0 hca_self_test.ofed will not be a part of msflint package,
    it will be found in ofed-scripts  provided by mellanox OFED package. 
     
    This burning tool should be used only with Mellanox-manufactured
    HCA/NIC cards. Using it with cards manufactured by other vendors 
    may be harmful  to  the cards (due to different configurations).
    Using the diagnostic tools is normally safe for all HCAs/NICs.
    ----------------------------------------------------------------------------
    
2) Package Contents
    a) mstflint source code
    b) mflash lib
       This lib provides low level Flash access through Mellanox HCAs.
    c) mtcr lib (implemented in mtcr.h file)
       This lib enables access to HCA hardware registers.
    d) mstregdump utility
       This utility dumps hardware registers from Mellanox hardware
       for later analysis by Mellanox.
    e) mstvpd
       This utility dumps the on-card VPD.
    f) mstmcra
       This debug utility reads/writes a to/from the device configuration register space.
    g) mstconfig
       This tool sets or queries non-volatile configurable options for Mellanox HCAs.

3) Installation
    a) Build the mstflint utility. This package is built using a standard
       autotools method.

	   NOTE: if you are trying to build from the GitHub repository, need to run ./autogen.sh first.
	   
       Example: 
       > ./configure
       > make
       > make install

       - Run "configure --help" for custom configuration options.
       - Typically, root privileges are required to run "make install"

4) Hardware Access Device Names
   The tools in this package require a device name in the command
   line. The device name is the identifier of the target CA.
   This section describes the device name formats and the HW access flow.

   a) The devices can be accessed by their PCI ID as displayed by lspci
      (bus:dev.fn).
      Example:
      # List all Mellanox devices
      > /sbin/lspci -d 15b3:
        02:00.0 Ethernet controller: Mellanox Technologies MT25448 [ConnectX EN 10GigE, PCIe 2.0 2.5GT/s] (rev a0) 

      # Use mstflint tool to query the firmware on this device
      > mstflint -d 02:00.0 q

    b) When the IB driver (mlx4 or mthca) is loaded, the devices can be accessed
       by their IB device name.
       Example:
       # List the IB devices 
       > ibv_devinfo | grep hca_id
         hca_id: mlx4_0

       # Use mstvpd tool to dump the VPD of this device
       > mstvpd mlx4_0

    c) PCI configuration access
       In examples a and b above, the device is accessed via PCI Memory Mapping.
       The device can also be accessed by PCI configuration cycles.
       PCI configuration access is slower and less safe than memory access --
       use it only if methods a and b above do not work.

       To force configuration access, use device names in the following format:
       /proc/bus/pci/<bus>/<dev.fn>

       Example:
       # List all Mellanox devices
       > /sbin/lspci -d 15b3:
         02:00.0 Ethernet controller: Mellanox Technologies MT25448 [ConnectX EN 10GigE, PCIe 2.0 2.5GT/s] (rev a0) 
	   
       # Use mstregdump to dump HW registers, using PCI config cycles
       > mstregdump /proc/bus/pci/02/00.0 > crdump.log

       Note: Typically, you will need root privileges for hardware access

	d) Accessing a multi-function device:

	   In some configuration, the CA device identifies as a multi-function device on PCI. E.G.:
	   > /sbin/lspci -d 15b3:
	   07:00.0 Ethernet controller: Mellanox Technologies MT26468 [ConnectX EN 10GigE, PCIe 2.0 5GT/s] (rev b0)
	   07:00.1 Ethernet controller: Mellanox Technologies MT26468 [ConnectX EN 10GigE, PCIe 2.0 5GT/s] (rev b0)
	   07:00.2 Ethernet controller: Mellanox Technologies MT26468 [ConnectX EN 10GigE, PCIe 2.0 5GT/s] (rev b0)
	   07:00.3 Ethernet controller: Mellanox Technologies MT26468 [ConnectX EN 10GigE, PCIe 2.0 5GT/s] (rev b0)
	   07:00.4 Ethernet controller: Mellanox Technologies MT26468 [ConnectX EN 10GigE, PCIe 2.0 5GT/s] (rev b0)
	   07:00.5 Ethernet controller: Mellanox Technologies MT26468 [ConnectX EN 10GigE, PCIe 2.0 5GT/s] (rev b0)
	   07:00.6 Ethernet controller: Mellanox Technologies MT26468 [ConnectX EN 10GigE, PCIe 2.0 5GT/s] (rev b0)
	   07:00.7 Ethernet controller: Mellanox Technologies MT26468 [ConnectX EN 10GigE, PCIe 2.0 5GT/s] (rev b0)

	   These multiple "logical" devices are actually a single physical device, so firmware update or "physical"
	   diagnostics should be run only on one of the functions.

	   When the device driver is loaded, only the primary physical function of the device can be accessed.
	   In Linux that would typically be function 0. This function can be accessed using memory mapping, as
	   described in sub section a) above. E.G.:
	   > mstflint -d 07:00.0 q

	   When the device driver is not loaded, all the functions can be accessed using configuration cycles, as
	   described in sub section c) above. It is recommended to use function 0 for FW update or diagnostics, E.G.:
	   > mstflint -d /proc/bus/pci/07/00.0 q

5) Usage (mstflint):
       Read mstflint usage. Enter "./mstflint -h" for a short help message, or
       "./mstflint -hh" for a detailed help message.

       Obtaining firmware files:
       If you purchased your card from Mellanox Technologies, please use the
       Mellanox website (www.mellanox.com, under 'Firmware' downloads) to
       download the firmware for your card.
       If you purchased your card from a vendor other than Mellanox, get a
       specific firmware configuration (INI) file from your HCA card vendor and
       generate the binary image.
	
       Use mstflint to burn a device according to the burning instructions in 
       "mstflint -hh" and in Mellanox web site firmware page.

6) Usage (mstregdump):
       An internal register dump is displayed to the standard output.
       Please store it in a file for analysis by Mellanox.

       Example:
       > mstregdump mthca0 > dumpfile

7) Usage (mstvpd):
    A VPD dump is displayed to the standard output.
	A list of keywords to dump can be supplied after the -- flag
	to apply an output filter.

	Examples:
	> mstvpd mlx4_0
	ID: Hawk Dual Port
	PN: MNPH29C-XTR
	EC: X2
	SN: MT1001X00749
	V0: PCIe Gen2 x8
	V1: N/A
	YA: N/A
	RW:

    > mstvpd mlx4_0 -- PN ID
	PN: MNPH29C-XTR
	ID: Hawk Dual Port

8) Usage (mstconfig):
    Read mstconfig usage. Enter "mstconfig -h" for a help message.

9) Problem Reporting:
	Please collect the following information when reporting issues:

	uname -a
	cat /etc/issue
	cat /proc/bus/pci/devices
	mstflint -vv
	lspci
        mstflint -d 02:00.0 v
        mstflint -d 02:00.0 q
        mstvpd 02:00.0