Fedora Account System
Red Hat Associate
Red Hat Customer
Description of problem: WiFi does not work on Raspberry Pi 400 running Fedora 45 (Rawhide). The brcmfmac driver identifies the WiFi chip as BCM4345/9 and requests firmware brcm/brcmfmac43456-sdio.bin, but this file is not included in the brcmfmac-firmware package. The firmware load fails with error -2 (ENOENT), leaving the system with no wlan interface. The BCM43456 is a distinct chip from BCM43455 - it requires its own firmware binary (version 7.84.17.1, ~496 KB). Symlinking 43455 firmware does NOT work (results in HT Avail timeout). The correct firmware files are available from RPi-Distro firmware-nonfree repository and have a proper license (Broadcom/Cypress EULA). Version-Release number of selected component: brcmfmac-firmware-20260622-1.fc45.noarch kernel-7.2.0-0.rc6.260806g0d8395707651.51.fc45.aarch64 linux-firmware-20260622-1.fc45.noarch How reproducible: Always (100%) Steps to Reproduce: 1. Install Fedora 45 (Rawhide) on Raspberry Pi 400 2. Boot the system 3. Check for WiFi interface: ip link show | grep wlan 4. No wlan interface exists 5. Check dmesg: dmesg | grep brcmfmac 6. Observe: 'Direct firmware load for brcm/brcmfmac43456-sdio.bin failed with error -2' 7. Observe: 'brcmf_sdio_htclk: HT Avail timeout (1000000): clkctl 0x50' Actual Results: No WiFi interface (wlan0) is created. The brcmfmac driver fails to load firmware: brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43456-sdio for chip BCM4345/9 brcmfmac mmc1:0001:1: Direct firmware load for brcm/brcmfmac43456-sdio.bin failed with error -2 brcmfmac: brcmf_sdio_htclk: HT Avail timeout (1000000): clkctl 0x50 Expected Results: WiFi interface wlan0 should be created and functional. The brcmfmac-firmware package should include brcmfmac43456-sdio firmware files for the BCM43456 chip used in Raspberry Pi 400. Additional info: - Hardware: Raspberry Pi 400 Rev 1.0 (aarch64) - WiFi chip: BCM4345/9 (BCM43456), SDIO vendor=0x02d0 device=0xa9a6 - Kernel: 7.2.0-0.rc6.260806g0d8395707651.51.fc45.aarch64 - Affected boards: Raspberry Pi 400 (and potentially other boards using BCM43456). Debian filed a similar bug: Bug#999485. - Impact: All Fedora users with Raspberry Pi 400 have no WiFi out of the box.
Workaround: Download the correct BCM43456 firmware from RPi-Distro firmware-nonfree repository and reboot: sudo curl -sL -o /lib/firmware/brcm/brcmfmac43456-sdio.bin https://raw.githubusercontent.com/RPi-Distro/firmware-nonfree/bookworm/debian/config/brcm80211/brcm/brcmfmac43456-sdio.bin sudo curl -sL -o /lib/firmware/brcm/brcmfmac43456-sdio.clm_blob https://raw.githubusercontent.com/RPi-Distro/firmware-nonfree/bookworm/debian/config/brcm80211/brcm/brcmfmac43456-sdio.clm_blob sudo curl -sL -o /lib/firmware/brcm/brcmfmac43456-sdio.txt https://raw.githubusercontent.com/RPi-Distro/firmware-nonfree/bookworm/debian/config/brcm80211/brcm/brcmfmac43456-sdio.txt sudo reboot After reboot, WiFi works: brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM4345/9 wl0: May 14 2020 17:26:08 version 7.84.17.1 wlan0 interface created, WiFi networks visible (2.4 GHz + 5 GHz) Note: Symlinking brcmfmac43455 -> brcmfmac43456 does NOT work (HT Avail timeout). The BCM43456 requires its own distinct firmware binary.
with driver from workaround: fedora@fedora:~$ ethtool -i wlan0 driver: brcmfmac version: 7.84.17.1 firmware-version: 01-3d9e1d87 expansion-rom-version: bus-info: mmc1:0001:1 supports-statistics: no supports-test: no supports-eeprom-access: no supports-register-dump: no supports-priv-flags: no fedora@fedora:~$ fedora@fedora:~$ nmcli dev wifi list IN-USE BSSID SSID > 6E:5A:B0:26:B8:AB -- > 6E:5A:B0:35:B8:AA -- > B2:22:7A:84:F1:39 DIRECT-39-HP wifi direct prin> E0:63:DA:0A:A5:87 Moje4k > E6:63:DA:0A:A5:87 --
The WiFi module in the Raspberry Pi 400 is by Synopsis and they refuse to support Linux properly with their fork of the brcmfmac IP, the driver itself doesn't properly support the Synopsis and the vendor refuses to ship firmware in linux-firmware. We can't currently fix this.