forked from Mellanox/mstflint
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
213 lines (171 loc) · 8.54 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
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.
h) mstfwmanager
Mellanox firmware update and query utility which scans the system for available Mellanox devices (only mst
PCI devices) and performs the necessary firmware updates.
i) mstreg
The mlxreg utility allows users to obtain information regarding supported access registers, such as their fields and
attributes.
j) mstfwtrace
The mstfwtrace utility extracts and prints trace messages generated by the firmware running on 5th generation
devices iRISCs. This tool supports secure FW flow only.
k) mstlink
The mstlink tool is used to check and debug link status and issues related to them.
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:
> ./autogen.sh
> mkdir build
> cd build
> ../configure
> make
> make install
- Run "configure --help" for custom configuration options.
- Typically, root privileges are required to run "make install"
b) Installation on DEB based OS. This package is using Debian package development tools.
Example:
> dpkg-buildpackage -uc -us
> dpkg -i ../mstflint_<version>_<arch>.deb
> dpkg -i ../mstflint-dkms_<version>_all.deb
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) Usage (mstreg):
Read mstconfig usage. Enter "mstreg -h" for a help message.
10) Usage (mstfwtrace):
Read mstconfig usage. Enter "mstfwtrace -h" for a help message.
11) Usage (mstlink):
Read mstconfig usage. Enter "mstlink -h" for a help message.
12) 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