Skip to content

Raspberry Pi Zero 2 W: BCM43430/2 firmware does not support 4-way handshake offloading #23

@stapelberg

Description

@stapelberg

It seems like there are (at least) two different Raspberry Pi Zero 2 W revisions on the market, and they differ in terms of which WiFi chip is used.

The BCM43430/1 works as expected, and seems to match the chip used on the Raspberry Pi 3 B.

The BCM43430/2 however requires different firmware files (brcmfmac43436). This firmware unfortunately lacks support for 4-way handshake offloading, as can be verified by running iw phy, which prints:

	Supported extended features:
		* [ CQM_RSSI_LIST ]: multiple CQM_RSSI_THOLD records

…whereas on the BCM43430/1, Raspberry Pi 3B, 3B+ or 4B, it prints:

	Supported extended features:
		* [ CQM_RSSI_LIST ]: multiple CQM_RSSI_THOLD records
		* [ 4WAY_HANDSHAKE_STA_PSK ]: 4-way handshake with PSK in station mode
		* [ 4WAY_HANDSHAKE_STA_1X ]: 4-way handshake with 802.1X in station mode
		* [ SAE_OFFLOAD ]: SAE offload support

The 4-way handshake offloading is not just a performance optimization, but rather the feature that made using encrypted WiFi possible at all on platforms like https://gokrazy.org/ (not based on Raspberry Pi OS, entirely implemented in Go aside from the Linux kernel). With the offloading, connecting to WiFi is as simple as one Linux nl80211 API call, whereas without the offloading, a lot of work is required in userspace (wpa_supplicant).

Is the lack of 4-way handshake offloading an oversight in the current firmware blobs for the BCM43430/2?

Is there any chance we could get a fixed firmware version?

Thanks in advance

(PS: we figured this out in gokrazy/gokrazy#96, but I’m filing a separate issue as the history is getting lengthy…)

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