Doubts about NVRAM BCM43438

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

cross mob
leomecma
Level 1
Level 1
First reply posted First question asked Welcome!

I have a WIFI/BT module that uses BCM43438 (WM-BN-BM-26_A from USI - Universal Scientific Industrial). I have this modules working on Android 6.0 with IMX6 without problems (with bcmdhd).

Now I'm migrating my product to Android 9 (PIE) and Android uses now brcmfmac instead bcmdhd.

The brcmfmac needs a firmware and NVRAM files called respectively brcmfmac43430-sdio.bin and brcmfmac43430-sdio.txt

The manufacturer provides the NVRAM file in binary format, not in txt, like I can see at internet for other modules.

My doubts are:

1. The binary NVRAM is supported by brcmfmac? Or I need a txt version? Who interprets NVRAM: firmware or driver?

2. The firmware for 43438 is the same of 43430? Can I use the most recent firmware provided by Cypress (brcmfmac43430-sdio.bin) or I need use the version provided by manufacturer? The firmware is generic and NVRAM is module specific?

Are there some way to convert this binary NVRAM to txt?

I have copied the firmware and NVRAM (binary) provided by manufacturer to /vendor/firmware/brcm and renamed then to brcmfmac43430-sdio.bin and brcmfmac43430-sdio.txt, but isn't working.

Output:

mmc1: queuing unknown CIS tuple 0x80 (3 bytes)

mmc1: queuing unknown CIS tuple 0x80 (3 bytes)

mmc1: queuing unknown CIS tuple 0x80 (7 bytes)

mmc1: queuing unknown CIS tuple 0x80 (13 bytes)

mmc1: new high speed SDIO card at address 0001

brcmfmac: F1 signature read @0x18000000=0x1541a9a6

brcmfmac: brcmf_fw_map_chip_to_name: using brcm/brcmfmac43430-sdio.bin for chip 0x00a9a6(43430) rev 0x000001

brcmfmac mmc1:0001:1: Falling back to user helper

ueventd: firmware: loading 'brcm/brcmfmac43430-sdio.bin' for '/devices/soc0/soc/2100000.aips-bus/2194000.usdhc/mmc_host/mmc1/mmc1:0001/mmc1:0001:1/firmware/brcm!brcmfmac43430-sdio.bin'

[ueventd: loading /devices/soc0/soc/2100000.aips-bus/2194000.usdhc/mmc_host/mmc1/mmc1:0001/mmc1:0001:1/firmware/brcm!brcmfmac43430-sdio.bin took 21ms

brcmfmac mmc1:0001:1: Falling back to user helper

ueventd: firmware: loading 'brcm/brcmfmac43430-sdio.txt' for '/devices/soc0/soc/2100000.aips-bus/2194000.usdhc/mmc_host/mmc1/mmc1:0001/mmc1:0001:1/firmware/brcm!brcmfmac43430-sdio.txt'

ueventd: loading /devices/soc0/soc/2100000.aips-bus/2194000.usdhc/mmc_host/mmc1/mmc1:0001/mmc1:0001:1/firmware/brcm!brcmfmac43430-sdio.txt took 18ms

brcmfmac: brcmf_sdio_htclk: HT Avail timeout (1000000): clkctl 0x50

brcmfmac: brcmf_sdio_htclk: HT Avail timeout (1000000): clkctl 0x50

I have 32768KHz clock at LPOIN

su root cat /sys/kernel/debug/mmc1/ios

[10718.334239] mmc1: queuing unknown CIS tuple 0x80 (2 bytes)

[10718.341578] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)

[10718.348876] mmc1: queuing unknown CIS tuple 0x80 (3 bytes)

[10718.357599] mmc1: queuing unknown CIS tuple 0x80 (7 bytes)

[10718.368368] mmc1: queuing unknown CIS tuple 0x80 (13 bytes)

clock:          50000000 Hz

actual clock:   49500000 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:    2 (sd high-speed)

signal voltage: 0 (3.30 V)

driver type:    0 (driver type B)

Thanks in advance for any suggestions.

Leonardo

0 Likes
1 Solution
GauravS_31
Moderator
Moderator
Moderator
10 questions asked 250 solutions authored 250 sign-ins

1. No, brcmfmac supports nvram file in .txt format. It is interpreted by WLAN radio.

2. Yes, the firmware for 43438 is the same as 43430. You can use the most recent firmware provided by Cypress in the quarterly FMAC release package. The nvram is module specific.

You can request your module vendor to provide the nvram file in txt format.

View solution in original post

0 Likes
2 Replies
GauravS_31
Moderator
Moderator
Moderator
10 questions asked 250 solutions authored 250 sign-ins

1. No, brcmfmac supports nvram file in .txt format. It is interpreted by WLAN radio.

2. Yes, the firmware for 43438 is the same as 43430. You can use the most recent firmware provided by Cypress in the quarterly FMAC release package. The nvram is module specific.

You can request your module vendor to provide the nvram file in txt format.

0 Likes
leomecma
Level 1
Level 1
First reply posted First question asked Welcome!

Thanks for your answer GauravS_31.

0 Likes