brcmfmac: brcmf_sdio_download_code_file: error -84

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
YuKu_4705801
Level 1
Level 1

// Not sure if he question was posted successfully earlier...

OS: openWrt 19.07

HW: iMX6ull eval board with Laird Sterling-LWB5 module with CYW43353 chip.

The iMX6ull board was modified and device tree (dts) file was updated according to spec from Laird.

When brcmfmac.ko was loaded, it tried to copy the firmware and failed with error -84 (#define EILSEQ 84      /* Illegal byte sequence */)

Below are the console output and debug captures:

Any one knows what caused the issue? and know a way to fix this or something I can look into and try??

Thanks,

- ykuo

+++

...

root@OpenWrt:/lib/modules/4.14.171#

root@OpenWrt:/lib/modules/4.14.171# insmod compat.ko

[  103.069066] Loading modules backported from Laird Linux version LRD-REL-7.0.0.326-0-gb1ee9b1eb665

[  103.077972] Backport generated by backports.git v7.0.0.326

root@OpenWrt:/lib/modules/4.14.171#

root@OpenWrt:/lib/modules/4.14.171# insmod cfg80211.ko

root@OpenWrt:/lib/modules/4.14.171#

root@OpenWrt:/lib/modules/4.14.171# insmod brcmutil.ko

root@OpenWrt:/lib/modules/4.14.171#

root@OpenWrt:/lib/modules/4.14.171# insmod brcmfmac.ko

root@OpenWrt:/lib/modules/4.14.171# [  132.976535] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac4339-sdio for chip BCM4339/2

[  133.019182] brcmfmac: brcmf_sdiod_ramrw: membytes transfer failed

[  133.025335] brcmfmac: brcmf_sdio_download_code_file: error -84 on writing 570007 membytes at 0x00180000

[  133.034983] brcmfmac: brcmf_sdio_download_firmware: dongle image file download failed

[  133.082460] mmc0: Tuning failed, falling back to fixed sampling clock

[  133.089002] brcmfmac: brcmf_sdio_htclk: Failed access turning clock off: -5

[  133.097904] brcmfmac: brcmf_sdio_htclk: HT Avail request error: -84

[  133.178333] mmc0: Tuning failed, falling back to fixed sampling clock

[  133.224433] mmc0: Tuning failed, falling back to fixed sampling clock

[  133.270498] mmc0: Tuning failed, falling back to fixed sampling clock

...

root@OpenWrt:/lib/modules/4.14.171# cat /sys/kernel/debug/mmc0/ios

clock:          198000000 Hz

actual clock:   198000000 Hz

vdd:            21 (3.3 ~ 3.4 V)

bus mode:       2 (push-pull)

chip select:    0 (don't care)

power mode:     2 (on)

bus width:      2 (4 bits)

timing spec:    6 (sd uhs SDR104)

signal voltage: 1 (1.80 V)

driver type:    0 (driver type B)

root@OpenWrt:/lib/modules/4.14.171#

root@OpenWrt:/lib/modules/4.14.171#

...

root@OpenWrt:/lib/modules/4.14.171# logread | grep mmc

Tue May 19 22:44:12 2020 kern.notice kernel: [    0.000000] Kernel command line: console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw

Tue May 19 22:44:12 2020 kern.info kernel: [    1.129491] mmc0: SDHCI controller on 2190000.usdhc [2190000.usdhc] using ADMA

Tue May 19 22:44:12 2020 kern.warn kernel: [    1.184880] mmc0: queuing unknown CIS tuple 0x80 (2 bytes)

Tue May 19 22:44:12 2020 kern.warn kernel: [    1.192333] mmc0: queuing unknown CIS tuple 0x80 (3 bytes)

Tue May 19 22:44:12 2020 kern.info kernel: [    1.198620] mmc1: SDHCI controller on 2194000.usdhc [2194000.usdhc] using ADMA

Tue May 19 22:44:12 2020 kern.warn kernel: [    1.225747] mmc0: queuing unknown CIS tuple 0x80 (3 bytes)

Tue May 19 22:44:12 2020 kern.warn kernel: [    1.267032] mmc0: queuing unknown CIS tuple 0x80 (7 bytes)

Tue May 19 22:44:12 2020 kern.info kernel: [    1.309707] Waiting for root device /dev/mmcblk1p2...

Tue May 19 22:44:12 2020 kern.warn kernel: [    1.324513] mmc1: host does not support reading read-only switch, assuming write-enable

Tue May 19 22:44:12 2020 kern.info kernel: [    1.341603] mmc1: new high speed SDHC card at address aaaa

Tue May 19 22:44:12 2020 kern.info kernel: [    1.348292] mmcblk1: mmc1:aaaa SB32G 29.7 GiB

Tue May 19 22:44:12 2020 kern.info kernel: [    1.358091]  mmcblk1: p1 p2

Tue May 19 22:44:12 2020 kern.info kernel: [    1.453397] EXT4-fs (mmcblk1p2): recovery complete

Tue May 19 22:44:12 2020 kern.info kernel: [    1.461049] mmc0: Tuning failed, falling back to fixed sampling clock

Tue May 19 22:44:12 2020 kern.info kernel: [    1.467619] EXT4-fs (mmcblk1p2): mounted filesystem with ordered data mode. Opts: (null)

Tue May 19 22:44:12 2020 kern.info kernel: [    1.493574] mmc0: new ultra high speed SDR104 SDIO card at address 0001

Tue May 19 22:44:12 2020 kern.info kernel: [    5.447594] EXT4-fs (mmcblk1p2): re-mounted. Opts: (null)

root@OpenWrt:/lib/modules/4.14.171#

0 Likes
8 Replies
kama_1693131
Level 5
Level 5
Distributor - Marubun (Japan)
50 sign-ins 25 sign-ins 10 likes received

Hi YuKu,

Please try to use latest driver.

If it does not affect your issue, please confirm your FW is matched for your device?

Cypress Linux WiFi Driver Release (FMAC) [2020-04-02]

I think your driver downloaded the firmware on wrong part of the CYW43353's RAM.

[  133.019182] brcmfmac: brcmf_sdiod_ramrw: membytes transfer failed

[  133.025335] brcmfmac: brcmf_sdio_download_code_file: error -84 on writing 570007 membytes at 0x00180000

Regards,

Matayoshi

0 Likes

Hi Matayoshi;

The drivers/firmware were from Laird backports version 7.0.0.326 (see below) and built for OpenWrt.

Should I use the firmware brcmfmac4339-sdio.bin from the zip in the link you suggested  and there is no associated brcmfmac4339-sdio.clm_blob file? There are lots of firmware files, just want to make sure to use the one for CYW43353 chipset.

Thank  you.

+++

user@user-VirtualBox:~/projects/backports/7.0.0.326/lib/firmware/brcm$

user@user-VirtualBox:~/projects/backports/7.0.0.326/lib/firmware/brcm$

user@user-VirtualBox:~/projects/backports/7.0.0.326/lib/firmware/brcm$ ls -l

total 632

-rw-r--r-- 1 user user  68581 Mar  5 20:35 BCM4335C0.hcd

lrwxrwxrwx 1 user user     26 Mar  5 20:35 brcmfmac4339-sdio.bin -> brcmfmac4339-sdio-prod.bin

-rw-r--r-- 1 user user   2360 Mar  5 20:35 brcmfmac4339-sdio-fcc.txt

-rw-r--r-- 1 user user 570007 Mar  5 20:35 brcmfmac4339-sdio-prod.bin

lrwxrwxrwx 1 user user     25 Mar  5 20:41 brcmfmac4339-sdio.txt -> brcmfmac4339-sdio-fcc.txt

user@user-VirtualBox:~/projects/backports/7.0.0.326/lib/firmware/brcm$

user@user-VirtualBox:~/projects/backports/7.0.0.326/lib/firmware/brcm$

user@user-VirtualBox:~/projects/backports/7.0.0.326/lib/firmware/brcm$ more brcmfmac4339-sdio.txt

# Sample variables file for BCM94339 WLBGA with eTR,iPA, and eLNA. Laird Sterling-LWB5 CYW43353

NVRAMRev=$Rev: 410316 $

sromrev=11

boardrev=0x1203

boardtype=0x06c5

boardflags=0x00000c01

boardflags2=0x00002000

boardflags3=0x8101188

...

0 Likes

Hi Matayoshi;

running with new/suggested firmware, failed with same error : -84

Any one has any idea why the issue and how to fix it?

iMX6ull eval board + Sterling-LWB5 running on openWrt version 19.07

root@OpenWrt:/#

root@OpenWrt:/# modprobe brcmfmac

[   76.431709] Loading modules backported from Laird Linux version LRD-REL-7.0.0.326-0-gb1ee9b1eb665

[   76.440774] Backport generated by backports.git v7.0.0.326

root@OpenWrt:/# [   76.595635] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac4339-sdio for chip BCM4339/2

[   76.639010] brcmfmac: brcmf_sdiod_ramrw: membytes transfer failed

[   76.645163] brcmfmac: brcmf_sdio_download_code_file: error -84 on writing 574096 membytes at 0x00180000

[   76.654793] brcmfmac: brcmf_sdio_download_firmware: dongle image file download failed

[   76.702261] mmc0: Tuning failed, falling back to fixed sampling clock

[   76.708798] brcmfmac: brcmf_sdio_htclk: Failed access turning clock off: -5

[   76.717491] brcmfmac: brcmf_sdio_htclk: HT Avail request error: -5

[   76.798359] mmc0: Tuning failed, falling back to fixed sampling clock

[   76.844589] mmc0: Tuning failed, falling back to fixed sampling clock

[   76.891023] mmc0: Tuning failed, falling back to fixed sampling clock

[   76.937057] mmc0: Tuning failed, falling back to fixed sampling clock

[   76.983437] mmc0: Tuning failed, falling back to fixed sampling clock

[   77.029727] mmc0: Tuning failed, falling back to fixed sampling clock

...

0 Likes
kama_1693131
Level 5
Level 5
Distributor - Marubun (Japan)
50 sign-ins 25 sign-ins 10 likes received

Hi ykuo,

Thank you for your reply I found laird provided latest FW for your module, you should use it.

Sterling-LWB5 802.11ac WiFi Module with Bluetooth 4.2

I expected you use cypress-backports-v5.4.18-2020_0402-module-src.tar.gz instead of your brcmfmac sources.

But I don't know how to fix this issue.

Could you contact laird staff on above site too?

Regards,

Matayoshi

0 Likes

Hi Matayoshi,

I already used Laird Backport v7.0.0.326 which has the firmwares and brcmfmac sources where I built drivers for openWrt 19.07.

There is no reason to use cypress-backports-v5.4.18-2020_0402-module-src.tar.gz? correct?

regards,

- Ykuo

0 Likes
kama_1693131
Level 5
Level 5
Distributor - Marubun (Japan)
50 sign-ins 25 sign-ins 10 likes received

Hi Ykuo,

I checked both source code  about firmware downloading part of Backport v7.0.0.326 and cypress-backports-v5.4.18-2020_0402-module-src.tar.gz.

These source code are a lot difference, but I could not find any reason to use cypress-backports-v5.4.18-2020_0402-module-src.tar.gz on your environment.

If you can add following option, it could output more useful log.

1)CPTCFG_BRCMDBG=y on your laird-backport-7.0.0.326/defconfigs/brcmfmac

2)insmod brcmfmac debug=0xff

Regards,

Matayoshi

0 Likes

Matayoshi,

There are any more useful logs and I was told the issue is because there is no 1.8v to the module.

Will try to find it out.

Thanks

0 Likes

Hello!

I am trying to run openWRT on the Dart-6ul-5G (https://www.variscite.com/wp-content/uploads/2018/01/DART-6UL_DART-6UL-5G-Datasheet.pdf), which also uses an iMX6ul and a Laird Sterling-LWB5 module with CYW43353 chip.

I was wondering if you had managed to get this working and were able to use the wifi radio.

Presently, I'm still trying to get the kernel modules to make (looks like you can't make them for kernel 5.4.60).

0 Likes