> 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/portal/firmwareintroduction/firmwareupdate.md).

# Firmware Update

| Developer | Last modified |
| --------- | ------------- |
| AIDC Team | 2026/05/05    |

## Feature Description

The Firmware Update page provides a three-step guided process to help you create firmware update tasks. By following the on-screen instructions step by step, you can initiate updates for specified devices.

![UpdateTask](https://pub-f334ff01208c4e6195b80133ac6e6030.r2.dev/portal/firmwareManagement/update-task.png)

***

## Task Creation Process

The entire process is divided into three steps:

```
Step 1: Select Firmware Type → Step 2: Select Devices → Step 3: Select Firmware File
```

***

## Step 1: Select Firmware Type

### Select Firmware Category

The page displays available firmware types in card format, including:

| Type | Description                               |
| ---- | ----------------------------------------- |
| BIOS | Motherboard Basic Input Output System     |
| BMC  | Baseboard Management Controller           |
| NIC  | Network Interface Card                    |
| NVMe | Non-Volatile Memory Express Flash Storage |

Each card shows the number of currently available firmware for that type. After clicking a card, a selection circle appears in the upper right corner, indicating it has been selected.

### Select Update Method

After selecting a firmware type, if that type has multiple update methods (e.g., Redfish x86, Redfish aarch64), options will appear at the bottom of the page for you to specify which update method to use.

If the selected category has only one available update method, it is selected automatically.

### Complete Step 1

After selecting both type and update method, click the **Next** button to continue.

> **Note**: You must select both firmware type and update method for the "Next" button to be enabled.

***

## Step 2: Select Devices

![SelectDevices](https://pub-f334ff01208c4e6195b80133ac6e6030.r2.dev/portal/firmwareManagement/update-task-select-devices.png)

### Search and Filter Devices

The top of the page provides a search field that can quickly find target devices using the following information:

* Hostname
* Model
* Serial Number
* IP Address

### Device List

Devices are displayed grouped by Node Group, with each device card containing:

* Hostname
* Model
* Serial Number (SN)
* BMC IP Address
* Ethernet IP (eth0)
* Device Status Label

### Select Devices

You have several selection methods:

| Operation            | Description                       |
| -------------------- | --------------------------------- |
| Click device card    | Select / deselect a single device |
| Click group checkbox | Select / deselect entire group    |
| Click "Select All"   | Select all filtered devices       |
| Click "Deselect All" | Deselect all                      |

The number of currently selected devices is displayed at the bottom of the page.

### Device Status Description

| Status   | Icon Color | Description                                                  |
| -------- | ---------- | ------------------------------------------------------------ |
| Online   | Green      | Can be normally selected                                     |
| Offline  | Gray       | **Cannot select**, device currently unavailable              |
| Updating | Blue       | **Cannot select**, device currently performing other updates |
| Unknown  | Gray       | **Cannot select**, status cannot be confirmed                |

> **Note**: Offline, updating, or unknown status devices will appear dimmed, indicating they cannot be selected.

### Complete Step 2

After selecting at least one device, click the **Next** button to continue.

***

## Step 3: Select Firmware File

![SelectFiles](https://pub-f334ff01208c4e6195b80133ac6e6030.r2.dev/portal/firmwareManagement/select-files.png)

### Set Task Name

The **Task Name** field will automatically populate with a default name in the format:

```
[Firmware Type] Update - [Creation Date]
```

You can directly edit and modify it to a custom name.

If the selected update method defines extra parameters, additional fields are rendered below the task settings area, such as dropdowns, text inputs, and boolean toggles.

When the method includes options such as `updateMode`, the page also shows timing hints. If that setting restricts firmware extensions, incompatible files are disabled in the firmware list.

### NVMe Device Configuration (Only displayed for NVMe type)

![SelectFiles](https://pub-f334ff01208c4e6195b80133ac6e6030.r2.dev/portal/firmwareManagement/nvme-configuration.png)

If the selected firmware type is **NVMe**, Step 3 will display an "NVMe Device Configuration" section for specifying the range of devices to update:

**Add Device Range Configuration**

* **NVMe Device (Required)**: Enter a single device index or device range
  * The input field automatically displays the `/dev/nvme` prefix; you only need to enter the numeric portion
  * Single-device format: `1`, `5`, `10`, etc.
  * Range format: `1~10`, `5~12`, etc., representing all devices from the start number to end number
  * **Requirement**: Start number must be ≤ end number
  * Example: Entering `1~10` will select `/dev/nvme1` through `/dev/nvme10`
* **Exclude Device (Optional)**: Enter a single device index to exclude
  * The input field automatically displays the `/dev/nvme` prefix; you only need to enter the numeric portion
  * Format: `1`, `5`, `7`, etc.
  * **Must be within the specified range**, otherwise invalid
  * Example: When range is `1~10`, entering `5` will exclude `/dev/nvme5`

> **Note**: NVMe firmware updates currently support SAMSUNG firmware only.

**Support for Multiple Configurations**

* Click the green **"+"** button on the right side of the title to add additional device range configurations
* When multiple configurations exist, a red **"−"** button appears on the right of each row to delete that configuration
* The system automatically consolidates all configurations; the final device list removes duplicates and sorts by device number

**Device List Preview**

* Below the configuration settings, a blue "Device List Preview" panel displays
* The preview panel shows the final device list calculated in real-time from all configurations
* Each device is presented as a blue tag; you can scroll down to view all
* The total number of devices is displayed, e.g., "(13 devices)"
* Single-device and range configurations are both reflected in the preview

> **Tips**:
>
> * The system automatically converts your numeric input to the complete device path format (e.g., `1` → `/dev/nvme1`)
> * Device range format and whether exclude devices are within range will both be validated
> * If the format is incorrect or exclude device is out of range, an error message will be displayed when creating the task

### Select Firmware File

The page will list available firmware file cards from the firmware repository, with each card containing:

* File Name
* Version
* Vendor
* File Size
* Release Date
* Description

Click a card to select that firmware; only one firmware can be selected at a time.

### Remote Firmware URL (Only displayed for specific update methods)

If the selected update method requires a remote firmware location, Step 3 shows a **Firmware URL** field. In some methods, the URL field is rendered inside the dynamic configuration section instead of the legacy standalone block.

* **Firmware URL**: Enter the download link for the firmware file

When this mode is active, the **Available Firmware Files** list is hidden.

#### URL Format Validation

![UrlValidation](https://pub-f334ff01208c4e6195b80133ac6e6030.r2.dev/portal/firmwareManagement/firmware-url.png)

The system automatically validates the entered URL format to ensure the firmware source is valid and accessible. The entered URL must comply with the following rules:

| Validation Rule                      | Description                                                                                       |
| ------------------------------------ | ------------------------------------------------------------------------------------------------- |
| **Protocol Required**                | Only accepts URLs starting with `http://` or `https://`                                           |
| **Valid URL Format**                 | Must include a valid hostname or IP address                                                       |
| **Filename with Extension Required** | URL path must end with a filename that includes an extension (e.g., `.bin`, `.ima`, `.cap`, etc.) |

**Validation Error Messages**

When the entered URL does not comply with the rules, a red error message will immediately display below the field:

* `Firmware URL is required` — URL field is empty
* `URL must start with http:// or https://` — Missing protocol or using an unsupported protocol
* `Invalid URL format` — URL format is invalid or missing hostname
* `URL must include a filename with extension` — URL path does not end with a filename, or filename lacks an extension

**Examples**

✅ **Valid URLs**:

```
http://10.10.31.69/firmware/bmc/R72324112_NCHC_2.ima
https://firmware.example.com/updates/bios_v1.2.bin
http://192.168.1.100/files/nic-firmware.cap
```

❌ **Invalid URLs**:

```
sss                                    → Error: Invalid URL format
http://hostname                        → Error: URL must include a filename with extension
http://hostname/path/                  → Error: URL must include a filename with extension
ftp://server/firmware/file.bin         → Error: URL must start with http:// or https://
```

> **Note**:
>
> * When the URL field displays a red error message, the **Create Task** button is automatically disabled and submission is blocked
> * The button will be re-enabled only after all validation errors are corrected
> * URL fields in the dynamic configuration parameters section (such as `uri` or `firmwareUrl`) are also subject to the same validation rules

### Create Task

After confirming all settings, click the **Create Task** button. The button will display "Creating..." and enter loading state; please wait for task creation to complete.

***

## Task Creation Success

After successful task creation, a success dialog will pop up displaying:

* Success icon
* **Job ID** of the newly created task

You can choose:

| Button         | Action                                                  |
| -------------- | ------------------------------------------------------- |
| View Tasks     | Go to Update History page to view task execution status |
| Create Another | Reset form to continue creating another task            |

***

## Common Operation Tips

* To return to the previous step, click the **Previous** button; your selections will not be lost
* The number of selected devices will update in real-time at the bottom of Step 2
* After creating a task, go to the Update History page to track execution progress
