cancel
Showing results for 
Search instead for 
Did you mean: 

Wi-Fi Bluetooth for Linux

New Contributor

I'm trying to test the cyfmac54591 module with an NVIDIA Jetson Nano, and running into an issue with loading FW during 'insmod brcmfmac.ko' :

from dmesg:

[  785.339047] brcmfmac 0000:01:00.0: loading /lib/firmware/cypress/cyfmac54591-pcie.nvidia,jetson-nano.txt failed with error -22

[  785.350588] brcmfmac 0000:01:00.0: Direct firmware load for cypress/cyfmac54591-pcie.nvidia,jetson-nano.txt failed with error -22

[  785.362525] brcmfmac 0000:01:00.0: Falling back to user helper

[  785.373246] brcmfmac 0000:01:00.0: Direct firmware load for cypress/cyfmac54591-pcie.txt failed with error -2

[  785.383346] brcmfmac 0000:01:00.0: Falling back to user helper

[  785.560814] ieee80211 phy3: brcmf_fw_crashed: Firmware has halted or crashed

[  787.570305] ieee80211 phy3: brcmf_msgbuf_query_dcmd: Timeout on response for query command

[  787.579030] ieee80211 phy3: brcmf_c_preinit_dcmds: Retrieving cur_etheraddr failed, -5

[  787.587234] ieee80211 phy3: brcmf_bus_started: failed: -5

[  787.592815] ieee80211 phy3: brcmf_attach: dongle is not responding: err=-5

[  787.619723] brcmfmac 0000:01:00.0: brcmf_pcie_setup: Dongle setup failed

I've compiled the kernel modules (compat, cfg80211, brcmutil, brcmfmac) on the Jetson Nano using sources from cypress-backports-v5.4.18-2020_0925-module-src.tar.gz, and copied the contents of cypress-firmware-v5.4.18-2020_0925.tar.gz to a new folder /lib/firmware/cypress.  I modified the kernel config file as described in the README in order to prevent error during 'insmod compat.ko'  

I don't see any .txt files in my /lib/firmware/cypress folder, is there a way to specify which FW file to use, or am i supposed to generate the .txt file somehow?

root@localhost:~/cypress$ ll /lib/firmware/cypress/*54591*

-rw-r--r-- 1 root root 616914 Jan 28 16:04 /lib/firmware/cypress/cyfmac54591-pcie.bin

-rw-r--r-- 1 root root   5764 Jan 28 16:04 /lib/firmware/cypress/cyfmac54591-pcie.clm_blob

root@localhost:~/cypress$ lspci -v

.

.

.01:00.0 Network controller: Broadcom Inc. and subsidiaries Device 4417 (rev 0d)

        Subsystem: Broadcom Inc. and subsidiaries Device 0751

        Flags: fast devsel, IRQ 82

        Memory at 13400000 (64-bit, non-prefetchable) [size=32K]

        Memory at 13000000 (64-bit, non-prefetchable) [size=4M]

        Capabilities: [48] Power Management version 3

        Capabilities: [58] MSI: Enable- Count=1/16 Maskable- 64bit+

        Capabilities: [68] Vendor Specific Information: Len=44 <?>

        Capabilities: [ac] Express Endpoint, MSI 00

        Capabilities: [100] Advanced Error Reporting

        Capabilities: [13c] Device Serial Number 00-00-38-ff-ff-00-38-0f

        Capabilities: [150] Power Budgeting <?>

        Capabilities: [160] Virtual Channel

        Capabilities: [1b0] Latency Tolerance Reporting

        Capabilities: [220] #15

        Capabilities: [240] L1 PM Substates

        Kernel modules: bcmdhd_pcie

Thank you for your time

0 Likes
Reply
1 Solution
Moderator
Moderator

The cyfmac54591-pcie.txt NVRAM file should be present in the /lib/firmware/cypress directory. If it is not available, kindly contact your module vendor to obtain the nvram file. There is no need to specify the FW, the driver will automatically enumerate the connected WLAN chip over PCIE interface and select the cyfmac54591-pcie.bin and clm_blob file for loading. But the /lib/firmware/cypress should contain the three files in the naming convention shown below:

cyfmac54591-pcie.bin

cyfmac54591-pcie.clm_blob

cyfmac54591-pcie.txt

View solution in original post

1 Reply
Moderator
Moderator

The cyfmac54591-pcie.txt NVRAM file should be present in the /lib/firmware/cypress directory. If it is not available, kindly contact your module vendor to obtain the nvram file. There is no need to specify the FW, the driver will automatically enumerate the connected WLAN chip over PCIE interface and select the cyfmac54591-pcie.bin and clm_blob file for loading. But the /lib/firmware/cypress should contain the three files in the naming convention shown below:

cyfmac54591-pcie.bin

cyfmac54591-pcie.clm_blob

cyfmac54591-pcie.txt

View solution in original post