Hello Arend,

Last October Christoph Müllner reported BCM4359 SDIO issues here: 
https://www.spinics.net/lists/linux-wireless/msg178783.html but the 
investigation stalled after the needs/timescale of his project forced a change 
to an alternate (working) module.

BCM4359 is also being used in an increasing number of Amlogic devices the Kodi 
focussed distro LibreELEC supports. I’m one of the maintainers for the distro 
and I’d like to assist/resume the investigation.

To recap: using changes from Wright Feng that can be found here 
https://github.com/RobertCNelson/ti-linux-kernel-dev/blob/65f17112e1c883d3c9f3fa68837e5f9b5eb7cfad/patches/cypress/v4.14.52-2018_0928/cypress-patch/0050-brcmfmac-Add-support-for-BCM4359-SDIO-chipset.patch
 results in the BCM4359 device being identified but firmware loading fails:

[    8.557929] brcmfmac: F1 signature read @0x18000000=0x17294359
[    8.562087] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac4359-sdio 
for chip BCM4359/9
[    8.775655] brcmfmac: brcmf_sdiod_ramrw: membytes transfer failed
[    8.775667] brcmfmac: brcmf_sdio_verifymemory: error -84 on reading 2048 
membytes at 0x0025f0c0
[    8.775670] brcmfmac: brcmf_sdio_download_firmware: dongle nvram file 
download failed

See: http://ix.io/1KfY for the full dmesg output on 5.1-rc1 kernel including a 
splat that may or may not be related/relevant. I am using the firmware and 
nvram files from https://github.com/LibreELEC/brcmfmac_sdio-firmware which 
match files found in several other github and public repo locations. The 
firmware/nvram are reported working in Android. 

BCMDHD is also reported working with the last few commits here: 
https://gitlab.com/baylibre/amlogic/atv/linux/commits/narmstrong/v5.1/aml/integ-5.1-bcmdhd
 but LibreELEC needs to support many different boards (with many different SDIO 
modules) from a single OS image, so BCMDHD is not the solution we need.

One additional patch I spotted mentioning BCM4359 (also from Wright Feng) was 
https://github.com/RobertCNelson/ti-linux-kernel-dev/blob/65f17112e1c883d3c9f3fa68837e5f9b5eb7cfad/patches/cypress/v4.14.52-2018_0928/cypress-patch/0073-non-upstream-reset-two-D11-cores-if-chip-has-two-D11.patch
 but it makes no difference (the dmesg log above is with this patch applied).

I’m happy building test kernels but I don’t write code so I can be fed patches 
and can provide logs/output as long as the instructions are fairly explicit. 
I’ve also CC’d LibreELEC colleague and linux-amlogic maintainer Neil Armstrong 
who has vastly superior skills to myself and can assist. NB: If direct access 
to hardware would help progress things I can easily organise remote access or 
get board samples shipped.

How to resume things again?

Christian

Reply via email to