cxgb4 firmware missing from pve-firmware package

Rphoton

New Member
Oct 31, 2019
10
0
1
Spain
Hello,

I'm a newbie trying to use the native kernel driver for a Chelsio T520-CR 10GB ethernet card.

I'm getting this message on boot:

Bash:
# dmesg |grep cxgb
[    1.117913] cxgb4 0000:0e:00.4: Direct firmware load for cxgb4/t5fw.bin failed with error -2
[    1.122854] cxgb4 0000:0e:00.4: unable to load firmware image cxgb4/t5fw.bin, error -2
[    1.125993] cxgb4 0000:0e:00.4: Coming up as MASTER: Initializing adapter
[    1.864182] cxgb4 0000:0e:00.4: Direct firmware load for cxgb4/t5-config.txt failed with error -2
[    2.424019] cxgb4 0000:0e:00.4: Successfully configured using Firmware Configuration File "Firmware Default", version 0x0, computed checksum 0x0
[...]

according to a chelsio developer:
That said, "Direct firmware load failed with error -2" indicates the firmware file was not found in userspace. -2 is ENOENT (file not found)

This file seems to be present in this debian package:

https://packages.debian.org/buster/firmware-misc-nonfree


but not in pve-firmware

Bash:
# dpkg-query -L pve-firmware |grep cxgb
/lib/firmware/cxgb3
/lib/firmware/cxgb3/ael2005_opt_edc.bin
/lib/firmware/cxgb3/ael2005_twx_edc.bin
/lib/firmware/cxgb3/ael2020_twx_edc.bin
/lib/firmware/cxgb3/t3b_psram-1.1.0.bin
/lib/firmware/cxgb3/t3c_psram-1.1.0.bin
/lib/firmware/cxgb3/t3fw-7.10.0.bin
/lib/firmware/cxgb3/t3fw-7.12.0.bin
/lib/firmware/cxgb3/t3fw-7.4.0.bin

Bash:
# update-initramfs -u
update-initramfs: Generating /boot/initrd.img-5.3.18-3-pve
W: Possible missing firmware /lib/firmware/cxgb4/t6fw.bin for module cxgb4
W: Possible missing firmware /lib/firmware/cxgb4/t5fw.bin for module cxgb4
W: Possible missing firmware /lib/firmware/cxgb4/t4fw.bin for module cxgb4
Running hook script 'zz-pve-efiboot'..
Re-executing '/etc/kernel/postinst.d/zz-pve-efiboot' in new private mount namespace..
Copying and configuring kernels on /dev/disk/by-uuid/6E24-79FB
        Copying kernel and creating boot-entry for 5.0.21-5-pve
        Copying kernel and creating boot-entry for 5.3.18-3-pve
Copying and configuring kernels on /dev/disk/by-uuid/A6AA-FE93
        Copying kernel and creating boot-entry for 5.0.21-5-pve
        Copying kernel and creating boot-entry for 5.3.18-3-pve


Should it be there? Should I add some debian or ubuntu repository to install this package? Or is there a way to manually add those files from the vendor? I tried adding them to /lib/firmware/cxgb4/ and running pve-efiboot-tool refresh but that didn't fix it. I'm not sure.
 
Ok I copied the vendor firmware *.bin files to new filenames matching exactly the ones requested by update-initramfs and run it again.

Code:
# ls -al /lib/firmware/cxgb4/
total 3338
drwxr-xr-x  2 root root     12 Apr 11 13:29 .
drwxr-xr-x 60 root root    262 Apr  8 18:53 ..
-rw-r--r--  1 root root  21429 Apr  8 18:54 t4-config.txt
-rw-r--r--  1 root root 568832 Apr  8 18:54 t4fw-1.24.11.0.bin
-rw-r--r--  1 root root 568832 Apr 11 13:28 t4fw.bin
-rw-r--r--  1 root root 335847 Apr  8 18:54 t4fw_interface.h
-rw-r--r--  1 root root  21855 Apr  8 18:54 t5-config.txt
-rw-r--r--  1 root root 673280 Apr  8 18:54 t5fw-1.24.11.0.bin
-rw-r--r--  1 root root 673280 Apr 11 13:27 t5fw.bin
-rw-r--r--  1 root root  22557 Apr  8 18:54 t6-config.txt
-rw-r--r--  1 root root 727552 Apr  8 18:54 t6fw-1.24.11.0.bin
-rw-r--r--  1 root root 727552 Apr 11 13:27 t6fw.bin

no more "Possible missing firmware" error from update-initramfs -u, but still one problematic file:

Code:
# dmesg |grep cxgb
[    1.111427] cxgb4 0000:0e:00.4: Coming up as MASTER: Initializing adapter
[    1.844199] cxgb4 0000:0e:00.4: Direct firmware load for cxgb4/t5-config.txt failed with error -2
[    2.400035] cxgb4 0000:0e:00.4: Successfully configured using Firmware Configuration File "Firmware Default", version 0x0, computed checksum 0x0

but t5-config.txt is already there. Why is update-initramfs not picking it up?

Is this something that should be fixed in some package? where should I report it?