Raspberry Pi Zero W firmware

Dear All,

The builtin wifi on RPi0 is working fine with OpenWrt 18.06.2, but there are strange messages in dmesg:

[    7.871774] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43430-sdio for chip BCM43430/1
[    7.908434] brcmfmac mmc1:0001:1: Direct firmware load for brcm/brcmfmac43430-sdio.raspberrypi,model-zero-w.txt failed with error -2
[    7.925187] brcmfmac mmc1:0001:1: Falling back to user helper
[    8.337606] firmware brcm!brcmfmac43430-sdio.raspberrypi,model-zero-w.txt: firmware_loading_store: map pages failed
[    8.444305] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43430-sdio for chip BCM43430/1
[    8.458322] brcmfmac mmc1:0001:1: Direct firmware load for brcm/brcmfmac43430-sdio.clm_blob failed with error -2
[    8.473864] brcmfmac mmc1:0001:1: Falling back to user helper
[    8.497345] firmware brcm!brcmfmac43430-sdio.clm_blob: firmware_loading_store: map pages failed
[    8.511562] brcmfmac: brcmf_c_process_clm_blob: no clm_blob available (err=-11), device may have limited channels available
[    8.533376] brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM43430/1 wl0: Aug 29 2016 20:48:16 version 7.45.41.26 (r640327) FWID 01-4527cfab
[    8.586314] usbcore: registered new interface driver brcmfmac

What could be the problem here?

And another question:
The official RPi0 firmware contains the file bcm2708-rpi-**zero**-w.dtb, while the OpenWrt /boot/ folder has bcm2708-rpi-**0**-w.dtb. What's the difference? The official version seems to be newer, should I use that one?

Thank you in advance.

The messages about failed to load firmware are normal. The firmware here is a program that runs on a CPU inside the wifi chip. The wifi chip holds the program in RAM, so it has to be re-loaded every time the power is turned on. The driver tries several file names, but only one firmware file will be present on your system. Only one firmware can be loaded into the wifi chip at a time.

1 Like

Thank you for the quick answer.

Just curiosity: where the other messages come from? Why does the kernel try to load various other firmware files?

There’s a “try this list in order” used by many devices. The kernel gleefully reports failure, including -2, file not found, but the drivers often don’t report success. “Falling back to user helper” is usually “normal” too, as the kernel checks to see if there’s another way to try to load the same, not present option.