Skip to content

brcmfmac43456-sdio missing clm_blob declaration in module #6828

Closed
@henryptung

Description

@henryptung

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

  1. Download 2024-11-19-raspios-bookworm-arm64-lite.img.xz, apply unxz
  2. mkdir mnt && sudo mount -o ro,offset=$((512*1056768)) 2024-11-19-raspios-bookworm-arm64-lite.img mnt && cd mnt
  3. Observe clm_blob file inclusion for brcmfmac43455:
[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 ]$ 
  1. Observe clm_blob non-inclusion for brcmfmac43456:
[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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions