Networking NVIDIA NVOS User Manual for InfiniBand Switches

Upgrading System Firmware

NVOS software package version has a default switch firmware version. When updating the operating system software to a new version, an automatic firmware update process will be attempted by NVOS. This process is described below.

Importing Firmware and Changing the Default Firmware

To perform an automatic firmware update by the OS for a different switch firmware version without changing the OS version, import and install the firmware package as described below. The OS sets it as the new default firmware and performs the firmware update automatically.

Default Firmware Change

  1. Display the firmware that is currently available.

    admin@nvos:~$ nv show platform firmware ASIC  
                     operational         applied
    ---------------  ------------------  -------
    part-number      MQM9700-NS2X-NS_Ax         
    actual-firmware  31.2014.0946               
    auto-update      enabled             enabled
    fw-source        default             default
    
  2. Import the firmware image (.mfa file) to the switch.

    admin@nvos:~$ nv action fetch platform firmware ASIC /path/to/fw-image.mfa
    

    Alternatively, you can upload the FW file from the host to the switch:

    The firmware file must be copied to the predefined directory: "/host/fw-images/asic"

    user@host:~$ scp <path-to-fw-file> <switch-admin-username>@<switch-ip-address>:/host/fw-images/asic/<desired-name>.mfa
    
    
  3. Configure default firmware source from user.

    admin@nvos:~$ nv set platform firmware ASIC fw-source custom
    
  4. Display system firmware component information.

    admin@nvos:~$ nv show platform firmware ASIC  
                     operational         applied
    ---------------  ------------------  -------
    part-number      MQM9700-NS2X-NS_Ax         
    actual-firmware  31.2014.0946               
    auto-update      enabled             enabled
    fw-source        default             default
    
  5. Apply the configuration

    admin@nvos:~$ nv config apply
    
  6. Save the configuration.

    admin@nvos:~$ nv config save
    
  7. Install the firmware image.

    admin@nvos:~$ nv action install platform firmware ASIC files fw-image.mfa
    The operation will initiate a component firmware update.
    Type [y] to install the firmware and reboot afterwards.
    Type [N] to install the firmware without reboot.
     
    Do you want to reboot? [y/N]
    
  8. Press 'Y' will cause system reboot to install and activate firmware.

  9. Press 'N' requires manual reboot from user later on.

    admin@nvos:~$ nv action reboot system
    

Upgrade Firmware

This section provides step-by-step instructions to manually check and update software and firmware on InfiniBand switch to ensure the system is up to date with the latest software and firmware versions.

  1. These updates are not done every release. See NVIDIA NVOS Release Notes to see which versions should be used.

  2. A power cycle is needed at the end of the upgrade process.

  3. The upgrade process will require maintenance window.

  4. If necessary, retrieve logs for customer support using the command "nv action generate system tech-support".

Component Image Update Using NVOS CLI

Firmware updates can be done by NVOS CLI commands. CLI commands are blocking, meaning each command must be finished before another one can be.

There are two stages to upgrade each component:

  1. Fetching a file from the unpacked bundle. 

    admin@nvos:~$ nv action fetch platform firmware <component-id> <remote-url>
    

    For details, see nv action fetch platform firmware.

  2. Installing a component:

    admin@nvos:~$ nv action install platform firmware <component-id> files <file-name>
    

    For details, see nv action install platform firmware files.

To save time, it it recommended to update one-by-one component and then to choose a power cycle.

  • <component-id> can be one of the following: ASIC, BIOS, and CPLD1.

  • Once upgrading a specific CPLD, all other CPLDs will be upgraded as well.

  1. Power cycle should be triggered if it was chosen after install command but if manual power cycle required, run the following:

    admin@nvos:~$ nv action reboot system
    
  2. To verify firmware versions after power cycle, run the following:

    For details, see nv show platform firmware.

Transceiver Firmware Upgrade

Firmware updates can be done by NVOS CLI commands. CLI commands are blocking, meaning each command must be finished before another one can be.

There are two stages to upgrade each component:

  1. Fetching a file from the unpacked bundle. 

    admin@nvos:~$ nv action fetch platform firmware transceiver <file-path>
    

    For details, see nv action fetch platform firmware.

  2. Installing transceiver firmware.

    admin@nvos:~$ nv action install platform transceiver <transceiver-id> firmware files <file-name>
    

    For details, see nv action install platform transceiver firmware files.

In order to activate the transceiver firmware, NVOS will reset the transceiver as part of the install action.

To verify firmware version, run the following:

admin@nvos:~$ nv show platform transceiver <transceiver-id> firmware

For details, see nv show platform transceiver firmware.

Component Image Update Using RestAPI

RestAPI can be used from remote server to perform operations on the switch.
RestAPI is not blocking, meaning command can be sent before the previous finished. To deal with this nature, each command returns Task ID, use the Task ID to query for the result between the commands. State of “action_success” means the operation ended successfully.

Upgrades consist of fetch, install, and power cycle at the end of the entire process.

REST API Commands

Query command, should be executed between commands:

admin@nvos:~$ curl -k --user <nvos-user>:<nvos-password> --request GET 'https://<switch-ip>/nvue_v1/action/<task-id>'
  1. Fetching component image file:

    admin@nvos:~$ curl -k --user <nvos-user>:<nvos-password> --request POST 'https://<switch-ip>/nvue_v1/platform/firmware/<component>' -H 'Content-Type: application/json' -d '{"@fetch": {"state": "start", "parameters": {"remote-url": "scp://<server-user>:<<server-password> >@<PATH_TO_FILE>"}}}'
    
  2. Install the component file:

    admin@nvos:~$ curl -k --user <nvos-user>:<nvos-password> --request POST 'https://<switch-ip>/nvue_v1/platform/firmware/<component>/files/</<file-name>' -H 'Content-Type: application/json' -d '{"@install": {"state": "start", "parameters": {"force": false}}}'
    
  3. Power cycle:

    admin@nvos:~$ curl -k --user <nvos-user>:<nvos-password>--request POST 'https://<switch-ip>/nvue_v1/system' -H 'Content-Type: application/json' -d '{"@reboot": {"state": "start", "parameters": {"force": true}}}'
    
  4. After power cycle, check firmware version:

    admin@nvos:~$ curl -k --user <nvos-user>:<nvos-password> --request GET 'https://<nvos-ip>/nvue_v1/platform/firmware'
    


Error Status Catalog

Use the table below to identify the errors and their meaning.

Bundles List

BIOS

Scenario

Error

Selected file for installation doesn't exist

Failed to install BIOS firmware file: No such firmware 

Bad or corrupted file

Invalid file: /host/fw-images/bios/bad_file.cab

Bad Onie version

ERROR: ONIE {} or later is required

Failed to enable ONIE firmware update mode

ERROR: failed to enable ONIE firmware update mode

Failed to disable ONIE firmware update mode

ERROR: failed to disable ONIE firmware update mode

Installation script was interrupted by signal

WARNING: Interrupted by ${_sig}: disable ONIE firmware update mode

CPLD

Scenario

Error

Selected file for installation doesn't exist

Failed to install CPLD firmware file: No such firmware 

Bad or corrupted file

Invalid file: /host/fw-images/cpld/bad_file.vme

MST service not started (never started or failed to start)

ERROR: mst driver is not loaded

MST device path doesn't exist or failed to it

ERROR: Failed to get mst device: pattern={}, devices={}

CPLD update command failed

ERROR: Failed to update {} firmware: {}

Last updated: