OEM Parameters Support for Firmware Update Operations#

NVFWUPD 2.0.9 introduces support for OEM (Original Equipment Manufacturer) specific parameters during firmware update operations. This feature allows users to pass vendor-specific parameters to customize the firmware update behavior according to OEM requirements.

Overview#

OEM parameters provide a flexible mechanism to pass vendor-specific configuration options during firmware updates. These parameters are passed through a JSON file and used to control various aspects of the update process based on manufacturer specifications.

Using OEM Parameters#

OEM parameters are specified using the --oem_parameters or -o option with the update_fw command. The parameters are defined in a JSON file that is passed as an argument.

Syntax#

$ nvfwupd -t ip=<BMC IP> user=<username> password=<password> servertype=<servertype> update_fw -p <package> -o <oem_params.json>

or

$ nvfwupd -t ip=<BMC IP> user=<username> password=<password> servertype=<servertype> update_fw -p <package> --oem_parameters <oem_params.json>

OEM Parameters File Format#

The OEM parameters file is a JSON file containing key-value pairs specific to the OEM requirements. The structure and accepted parameters vary by platform and vendor.

Basic Structure#

{
    "ImageType": "PLDM",
    "Platform": "HGX"
}

Example Usage#

Example 1: Dell SBIOS Update with OEM Parameters#

This example demonstrates updating a Dell SBIOS on GB200 NVL using OEM parameters to specify the image type and platform.

First, check the current firmware versions:

$ nvfwupd -t ip=<BMC_IP> user=<username> password=<password> servertype=GB200 show_version -p DellServer9712a_BIOS216.fwpkg

System Model: GB200 NVL
Part number: 699-24764-0001-200
Serial number: 1320225110016
Packages: ['cec1736ApFwPkg-216']
Connection Status: Successful

Firmware Devices:
AP Name                  Sys Version            Pkg Version   Up-To-Date
-------                  -----------            -----------   ----------
BMC                      25.07.29001500         N/A           No
HGX_FW_BMC_0             GB200Nvl-25.02-E       N/A           No
HGX_FW_CPLD_0            0.1D                   N/A           No
HGX_FW_CPU_0             12                     N/A           No
HGX_FW_CPU_1             12                     N/A           No
HGX_FW_ERoT_BMC_0        01.04.0008.0000_n04    N/A           No
HGX_FW_ERoT_CPU_0        01.04.0008.0000_n04    N/A           No
HGX_FW_ERoT_CPU_1        01.04.0008.0000_n04    N/A           No
HGX_FW_ERoT_FPGA_0       01.04.0008.0000_n04    N/A           No
HGX_FW_ERoT_FPGA_1       01.04.0008.0000_n04    N/A           No
HGX_FW_FPGA_0            1.30                   N/A           No
HGX_FW_FPGA_1            1.30                   N/A           No
HGX_FW_GPU_0             97.00.A2.00.02         N/A           No
HGX_FW_GPU_1             97.00.A2.00.02         N/A           No
HGX_FW_GPU_2             97.00.A2.00.02         N/A           No
HGX_FW_GPU_3             97.00.A2.00.02         N/A           No
HGX_PCIeSwitchConfig_0   01151024               N/A           No
StorageUnit_0            1.0.0                  N/A           No
StorageUnit_2            E2MU290                N/A           No
StorageUnit_3            E2MU290                N/A           No
StorageUnit_4            E2MU290                N/A           No
StorageUnit_5            E2MU290                N/A           No
StorageUnit_6            E2MU290                N/A           No
StorageUnit_7            E2MU290                N/A           No
StorageUnit_8            E2MU290                N/A           No
StorageUnit_9            E2MU290                N/A           No
------------------------------------------------------------------------
Error Code: 0

Note

An exact component match could not be made for this SBIOS firmware package due to metadata mismatches. This will be improved in future releases.

Create an OEM parameters file specifying the image type and platform:

$ cat oem_params.json

{
    "ImageType": "PLDM",
    "Platform": "HGX"
}

Use the OEM parameters file during the SBIOS update:

$ nvfwupd -t ip=<BMC_IP> user=**** password=***** servertype=GB200 update_fw -p DellServer9712a_BIOS216.fwpkg -o oem_params.json

Updating ip address: ip=XXXX
FW package: ['DellServer9712a_BIOS216.fwpkg']
Ok to proceed with firmware update? <Y/N>
y
{"@odata.id": "/redfish/v1/TaskService/Tasks/2", "@odata.type": "#Task.v1_7_4.Task", "Description": "Task for Update Service Task", "Id": "2", "Messages": [{"@odata.type": "#Message.v1_3_0.Message", "Message": "The action UpdateService.MultipartPush was submitted to do firmware update.", "MessageArgs": ["UpdateService.MultipartPush"], "MessageId": "UpdateService.1.0.StartFirmwareUpdate", "Resolution": "None", "Severity": "OK"}], "Name": "Update Service Task", "StartTime": "2025-10-21T21:20:32+04:00", "TaskMonitor": "/redfish/v1/TaskService/TaskMonitors/2", "TaskState": "New", "TaskStatus": "OK"}
  FW update started, Task Id: 2
Wait for Firmware Update to Start...
  TaskState: Running
  PercentComplete: 20
  TaskStatus: OK
  TaskState: Completed
  PercentComplete: 100
  TaskStatus: OK
  Firmware update successful!
Overall Time Taken: 0:04:55
Refer to 'NVIDIA Firmware Update Document' on activation steps for new firmware to take effect.
------------------------------------------------------------------------------------------------------------------------
Error Code: 0

Note

In this example, the OEM parameters specify ImageType: PLDM and Platform: HGX which are required for Dell SBIOS updates on GB200 NVL systems. The update completed successfully in approximately 5 minutes.

Post Activation Validation:

Validate that the firmware update completed successfully by checking the updated firmware versions (CPU version should be 16):

$ nvfwupd -t ip=<BMC_IP> user=**** password=***** servertype=GB200 show_version -p DellServer9712a_BIOS216.fwpkg

System Model: GB200 NVL
Part number: 699-24764-0001-200
Serial number: 1320225110016
Packages: ['cec1736ApFwPkg-216']
Connection Status: Successful

Firmware Devices:
AP Name                   Sys Version          Pkg Version  Up-To-Date
-------                   -----------          -----------  ----------
BMC                       25.07.29001500       N/A          No
HGX_FW_BMC_0              GB200Nvl-25.02-E     N/A          No
HGX_FW_CPLD_0             0.1D                 N/A          No
HGX_FW_CPU_0              16                   N/A          No
HGX_FW_CPU_1              16                   N/A          No
HGX_FW_ERoT_BMC_0         01.04.0008.0000_n04  N/A          No
HGX_FW_ERoT_CPU_0         01.04.0008.0000_n04  N/A          No
HGX_FW_ERoT_CPU_1         01.04.0008.0000_n04  N/A          No
HGX_FW_ERoT_FPGA_0        01.04.0008.0000_n04  N/A          No
HGX_FW_ERoT_FPGA_1        01.04.0008.0000_n04  N/A          No
HGX_FW_FPGA_0             1.30                 N/A          No
HGX_FW_FPGA_1             1.30                 N/A          No
HGX_FW_GPU_0              97.00.A2.00.02       N/A          No
HGX_FW_GPU_1              97.00.A2.00.02       N/A          No
HGX_FW_GPU_2              97.00.A2.00.02       N/A          No
HGX_FW_GPU_3              97.00.A2.00.02       N/A          No
HGX_PCIeSwitchConfig_0    01151024             N/A          No
StorageUnit_0             1.0.0                N/A          No
StorageUnit_2             E2MU290              N/A          No
StorageUnit_3             E2MU290              N/A          No
StorageUnit_4             E2MU290              N/A          No
StorageUnit_5             E2MU290              N/A          No
StorageUnit_6             E2MU290              N/A          No
StorageUnit_7             E2MU290              N/A          No
StorageUnit_8             E2MU290              N/A          No
StorageUnit_9             E2MU290              N/A          No
----------------------------------------------------------------------
Error Code: 0

Configuration File Integration#

OEM parameters can also be specified directly in the YAML configuration file using the OemParameters field:

TargetPlatform: 'GB200'

BMC_IP: "BMC_IP"
RF_USERNAME: "BMC_USERNAME"
RF_PASSWORD: "BMC_PASSWORD"

FWUpdateFilePath:
- "DellServer9712a_BIOS216.fwpkg"

FwUpdateMethod: "MultipartHttpPushUri"

UpdateParametersTargets: []

OemParameters: {"ImageType": "PLDM", "Platform": "HGX"}

Using the configuration file:

$ nvfwupd -c config.yaml show_version
$ nvfwupd -c config.yaml update_fw

GB200/GB300 NVL Platforms#

GB200 and GB300 NVL platforms support platform-specific parameters for special firmware types:

Dell SBIOS Updates#

For Dell SBIOS updates on GB200 NVL systems, use the following OEM parameters:

{
    "ImageType": "PLDM",
    "Platform": "HGX"
}

These parameters specify the firmware image type (PLDM) and the target platform (HGX) required for Dell SBIOS firmware updates.