Skip to main content
This guide covers checking and updating firmware on devices within SambaRack. Devices are individual components attached to racks and nodes, including BMCs, switches, PDUs, and serial terminals.

Commands

Check firmware version

Check firmware versions on devices:
Target selection: One of --rack-id or --group is required (mutually exclusive): Device types:

Single rack

Example – check BMC firmware on a single rack:
Example output:
Example – check all firmware on a rack:
Example output:

Group

Example – check BMC firmware across all racks in a group:
Example output (one row per rack):
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:
Target selection: One of --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.
Optional parameters:

Single rack

Example – update BMC firmware:
Example – update all XRDUs:
Example – update specific XRDUs:
Example – update XRDU firmware from local files:

Group

Example – update firmware across all racks in a group:
When you use --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/FAIL lines as each job completes
  • Per-rack checkpoints after each rack finishes, including PASS/FAIL counts and log file paths for any failures
  • A final Firmware Update Results table summarizing the entire run
If one or more devices fail, the command exits non-zero and prints the stdout, stderr, and instruction output log paths for each failed job.

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 → XRDU

1. THOR CARD

Pre-condition: Host must be powered on.
Update:
Post-upgrade:

2. BIOS

Pre-condition: Host must be powered on.
Update:
Post-upgrade: Applying the BIOS update and then immediately power cycling the whole node can leave the host powered on but stuck before POST (it never reaches the OS). To apply the new BIOS reliably, cycle the host on its own first, confirm the SR-IOV BIOS setting, and only then power cycle the entire node.
  1. Power off the node (host and XRDUs). Omit --type so both the host and the XRDUs are powered off.
  1. 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.
Note: Wait ~15 minutes after power-on for the host to finish POST and boot to the OS before running the SR-IOV check below.
  1. Ensure SR-IOV is disabled. SR-IOV must be disabled in the BIOS (PCIS007 is the SR-IOV attribute). Work through the checks below over Redfish.
3a. Gather the BMC connection details:
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):
BMC password is stored in the snctl secret store. Print the current value with:
—show-value prints the password in clear text. Only use it in a secure environment and never share the output
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.
3b. Check the current value:
  • If it reads "Disabled", you are done with this step, continue to step 4.
  • If it reads "Enabled", continue to step 3c.
3c. Disable SR-IOV (a successful request returns no output):
3d. Apply the change by rebooting just the host again:
Wait ~15 minutes for the host to boot, then repeat step 3a to confirm PCIS007 now reads "Disabled" before continuing. If it still reads "Enabled", do not proceed to step 4 — repeat step 3c once, and if the value still hasn’t changed, stop and contact SambaNova support rather than power cycling with SR-IOV still enabled.
  1. Power cycle the entire node once SR-IOV is confirmed disabled.

3. BMC

Update:
Post-upgrade:

4. XRDU

Pre-condition: Host must be powered off before updating XRDU firmware.
Update:
Post-upgrade:

Output columns

The firmware check output includes the following columns: