Iw wlan bitrates selection fails for BCRM 43430 / pi 3B

Does the BCRM 43430 driver allow to define valid bitrates in any way? I need this to prevent the driver falling back to low bitrates by purposefully excluding the low bitrates at which the link becomes unstable.

The low level command to reset rates to their original values fails so does setting the actual values:

# iw wlan0 set bitrates
command failed: Not supported (-95)
# iw wlan0 set bitrates  legacy-2.4 18 24 36 48 54
command failed: Not supported (-95)

This occurs with OpenWrt 19.07.5, r11257-5090152ae3.

I tried switching to other brcmfmac43430-sdio.bin fw available from other sources (cypress site, firmware-brcm80211 package from debian etc.). All 3 produce the same effect. Currently, I'm using the latest firmwware from cypress.

Original firmware in rpi-3-ext4-factory.img.gz / 19.07.05) is over 3 years old:

# strings brcmfmac43430-sdio.bin.orig | grep -o 'Version:.*'
Version: 7.45.98.38 (r674442 CY) CRC: ffb2ee5a Date: Mon 2017-10-23 03:58:00 PDT Ucode Ver: 1043.2099 FWID 01-e58d219f

The latest firmware at this time (from 2020) is available from cypress (offers a compatible clm_blob cyfmac43430-sdio.clm_blob):

# strings cyfmac43430-sdio.bin | grep -o 'Version:.*'
Version: 7.45.98.97 (r724416 CY) CRC: 588b07d3 Date: Sun 2020-02-16 22:41:02 PST Ucode Ver: 1043.2137 FWID 01-bf41ed64

A slightly less recent (from 2019) is available in the firmware-brcm80211 package in debian:

# strings  brcmfmac43430-sdio.bin.new | grep -o 'Version:.*'
Version: 7.45.98.94 (r723000 CY) CRC: ba33fa65 Date: Tue 2019-10-22 02:01:06 PDT Ucode Ver: 1043.2137 FWID 01-3b33decd

brcmfmac is a fullmac driver, which means pretty much all of the connection handling is done in hardware (well, firmware running on the hardware), as a result many of the more advanced features usually provided by the nl80211 stack are only implemented in a rudimentary fashion. While I have no personal experience with brcmfmac, it wouldn't surprise me in the slightest that influencing the bitrate details isn't possible on this hardware.

Thanks for the enlightening piece of info. In raspbian setting bitrates also fails.
Asked a related query in cypress forums.

1 Like