Discussion:
[QUESTION] Mainline support for B43_PHY_AC wifi cards
Juri Lelli
2018-03-23 09:47:40 UTC
Permalink
Hi,

I've got a Dell XPS 13 9343/0TM99H (BIOS A15 01/23/2018) mounting a
BCM4352 802.11ac (rev 03) wireless card and so far I've been using it on
Fedora with broadcom-wl package (which I believe installs Broadcom's STA
driver?). It works good apart from occasional hiccups after suspend.

I'd like to get rid of that dependency (you can understand that it's
particularly annoying when testing mainline kernels), but I found out
that support for my card is BROKEN in mainline [1]. Just to see what
happens, I forcibly enabled it witnessing that it indeed crashes like
below as Kconfig warns. :)

bcma: bus0: Found chip with id 0x4352, rev 0x03 and package 0x00
bcma: bus0: Core 0 found: ChipCommon (manuf 0x4BF, id 0x800, rev 0x2B, class 0x0)
bcma: bus0: Core 1 found: IEEE 802.11 (manuf 0x4BF, id 0x812, rev 0x2A, class 0x0)
bcma: bus0: Core 2 found: ARM CR4 (manuf 0x4BF, id 0x83E, rev 0x02, class 0x0)
bcma: bus0: Core 3 found: PCIe Gen2 (manuf 0x4BF, id 0x83C, rev 0x01, class 0x0)
bcma: bus0: Core 4 found: USB 2.0 Device (manuf 0x4BF, id 0x81A, rev 0x11, class 0x0)
bcma: Unsupported SPROM revision: 11
bcma: bus0: Invalid SPROM read from the PCIe card, trying to use fallback SPROM
bcma: bus0: Using fallback SPROM failed (err -2)
bcma: bus0: No SPROM available
bcma: bus0: Bus registered
b43-phy0: Broadcom 4352 WLAN found (core revision 42)
b43-phy0: Found PHY: Analog 12, Type 11 (AC), Revision 1
b43-phy0: Found Radio: Manuf 0x17F, ID 0x2069, Revision 4, Version 0
BUG: unable to handle kernel NULL pointer dereference at 0000000000000000

So, question: is replacing my card the only way I can get rid of this
downstream dependency? :(

Thanks a lot.

Best,

- Juri

[1] https://elixir.bootlin.com/linux/v4.16-rc6/source/drivers/net/wireless/broadcom/b43/Kconfig#L151
Rafał Miłecki
2018-03-23 13:43:28 UTC
Permalink
Hi,
Post by Juri Lelli
I've got a Dell XPS 13 9343/0TM99H (BIOS A15 01/23/2018) mounting a
BCM4352 802.11ac (rev 03) wireless card and so far I've been using it on
Fedora with broadcom-wl package (which I believe installs Broadcom's STA
driver?). It works good apart from occasional hiccups after suspend.
I'd like to get rid of that dependency (you can understand that it's
particularly annoying when testing mainline kernels), but I found out
that support for my card is BROKEN in mainline [1]. Just to see what
happens, I forcibly enabled it witnessing that it indeed crashes like
below as Kconfig warns. :)
bcma: bus0: Found chip with id 0x4352, rev 0x03 and package 0x00
bcma: bus0: Core 0 found: ChipCommon (manuf 0x4BF, id 0x800, rev 0x2B, class 0x0)
bcma: bus0: Core 1 found: IEEE 802.11 (manuf 0x4BF, id 0x812, rev 0x2A, class 0x0)
bcma: bus0: Core 2 found: ARM CR4 (manuf 0x4BF, id 0x83E, rev 0x02, class 0x0)
bcma: bus0: Core 3 found: PCIe Gen2 (manuf 0x4BF, id 0x83C, rev 0x01, class 0x0)
bcma: bus0: Core 4 found: USB 2.0 Device (manuf 0x4BF, id 0x81A, rev 0x11, class 0x0)
bcma: Unsupported SPROM revision: 11
bcma: bus0: Invalid SPROM read from the PCIe card, trying to use fallback SPROM
bcma: bus0: Using fallback SPROM failed (err -2)
bcma: bus0: No SPROM available
bcma: bus0: Bus registered
b43-phy0: Broadcom 4352 WLAN found (core revision 42)
b43-phy0: Found PHY: Analog 12, Type 11 (AC), Revision 1
b43-phy0: Found Radio: Manuf 0x17F, ID 0x2069, Revision 4, Version 0
BUG: unable to handle kernel NULL pointer dereference at 0000000000000000
This isn't really useful without a full backtrace.
Post by Juri Lelli
So, question: is replacing my card the only way I can get rid of this
downstream dependency? :(
It's definitely the cheapest way. Getting AC PHY into anything usable
(proper setup that will allow Tx & Rx anything) would probably take
weeks or months of development. I'm not even going to estimate cost of
adding support for 802.11n and 802.11ac features. I was the last
person actively working on b43, right now I spend my free time on
other hobby projects. Few people were planning to help but it seems it
never worked out for them.
Juri Lelli
2018-03-23 14:09:19 UTC
Permalink
Hi,

thanks a lot for your reply!
Post by Rafał Miłecki
Hi,
Post by Juri Lelli
I've got a Dell XPS 13 9343/0TM99H (BIOS A15 01/23/2018) mounting a
BCM4352 802.11ac (rev 03) wireless card and so far I've been using it on
Fedora with broadcom-wl package (which I believe installs Broadcom's STA
driver?). It works good apart from occasional hiccups after suspend.
I'd like to get rid of that dependency (you can understand that it's
particularly annoying when testing mainline kernels), but I found out
that support for my card is BROKEN in mainline [1]. Just to see what
happens, I forcibly enabled it witnessing that it indeed crashes like
below as Kconfig warns. :)
bcma: bus0: Found chip with id 0x4352, rev 0x03 and package 0x00
bcma: bus0: Core 0 found: ChipCommon (manuf 0x4BF, id 0x800, rev 0x2B, class 0x0)
bcma: bus0: Core 1 found: IEEE 802.11 (manuf 0x4BF, id 0x812, rev 0x2A, class 0x0)
bcma: bus0: Core 2 found: ARM CR4 (manuf 0x4BF, id 0x83E, rev 0x02, class 0x0)
bcma: bus0: Core 3 found: PCIe Gen2 (manuf 0x4BF, id 0x83C, rev 0x01, class 0x0)
bcma: bus0: Core 4 found: USB 2.0 Device (manuf 0x4BF, id 0x81A, rev 0x11, class 0x0)
bcma: Unsupported SPROM revision: 11
bcma: bus0: Invalid SPROM read from the PCIe card, trying to use fallback SPROM
bcma: bus0: Using fallback SPROM failed (err -2)
bcma: bus0: No SPROM available
bcma: bus0: Bus registered
b43-phy0: Broadcom 4352 WLAN found (core revision 42)
b43-phy0: Found PHY: Analog 12, Type 11 (AC), Revision 1
b43-phy0: Found Radio: Manuf 0x17F, ID 0x2069, Revision 4, Version 0
BUG: unable to handle kernel NULL pointer dereference at 0000000000000000
This isn't really useful without a full backtrace.
Sure. I cut it here because I didn't expect people to debug what is
already known to be broken (but still it seemed to carry useful
information about the hw). :)
Post by Rafał Miłecki
Post by Juri Lelli
So, question: is replacing my card the only way I can get rid of this
downstream dependency? :(
It's definitely the cheapest way. Getting AC PHY into anything usable
(proper setup that will allow Tx & Rx anything) would probably take
weeks or months of development. I'm not even going to estimate cost of
adding support for 802.11n and 802.11ac features. I was the last
person actively working on b43, right now I spend my free time on
other hobby projects. Few people were planning to help but it seems it
never worked out for them.
I see. Just wondering why even if Broadcom's STA solution seems to work
fine, it is not mainline. Maybe a maintenance problem? But Fedora ships
with very recent kernels, so I'd expect the driver to work with mainline
(I tried compiling that against mainline, but I got errors that I didn't
spend time figuring out how to fix).

Do you know what's the deal w.r.t. the STA driver?

Best,

- Juri
Rafał Miłecki
2018-03-23 23:01:05 UTC
Permalink
Post by Juri Lelli
Post by Rafał Miłecki
Hi,
Post by Juri Lelli
I've got a Dell XPS 13 9343/0TM99H (BIOS A15 01/23/2018) mounting a
BCM4352 802.11ac (rev 03) wireless card and so far I've been using it on
Fedora with broadcom-wl package (which I believe installs Broadcom's STA
driver?). It works good apart from occasional hiccups after suspend.
I'd like to get rid of that dependency (you can understand that it's
particularly annoying when testing mainline kernels), but I found out
that support for my card is BROKEN in mainline [1]. Just to see what
happens, I forcibly enabled it witnessing that it indeed crashes like
below as Kconfig warns. :)
bcma: bus0: Found chip with id 0x4352, rev 0x03 and package 0x00
bcma: bus0: Core 0 found: ChipCommon (manuf 0x4BF, id 0x800, rev 0x2B, class 0x0)
bcma: bus0: Core 1 found: IEEE 802.11 (manuf 0x4BF, id 0x812, rev 0x2A, class 0x0)
bcma: bus0: Core 2 found: ARM CR4 (manuf 0x4BF, id 0x83E, rev 0x02, class 0x0)
bcma: bus0: Core 3 found: PCIe Gen2 (manuf 0x4BF, id 0x83C, rev 0x01, class 0x0)
bcma: bus0: Core 4 found: USB 2.0 Device (manuf 0x4BF, id 0x81A, rev 0x11, class 0x0)
bcma: Unsupported SPROM revision: 11
bcma: bus0: Invalid SPROM read from the PCIe card, trying to use fallback SPROM
bcma: bus0: Using fallback SPROM failed (err -2)
bcma: bus0: No SPROM available
bcma: bus0: Bus registered
b43-phy0: Broadcom 4352 WLAN found (core revision 42)
b43-phy0: Found PHY: Analog 12, Type 11 (AC), Revision 1
b43-phy0: Found Radio: Manuf 0x17F, ID 0x2069, Revision 4, Version 0
BUG: unable to handle kernel NULL pointer dereference at 0000000000000000
This isn't really useful without a full backtrace.
Sure. I cut it here because I didn't expect people to debug what is
already known to be broken (but still it seemed to carry useful
information about the hw). :)
Please paste the remaining part if you still got it.
Post by Juri Lelli
Post by Rafał Miłecki
Post by Juri Lelli
So, question: is replacing my card the only way I can get rid of this
downstream dependency? :(
It's definitely the cheapest way. Getting AC PHY into anything usable
(proper setup that will allow Tx & Rx anything) would probably take
weeks or months of development. I'm not even going to estimate cost of
adding support for 802.11n and 802.11ac features. I was the last
person actively working on b43, right now I spend my free time on
other hobby projects. Few people were planning to help but it seems it
never worked out for them.
I see. Just wondering why even if Broadcom's STA solution seems to work
fine, it is not mainline. Maybe a maintenance problem? But Fedora ships
with very recent kernels, so I'd expect the driver to work with mainline
(I tried compiling that against mainline, but I got errors that I didn't
spend time figuring out how to fix).
Do you know what's the deal w.r.t. the STA driver?
Driver being closed source and company not willing to open source it
is usually a big problem getting it mainline...
--
Rafał
Juri Lelli
2018-03-26 05:56:43 UTC
Permalink
Post by Rafał Miłecki
Post by Juri Lelli
Post by Rafał Miłecki
Hi,
Post by Juri Lelli
I've got a Dell XPS 13 9343/0TM99H (BIOS A15 01/23/2018) mounting a
BCM4352 802.11ac (rev 03) wireless card and so far I've been using it on
Fedora with broadcom-wl package (which I believe installs Broadcom's STA
driver?). It works good apart from occasional hiccups after suspend.
I'd like to get rid of that dependency (you can understand that it's
particularly annoying when testing mainline kernels), but I found out
that support for my card is BROKEN in mainline [1]. Just to see what
happens, I forcibly enabled it witnessing that it indeed crashes like
below as Kconfig warns. :)
bcma: bus0: Found chip with id 0x4352, rev 0x03 and package 0x00
bcma: bus0: Core 0 found: ChipCommon (manuf 0x4BF, id 0x800, rev 0x2B, class 0x0)
bcma: bus0: Core 1 found: IEEE 802.11 (manuf 0x4BF, id 0x812, rev 0x2A, class 0x0)
bcma: bus0: Core 2 found: ARM CR4 (manuf 0x4BF, id 0x83E, rev 0x02, class 0x0)
bcma: bus0: Core 3 found: PCIe Gen2 (manuf 0x4BF, id 0x83C, rev 0x01, class 0x0)
bcma: bus0: Core 4 found: USB 2.0 Device (manuf 0x4BF, id 0x81A, rev 0x11, class 0x0)
bcma: Unsupported SPROM revision: 11
bcma: bus0: Invalid SPROM read from the PCIe card, trying to use fallback SPROM
bcma: bus0: Using fallback SPROM failed (err -2)
bcma: bus0: No SPROM available
bcma: bus0: Bus registered
b43-phy0: Broadcom 4352 WLAN found (core revision 42)
b43-phy0: Found PHY: Analog 12, Type 11 (AC), Revision 1
b43-phy0: Found Radio: Manuf 0x17F, ID 0x2069, Revision 4, Version 0
BUG: unable to handle kernel NULL pointer dereference at 0000000000000000
This isn't really useful without a full backtrace.
Sure. I cut it here because I didn't expect people to debug what is
already known to be broken (but still it seemed to carry useful
information about the hw). :)
Please paste the remaining part if you still got it.
Sure, please find it below.

Thanks!

- Juri

--->8---

[ 60.732180] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[ 60.733048] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[ 60.733303] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[ 60.733305] cfg80211: failed to load regulatory.db
[ 61.047277] bcma: bus0: Found chip with id 0x4352, rev 0x03 and package 0x00
[ 61.047302] bcma: bus0: Core 0 found: ChipCommon (manuf 0x4BF, id 0x800, rev 0x2B, class 0x0)
[ 61.047316] bcma: bus0: Core 1 found: IEEE 802.11 (manuf 0x4BF, id 0x812, rev 0x2A, class 0x0)
[ 61.047340] bcma: bus0: Core 2 found: ARM CR4 (manuf 0x4BF, id 0x83E, rev 0x02, class 0x0)
[ 61.047366] bcma: bus0: Core 3 found: PCIe Gen2 (manuf 0x4BF, id 0x83C, rev 0x01, class 0x0)
[ 61.047380] bcma: bus0: Core 4 found: USB 2.0 Device (manuf 0x4BF, id 0x81A, rev 0x11, class 0x0)
[ 61.107321] bcma: Unsupported SPROM revision: 11
[ 61.107325] bcma: bus0: Invalid SPROM read from the PCIe card, trying to use fallback SPROM
[ 61.107326] bcma: bus0: Using fallback SPROM failed (err -2)
[ 61.107327] bcma: bus0: No SPROM available
[ 61.109830] bcma: bus0: Bus registered
[ 61.242068] b43-phy0: Broadcom 4352 WLAN found (core revision 42)
[ 61.242481] b43-phy0: Found PHY: Analog 12, Type 11 (AC), Revision 1
[ 61.242487] b43-phy0: Found Radio: Manuf 0x17F, ID 0x2069, Revision 4, Version 0
[ 61.242909] BUG: unable to handle kernel NULL pointer dereference at 0000000000000000
[ 61.242916] IP: (null)
[ 61.242919] PGD 0 P4D 0
[ 61.242924] Oops: 0010 [#1] PREEMPT SMP PTI
[ 61.242926] Modules linked in: b43(+) bcma mac80211 cfg80211 ssb mmc_core rfcomm fuse nf_conntrack_netbios_ns nf_conntrack_broadcast xt_CT ip6t_rpfilter ip6t_REJECT nf_reject_ipv6 xt_conntrack ip_set nfnetlink ebtable_nat ebtable_broute bridge stp llc ip6table_nat nf_conntrack_ipv6 nf_defrag_ipv6 nf_nat_ipv6 ip6table_mangle ip6table_raw ip6table_security iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_nat nf_conntrack libcrc32c iptable_mangle iptable_raw iptable_security ebtable_filter ebtables ip6table_filter ip6_tables cmac bnep sunrpc intel_rapl x86_pkg_temp_thermal intel_powerclamp coretemp kvm_intel kvm snd_hda_codec_realtek snd_hda_codec_hdmi snd_hda_codec_generic snd_hda_intel btusb snd_hda_codec uvcvideo btrtl btbcm btintel snd_hda_core bluetooth snd_hwdep videobuf2_vmalloc snd_seq
[ 61.242989] videobuf2_memops videobuf2_v4l2 iTCO_wdt snd_seq_device snd_pcm videobuf2_common iTCO_vendor_support dell_laptop dell_wmi irqbypass videodev wmi_bmof sparse_keymap dell_smbios intel_cstate dell_wmi_descriptor intel_uncore dcdbas ecdh_generic snd_timer intel_rapl_perf snd rfkill mei_me media pcspkr mei i2c_i801 shpchp joydev tpm_crb soundcore intel_pch_thermal processor_thermal_device lpc_ich tpm_tis intel_soc_dts_iosf wmi tpm_tis_core tpm int3403_thermal dw_dmac int3402_thermal int3400_thermal int340x_thermal_zone acpi_pad acpi_thermal_rel dm_crypt i915 i2c_algo_bit drm_kms_helper drm hid_multitouch crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel serio_raw video i2c_hid
[ 61.243044] CPU: 1 PID: 2410 Comm: modprobe Not tainted 4.16.0-rc6+ #2
[ 61.243046] Hardware name: Dell Inc. XPS 13 9343/0TM99H, BIOS A15 01/23/2018
[ 61.243049] RIP: 0010: (null)
[ 61.243051] RSP: 0018:ffffaaa6c2afbaf0 EFLAGS: 00010282
[ 61.243054] RAX: 0000000000000000 RBX: ffff908d0b3c4800 RCX: ffff908d0b3c2800
[ 61.243057] RDX: ffff908d0b3c2800 RSI: 0000000000000001 RDI: ffff908d0b3c4800
[ 61.243059] RBP: 0000000000000001 R08: 0000000000000001 R09: 0000000000000000
[ 61.243061] R10: 0000000000000000 R11: 000000000000008b R12: 0000000000000001
[ 61.243064] R13: ffff908d082b9f00 R14: ffff908d0b3c4800 R15: 0000000000000004
[ 61.243067] FS: 00007feb59ec30c0(0000) GS:ffff908d1f480000(0000) knlGS:0000000000000000
[ 61.243069] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 61.243071] CR2: 0000000000000000 CR3: 000000020caaa002 CR4: 00000000003606e0
[ 61.243074] Call Trace:
[ 61.243089] ? b43_wireless_core_reset+0x38/0x230 [b43]
[ 61.243099] ? b43_one_core_attach+0x368/0xd00 [b43]
[ 61.243109] ? b43_bcma_probe+0x54/0xf0 [b43]
[ 61.243115] ? bcma_device_probe+0x31/0x60 [bcma]
[ 61.243120] ? preempt_count_sub+0x9b/0xd0
[ 61.243125] ? driver_probe_device+0x30b/0x480
[ 61.243129] ? __driver_attach+0xb8/0xe0
[ 61.243133] ? driver_probe_device+0x480/0x480
[ 61.243136] ? driver_probe_device+0x480/0x480
[ 61.243140] ? bus_for_each_dev+0x76/0xc0
[ 61.243144] ? bus_add_driver+0x161/0x260
[ 61.243147] ? 0xffffffffc0ab5000
[ 61.243151] ? driver_register+0x57/0xc0
[ 61.243154] ? 0xffffffffc0ab5000
[ 61.243163] ? b43_init+0x24/0x1000 [b43]
[ 61.243167] ? do_one_initcall+0x4e/0x192
[ 61.243172] ? kmem_cache_alloc_trace+0xa1/0x1c0
[ 61.243177] ? do_init_module+0x5b/0x20b
[ 61.243180] ? load_module+0x257b/0x2bb0
[ 61.243185] ? vfs_read+0x113/0x130
[ 61.243191] ? SYSC_finit_module+0xe9/0x110
[ 61.243194] ? SYSC_finit_module+0xe9/0x110
[ 61.243200] ? do_syscall_64+0x79/0x190
[ 61.243205] ? entry_SYSCALL_64_after_hwframe+0x42/0xb7
[ 61.243209] Code: Bad RIP value.
[ 61.243217] RIP: (null) RSP: ffffaaa6c2afbaf0
[ 61.243218] CR2: 0000000000000000
[ 61.243222] ---[ end trace 3e3c52c383af1049 ]---

Loading...