StarlingX StarlingX
Search
  • Docs
  • Join
    • Sign up for Foundation Membership
    • More about the Foundation
  • Log In

Update ZL3073x Firmware Using Devlink

version

Latest

Version 10.0

Version 11.0

Version 12.0

Update ZL3073x Firmware Using Devlink¶

The devlink utility provides a standardized interface for device management in Linux, including firmware update operations. This document describes the procedure for identifying a ZL3073x device, verifying its firmware version, updating the firmware, and validating the update.

  • Identify Devlink Device Name

    • Locate ZL3073x Device

  • Verify Current Firmware Information

  • Perform Firmware Update

    • Install Firmware Bundle

    • Flash Firmware

  • Verify Firmware Update

  • Troubleshooting - ZL3073x Firmware Update

    • Driver Not Loaded

    • Firmware File Not Found

    • Flash Operation Failed

Prerequisites

Before performing a firmware update, ensure that:

  • Root or sudo privileges are available.

  • The target device is detected by the system and registered with devlink.

  • A valid firmware image (.hex) is available.

  • The ZL3073x driver supports the devlink flash_update operation.

Identify Devlink Device Name¶

The device identifier used in the examples (i2c/i2c-PRP0001:01) is platform-specific and may vary depending on:

  • ACPI configuration

  • I2C bus enumeration

  • Platform-specific hardware design

  • Driver registration order

Determine the correct device name before performing a firmware update.

Locate ZL3073x Device¶

Identify the ZL3073x device registered with devlink using the following command:

~(keystone_admin)]$ sudo devlink dev info | grep -B1 "driver zl3073x"

Example output:

i2c/i2c-PRP0001:01: driver zl3073x-i2c

Where,

i2c/i2c-PRP0001:01 is the device identifier and zl3073x-i2c is the driver.

Use the reported device identifier in all the subsequent commands.

Optionally, list all the registered devlink devices:

~(keystone_admin)]$ sudo devlink dev show

Note

The device identifier may differ between hardware platforms, firmware versions, ACPI configurations, and system implementations.

Verify Current Firmware Information¶

Display the current firmware and hardware information:

~(keystone_admin)]$ sudo devlink dev info i2c/i2c-PRP0001:01

Example output:

i2c/i2c-PRP0001:01:
  driver zl3073x-i2c
  versions: fixed:
   asic.id 3FC4
   asic.rev 300
  running:
    fw 7200

Where,

driver: Device driver managing the hardware

asic.id: ASIC identifier

asic.rev: ASIC hardware revision

fw: Currently running firmware version

In this example, the device is running firmware version 7108.

Perform Firmware Update¶

Install Firmware Bundle¶

  1. Copy the firmware image to the system firmware directory:

    ~(keystone_admin)]$ sudo cp myfwbundlecomb.hex /lib/firmware/
    

    If you receive the following error when copying the file to /lib/firmware/, the file system must be unlocked before you can copy the firmware.

    cp: cannot create regular file '/lib/firmware/myfwbundlecomb.hex': Read-only file system
    
  2. Unlock the file system temporarily:

    ~(keystone_admin)]$ sudo ostree admin unlock
    

Flash Firmware¶

Run the firmware update:

~(keystone_admin)]$ sudo devlink dev flash i2c/i2c-PRP0001:01 file myfwbundlecomb.hex

Where,

i2c/i2c-PRP0001:01: Target devlink device

file: Firmware image parameter

myfwbundlecomb.hex: Firmware bundle to be programmed

Example output:

[utility] Prepare flash mode
[utility] Downloading image 100%
[utility] Flash mode enabled
[config0] Downloading image 100%
[config0] Flashing image 100%
[config0] Flashing done
[config1] Downloading image 100%
[config1] Flashing image 100%
[config1] Flashing done
[config2] Downloading image 100%
[config2] Flashing image 100%
[config2] Flashing done
[config3] Downloading image 100%
[config3] Flashing image 100%
[config3] Flashing done
[config4] Downloading image 100%
[config4] Flashing image 100%
[config4] Flashing done
[config5] Downloading image 100%
[config5] Flashing image 100%
[config5] Flashing done
[config6] Downloading image 100%
[config6] Flashing image 100%
[config6] Flashing done
[utility] Leaving flash mode
Flashing done

Verify Firmware Update¶

After the firmware update is completed, verify the firmware version:

~(keystone_admin)]$ sudo devlink dev info i2c/i2c-PRP0001:01

Example output:

i2c/i2c-PRP0001:01:
 driver zl3073x-i2c
 {{versions:}}
   {{fixed:}}
     {{asic.id 3FC4}}
     {{asic.rev 300}}
   {{running:}}
     {{ fw 7200}}

Confirm that the value reported in running.fw matches the expected firmware version contained in the firmware bundle.

Troubleshooting - ZL3073x Firmware Update¶

Driver Not Loaded¶

  1. Verify that the required kernel modules are loaded:

    ~(keystone_admin)]$ lsmod | grep zl
    

    Example output:

       zl3073x_spi 12288 0
       regmap_spi 12288 1 zl3073x_spi
       zl3073x_i2c 12288 0
       zl3073x 81920 2 zl3073x_spi,zl3073x_i2c
    
    If the required modules are not loaded, the device may not be registered with
    devlink and firmware update operations will not be available.
    
  2. Verify device registration:

    ~(keystone_admin)]$ sudo devlink dev show
    

    Example output:

    i2c/i2c-PRP0001:01
    

    If the device is not listed, review the driver logs:

    ~(keystone_admin)]$ dmesg | grep -i zl3073x
    

Possible causes include:

  • Missing kernel modules

  • I2C or SPI communication failures

  • Incorrect ACPI configuration

  • Firmware loading failures during driver initialization

Firmware File Not Found¶

Verify that the firmware image exists and is accessible:

~(keystone_admin)]$ ls -l /lib/firmware/myfwbundlecomb.hex

Flash Operation Failed¶

Review system logs for additional information:

~(keystone_admin)]$ dmesg | tail -100

Common causes include:

  • Invalid firmware image

  • Firmware image incompatible with the ASIC revision

  • Insufficient permissions

  • Communication failures with the target device

this page last updated: 2026-09-04 22:15:30
Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.

found an error? report a bug

StarlingX

  • Introduction
  • Release Notes
  • Deployment Configurations
  • Planning
  • Installation Guides
  • Security
  • System Configuration
    • StarlingX Kubernetes
    • StarlingX OpenStack
  • Data Networks
  • Node Management
  • Storage
  • Fault Management
  • Backup and Restore
  • Updates and Upgrades
  • KubeVirt
  • Admin Tasks
  • User Tasks
  • Guest Integration
  • StarlingX Applications
  • REST API Reference
  • CLI Reference
  • Distributed Cloud
  • Sample Application Deployments
  • Documentation Archive
  • Operation Guides
  • Contributor Guides
  • Developer Resources
  • Project Specifications

Page Contents

  • Update ZL3073x Firmware Using Devlink
    • Identify Devlink Device Name
      • Locate ZL3073x Device
    • Verify Current Firmware Information
    • Perform Firmware Update
      • Install Firmware Bundle
      • Flash Firmware
    • Verify Firmware Update
    • Troubleshooting - ZL3073x Firmware Update
      • Driver Not Loaded
      • Firmware File Not Found
      • Flash Operation Failed

StarlingX

  • Projects

Documentation

  • StarlingX Manuals
  • API Documentation
  • Wiki

Branding & Legal

  • Logos & Guidelines
  • Trademark Policy
  • Privacy Policy
  • OpenStack CLA

Stay In Touch

The StarlingX project is provided under the Apache 2.0 license. starlingx.io is powered by Rackspace Cloud Computing.