Hi.
I'm currently working on fwupd plugin for devlink. I have somehow
working version tested with netdevsim and mlx5. I'm curious if you would
be interested into supporting your nics as well. Here's the code:
https://github.com/jpirko/fwupd/tree/wip_devlink_rfc1
In plugins/devlink/tests/example/ you can find how to build cab file for
netdevsim. To flash it, get the device id from command:
$ sudo ./build/src/fwupdtool get-devices
and flash it using:
$ sudo ./build/src/fwupdtool install plugins/devlink/tests/example/firmware.cab
fa645832a32a760dc0d20ec0cac7dcd13ca3d104
for mlx5 cx6dx nic I'm using following example xml:
$ cat cx6dx-22_45_1020.firmware.metainfo.xml
<?xml version="1.0" encoding="UTF-8"?>
<component type="firmware">
<id>com.nvidia.ConnectX6dx.firmware</id>
<name>ConnectX6dx Test Firmware</name>
<summary>Test firmware for ConnectX6dx device</summary>
<description>
<p>Test firmware package for ConnectX6dx device</p>
</description>
<provides>
<firmware type="flashed">f7f61adf-77b6-5e21-bb80-0112a70ab91c</firmware>
</provides>
<metadata_license>CC0-1.0</metadata_license>
<project_license>GPL-2.0+</project_license>
<developer_name>Test Developer</developer_name>
<releases>
<release urgency="high" version="22.45.1020" date="2025-07-01">
<description>
<p>Test firmware release for ConnectX6dx device</p>
</description>
</release>
</releases>
<requires>
<firmware compare="ge" version="0.0.1"/>
</requires>
<custom>
<value key="LVFS::UpdateProtocol">org.kernel.devlink</value>
<value key="LVFS::DeviceFlags">omit-component-name,needs-activation</value>
</custom>
</component>
You need to change the GUID hash be whatever is generated for your
device.
Also, note the flags. That may be different for you, idk. You may not
need omit-component-name, as I think for ice you support flashing with
component name.
Let me know if I can do anything to assist you.
Thanks!
Jiri