The MFT toolbox: read-only vs mutating
S2·E2 The card that vanished at 02:40 · Bridge call from the hotel, Tuesday 02:40, three days to the demo
Builds on: DOCA-Host install and profiles
Before you read: what do you already know?
Wrong answers are fine and expected; trying first makes the lesson stick.
After this lesson you can
- Start MFT, enumerate BlueField devices and map an mst device to its PCIe address and rshim instance.
- Classify every common MFT invocation as read-only or mutating before running it.
- Read firmware version, configuration and link state from a BlueField-3 without changing anything.
- State the cold power-cycle rule and the Dell evidence for it.
Episode 2 — The card that vanished at 02:40
The night-shift operator is already talking when you join. Four hours ago he updated BlueField-3 firmware on one of the eight XE9680L nodes, rebooted, and now lspci shows nothing at the card’s bus address. He has printed a label, “RMA — DO NOT RACK”, and stuck it on the rail; it is the most decisive artifact anyone has produced tonight. The procurement person, awake for reasons nobody asks about, wants the lead time on a replacement. Someone else proposes running flint and mlxfwreset from two windows at once.
You ask one question: was that a power cycle, or a warm reboot. It was reboot. Dell KB 000300192 records exactly this on the XE9680L, where a DPU firmware update without a power cycle leaves a fatal error on the component’s bus in the Lifecycle Log, and states, per NVIDIA, that a system power cycle is required; a warm reboot is not enough.8
MFT exists because a NIC is a computer with its own firmware, and something has to read and write that firmware below the OS driver, through the mst register-access path.1 Every tool in the box has a reading form and a writing form, and the discipline of a bring-up is knowing which one you just typed. The documentation is also explicit that running two of these tools on the same device at once is not supported and might cause unexpected behavior, so the two-window plan is cancelled.1
Read before you write, and never from two windows.
Segment 1 opens the safe half of the toolbox.
1The toolbox and its one hard rule
MFT (Mellanox Firmware Tools) is the low-level toolbox for ConnectX and BlueField: it talks to the device through the mst register-access driver, below DOCA and below the OS driver. The reference used here is “MFT 4.34.1-18 LTS (2025 LTS U2)”.1 Start with sudo mst start and list devices with sudo mst status -v; the install page has you run sudo mst restart after a DOCA-Host install.110
A BlueField-3 shows up as /dev/mst/mt41692_pciconf0. The number is the device ID: the BlueField-3 user guide states that “the Device ID of all DPUs is 41692”, so the SKU does not change the prefix and the suffix counts devices on the host.7 The 3.5.0 modes page writes /dev/mst/<device> generically; you fill in what mst status printed.2
Before MFT, use the bus. lspci -d 15b3: (vendor 15b3 is Mellanox/NVIDIA; add -nn for numeric IDs) lists every function the host sees.5 On a host with more than one DPU, cross-match each /dev/rshim<N>/misc DEV_NAME (for example pcie-04:00.2) with those addresses before any bfb-install; the deployment skill calls skipping that step “the #1 cause of ‘I flashed the wrong DPU’ incidents”.5 The RShim PF is the .2 function of the BlueField PCIe device, which is why the mapping works.12
The one hard rule: “Running MFT tools in parallel or simultaneously on the same device is not supported and might cause unexpected behavior.”1 That includes a monitoring script that polls mlxlink while you run flint. Serialise everything that touches one device.
Host does not see the BlueField
Why does the deployment skill make you cross-match DEV_NAME against lspci before pushing a BFB, when the host has only one rshim device today?
2Read-only versus mutating
Every MFT tool has a read form and most have a write form. Classify before you type. The official one-liners come from the MFT General Information page; the class column is what those descriptions imply.1
| Tool | Official description | Read-only form | Mutating form |
|---|---|---|---|
mst |
Lists the available mst devices; starts and stops the register access driver | mst status -v |
mst start, mst stop only load a driver on the host |
mlxconfig |
Change some of the device configurations without creating and burning a new firmware | mlxconfig -d <dev> q |
mlxconfig -d <dev> s PARAM=value (needs a reset) |
flint |
Burns a firmware binary image or an expansion ROM image to the flash | flint -d <dev> q |
flint -d <dev> -i <image> burn |
mlxfwmanager |
A firmware update and query utility with single-click update | mlxfwmanager --query |
update run (burns firmware) |
mlxfwreset |
Loads the firmware after firmware update on ISFU-capable devices | none | always mutating: resets the device |
mlxprivhost |
Enables the user to restrict the hosts from configuring the NIC | mlxprivhost -d <dev> q |
r (restrict) and p (privilege); run on the Arm |
mlxlink |
Displays and configures port related data at the physical layer | mlxlink -d <dev> |
any configure option |
mlxdump |
Dumps device internal configuration registers | always | none |
mlxreg |
Exposes supported access registers | get |
set |
mlxburn |
Generates firmware images, burns, queries versions and VPD | query | burn |
The hardware-safety skill draws the same line from the other side. Its list of operations that need the full safety workflow is: “mlxconfig firmware-parameter write, NIC firmware burn, BFB reflash, NIC ↔ DPU mode flip, SR-IOV or device-emulation slot enable, kernel boot-parameter change (IOMMU, hugepages, VFIO), PCIe rebind/rescan/link-state flip, or BlueField cold reboot”; the firmware-burn tools it names are flint, mft, mlxfwmanager and “mlxconfig with -y reset”.3 If a command is on that list, it needs a window, an out-of-band path and a rollback. If it is not, run it whenever you need the answer.
The mode parameter is the most common write. mlxconfig -d /dev/mst/<device> q INTERNAL_CPU_OFFLOAD_ENGINE returns ENABLED(0) in DPU mode, DISABLED(1) in NIC mode, and shows an RO flag when Zero Trust has locked it.2 Setting it is mlxconfig -d /dev/mst/<device> s INTERNAL_CPU_OFFLOAD_ENGINE=1 (NIC) or =0 (DPU).2
Why is mlxfwreset classified as mutating when it does not write any bytes to flash?
3The cold power-cycle rule
The modes page is explicit: “For the configuration to take effect, Arm and NIC components must undergo a reset. Power cycle is recommended.”2 The hardware-safety skill hardens that into “the mlxconfig cold-power-cycle rule”: a warm reboot is not treated as sufficient.3 NVIDIA’s own vSphere procedure ends the same way: “Power cycle the system after switching to NIC mode”, then verify with mlxconfig -d mt41692_pciconf0 q | grep -i offload showing DISABLED.9
Dell has the evidence for firmware, not just configuration. KB 000300192 (XE9680L) records that after updating the DPU firmware without a power cycle the Lifecycle Log reports “A fatal error was detected on a component at bus [number], device 0, function 0”, and states, per NVIDIA, that “a system power cycle is required after updating the DPU firmware”; a warm reboot is insufficient.8 mlxfwreset exists to load new firmware on ISFU-capable devices, but the BlueField guidance in both the NVIDIA and Dell documents is the power cycle; treat mlxfwreset as an option you have read about, not the default you reach for on a PowerEdge.18
What the rule means in practice on a Dell host: the change window for any mlxconfig s, flint burn or mlxfwmanager update includes a full power cycle from iDRAC (or the front panel), and the ticket is not closed until a read-only query afterwards shows the intended value. For firmware, compare FW Version: against the release’s General Support table (32.50.1002 for BlueField-3 in 3.5.0).411
Every step is worked for you. Read it once, then try the faded version.The same method with steps blanked out (____). Fill them in from memory.A fresh case with no steps shown. Solve it on your own.
Goal: a full read-only picture of one card on a Dell-lab host, to attach to a ticket or to serve as the BEFORE state for a later change.
- Bus view, no driver needed:
lspci -d 15b3: -nn. Expect one bus address per BlueField-3 carrying its network PFs (one per port) plus the.2RShim function.512 Only the RShim function is fixed by the documentation; the number of network functions follows the SKU’s port count, so a single-port part such as the B3140H shows fewer of them.712 - Start MFT:
sudo mst start && sudo mst status -v. Expect/dev/mst/mt41692_pciconf0with the matching PCIe address.17 - Tie the rshim to the card:
grep DEV_NAME /dev/rshim0/miscshould print the same address as step 1 with function.2.12 - Firmware:
sudo flint -d /dev/mst/mt41692_pciconf0 q. RecordFW Version:andFW Release Date:; compare with 32.50.1002 for DOCA 3.5.0.411 - Second opinion on firmware:
sudo mlxfwmanager --query.1 - Mode:
sudo mlxconfig -d /dev/mst/mt41692_pciconf0 q INTERNAL_CPU_OFFLOAD_ENGINE.ENABLED(0)is DPU mode,DISABLED(1)is NIC mode,ROmeans Zero Trust.2 - Link:
sudo mlxlink -d /dev/mst/mt41692_pciconf0for physical-layer state, display only.1 - Every command above is a read; nothing needs a window, and nothing needs a power cycle afterwards.
lspci -d ____: -nn— expect one network function per ____ plus the.____RShim function.sudo mst ____ && sudo mst ____ -v.grep ____ /dev/rshim0/miscmatches the PCIe address with function.____.sudo flint -d /dev/mst/____ q— recordFW ____:andFW ____ ____:.sudo mlxfwmanager --____.sudo mlxconfig -d /dev/mst/mt41692_pciconf0 q ____—ENABLED(0)means ____ mode.sudo mlxlink -d /dev/mst/mt41692_pciconf0is ____-only.
A host has two BlueField-3 cards. lspci -d 15b3: -nn shows functions at 21:00.0, 21:00.1, 21:00.2, 98:00.0, 98:00.1, 98:00.2. mst status -v lists mt41692_pciconf0 and mt41692_pciconf1. /dev/rshim0/misc reports DEV_NAME pcie-98:00.2. Write the exact read-only sequence that (a) tells you which mst device is the card behind rshim0, (b) records firmware and mode for both cards, and (c) flags which of these commands would have required a window if you had typed them: mlxconfig s, mlxconfig q, flint q, mlxfwreset. Acceptance: your join uses the PCIe address, not the index; every command you list is a read; the classification matches the table.
Why does a warm reboot not apply an mlxconfig change on a BlueField, when it does apply a driver change on the host?
End of Episode 2 — After the power cycle
iDRAC power-cycles the chassis. After POST, lspci -d 15b3: lists the functions again, mst status -v prints /dev/mst/mt41692_pciconf0, and flint q shows the firmware version the operator believed he had installed.15 Nobody quotes a replacement. The label goes in his pocket, for later. Every read-only output is saved as the night’s record, and the mode value becomes the BEFORE state for the change request to come.
What you say on the call: “On BlueField a reboot is not a reset. The new value loads when the card comes out of reset, so every firmware or mlxconfig change ends with a power cycle and a read that confirms it.”28
By Wednesday noon the SE reports twenty-four BF-Bundle pushes, exit code zero every time, and not one SSH session to an Arm.
Lab
Read-only0 of 8 steps doneAll steps are read-only; nothing here changes firmware, mode or link state.
lspci -d 15b3: -nn.Expected: one bus address per BlueField-3 carrying its network PFs (one per port, so two on a dual-port B3220 and one on a single-port B3140H) plus the
.2RShim function; only the.2function is fixed by the documentation, so do not grade this step on a fixed count.127 If nothing prints, the card is not enumerated; stop and go to lesson 2.6 (aux power, PCIe init).5sudo mst start && sudo mst status -v.Expected:
/dev/mst/mt41692_pciconf0and the PCIe address from step 1. Ifmst startfails, DOCA-Host or MFT is not installed correctly; do not continue.17grep -E 'DEV_NAME|DEV_INFO' /dev/rshim0/misc.Expected:
DEV_NAME pcie-<bus>:00.2matching step 1. If there is no/dev/rshim0, the rshim service is not running or the BMC owns rshim (lesson 2.4).12sudo flint -d /dev/mst/mt41692_pciconf0 q | grep -E 'FW Version|FW Release Date|PSID'. Record both version and date; compare with 32.50.1002 for 3.5.0.411sudo mlxfwmanager --query.Expected: the same firmware version as step 4; a difference means one of the tools is reading a different device.1
sudo mlxconfig -d /dev/mst/mt41692_pciconf0 q INTERNAL_CPU_OFFLOAD_ENGINE. RecordENABLED(0),DISABLED(1)orRO.2sudo mlxlink -d /dev/mst/mt41692_pciconf0. Record link state and speed per port.1- Save all outputs as
~/bf3-readonly-$(date +%F).txt. This file is the BEFORE state required by the mode-switching lesson.6
- Copy the read-only versus mutating table into your notes and add these six lines, classifying each:
mlxconfig -d <dev> s INTERNAL_CPU_OFFLOAD_ENGINE=0,flint -d <dev> q,mlxfwreset,mlxprivhost -d <dev> q,mlxlink -d <dev>,mlxdump.Expected: two mutating (
mlxconfig s,mlxfwreset), four read-only.1 If your answer differs, re-read the official one-liner for that tool. - Join exercise. Given
lspci -d 15b3: -nnoutput with functions at04:00.0,04:00.1,04:00.2,21:00.0,21:00.1,21:00.2and/dev/rshim0/misccontainingDEV_NAME pcie-21:00.2: write which PCIe devicershim0belongs to.Expected: the card at
21:00; the.2function is the RShim PF.12 If not: re-read Segment 1. - Version window exercise. A
flint qoutput showsFW Version: 32.50.1002. Decide whether it is in window for DOCA 3.5.0 and write the rule you used.Expected: in window; 32.50.1002 is the 3.5.0 General Support firmware.114
- Draft the change note for a NIC-mode switch on an R760 using only Segment 3: what command writes, what applies it, what reads it back.
Expected:
mlxconfig s INTERNAL_CPU_OFFLOAD_ENGINE=1, a full power cycle from iDRAC,mlxconfig qshowingDISABLED(1).2 If your note says “reboot”, fix it. - Read Dell KB 000300192 and write the one sentence you would paste into a customer reply about firmware updates and reboots.8
Retrieval check
Answer from memory before looking anything up; misses become flashcards.
Explain it to a Dell SE
Explain to a Dell SE, in four sentences, how you tell a safe MFT command from a dangerous one and why a reboot is not always a reboot.
Sources
12 sourcesFacts in this lesson were checked against MFT 4.34.1-18 LTS General Information, DOCA 3.5.0 BlueField Modes of Operation, Dell KB 000300192, 2026-09-06. Dates are when each page was fetched. Sources fetched 2026-09-06, checked 16 days ago.
- MFT 4.34.1-18 LTS: General Information (tool list)
- BlueField Modes of Operation
- NVIDIA/skills: doca-hardware-safety SKILL (mutating operations list, cold power-cycle rule)
- NVIDIA/skills: doca-version CAPABILITIES (flint q anchors)
- NVIDIA/skills: doca-bf3-deployment CAPABILITIES (lspci 15b3, DEV_NAME cross-match)
- NVIDIA/skills: doca-bf3-deployment TASKS (pre-flight capture)
- NVIDIA BlueField-3 Networking Platform User Guide (device ID 41692)
- Dell KB 000300192: XE9680L, a power cycle is required after updating DPU firmware
- HowTo Configure NVIDIA BlueField-3 to NIC Mode on VMware vSphere 8.0
- DOCA-Host Installation and Upgrade (mst restart)
- DOCA General Support (firmware table)
- BlueField Platform Software Troubleshooting Guide: SoC Management Interface (RShim)
The same idea elsewhere
Other lessons that cover this ground, sometimes from another course's angle.
- Elsewhere in this course DMS: one interface for every device Elsewhere in this course · Same ground: MFT, modes and power-cycle
- Elsewhere in this course E-switch, representors, and switchdev Elsewhere in this course · Same ground: mlxconfig, modes and link
- Elsewhere in this course iDRAC, BIOS, CPLD and the DPU Elsewhere in this course · Same ground: mlxconfig, modes and firmware