RPi-3 brcmfmac errors on boot

Don Zickus dzickus at redhat.com
Wed Nov 23 13:48:17 PST 2016


On Wed, Nov 23, 2016 at 12:16:27PM -0800, Michael Zoran wrote:
> On Wed, 2016-11-23 at 12:00 -0800, Michael Zoran wrote:
> > On Wed, 2016-11-23 at 14:35 -0500, Don Zickus wrote:
> > > Hi,
> > > 
> > > I am trying to get bluetooth working on the RPi-3 and realized I
> > > needed some
> > > out-of-box drivers in Gerd's tree:
> > > 
> > > https://www.kraxel.org/cgit/linux/log/?h=bcm2837-wifi
> > > 
> > > Combining his tree with a patch to remove pwr
> > > 
> > > https://github.com/anholt/linux/commit/a44e87b47148c6ee6b78509f47e6
> > > a1
> > > 5c0fae890a
> > > 
> > > I can get the SDIO device detected and the brcmfmac driver to probe
> > > it.
> > > 
> > > However, that results in the following error message:
> > > 
> > > """
> > > brcmfmac: brcmf_sdio_htclk: HT Avail timeout (1000000): clkctl 0x50
> > > """
> > > 
> > > and neither the wifi nor bluetooth device get detected and added to
> > > the bus.
> > > 
> > 
> > I see this alot on the downstream tree if the firmware file hasn't
> > been
> > copied from Raspbian.   So just to ask an obvious question, did you
> > copy the firmware file?
> > 
> > 
> BTW, does your tree have the patches from the downstream tree to add
> the hardware identifiers so that the firmware can load?

Hmm, don't know.  Can you repost with 'diff -rup'?  It is a little easier
for me to read, save and apply those patches.

Thanks!

Cheers,
Don

> 
> diff -r linux-kernel-
> stable/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
> linux-rpi-
> fresh/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
> 2758a2759,2760
> > 	pr_info("power management disabled\n");
> > 	enabled = false;
> 4753,4755c4755
> < 		err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_AP, 0);
> < 		if (err < 0)
> < 			brcmf_err("setting AP mode failed %d\n",
> err);
> ---
>> 4758a4759,4763
>> > 		err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_AP, 0);
> > 		if (err < 0)
> > 			brcmf_err("setting AP mode failed %d\n",
> err);
>> 6739a6745,6746
> > 	char ccode[BRCMF_COUNTRY_BUF_SZ];
> > 	int rev;
> 6741a6749,6751
> > 	memcpy(ccode, alpha2, sizeof(ccode));
> > 	rev = -1;
>> 6744,6745c6754,6756
> < 		brcmf_dbg(TRACE, "No country codes configured for
> device\n");
> < 		return -EINVAL;
> ---
> > 		brcmf_dbg(TRACE, "No country codes configured for
> device"
> > 				 " - use requested value\n");
> > 		goto use_input_value;
> 6769,6771c6780,6781
> < 	memset(ccreq, 0, sizeof(*ccreq));
> < 	ccreq->rev = cpu_to_le32(country_codes-
> >table[found_index].rev);
> < 	memcpy(ccreq->ccode, country_codes->table[found_index].cc,
> ---
> > 	rev = country_codes->table[found_index].rev;
> > 	memcpy(ccode, country_codes->table[found_index].cc,
> 6772a6783,6787
>> > use_input_value:
> > 	memset(ccreq, 0, sizeof(*ccreq));
> > 	ccreq->rev = cpu_to_le32(rev);
> > 	memcpy(ccreq->ccode, ccode, sizeof(ccode));
> diff -r linux-kernel-
> stable/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c linux-
> rpi-fresh/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
> 72c72
> < static int brcmf_roamoff;
> ---
> > static int brcmf_roamoff = 1;
> diff -r linux-kernel-
> stable/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c linux-
> rpi-fresh/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
> 606a607
> > BRCMF_FW_NVRAM_DEF(43341, "brcmfmac43341-sdio.bin", "brcmfmac43341-
> sdio.txt");
> 623a625
> > 	BRCMF_FW_NVRAM_ENTRY(BRCM_CC_43341_CHIP_ID, 0xFFFFFFFF,
> 43341),
> diff -r linux-kernel-
> stable/drivers/net/wireless/broadcom/brcm80211/include/brcm_hw_ids.h
> linux-rpi-
> fresh/drivers/net/wireless/broadcom/brcm80211/include/brcm_hw_ids.h
> 38a39
> > #define BRCM_CC_43341_CHIP_ID		43341



More information about the linux-rpi-kernel mailing list