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