cancel
Showing results for 
Search instead for 
Did you mean: 

Troubleshooting WLAN brcmfmac43430 firmware load failure on STM32MP1:Hardware vs Config

KChar.1
Senior

Hi there,

I am working on a custom board based on OSD32MP157F. The pinout is very similar to the stm32mp157f-dk2 with the main difference that the Murata LBEE5kL1BX-883 is connected to sdmmc3 instead of sdmmc2 and that there is no ethernet peripheral on the board. I used the stm32mp157f-dk2.dts as a starting point and modified the pinctl to match the pinout of the board. The image is made with buildroot. I configured the sdmmc3 according to this and this guides. Although all tested peripherals work as intended, including an eMMC connected to sdmmc2 the wifi module is not responsive and returns a firmware load error on the bootlog

1.933870] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43430-sdio for chip BCM43430/1
[    1.942625] brcmfmac mmc0:0001:1: Direct firmware load for brcm/brcmfmac43430-sdio.st,stm32mp157f-dk2.bin fa2
[    1.942926] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[    1.953593] brcmfmac mmc0:0001:1: Direct firmware load for brcm/brcmfmac43430-sdio.bin failed with error -2
[    1.967219] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[    1.979848] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[    1.987085] cfg80211: failed to load regulatory.db

By looking to troubleshoot the issue I found this older post which is very similar to the behavior I am facing. In my case the firmware files are correctly placed in /lib/firmware/brcm and have the right permissions to load. Ifconfig -a returns no wlan0 interface either. What troubles me most is that at only one boot out of several dozens or hundreds the wlan0 interface appeared which made me worry that the issue could be hardware related.

I was wondering if there are any suggested guidelines or ideas to investigate if the issue is hardware or software related. I am uploading the dtb, bootlog and part of the schematic in case it helps. Any suggestions are highly appreciated.

1 ACCEPTED SOLUTION

Accepted Solutions
Gregory PLANCHON
ST Employee

Hi @KChar.1 ,

Sorry for the delay, are you still looking for solutions?

On further investigation I may have found that the problem could be due to a configuration error in nvram.

Regards,

Grégory

In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.

View solution in original post

6 REPLIES 6
Gregory PLANCHON
ST Employee

I've had a look at your problem, and I think it's more on the software side.

Did you check in your menuconfig that you had the same settings as this wiki page :

If that doesn't work, can you send me your device tree with the .dts so that I can check that there's no configuration problem?

Regards,

Grégory

In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.

Hi @Gregory PLANCHON​ ,

Thank you so much for taking a look at this. I just doubled checked and indeed my linux-menuconfig is consistent with the wiki page.

I used the stm32mp157f-dk2 dts as a starting point. You can find the main dts and modified includes here.

Thanks again for your help!

Gregory PLANCHON
ST Employee

hi,

I don't see anything wrong with your dt,

can you share with me /lib/firmware/brcm and /lib/firmware/cypress? 

To see if there's a problem preventing it from loading correctly 

Regards,

Grégory

In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.

Hi @Gregory PLANCHON​,

Thanks for checking this out! I attach the lib/firmware contents below. It is the same contents as the ones in the DK2 board where the wifi works as intended.

By taking another look at the dts and board pinout I noticed that there are a series of pins that are not directly assigned on the dts.

WL_HOST_WAKE = PH3 (On the DK2 board is = PD0)
BT_HOST_WAKE = PE10
BT_DEV_WAKE = PZ7
BT_PCM_SDO = PA7
BT_PCM_SDI = PZ1
BT_PCM_CLK=PZ0
BT_PCM_WS =PZ3

I checked the dts of the stm32mp157f-dk2 board and I could not find any entries related to any of the above pins (no i2s1 for BT_PCM or HOST_WAKE pin entries) which makes me think that the above pins are not in use of the DK2 boards but I might be mistaken here.

On another note I noticed that one out of X amounts of reboots the error is not there and ifconfig -a can find a wlan0 entry.

Let me know if you have any ideas on this.  

Gregory PLANCHON
ST Employee

Hi @KChar.1 ,

Sorry for the delay, are you still looking for solutions?

On further investigation I may have found that the problem could be due to a configuration error in nvram.

Regards,

Grégory

In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.

Hi @Gregory PLANCHON ,

Indeed the problem was in the NVRAM configuration. My solution was to change boardflags3 in brcmfmac43430.sdio.txt

boardflags3=0x101188


Let me know in case I missed anything else.