Commands
Check firmware version
Check firmware versions on devices:--rack-id or --group is required (mutually exclusive):
Device types:
Single rack
Example – check BMC firmware on a single rack:Group
Example – check BMC firmware across all racks in a group:If devices are unreachable or configured incorrectly, the firmware check fails for those devices with a
FAIL status, as shown in the example output above. For card devices, the CURR column lists each network interface with its firmware version and a per-interface PASS/FAIL comparison. The overall CARD status is PASS only when every interface matches the POR version.Update firmware
Update firmware on devices within a rack or group:--rack-id or --group is required (mutually exclusive):
Device types:
Other device types (
access_switch, data_switch, pdu, scs) are not currently supported for firmware update and will be rejected by the CLI.Single rack
Example – update BMC firmware:Group
Example – update firmware across all racks in a group:--group, snctl processes racks sequentially (one rack at a time) while running individual device updates in parallel within each rack. This bounds concurrency – for example, a group with 10 racks and 8 XRDUs each won’t launch 80 simultaneous jobs.
During the update, snctl prints:
- Per-component
PASS/FAILlines as each job completes - Per-rack checkpoints after each rack finishes, including
PASS/FAILcounts and log file paths for any failures - A final Firmware Update Results table summarizing the entire run
Order of execution
When updating multiple components, there is no strict dependency between them. However, if upgrading more than one type in the same maintenance window, follow this order: THOR CARD → BIOS → BMC → XRDU1. THOR CARD
Pre-condition: Host must be powered on.2. BIOS
Pre-condition: Host must be powered on.- Power off the node (host and XRDUs). Omit
--typeso both the host and the XRDUs are powered off.
- Power the host back on. The new BIOS is applied during POST (the console shows the BIOS settings being applied, and the host may reboot once on its own) before it boots to the OS.
- Ensure SR-IOV is disabled. SR-IOV must be disabled in the BIOS (
PCIS007is the SR-IOV attribute). Work through the checks below over Redfish.
The curl commands below authenticate to the BMC’s Redfish API and need its IP address, username, and password. BMC IP and username come from the node’s inventory. Run snctl node show <node_id> and read them from the BMC row (IP and Username columns):
If the
curl commands below time out or return an authentication error, re-verify the BMC IP, username, and password with snctl node show <node_id> and snctl secret get --device-type bmc --show-value, and confirm the BMC’s management interface is reachable from this host.- If it reads
"Disabled", you are done with this step, continue to step 4. - If it reads
"Enabled", continue to step 3c.
- Power cycle the entire node once SR-IOV is confirmed disabled.

