RPi-3 brcmfmac errors on boot
Michael Zoran
mzoran at crowfest.net
Wed Nov 23 12:16:27 PST 2016
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?
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