AP6256: update wifi firmware under brcm/ from Xunlong repo#120
AP6256: update wifi firmware under brcm/ from Xunlong repo#120sven-ola wants to merge 1 commit intoarmbian:masterfrom
Conversation
The Broadcom AP6256 chip is soldered on OrangePi RV2 board (and probably
other Xunlong OrangePi boards). Without arguments, the bcmdhd.ko module
loads /lib/firmware/{fw_bcm43456c5_ag.bin,nvram_ap6256.txt} which at
least with OrangePi RV2 has a non-working access point mode.
When loading the (newer) fw_bcm43456c5_ag.bin from /lib/fw/brcm,
the access point mode works. Also, for the Wifi AP6256, the files
stored under /lib/firmware and /lib/firmware/rkwifi are the same.
While investigating this, I spotted a newer firmware on the Xunlong
repo (refer to https://github.com/orangepi-xunlong/firmware). This
FW also works fine including the access point mode.
There may be older boards that required the older firmware under
/lib/firmware. To use the FW under brcm/ you need to add module
parameters e.g. to /etc/modprobe.d/${BOARD}.conf, for example
options bcmdhd firmware_path=brcm/ nvram_path=brcm/
Note the trailing slashes, those are required. Rest of the file
names are determined and applied during wifi iface init.
* root and rkwifi/ Version: 7.45.96.61 (be7af2d@shgit) (r745790)
CRC: 279731d4 Date: Tue 2020-02-11 11:55:51 CST
Ucode Ver: 1043.20721 FWID: 01-a41d86bd
* brcm/ old Version: 7.45.96.91 (8d24bff@SYNA) (r745790)
CRC: 38590a6e Date: Fri 2021-06-11 13:07:03 CST
Ucode Ver: 1043.20730 FWID: 01-82a62ae
* brcm/ new Version: 7.45.96.203 (g23f64344)
CRC: bd0824a0 Date: Tue 2024-04-16 11:23:17 CST
Ucode Ver: 1043.20745 FWID: 01-4763f75d
If you run "strings bcmdhd.ko | grep Version:", you see a longer
string thats probably dash-speaparted compile flags. If you split them
to lines, sort, and compare you see 6 missing and 5 additional flags
from rkwifi to brcm (old) while only 2 missing and 1 added between
brcm(old) and brcm(new). It's likely an update under brcm/ and maybe
break something when overwriting /lib/firmware/fw_bcm43456c5_ag.bin
Signed-off-by: Sven-Ola Tuecke <sven-ola@gmx.de>
|
Important Review skippedReview was skipped due to path filters ⛔ Files ignored due to path filters (1)
CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Short description
This update is optional. I do not think it will break lots of Armbian boards, but better save than sorry. Thus, this only overwrites fw_bcm43456c5_ag.bin in the /lib/firmware/brcm/ subdir that needs to be activated manually or by board cfg anyhow (which is used here and there e.g. Bananapi-M4?) AP mode also works for me with the old version currently stored under /brcm/
Tests
Tested with Orange Pi RV2 with kernel 6.6 and 6.18 and hostapd as well as a minimal hostapd.conf
Grabbed version strings from the *.bin files (see attached *.txt)
Root: rkwifi.txt
Old: brcm.txt
New: xunlong.txt
Commit comment
The Broadcom AP6256 chip is soldered on OrangePi RV2 board (and probably other Xunlong OrangePi boards). Without arguments, the bcmdhd.ko module loads /lib/firmware/{fw_bcm43456c5_ag.bin,nvram_ap6256.txt} which at least with OrangePi RV2 has a non-working access point mode.
When loading the (newer) fw_bcm43456c5_ag.bin from /lib/fw/brcm, the access point mode works. Also, for the Wifi AP6256, the files stored under /lib/firmware and /lib/firmware/rkwifi are the same.
While investigating this, I spotted a newer firmware on the Xunlong repo (refer to https://github.com/orangepi-xunlong/firmware). This FW also works fine including the access point mode.
There may be older boards that required the older firmware under /lib/firmware. To use the FW under brcm/ you need to add module parameters e.g. to /etc/modprobe.d/${BOARD}.conf, for example
options bcmdhd firmware_path=brcm/ nvram_path=brcm/
Note the trailing slashes, those are required. Rest of the file names are determined and applied during wifi iface init.
root and rkwifi/ Version: 7.45.96.61 (be7af2d@shgit) (r745790)
CRC: 279731d4 Date: Tue 2020-02-11 11:55:51 CST
Ucode Ver: 1043.20721 FWID: 01-a41d86bd
brcm/ old Version: 7.45.96.91 (8d24bff@SYNA) (r745790)
CRC: 38590a6e Date: Fri 2021-06-11 13:07:03 CST
Ucode Ver: 1043.20730 FWID: 01-82a62ae
brcm/ new Version: 7.45.96.203 (g23f64344)
CRC: bd0824a0 Date: Tue 2024-04-16 11:23:17 CST
Ucode Ver: 1043.20745 FWID: 01-4763f75d
If you run "strings fw*.bin | grep Version:", you see a longer string thats probably dash-speaparted compile flags. If you split them to lines, sort, and compare you see 6 missing and 5 additional flags from rkwifi to brcm (old) while only 2 missing and 1 added between brcm(old) and brcm(new). It's likely an update under brcm/ and maybe break something when overwriting /lib/firmware/fw_bcm43456c5_ag.bin