Cisco Nexus 9000 Series NX-OS Software Upgrade and Downgrade Guide, Release 10.6(x)

PDF

Parallel firmware download

Updated: February 5, 2026

Overview

This section provides an overview of the parallel firmware download feature, which accelerates transceiver firmware upgrades by enabling simultaneous downloads, and outlines the necessary steps, guidelines, and precautions for efficiently copying, downloading, running, and committing firmware on switch transceiver ports.

The parallel firmware download feature reduces the time needed for upgrading transceiver firmware in network switches by allowing multiple downloads to occur simultaneously.


Firmware download guidelines and limitations

Understand the supported firmware download workflow and operational steps before starting the update.

  • Group ports correctly for parallel processing.

  • Although different port groups can be processed in parallel, ports on the same Inter-Integrated Circuit (I2C) line download sequentially.

  • Use this list of commands to perform these operations:

    • Start: Initiates the firmware download to the transceiver.

      Note

      For single-bank transceivers, this overwrites the existing firmware. Execute the run and commit commands even for single-bank transceivers. For dual-bank transceivers, the new firmware is downloaded to the inactive bank.

    • Run: Activates the newly downloaded firmware image.

      Note

      For dual-bank transceivers, this command switches the newly downloaded firmware to the active bank and moves the previously active firmware to the inactive bank.

    • Commit: Finalizes the firmware update by ensuring that the active firmware image is used during future resets or reboots.

Follow these operational limitations and precautions to avoid interruptions or failures during firmware updates.

  • Monitor system resources to ensure that firmware threads do not interfere with higher-priority operations such as USD threads.

  • Run the info command per port because it does not support range input, unlike start, commit, and run.

  • Perform all physical OIR (Online Insertion and Removal) actions outside the firmware download process. Restart the firmware download process if necessary.

  • Complete the firmware download before reloading or power cycling the system to avoid corruption. If the system restarts and the optic is not detected, restart the firmware download process to restore functionality.


Copy Transceiver Firmware to Switch and Line Card

Copy the transceiver firmware file to the switch bootflash and then to the line card temporary directory before you initiate the firmware update process on transceiver ports.

This is a preparatory step for updating transceiver firmware. Different firmware files may be needed for distinct transceiver types. Name each file appropriately on the Line Card (LC). Then, refer to it as LC throughout the document.

Before you begin

Ensure you have access to the switch and a network location such as an SCP server where the firmware file is stored. You must have root access on the line card to copy files to the LC.

Procedure

1.

Use the copy command to copy the firmware file to the switch's bootflash.

Example:

switch# copy scp://192.0.2.1/<location of firmware>/bank_trapp_qsfp-100g-sr-s_signed_rel_0.73.4.bin bootflash:///bank_trapp_qsfp-100g-sr-s_signed_rel_0.73.4.bin vrf man use

This command copies the firmware file from an SCP server to the switch bootflash memory.

2.

Use the run bash sudo su and scp commands to gain root access and copy the firmware file from the switch to the Line Card (LC).

Example:

run bash sudo su
            bash# scp -r /bootflash/bank_trapp_qsfp-100g-sr-s_signed_rel_0.73.4.bin root@lc1:/var/sysmgr/tmp/firmware.bin

This command transfers the firmware file from the switch bootflash to the specified Line Card temporary directory. If different transceiver types need separate firmware files, copy and name each file so they are easily identified.

3.

Use the rlogin and ls -lrt commands to log in to the Line Card and verify the firmware file.

Example:

rlogin lc1
            root@lc1:~# ls -lrt /var/sysmgr/tmp/firmware.bin
            -rw-r--r-- 1 root root 831200 May 7 17:54 /var/sysmgr/tmp/firmware.bin

This step confirms that the firmware file is present and accessible on the Line Card device.

The transceiver firmware file is successfully copied to the switch bootflash and the Line Card temporary directory, and its presence is verified.

What to do next

Proceed to download, run, and commit the firmware on the transceiver ports as described in Download, Run, and Commit Transceiver Firmware.


Download, Run, and Commit Transceiver Firmware

Download the pre-staged firmware to the specified transceiver ports, verify the status, run the firmware, and then commit it.

Perform this task after you successfully copy the firmware file to the switch and line card. The task requires direct interaction with the transceiver hardware.

Before you begin

Before initiating the firmware download:

  • Ensure the firmware file is copied to the switch and line card as described in "Copy Transceiver Firmware to Switch and Line Card".

  • Verify that the firmware file is correct and compatible with the transceiver model.

  • Verify that the file paths and names are accurate.

Procedure

1.

Use the debug hardware internal linkctrl transceiver firmware fp-port 1-10,6,15-16 start file-name /var/sysmgr/tmp/firmware10.bin command to initiate firmware download to a specified range of transceiver ports.

Example:

switch# debug hardware internal linkctrl transceiver firmware fp-port 1-10,6,15-16 start file-name /var/sysmgr/tmp/firmware10.bin
Warning

Executing firmware download commands requires caution. Using an incorrect firmware file can lead to a failed download and may corrupt the existing firmware. This is particularly critical for single bank transceivers, as they may require a firmware re-download to recover from a faulty state.

Note

During the firmware download process, the optical module will go offline automatically and will come back online once the download is completed. This behavior is part of the update process and does not require manual intervention.

2.

(Optional) Use the debug hardware internal linkctrl transceiver firmware fp-port 14 start file-name /var/sysmgr/tmp/firmware10.bin command to initiate firmware download to a single specified transceiver port.

Example:

switch# debug hardware internal linkctrl transceiver firmware fp-port 14 start file-name /var/sysmgr/tmp/firmware10.bin

Use this command to start downloading firmware to a single specified port.

3.

Use the debug hardware internal linkctrl transceiver firmware fp-port 3 status command to check the status of the firmware download process.

Example:

switch# debug hardware internal linkctrl transceiver firmware fp-port 3 status
front_port_num[3]  Status of Firmware Download

QUEUE content for the group of 8 ports
Port: 3, File: /var/sysmgr/tmp/firmware10.bin Op Type: Run
Port: 4, File: /var/sysmgr/tmp/firmware10.bin Op Type: Run

-> Run command is in queue

-> Downloading is not in progress

-> Run command is not in progress

-> Commit is not in progress

-> Download completed percentage: 100


Error occured in last five commands
------------------------------------------
2025-02-19 11:08:57.199684: FP: 17 Command executed: 101- Start Firmware Download: Module Flags Byte-8 Val: 0x0 Cdb Status Val: 0x0 Failure Message: Unable to open firmware file
2025-02-19 11:10:52.188798: FP: 17 Command executed: 101- Start Firmware Download: Module Flags Byte-8 Val: 0x0 Cdb Status Val: 0x0 Failure Message: Unable to open firmware file
2025-02-19 11:44:14.468031: FP: 17 Command executed: 101- Start Firmware Download: Module Flags Byte-8 Val: 0x0 Cdb Status Val: 0x40 Failure Message: CDB Status failed

Below values are updated after every start command
--------------------------------------------------------
Command 101 Module Flags Byte-8 Val 0x0 Cdb Status Val 0x40

Use this command to check the progress of start, run, and commit operations and view the contents of the queue for the group of ports.

Note

Use the status command and look for the following messages to ensure the download completed successfully:

Download completed percentage: 100
  Downloading is not in progress
  No Command is in progress
4.

Use the debug hardware internal linkctrl transceiver firmware fp-port 1-10,6,15-16 run command to run the downloaded firmware on the specified range of transceiver ports.

Example:

switch# debug hardware internal linkctrl transceiver firmware fp-port 1-10,6,15-16 run

Use this command to run the downloaded firmware on the specified ports.

5.

Use the debug hardware internal linkctrl transceiver firmware fp-port 1-10,6,15-16 commit command to commit the downloaded firmware to the specified range of transceiver ports.

Example:

switch# debug hardware internal linkctrl transceiver firmware fp-port 1-10,6,15-16 commit

Use this command to commit the downloaded firmware to a range of ports, making the changes permanent.

The new firmware is successfully downloaded, run, and committed to the specified transceiver ports.