Skip to content

Instantly share code, notes, and snippets.

@raplin
Created October 13, 2020 22:36
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save raplin/f059ec9415b556c5cc51e7c5e4caf7f6 to your computer and use it in GitHub Desktop.
Save raplin/f059ec9415b556c5cc51e7c5e4caf7f6 to your computer and use it in GitHub Desktop.
BCM43465 PCIe card iw list (4x4 ac 160Mhz, dual band)
# This card is pretty dope; gets hot at high MIMO tx power, needs cooling! Unclear if these listed TX powers are correct at the antenna port..
iw list
Wiphy phy1
max # scan SSIDs: 10
max scan IEs length: 2048 bytes
max # sched scan SSIDs: 0
max # match sets: 0
max # scan plans: 1
max scan plan interval: -1
max scan plan iterations: 0
Retry short limit: 7
Retry long limit: 4
Coverage class: 0 (up to 0m)
Device supports roaming.
Supported Ciphers:
* WEP40 (00-0f-ac:1)
* WEP104 (00-0f-ac:5)
* TKIP (00-0f-ac:2)
* CCMP-128 (00-0f-ac:4)
* CMAC (00-0f-ac:6)
Available Antennas: TX 0 RX 0
Supported interface modes:
* IBSS
* managed
* AP
* P2P-client
* P2P-GO
* P2P-device
Band 1:
Capabilities: 0x1022
HT20/HT40
Static SM Power Save
RX HT20 SGI
No RX STBC
Max AMSDU length: 3839 bytes
DSSS/CCK HT40
Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
Minimum RX AMPDU time spacing: 16 usec (0x07)
HT TX/RX MCS rate indexes supported: 0-31
Bitrates (non-HT):
* 1.0 Mbps
* 2.0 Mbps (short preamble supported)
* 5.5 Mbps (short preamble supported)
* 11.0 Mbps (short preamble supported)
* 6.0 Mbps
* 9.0 Mbps
* 12.0 Mbps
* 18.0 Mbps
* 24.0 Mbps
* 36.0 Mbps
* 48.0 Mbps
* 54.0 Mbps
Frequencies:
* 2412 MHz [1] (20.0 dBm)
* 2417 MHz [2] (20.0 dBm)
* 2422 MHz [3] (20.0 dBm)
* 2427 MHz [4] (20.0 dBm)
* 2432 MHz [5] (20.0 dBm)
* 2437 MHz [6] (20.0 dBm)
* 2442 MHz [7] (20.0 dBm)
* 2447 MHz [8] (20.0 dBm)
* 2452 MHz [9] (20.0 dBm)
* 2457 MHz [10] (20.0 dBm)
* 2462 MHz [11] (20.0 dBm)
* 2467 MHz [12] (disabled)
* 2472 MHz [13] (disabled)
* 2484 MHz [14] (disabled)
Band 2:
Capabilities: 0x1062
HT20/HT40
Static SM Power Save
RX HT20 SGI
RX HT40 SGI
No RX STBC
Max AMSDU length: 3839 bytes
DSSS/CCK HT40
Maximum RX AMPDU length 65535 bytes (exponent: 0x003)
Minimum RX AMPDU time spacing: 16 usec (0x07)
HT TX/RX MCS rate indexes supported: 0-31
VHT Capabilities (0x0c1b4064):
Max MPDU length: 3895
Supported Channel Width: 160 MHz
short GI (80 MHz)
short GI (160/80+80 MHz)
MU Beamformer
MU Beamformee
VHT RX MCS set:
1 streams: MCS 0-9
2 streams: MCS 0-9
3 streams: MCS 0-9
4 streams: MCS 0-9
5 streams: not supported
6 streams: not supported
7 streams: not supported
8 streams: not supported
VHT RX highest supported: 0 Mbps
VHT TX MCS set:
1 streams: MCS 0-9
2 streams: MCS 0-9
3 streams: MCS 0-9
4 streams: MCS 0-9
5 streams: not supported
6 streams: not supported
7 streams: not supported
8 streams: not supported
VHT TX highest supported: 0 Mbps
Bitrates (non-HT):
* 6.0 Mbps
* 9.0 Mbps
* 12.0 Mbps
* 18.0 Mbps
* 24.0 Mbps
* 36.0 Mbps
* 48.0 Mbps
* 54.0 Mbps
Frequencies:
* 5170 MHz [34] (disabled)
* 5180 MHz [36] (20.0 dBm)
* 5190 MHz [38] (20.0 dBm)
* 5200 MHz [40] (20.0 dBm)
* 5210 MHz [42] (20.0 dBm)
* 5220 MHz [44] (20.0 dBm)
* 5230 MHz [46] (20.0 dBm)
* 5240 MHz [48] (20.0 dBm)
* 5260 MHz [52] (20.0 dBm) (radar detection)
* 5280 MHz [56] (20.0 dBm) (radar detection)
* 5300 MHz [60] (20.0 dBm) (radar detection)
* 5320 MHz [64] (20.0 dBm) (radar detection)
* 5500 MHz [100] (20.0 dBm) (radar detection)
* 5520 MHz [104] (20.0 dBm) (radar detection)
* 5540 MHz [108] (20.0 dBm) (radar detection)
* 5560 MHz [112] (20.0 dBm) (radar detection)
* 5580 MHz [116] (20.0 dBm) (radar detection)
* 5600 MHz [120] (20.0 dBm) (radar detection)
* 5620 MHz [124] (20.0 dBm) (radar detection)
* 5640 MHz [128] (20.0 dBm) (radar detection)
* 5660 MHz [132] (20.0 dBm) (radar detection)
* 5680 MHz [136] (20.0 dBm) (radar detection)
* 5700 MHz [140] (20.0 dBm) (radar detection)
* 5720 MHz [144] (20.0 dBm) (radar detection)
* 5745 MHz [149] (20.0 dBm)
* 5765 MHz [153] (20.0 dBm)
* 5785 MHz [157] (20.0 dBm)
* 5805 MHz [161] (20.0 dBm)
* 5825 MHz [165] (20.0 dBm)
Supported commands:
* new_interface
* set_interface
* new_key
* start_ap
* join_ibss
* set_pmksa
* del_pmksa
* flush_pmksa
* remain_on_channel
* frame
* set_wiphy_netns
* set_channel
* start_p2p_device
* connect
* disconnect
* crit_protocol_start
* crit_protocol_stop
* update_connect_params
Supported TX frame types:
* managed: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
* AP: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
* P2P-client: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
* P2P-GO: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
* P2P-device: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0
Supported RX frame types:
* managed: 0x40 0xd0
* AP: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
* P2P-client: 0x40 0xd0
* P2P-GO: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0
* P2P-device: 0x40 0xd0
WoWLAN support:
* wake up on disconnect
* wake up on magic packet
* wake up on pattern match, up to 8 patterns of 1-128 bytes,
maximum packet offset 1500 bytes
software interface modes (can always be added):
valid interface combinations:
* #{ managed } <= 1, #{ P2P-device } <= 1, #{ P2P-client, P2P-GO } <= 1,
total <= 3, #channels <= 1
* #{ managed } <= 1, #{ AP } <= 1, #{ P2P-client } <= 1, #{ P2P-device } <= 1,
total <= 4, #channels <= 1
* #{ AP } <= 4,
total <= 4, #channels <= 1, STA/AP BI must match
Device supports scan flush.
@archont94
Copy link

What driver did you used with this card? I have a problem to run it properly on Debian.

@raplin
Copy link
Author

raplin commented Dec 6, 2020

regular ATH10k, don't remember doing anything special. It goes really fast - I got just over 1Gbps on a 4x4 .ac 80Mhz channel

@archont94
Copy link

regular ATH10k, don't remember doing anything special. It goes really fast - I got just over 1Gbps on a 4x4 .ac 80Mhz channel

I didn't expected that - I was thinking, that ath10k is supporting only Atheros chipsets, not Broadcom. I will check that tommorow, thanks!

@raplin
Copy link
Author

raplin commented Dec 6, 2020

OMG so sorrry of course you're right! I have so many wifi cards right now.. I don't have that card plugged in at the moment, but here's some log stuff I captured when I did; here's dmnsg with it working:

[ 6490.315725] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac4366c-pcie for chip BCM43465/4
[ 6490.338946] brcmfmac 0000:05:00.0: Direct firmware load for brcm/brcmfmac4366c-pcie.Intel Corporation-Kabylake Client platform.txt failed with error -2
[ 6490.338970] brcmfmac 0000:05:00.0: Direct firmware load for brcm/brcmfmac4366c-pcie.txt failed with error -2
[ 6491.003917] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac4366c-pcie for chip BCM43465/4
[ 6491.007380] brcmfmac: brcmf_c_process_clm_blob: no clm_blob available (err=-2), device may have limited channels available
[ 6491.010132] brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM43465/4 wl0: Mar 12 2020 09:35:12 version 10.10.122.303 (r666429) FWID 01-5fb509f6

@raplin
Copy link
Author

raplin commented Dec 6, 2020

Make sure you have the right firmware file for the driver, I think this was a problem initially: make sure you have...

-rwxr-xr-x 1 root root 1102643 Oct 14 06:55 /lib/firmware/brcm/brcmfmac4366c-pcie.bin

@raplin
Copy link
Author

raplin commented Dec 6, 2020

there are a couple of different versions of this chip from what I recall (vaguely); note the '4366c' IIRC that is significant. I bought several of these dongles ($10!) off same ebay vendor and one was different chip rev. Very good chip btw. Sorry this was a couple of months ago and I have dozens of wifi dongles on my desk.

@archont94
Copy link

I downloaded brcmfmac4366c-pcie.bin to proper localization, but it seems like my card have different revision and it is not working:

[    5.316220] brcmfmac: brcmf_fw_alloc_request: Unknown chip BCM43465/3
[    5.316233] brcmfmac: brcmf_pcie_probe: failed 14e4:43c3
[    5.316410] brcmfmac: probe of 0000:01:00.0 failed with error -12

Any idea what can I do?

@clarityD
Copy link

Thanks for posting! Just upgraded my router to a Linksys WRT3200ACM with 160 Mhz MU-MIMO. Yeah upgrading the ethernet in my laptop to the broadcom BCM3465 should be a lot faster. I also found Wiki installation instructions for ubuntu here:

https://help.ubuntu.com/community/WifiDocs/Driver/bcm43xx

If anyone needs those...

@ivankexko
Copy link

@archont94
Hello.
I am also the owner of the BCM43465 / 3 module. Did you manage to solve the problem of the module's functionality?

@markkiddy
Copy link

I am not so happy owner of the same BCM43465/3 card. Anyone can help with Linux driver or firmware? Card is really cheap on Ali about 10USD. It really may be worth a try

@archont94
Copy link

@ivankexko @markkiddy Sorry for such late response - I throw this network card to box and forgot about it for a long time.
Two days ago I found it and started to play around with it - it seems like kernel recompile with one extra line can enable this card:

sudo dmesg | grep brcmfmac
[   10.849944] usbcore: registered new interface driver brcmfmac
[   10.850034] brcmfmac 0000:02:00.0: enabling device (0000 -> 0002)
[   10.960978] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac4366b-pcie for chip BCM43465/3
[   10.963964] brcmfmac 0000:02:00.0: Direct firmware load for brcm/brcmfmac4366b-pcie.FUJITSU-FUTRO S720.bin failed with error -2
[   10.969305] brcmfmac 0000:02:00.0: Direct firmware load for brcm/brcmfmac4366b-pcie.FUJITSU-FUTRO S720.txt failed with error -2
[   10.969370] brcmfmac 0000:02:00.0: Direct firmware load for brcm/brcmfmac4366b-pcie.txt failed with error -2
[   11.630560] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac4366b-pcie for chip BCM43465/3
[   11.633327] brcmfmac: brcmf_c_process_clm_blob: no clm_blob available (err=-2), device may have limited channels available
[   11.636217] brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM43465/3 wl0: Nov  5 2018 03:11:08 version 10.28.2 (r769115) FWID 01-801fb449

Mentioned one-line change:

git diff
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c
index 8b149996fc00..41e35acb2f2d 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c
@@ -61,6 +61,7 @@ BRCMF_FW_DEF(4371, "brcmfmac4371-pcie");

 static const struct brcmf_firmware_mapping brcmf_pcie_fwnames[] = {
        BRCMF_FW_ENTRY(BRCM_CC_43602_CHIP_ID, 0xFFFFFFFF, 43602),
+       BRCMF_FW_ENTRY(BRCM_CC_43465_CHIP_ID, 0x00000008, 4366B),
        BRCMF_FW_ENTRY(BRCM_CC_43465_CHIP_ID, 0xFFFFFFF0, 4366C),
        BRCMF_FW_ENTRY(BRCM_CC_4350_CHIP_ID, 0x000000FF, 4350C),
        BRCMF_FW_ENTRY(BRCM_CC_4350_CHIP_ID, 0xFFFFFF00, 4350), 

Currently I see some issues with stability - it can be due to my poor antennas, or maybe not enough power delivered to card (Fujitsu Futro S720 isn't the most powerfull machine, but it fits full slot mPCIe card) - I will have to play around. Once I will confirm that this is stable, I will send patches to kernel over official channels 😄.

@alexmi256
Copy link

Thanks for the update. I also ended up with a revision 3 card that does not seem to get picked up.

sudo dmesg | grep brcmfmac
[    8.656874] brcmfmac: F1 signature read @0x18000000=0x15294345
[    8.661131] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43456-sdio for chip BCM4345/9
[    8.661565] usbcore: registered new interface driver brcmfmac
[    8.661782] brcmfmac 0000:01:00.0: enabling device (0000 -> 0002)
[    8.759151] brcmfmac mmc1:0001:1: Direct firmware load for brcm/brcmfmac43456-sdio.xunlong,orangepi-4.bin failed with error -2
[    8.769269] brcmfmac: brcmf_fw_alloc_request: Unknown chip BCM43465/3
[    8.769283] brcmfmac: brcmf_pcie_probe: failed 14e4:43c3
[    8.769316] brcmfmac: probe of 0000:01:00.0 failed with error -12
[    8.800999] brcmfmac mmc1:0001:1: Direct firmware load for brcm/brcmfmac43456-sdio.xunlong,orangepi-4.txt failed with error -2
[    8.931569] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43456-sdio for chip BCM4345/9
[    8.939004] brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM4345/9 wl0: Feb 11 2020 11:54:51 version 7.45.96.61 (be7af2d@shgit) (r745790) FWID 01-a41d86bd es7.c5.n4.a3
 lspci -vvnn | grep -A 9 Network
01:00.0 Network controller [0280]: Broadcom Inc. and subsidiaries Device [14e4:43c3] (rev 03)
        Subsystem: Broadcom Inc. and subsidiaries Device [14e4:077b]
        Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Interrupt: pin A routed to IRQ 75
        Region 0: Memory at fa800000 (64-bit, non-prefetchable) [size=32K]
        Region 2: Memory at fa000000 (64-bit, non-prefetchable) [size=4M]
        Region 4: Memory at fa400000 (64-bit, prefetchable) [size=4M]
        Capabilities: [48] Power Management version 3
                Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold+)

Searching for device id 14e4:43c3 seems to bring up info about ASUS PCE-AC88 which has similar specs and supposedly uses BCM4366. Thus using the driver for that is worth a shot.

@ivankexko
Copy link

@archont94
Hello.
Thanks for the answer.
I am using the Debian distribution.
Even if the patch is accepted into the official kernel, it will be several years before the changes get into Debian.
Is it possible to build brcmfmac.ko with a patch via DKMS?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment