Port-arm archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: RPI02W wifi driver?



dtyson%anduin.org.uk@localhost (Dave Tyson) writes:

>it seems that the wifi stuff has been pushed out into a bcm283x-rpi-
>wifi-bt.dtsi file which isn't in the current source tree unless its
>been added in the last month. I haven't looked at this area and am not
>sure if new dts files added to the
>/usr/src/sys/external/gpl2/dts/dist/arch/arm/boot/dts
>directory get automagically built into dtb files by build.sh

The FDT is used to handle attachment of the SDIO controller.

[     1.075015] sdmmc0 at bcmsdhost0
[     1.205031] sdmmc0: direct I/O error 5, r=6 p=0xa5307f14 write
[     1.245037] sdmmc0: SD card status: 4-bit, C10, A1

-> this is the "sdhost" controller used for the SD card.

[     1.075015] sdhc0: SDHC 3.0, rev 153, caps <01610000/00000000>,
platform DMA, 200000 kHz, HS 3.3V, re-tuning mode 1, 1024 byte blocks
[     1.085016] sdmmc1 at sdhc0 slot 0
[     1.335047] sdmmc1: 4-bit width, 50.000 MHz

-> this is the "sdhc" controller used for SDIO.

The bwfm driver attaches to a specific vendor/product id that the
bwfm hardware presents to the SDIO controller. Just like a PCI or
USB device would be identified by such ids.

This here tells, that the hardware was identified at the "sdhc"
controller (sdmmc1):

[     1.345929] bwfm0 at sdmmc1 function 1
[     1.355055] (manufacturer 0x2d0, product 0xa9a6) at sdmmc1 function 2 not configured

 0x2d0 SDMMC_VENDOR_BROADCOM,
0xa9a6 SDMMC_PRODUCT_BROADCOM_BCM43430

Function 2 not attaching is just an artefact, the driver only attaches
at function 1.

The product number however is misleading, there are many similar
chips that identify as SDMMC_PRODUCT_BROADCOM_BCM43430. That's why
the driver uses more information to find the correct firmware files.


[     5.047909] bwfm0: Firmware file default:    brcmfmac43430-sdio.bin
[     5.047909] bwfm0: Firmware file model-spec: brcmfmac43430-sdio.raspberrypi,model-zero-2-w.bin
[     5.085806] bwfm0: Found Firmware file: brcmfmac43430-sdio.bin
...
[    10.616568] bwfm0: HT avail timeout
[    10.616568] bwfm0: autoconfiguration error: could not access clock

The error could be the result of loading the wrong firmware, but
it could also be the result of the chip being slightly incompatible.
I have no access to a RPI zero 2w to test this.


Linux provides even two different firmware files for rpi zero 2w (for
two revisions of that chip):

lrwxrwxrwx 1 root root 22 31. Okt 2022  brcmfmac43436-sdio.raspberrypi,model-zero-2-w.bin -> brcmfmac43436-sdio.bin
-rw-r--r-- 1 root root 416101 31. Okt 2022  brcmfmac43436-sdio.bin
lrwxrwxrwx 1 root root 23 31. Okt 2022  brcmfmac43436s-sdio.raspberrypi,model-zero-2-w.bin -> brcmfmac43436s-sdio.bin
-rw-r--r-- 1 root root 436733 31. Okt 2022  brcmfmac43436s-sdio.bin

So one suggestion is to try one of these firmware files and store
them under

/libdata/firmware/if_bwfm/libbrcmfmac43430-sdio.raspberrypi,model-zero-2-w.bin

so that the driver will find it. You may also need to copy the associated
files with suffixes .txt and .clm_blob accordingly.

If you can boot Linux, it will tell you (in dmesg) what file it is using,
like this:

[    8.450230] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43436-sdio for chip BCM43430/2
                                                            ^^^^^^^^^^^^^^^^^^

Greetings,



Home | Main Index | Thread Index | Old Index