ASUS Flip C100P wifi Broadcom 4354 detection failure

This is for any ARMv7 device that we do not officially support.

ASUS Flip C100P wifi Broadcom 4354 detection failure

Postby shin » Sat Mar 12, 2022 11:32 am

Hello there, this is my first post to the forum. If anything is wrong in this post, please let me know.

I set up alarm on my C100P two years ago, following the installation guide at https://archlinuxarm.org/platforms/armv7/rockchip/asus-chromebook-flip-c100p. I wanted to use mainline kernel, so I replaced some packages including firmware-veyron as guided. The system worked well with the mainline kernel except wifi device Broadcom 4354. Its driver reported some errors and wlan
device did not show up. As a work around, I added other USB wifi dongle and was happily using the alarm on C100P.

Recently, I had time to investigate why the wifi device Broadcom 4354 did not work, and found that the cause is the firmware file in firmware-veryon package, probably.

As show below, the wifi device driver brcmfmac reported some errors.

$this->bbcode_second_pass_quote('', '
')$ dmesg | grep brcm
[ 5.456575] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac4354-sdio for chip BCM4354/1
[ 5.473320] usbcore: registered new interface driver brcmfmac
[ 5.780462] brcmfmac mmc2:0001:1: Direct firmware load for brcm/brcmfmac4354-sdio.google,veyron-minnie-rev4.bin failed with error -2
[ 5.796394] Bluetooth: hci1: BCM: 'brcm/BCM4354.hcd'
[ 5.798878] Bluetooth: hci1: BCM: 'brcm/BCM.hcd'
[ 5.803552] brcmfmac mmc2:0001:1: Direct firmware load for brcm/brcmfmac4354-sdio.google,veyron-minnie-rev4.txt failed with error -2
[ 7.564863] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac4354-sdio for chip BCM4354/1
[ 7.584917] ieee80211 phy0: brcmf_c_process_clm_blob: clmload (5750 byte file) failed (-52)
[ 7.587980] ieee80211 phy0: brcmf_c_process_clm_blob: get clmload_status failed (-52)
[ 7.590788] ieee80211 phy0: brcmf_c_preinit_dcmds: download CLM blob file failed, -5
[ 7.593536] ieee80211 phy0: brcmf_bus_started: failed: -5
[ 7.596285] ieee80211 phy0: brcmf_attach: dongle is not responding: err=-5
[ 7.635494] brcmfmac: brcmf_sdio_firmware_callback: brcmf_attach failed


One of the errors is firmware load failure for "brcm/brcmfmac4354-sdio.google,veyron-minnie-rev4.bin". This bin file does not exist under /lib/firmware then failed to load. This failure is fine since the driver fall-backs to loading "brcm/brcmfmac4354-sdio.bin" instead. I checked this file under /lib/firmware and noticed that there are two files:

1) at /lib/firmware/updates/brcm (firmware-veyron package)
.. looks older
2) at /lib/firmare (linux-firmware package)
.. looks newer, a symbolic link to /lib/firmware/cypress/cyfmac4354-sdio.bin

According to the Linux kernel documentation at https://www.kernel.org/doc/html/latest/driver-api/firmware/fw_search_path.html, the kernel loads the 1) file under /lib/firmware/updates first. Then the errors were reported with this firmware. To try out the file 2), I removed the file 1) temporally so the the driver loads it. After system reboot, the wifi device gets recognized and working well! The driver no longer reports the error messages [4]. Still the message about "brcm/brcmfmac4354-sdio.google,veyron-minnie-rev4.bin" is there, but I don't thinks it's a problem.

$this->bbcode_second_pass_quote('', '
')$ dmesg | grep brcm
[ 5.574627] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac4354-sdio for chip BCM4354/1
[ 5.575285] usbcore: registered new interface driver brcmfmac
[ 5.752287] brcmfmac mmc2:0001:1: Direct firmware load for brcm/brcmfmac4354-sdio.google,veyron-minnie-rev4.bin failed with error -2
[ 5.757231] Bluetooth: hci0: BCM: 'brcm/BCM4354.hcd'
[ 5.759688] Bluetooth: hci0: BCM: 'brcm/BCM.hcd'
[ 5.856003] brcmfmac mmc2:0001:1: Direct firmware load for brcm/brcmfmac4354-sdio.google,veyron-minnie-rev4.txt failed with error -2
[ 7.649578] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac4354-sdio for chip BCM4354/1
[ 7.662975] brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM4354/1 wl0: Apr 9 2021 00:35:31 version 7.35.349.104 (775a9ab CY) FWID 01-d55901b0


Based on these observations, I think the firmware "brcm/brcmfmac4354-sdio.bin" in firmware-veyron package is not good, and that in linux-firmware package is good. Then I would like to suggest to remove the file from firmware-veyron package to avoid this pitfall. Who to or how should I suggest and request this?

Of note is that the package firmware-veyron has two files: "brcm/brcmfmac4354-sdio.bin" and "brcm/brcmfmac4354-sdio.txt". I also tried to remove not only the .bin file but also the .txt file. But with this change, the wifi device did not work. So, still the .txt file in the firmware-veyron package are required for C100P.
shin
 
Posts: 1
Joined: Sat Mar 12, 2022 8:15 am

Return to Community Supported

Who is online

Users browsing this forum: No registered users and 5 guests