We really should be documenting supported wifi chipsets to help users
find devices that will work with OpenBSD.
The bwfm(4) man page leaves such questions entirely open at present.

The diff below intends to fill that gap by adding table which lists
supported devices. The table includes chipset name, supported bands,
MIMO config, and bus attachments.

I have cross-checked data in my table with internet searches. Sometimes
I found official product sheets, but some info is based on tech press
articles, copies of wikidevi pages, or gleaned from kernel messages
posted on forums. It should be mostly accurate and much better than
no info at all.

Note that some chips support bus attachments which bwfm does not
recognize. I have documented the bus attachments which the driver
actually supports, which is a subset of what the chipsets support.
This list will need to be kept in sync anyway whenever device support
in the driver is improved.

While here, also document the hex product IDs in bwfm's sdmmc attachment
driver in source code comments. These hex numbers actually correspond
to decimal chipset numbers but that is not immediately obvious so I think
adding comments is warranted (of course it would be better to use macros,
but I'm not going to go that far in a documentation patch).

ok?

diff 5c72fbec79072d838dd652f6d7785e8d2b15dab2 /usr/src
blob - f1df893ec80181f14a37bbc8703739bbca13e316
file + share/man/man4/bwfm.4
--- share/man/man4/bwfm.4
+++ share/man/man4/bwfm.4
@@ -30,6 +30,36 @@ The
 driver provides support for Broadcom and Cypress FullMAC network
 adapters.
 .Pp
+The following table summarizes supported chipsets and their capabilites,
+as well as the bus attachments recognized by the
+.Nm
+driver:
+.Bl -column "Chipset" "Spectrum" "MIMO" "Bus" -offset 6n
+.It Em Chipset Ta Em Spectrum Ta Em MIMO Ta Em Bus
+.It BCM43143 Ta 2GHz Ta 1x1 Ta SDMMC/USB
+.It BCM43236 Ta 2GHz/5GHz Ta 2x2 Ta USB
+.It BCM4324 Ta  2GHz/5GHz Ta 2x2 Ta SDMMC
+.It BCM43242 Ta 2GHz/5GHz Ta 2x2 Ta USB
+.It BCM4329 Ta  2GHz/5GHz Ta 2x2 Ta SDMMC
+.It BCM4330 Ta  2GHz/5GHz Ta 2x2 Ta SDMMC
+.It BCM4334 Ta  2GHz/5GHz Ta 2x2 Ta SDMMC
+.It BCM43340 Ta 2GHz/5GHz Ta 1x1 Ta SDMMC
+.It BCM43341 Ta 2GHz/5GHz Ta 1x1 Ta SDMMC
+.It BCM4335 Ta  2GHz/5GHz Ta 1x1 Ta SDMMC
+.It BCM43362 Ta 2GHz Ta 1x1 Ta SDMMC
+.It BCM43364 Ta 2GHz Ta 1x1 Ta SDMMC
+.It BCM4339 Ta  2GHz/5GHz Ta 1x1 Ta SDMMC
+.It BCM43430 Ta 2GHz Ta 1x1 Ta SDMMC
+.It BCM43455 Ta  2GHz/5GHz Ta 1x1 Ta SDMMC
+.It BCM43456 Ta  2GHz/5GHz Ta 2x2 Ta SDMMC
+.It BCM4350 Ta 2GHz/5GHz Ta 2x2 Ta PCI
+.It BCM4354 Ta  2GHz/5GHz Ta 2x2 Ta SDMMC
+.It BCM4356 Ta 2GHz/5GHz Ta 2x2 Ta PCI/SDMMC
+.It BCM43569 Ta 2GHz/5GHz Ta 2x2 Ta USB
+.It BCM43602 Ta 2GHz/5GHz Ta 3x3 Ta PCI
+.It BCM4371 Ta 2GHz/5GHz Ta 2x2 Ta PCI
+.El
+.Pp
 These are the modes the
 .Nm
 driver can operate in:
blob - b053ab936ef10b21834ed74640124d8abe761af2
file + sys/dev/sdmmc/if_bwfm_sdio.c
--- sys/dev/sdmmc/if_bwfm_sdio.c
+++ sys/dev/sdmmc/if_bwfm_sdio.c
@@ -222,12 +222,12 @@ bwfm_sdio_match(struct device *parent, void *match, vo
        case 0x4345:
        case 0x4354:
        case 0x4356:
-       case 0xa887:
-       case 0xa94c:
-       case 0xa94d:
-       case 0xa962:
-       case 0xa9a6:
-       case 0xa9bf:
+       case 0xa887:    /* BCM43143 */
+       case 0xa94c:    /* BCM43340 */
+       case 0xa94d:    /* BCM43341 */
+       case 0xa962:    /* BCM43362 */
+       case 0xa9a6:    /* BCM43430 */
+       case 0xa9bf:    /* BCM43364 */
                break;
        default:
                return 0;

Reply via email to