Orange Pi 5 Pro AP6256 Wi-Fi is unstable on brcmfmac but stable on bcmdhd-sdio
## Summary
On an Orange Pi 5 Pro with the onboard AP6256 / BCM43456 module, the default `brcmfmac` path on `ubuntu-rockchip` was unstable in real hardware testing, while switching the board to `bcmdhd-sdio` made 5 GHz stable again.
This is related to but more detailed than the older closed report in #841.
## Environment
- Board: Orange Pi 5 Pro
- Wi-Fi module: AP6256 / BCM43456 (SDIO)
- OS: Ubuntu 24.04.1 LTS
- Kernel: `6.1.0-1025-rockchip`
- Repo/image family: `Joshua-Riek/ubuntu-rockchip`
- Verified on hardware: 2026-04-12
## Failure modes seen on the default path
With the board using the default `brcmfmac` path:
1. Sometimes the Wi-Fi device failed during boot:
- `brcmf_attach: dongle is not responding: err=-52`
- `brcmf_sdio_firmware_callback: brcmf_attach failed`
2. Other times 5 GHz came up briefly after boot, then disappeared after tens of seconds to a few minutes.
3. In the unstable case, the board would effectively fall back to 2.4 GHz visibility only, and connectivity would drop.
Representative boot log from the failing `brcmfmac` path:
```text
brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43456-sdio for chip BCM4345/9
ieee80211 phy0: brcmf_bus_started: failed: -52
ieee80211 phy0: brcmf_attach: dongle is not responding: err=-52
brcmfmac: brcmf_sdio_firmware_callback: brcmf_attach failed
```
## What was tested
The following did **not** fix the root problem:
- replacing `brcmfmac43456-sdio.bin`
- replacing `brcmfmac43456-sdio.txt`
- removing / changing the `clm_blob`
- NetworkManager / wpa_supplicant level workarounds
The firmware bin/txt matched the official Orange Pi image, so this did not look like a simple wrong-firmware-file problem.
## What did fix it
Switching the board to the Broadcom BCMDHD SDIO path fixed the issue in repeated testing:
- install `bcmdhd-sdio-dkms`
- blacklist `brcmfmac` / `brcmutil` for this board
- use the BCMDHD firmware / NVRAM / config paths explicitly
- power the SDIO Wi-Fi module down cleanly on shutdown / reboot
## Validation after the fix
After switching to `bcmdhd_sdio`, the board repeatedly connected and stayed on 5 GHz:
- SSID: `CMCC-201-5G`
- BSSID: `48:81:d4:89:db:3f`
- frequency: `5180 MHz` / channel 36 / 80 MHz environment
- driver path: `bcmdhd_sdio` + `dhd_static_buf_sdio`
This remained stable past the old failure window after:
- cold boot
- warm reboot
Representative successful log:
```text
wl_android_wifi_on : Success
wl_iw_event : Link UP with 48:81:d4:89:db:3f
wl_bss_connect_done : Report connect result - connection succeeded
```
## Proposed fix
I opened PR #1343 with the board-level change that matched the successful hardware validation:
- install `bcmdhd-sdio-dkms` for Orange Pi 5 Pro
- stop using the `brcmfmac` path for this board
- replace the old reboot-only `brcmfmac` unbind helper with a shutdown/reboot poweroff helper
PR: #1343
If useful, I can also add a follow-up comment with full before/after command output from the live board.
1 条评论