Updating the CPLD Firmware from ONIE


You may find it necessary to update the CPLD firmware on your Cumulus Linux switch. Follow these steps to do so.



  • The CPLD firmware updater file. Your switch vendor can provide this file. If you are using a Cumulus Express switch, open a support ticket to get this file from Cumulus Networks.
  • ONIE version 2016.08 or later, since this is the first version to include the onie-fwpkg utility. If your switch is running an older version, you must upgrade ONIE.
    You can determine t
    he ONIE version by running /usr/lib/cumulus/onie/onie-version:
    cumulus@switch:~$ sudo /usr/lib/cumulus/onie/onie-version
    ONIE version : 2018.08
    ONIE vendor_id : 674
    ONIE build_machine : dell_s6000_s1220
    ONIE machine_rev : 0
    ONIE arch : x86_64
    ONIE build_platform : x86_64-dell_s6000_s1220-r0
    ONIE config_version : 1
    ONIE build_date : 2018-08-13T23:25-0700
    ONIE partition_type : gpt
    ONIE kernel_version : 3.2.69
    ONIE firmware : bios
    ONIE switch_asic : bcm
    ONIE skip_ethmgmt_macs: no

Upgrading the CPLD Firmware

To upgrade the switch CPLD firmware, use the onie-fwpkg command in Cumulus Linux. Follow these steps:

  1. Initialize the CPLD firmware upgrade using onie-fwpkg; you need to explicitly specify the full path to the command:
    cumulus@switch:~$ sudo /usr/lib/cumulus/onie/onie-fwpkg add <filename.updater>
  2. Validate that the CPLD updater was staged:
    cumulus@switch:~$ sudo /usr/lib/cumulus/onie/onie-fwpkg show
  3. Update ONIE using self update mode. The update occurs when the switch is rebooted:
    cumulus@switch:~$ sudo onie-select -pf
  4. Reboot the switch to initiate the upgrade:
    cumulus@switch:~$ sudo reboot

For example:

cumulus@switch:~$ sudo /usr/lib/cumulus/onie/onie-fwpkg add AS5x12-54X_ES5654BT_V966_20180125.jbc.updater
Staging firmware update: AS5x12-54X_ES5654BT_V966_20180125.jbc.updater

cumulus@switch:~$ sudo /usr/lib/cumulus/onie/onie-fwpkg show
** Pending firmware update information:
Name | Version | Attempts |Size (Bytes) | Date
AS5x12-54X_ES5654BT_V966_20180125.jbc.updater | "" | 0 | 647824 | 2018-10-03 10:12:14
For more detailed information run: onie-fwpkg show-pending <update_name>
** Firmware update results information:
Name | Version | Result | Date
onie-updater | 2018.02.00.02 | Success | 2001-01-01 19:22:42
onie-updater-x86_64-accton_as5812_54x | "" | Success | 2001-02-01 16:38:57
For more detailed information run: onie-fwpkg show-results <update_name>

cumulus@switch:~$ sudo onie-select -pf
Enabling ONIE self-update mode at next reboot...done.
Reboot required to take effect.

ONIE enters updater mode and applies the waterfall search for common ONIE updater filenames on the connected filesystems. Then it executes the staged updates, which onie-fwpkgcopied to the update directory.

The example continues:

Please press Enter to activate this console. Info: eth0:  Checking link... up.
Info: Trying DHCPv4 on interface: eth0
ONIE: Using DHCPv4 addr: eth0: /
ONIE: Starting ONIE Service Discovery
Info: Attempting file://dev/sda4/onie-updater-x86_64-accton_as5812_54x-r0 ...
Info: Attempting file://dev/sda4/onie-updater-x86_64-accton_as5812_54x-r0.bin ...
Info: Attempting file://dev/sda4/onie-updater-x86_64-accton_as5812_54x ...
Info: Attempting file://dev/sda4/onie-updater-x86_64-accton_as5812_54x.bin ...
Info: Attempting file://dev/sda4/onie-updater-accton_as5812_54x ...
Info: Attempting file://dev/sda4/onie-updater-accton_as5812_54x.bin ...
Info: Attempting file://dev/sda4/onie-updater-x86_64-bcm ...
Info: Attempting file://dev/sda4/onie-updater-x86_64-bcm.bin ...
Info: Attempting file://dev/sda4/onie-updater-x86_64 ...
Info: Attempting file://dev/sda4/onie-updater-x86_64.bin ...
Info: Attempting file://dev/sda4/onie-updater ...
Info: Attempting file://dev/sda4/onie-updater.bin ...
EXT4-fs (sda3): couldn't mount as ext3 due to feature incompatibilities
Info: Attempting file://dev/sda3/onie-updater-x86_64-accton_as5812_54x-r0 ...
Info: Attempting file://dev/sda3/onie-updater-x86_64-accton_as5812_54x-r0.bin ...
Info: Attempting file://dev/sda3/onie-updater-x86_64-accton_as5812_54x ...
Info: Attempting file://dev/sda3/onie-updater-x86_64-accton_as5812_54x.bin ...
Info: Attempting file://dev/sda3/onie-updater-accton_as5812_54x ...
Info: Attempting file://dev/sda3/onie-updater-accton_as5812_54x.bin ...
Info: Attempting file://dev/sda3/onie-updater-x86_64-bcm ...
Info: Attempting file://dev/sda3/onie-updater-x86_64-bcm.bin ...
Info: Attempting file://dev/sda3/onie-updater-x86_64 ...
Info: Attempting file://dev/sda3/onie-updater-x86_64.bin ...
Info: Attempting file://dev/sda3/onie-updater ...
Info: Attempting file://dev/sda3/onie-updater.bin ...
ONIE: Executing installer: /mnt/onie-boot/onie/update/pending/AS5x12-54X_ES5654BT_V966_20180125.jbc.updater
Verifying image checksum ... OK.
Preparing image archive ... OK.
Firmware: Architecture : x86_64
Firmware: Machine : accton_as5712_54x
Firmware: Machine Rev : 0
Firmware: Type : CPLD
Firmware: Version :
Firmware: Build Date : 2018-01-26T15:03+0800
Updating CPLD firmware ...
cpld_updates: loading out-of-tree module taints kernel.
Start to cpld update
argc:5,cpld_update,-aPROGRAM,-dDO_BYPASS_UFM=1,-dDO_REAL_TIME_ISP=0Jam STAPL ByteCode Player Version 2.2
Copyright (C) 1998-2001 Altera Corporation
filename:firmware.bin, action:PROGRAM, init:DO_BYPASS_UFM=1
Initial GPIO
(main:1400) file length:92071
Device #3 Silicon ID is ALTERA04(01)
Device #2 Silicon ID is ALTERA04(01)
Device #1 Silicon ID is ALTERA04(00)
erasing MAXII device(s)...
erasing MAXII CFM block...
programming CFM block...
Have more questions? Submit a request


This support portal has moved

Cumulus Networks is now part of the NVIDIA Networking Business Unit! The NVIDIA Cumulus Global Support Services (GSS) team has merged its operations with the NVIDIA Mellanox support services team.

You can access NVIDIA Cumulus support content from the Mellanox support portal.

You open and update new cases on the Mellanox support portal. Any previous cases that have been closed have been migrated to the Mellanox support portal.

Cases that are still open on the Cumulus portal will continue to be managed on the Cumulus portal. Once these cases close, they will be moved to the Mellanox support portal.

Powered by Zendesk