> For the complete documentation index, see [llms.txt](https://asus-isg-aidc.gitbook.io/guide/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://asus-isg-aidc.gitbook.io/guide/latest/cli/commandreference/firmwarevalidation.md).

# Firmware Validation

| Developer | Last modified |
| --------- | ------------- |
| AIDC Team | 2026/07/14    |

## Table of Contents

* [1. Overview](#overview)
* [2. Views](#views)
* [3. Focused Checks](#focused-checks)
* [4. Common Flags](#common-flags)
* [5. Usage Examples](#usage-examples)

***

## 1. Overview <a href="#overview" id="overview"></a>

{% hint style="warning" %}
**⚠️ Prerequisite: `aidc-cli init` required first**

This command depends on settings saved by [`aidc-cli init`](/guide/latest/cli/commandreference/init.md). Before running it, make sure you have completed:

* [`aidc-cli init inventory`](/guide/latest/cli/commandreference/init.md#inventory) — render the node inventory from `aidc.csv`
* [`aidc-cli init bmc-set`](/guide/latest/cli/commandreference/init.md#bmc-configuration) — save the BMC credentials

For the full setup sequence, see the [Getting Started](/guide/latest/cli/gettingstarted.md) guide.
{% endhint %}

The `chkfw` command collects firmware validation inventory from target nodes. It provides two full-inventory views and several focused checks for specific firmware domains.

```bash
aidc-cli chkfw <subcommand> [flags]
```

{% hint style="info" %}
Use `brief` or `summary` when you want an all-in-one firmware inventory. Use the focused subcommands when you only need one firmware domain such as BIOS, BMC, NVMe, or GPU.
{% endhint %}

***

## 2. Views <a href="#views" id="views"></a>

| Subcommand | Description                                   |
| ---------- | --------------------------------------------- |
| `brief`    | Collect a compact firmware version inventory  |
| `summary`  | Collect a normalized firmware version summary |

***

## 3. Focused Checks <a href="#focused-checks" id="focused-checks"></a>

| Subcommand                  | Description                                                                       |
| --------------------------- | --------------------------------------------------------------------------------- |
| `bios-version`              | Collect focused BIOS firmware version inventory                                   |
| `bmc-version`               | Collect focused BMC firmware version inventory                                    |
| `raid-version`              | Collect focused RAID controller firmware version inventory                        |
| `nvidia-networking-version` | Collect focused NVIDIA networking (ConnectX/BlueField) firmware version inventory |
| `nvme-version`              | Collect focused NVMe firmware version inventory                                   |
| `gpu-version`               | Collect focused GPU VBIOS version inventory                                       |

***

## 4. Common Flags <a href="#common-flags" id="common-flags"></a>

All `chkfw` subcommands support the following flag:

| Flag       | Short | Required | Description                                                                                     |
| ---------- | :---: | :------: | ----------------------------------------------------------------------------------------------- |
| `--stdout` |   —   |     ❌    | Output the raw firmware validation JSON to stdout instead of only saving the generated artifact |

***

## 5. Usage Examples <a href="#usage-examples" id="usage-examples"></a>

```bash
# Collect the compact full firmware inventory
aidc-cli chkfw brief

# Collect the normalized firmware summary
aidc-cli chkfw summary

# Check BIOS and BMC firmware versions on selected nodes
aidc-cli chkfw bios-version -l node01,node02
aidc-cli chkfw bmc-version -l node01,node02

# Output NVMe firmware inventory as raw JSON
aidc-cli chkfw nvme-version --stdout

# Verify GPU VBIOS versions for selected nodes
aidc-cli chkfw gpu-version -l node05
```
