Description
Describe the bug
Unlike upstream linux-firmware, Raspberry Pi's firmware bundle includes brcmfmac43456-sdio.clm_blob. However, this should come with a matching change to drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c, to declare that brcmfmac43456-sdio
includes a CLM blob for e.g. initramfs creation.
Steps to reproduce the behaviour
- Download
2024-11-19-raspios-bookworm-arm64-lite.img.xz
, applyunxz
mkdir mnt && sudo mount -o ro,offset=$((512*1056768)) 2024-11-19-raspios-bookworm-arm64-lite.img mnt && cd mnt
- Observe
clm_blob
file inclusion forbrcmfmac43455
:
[htung@HPT-Laptop-3 mnt ]$ ls -l lib/firmware/brcm/brcmfmac43455*
-rw-r--r-- 1 root root 1475 Aug 9 2024 lib/firmware/brcm/brcmfmac43455-sdio.AW-CM256SM.txt
lrwxrwxrwx 1 root root 31 Aug 9 2024 lib/firmware/brcm/brcmfmac43455-sdio.bin -> ../cypress/cyfmac43455-sdio.bin
lrwxrwxrwx 1 root root 36 Aug 9 2024 lib/firmware/brcm/brcmfmac43455-sdio.clm_blob -> ../cypress/cyfmac43455-sdio.clm_blob
lrwxrwxrwx 1 root root 33 Aug 9 2024 lib/firmware/brcm/brcmfmac43455-sdio.pine64,pinebook-pro.txt -> brcmfmac43455-sdio.AW-CM256SM.txt
lrwxrwxrwx 1 root root 33 Aug 9 2024 lib/firmware/brcm/brcmfmac43455-sdio.pine64,pinenote-v1.1.txt -> brcmfmac43455-sdio.AW-CM256SM.txt
lrwxrwxrwx 1 root root 33 Aug 9 2024 lib/firmware/brcm/brcmfmac43455-sdio.pine64,pinenote-v1.2.txt -> brcmfmac43455-sdio.AW-CM256SM.txt
lrwxrwxrwx 1 root root 33 Aug 9 2024 lib/firmware/brcm/brcmfmac43455-sdio.pine64,pinephone-pro.txt -> brcmfmac43455-sdio.AW-CM256SM.txt
lrwxrwxrwx 1 root root 33 Aug 9 2024 lib/firmware/brcm/brcmfmac43455-sdio.pine64,quartz64-a.txt -> brcmfmac43455-sdio.AW-CM256SM.txt
lrwxrwxrwx 1 root root 33 Aug 9 2024 lib/firmware/brcm/brcmfmac43455-sdio.pine64,quartz64-b.txt -> brcmfmac43455-sdio.AW-CM256SM.txt
lrwxrwxrwx 1 root root 33 Aug 9 2024 lib/firmware/brcm/brcmfmac43455-sdio.pine64,rockpro64-v2.0.txt -> brcmfmac43455-sdio.AW-CM256SM.txt
lrwxrwxrwx 1 root root 33 Aug 9 2024 lib/firmware/brcm/brcmfmac43455-sdio.pine64,rockpro64-v2.1.txt -> brcmfmac43455-sdio.AW-CM256SM.txt
lrwxrwxrwx 1 root root 33 Aug 9 2024 lib/firmware/brcm/brcmfmac43455-sdio.pine64,soquartz-blade.txt -> brcmfmac43455-sdio.AW-CM256SM.txt
lrwxrwxrwx 1 root root 33 Aug 9 2024 lib/firmware/brcm/brcmfmac43455-sdio.pine64,soquartz-cm4io.txt -> brcmfmac43455-sdio.AW-CM256SM.txt
lrwxrwxrwx 1 root root 33 Aug 9 2024 lib/firmware/brcm/brcmfmac43455-sdio.pine64,soquartz-model-a.txt -> brcmfmac43455-sdio.AW-CM256SM.txt
lrwxrwxrwx 1 root root 31 Aug 9 2024 lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,3-model-a-plus.bin -> ../cypress/cyfmac43455-sdio.bin
lrwxrwxrwx 1 root root 36 Aug 9 2024 lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,3-model-a-plus.clm_blob -> ../cypress/cyfmac43455-sdio.clm_blob
lrwxrwxrwx 1 root root 22 Aug 9 2024 lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,3-model-a-plus.txt -> brcmfmac43455-sdio.txt
lrwxrwxrwx 1 root root 31 Aug 9 2024 lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.bin -> ../cypress/cyfmac43455-sdio.bin
lrwxrwxrwx 1 root root 36 Aug 9 2024 lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.clm_blob -> ../cypress/cyfmac43455-sdio.clm_blob
lrwxrwxrwx 1 root root 22 Aug 9 2024 lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,3-model-b-plus.txt -> brcmfmac43455-sdio.txt
lrwxrwxrwx 1 root root 31 Aug 9 2024 lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,4-compute-module.bin -> ../cypress/cyfmac43455-sdio.bin
lrwxrwxrwx 1 root root 36 Aug 9 2024 lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,4-compute-module.clm_blob -> ../cypress/cyfmac43455-sdio.clm_blob
lrwxrwxrwx 1 root root 22 Aug 9 2024 lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,4-compute-module.txt -> brcmfmac43455-sdio.txt
lrwxrwxrwx 1 root root 31 Aug 9 2024 lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.bin -> ../cypress/cyfmac43455-sdio.bin
lrwxrwxrwx 1 root root 36 Aug 9 2024 lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.clm_blob -> ../cypress/cyfmac43455-sdio.clm_blob
lrwxrwxrwx 1 root root 22 Aug 9 2024 lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,4-model-b.txt -> brcmfmac43455-sdio.txt
lrwxrwxrwx 1 root root 31 Aug 9 2024 lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,5-model-b.bin -> ../cypress/cyfmac43455-sdio.bin
lrwxrwxrwx 1 root root 36 Aug 9 2024 lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,5-model-b.clm_blob -> ../cypress/cyfmac43455-sdio.clm_blob
lrwxrwxrwx 1 root root 22 Aug 9 2024 lib/firmware/brcm/brcmfmac43455-sdio.raspberrypi,5-model-b.txt -> brcmfmac43455-sdio.txt
-rw-r--r-- 1 root root 2074 Aug 9 2024 lib/firmware/brcm/brcmfmac43455-sdio.txt
[htung@HPT-Laptop-3 mnt ]$ modinfo lib/modules/6.6.51+rpt-rpi-v8/kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko.xz | grep brcmfmac43455
firmware: brcm/brcmfmac43455-sdio.clm_blob
firmware: brcm/brcmfmac43455-sdio.bin
[htung@HPT-Laptop-3 mnt ]$
- Observe
clm_blob
non-inclusion forbrcmfmac43456
:
[htung@HPT-Laptop-3 mnt ]$ ls -l lib/firmware/brcm/brcmfmac43456*
-rw-r--r-- 1 root root 495898 Aug 9 2024 lib/firmware/brcm/brcmfmac43456-sdio.bin
-rw-r--r-- 1 root root 7163 Aug 9 2024 lib/firmware/brcm/brcmfmac43456-sdio.clm_blob
lrwxrwxrwx 1 root root 22 Aug 9 2024 lib/firmware/brcm/brcmfmac43456-sdio.raspberrypi,400.bin -> brcmfmac43456-sdio.bin
lrwxrwxrwx 1 root root 27 Aug 9 2024 lib/firmware/brcm/brcmfmac43456-sdio.raspberrypi,400.clm_blob -> brcmfmac43456-sdio.clm_blob
lrwxrwxrwx 1 root root 22 Aug 9 2024 lib/firmware/brcm/brcmfmac43456-sdio.raspberrypi,400.txt -> brcmfmac43456-sdio.txt
lrwxrwxrwx 1 root root 22 Aug 9 2024 lib/firmware/brcm/brcmfmac43456-sdio.raspberrypi,4-compute-module.bin -> brcmfmac43456-sdio.bin
lrwxrwxrwx 1 root root 27 Aug 9 2024 lib/firmware/brcm/brcmfmac43456-sdio.raspberrypi,4-compute-module.clm_blob -> brcmfmac43456-sdio.clm_blob
lrwxrwxrwx 1 root root 22 Aug 9 2024 lib/firmware/brcm/brcmfmac43456-sdio.raspberrypi,4-compute-module.txt -> brcmfmac43456-sdio.txt
-rw-r--r-- 1 root root 2053 Aug 9 2024 lib/firmware/brcm/brcmfmac43456-sdio.txt
[htung@HPT-Laptop-3 mnt ]$ modinfo lib/modules/6.6.51+rpt-rpi-v8/kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko.xz | grep brcmfmac43456
firmware: brcm/brcmfmac43456-sdio.bin
[htung@HPT-Laptop-3 mnt ]$
Device (s)
Raspberry Pi 400
System
/etc/rpi-issue
:
Raspberry Pi reference 2024-11-19
Generated using pi-gen, https://github.com/RPi-Distro/pi-gen, 891df1e21ed2b6099a2e6a13e26c91dea44b34d4, stage2
Firmware version: N/A (from image only)
Kernel version: 6.6.51+rpt-rpi-v8
Logs
No response
Additional context
Note: Am filing this on behalf of an issue observed on a different board, as I do not have a Pi 400 to personally test - however, I have every reason to believe the same issue would happen here if e.g. someone tries to preload the brcmfmac
module in initramfs, for the same reason (missing firmware file declaration in module code).
See https://forums.raspberrypi.com/viewtopic.php?t=225906 for a similar, older issue regarding brcmfmac43455-sdio
.