Bug 98011
Summary: | Broadcom 43341 sdio wireless card lacks wireless 5GHz support on brcmfmac module | ||
---|---|---|---|
Product: | Drivers | Reporter: | Francesco Bonanno (mibofra) |
Component: | network-wireless | Assignee: | Arend van Spriel (aspriel) |
Status: | NEW --- | ||
Severity: | low | CC: | ferry.toth, forgedinmars, hugues.clouatre, linville, marcin.marcin.m, palatis, snoozerman |
Priority: | P1 | ||
Hardware: | All | ||
OS: | Linux | ||
Kernel Version: | 4.1-rc2 | Subsystem: | |
Regression: | No | Bisected commit-id: | |
Attachments: |
dmesg for the broadcom 43341 card, using brcmfmac and firmware from linux-firmware + T200TA nvram
compiling brcmfmac with debug revinfo dmesg + /sys/kernel/debug/brcmfmac/mmc1:0001:1/revinfo |
Description
Francesco Bonanno
2015-05-09 16:01:31 UTC
Can you provide a dump of debugfs entry, ie.: # cd /sys/kernel/debug/brcmfmac/* # cat revinfo I do not have brcmfmac under /sys/kernel/debug and so also revinfo. (In reply to Francesco Bonanno from comment #2) > I do not have brcmfmac under /sys/kernel/debug and so also revinfo. The brcmfmac driver needs to be build with CONFIG_BRCMDBG selected in .config. Created attachment 178411 [details]
compiling brcmfmac with debug
Comment on attachment 178411 [details]
compiling brcmfmac with debug
I was compiling the driver, while I got an error from the compiler.
What build steps did you do. I would expect these: 1. make M=drivers/net/wireless/brcm80211 clean 2. make menuconfig #enable BRCMDBG 3. make modules_prepare 4. make M=drivers/net/wireless/brcm80211 modules Created attachment 178471 [details]
revinfo
Sorry, I was compiling the brcmfmac module without the brcmutil module, I have noticed this later. Meanwhile I have upgraded the kernel from the rc5 to the rc6.
So I have put in the attachment the output from the revinfo.
can you create a log while doing 'modprobe brcmfmac debug=0x1416'? Created attachment 182391 [details] dmesg + /sys/kernel/debug/brcmfmac/mmc1:0001:1/revinfo But really the wireless card it's working. https://www.kernel.org/pub/linux/kernel/projects/backports/2015/06/ it seems that with both of the backports of June (and the new mainline kernel, the 4.2rc1) the card works as expected. I can see and connect also to the 5GHz wireless networks. Now, I have (and I imagine all the owners of this broadcom product) only this bug: https://bugzilla.kernel.org/show_bug.cgi?id=98021 related to the bluetooth part of the device and a strange behavior of the driver. Sometimes at startup it is not loaded fine, so I have to restart (sometimes more than once) to get it working, and not I can not load or reload the driver at runtime but only at startup. But I imagine that this requires another bug report. Francesco, How did you convince the kernel to use the 43341 firmware instead of 43340? The devices are so much similar, so the 43341 is seen as the 43340. I have renamed the firmware so the brcmfmac was capable of injecting the binary and (apart from the uart bt) it is working. I suggest to use at the moment, if there is not a way to diversify one from each other, a script to ask the user only once if the chip is a 43341 or a 43340, or, because the kernel knows the model of the hw where it is working (as one example, in installation phase the hostname suggested was for me *-T200T*), to use a firmware instead of another. For example my T200TA is using for sure a 43341 and surely the X205TA (both asus) as documented here: https://wiki.debian.org/InstallingDebianOn/Asus/X205TA . Maybe it will be a possible temporary workaround, with the hope of the differentiation of the two chips in the future. On Intel Edison with 4.11 I have 2.4 and 5GHz working fine. That is with using firmware (a newer version exists on kernel.org) + calibration file. Files needs to be renamed as mentioned after boot in dmesg. Hi guys! It passed a while, but I want to share with you the fix. After fetching the nvram from the efivars (the txt file loaded with the binary blob to understand), just edit it, the line with the "ccode". The value is a "XV". Well, just change it to a valid regional code (00 the world regulator or other local regional codes like IT, US...) and unloading and loading the module (or rebooting), will make the chip work also in 5GHz band. Tested the whole thing on Linux 4.12 x86_64, generic and lowlatency, with the standard linux-firmware equipment, however I expect it to work also on linux upper and lower the 4.12 (above the 4.0 surely), for every architecture. I think there should be a firmware utility at this point, that gets automatically the nvram from efivars and automatically change the necessary parts, according to the variant of the brcmfmac/smac chip tried to load, or when the system is booted in legacy mode: A) Videoprint a message "You should reboot in EFI/UEFI mode" B) The firmware-linux repo (and so also the packages of the distros) has to provide a basic working nvram with the blob. The efi enabled ones can contribute to collect the nvram configs in txts files, and so they can be shipped with linux-firmware. Can be installed/used the config according to some params (the name/model of the board/pc Linux is running on, manually passed at linux-firmware installion time/module brcmfmac/smac loaded) At least, I can provide the nvram for the ASUS T200TA and improve it (experimenting with it, passing the working configurations when something is improved). I hope this will be helpful! |