Broadcom BCM4310 USB Controller (Wifi)

Paul B Mahol onemda at gmail.com
Wed Oct 27 13:36:15 UTC 2010


On 10/27/10, Alberto Villa <avilla at freebsd.org> wrote:
> On Tue, Oct 26, 2010 at 2:09 PM, Paul B Mahol <onemda at gmail.com> wrote:
>>> i've tried ndis without success...
>>
>> Sharing you experience would help (if you are not on amd64).
>
> i'm on i386 at the moment, but i'll switch to amd64 as soon as i
> decide what to do (keep freebsd natively or virtualize it under
> windows... it depends on the wireless driver). would that change
> anything?

Currently amd64 is broken with some/most drivers. Drivers appears to
use fpu registers.
I dunno how it ever worked, probably original developer(s) never
encountered drivers which use fpu registers.

I will probably fix amd64 support in this year.

> here's my experience. also, as a reference, here's what i get if i add
> the device id to siba_bwn:
> # kldload if_bwn
> siba_bwn0: <Broadcom BCM43225 802.11b/g/n Wireless> mem
> 0xda100000-0xda103fff irq 16 at device 0.0 on pci2
> siba_bwn0: cannot map register space
> device_attach: siba_bwn0 attach returned 6
> and here is the new open source driver:
> http://wireless.kernel.org/en/users/Drivers/brcm80211
>
> and now, ndis. the driver is bcmwl6
> (http://people.freebsd.org/~avilla/bcmwl6.inf and
> http://people.freebsd.org/~avilla/bcmwl6.sys , apparently no need for
> firmware files, but i'm not sure), which is said not to work with ndis
> on linux forums (maybe they removed the support for winxp)
> matthias: you should try bcmwl5, that could work for you
>
> using the unmodified files i've attached (they default to winvista and
> win7) i get this:
> # kldload ./bcmwl6_sys.ko
> module ndis already present!
> no match for NdisMIndicateReceiveNetBufferLists
> no match for NdisFreeNetBufferListPool
> no match for NdisMRegisterScatterGatherDma
> no match for NdisMAllocatePort
> no match for NdisQueueIoWorkItem
> no match for NdisMFreePort
> no match for NdisMOidRequestComplete
> no match for NdisMNetPnPEvent
> no match for NdisAllocateIoWorkItem
> no match for NdisFreeIoWorkItem
> no match for NdisGetVersion
> no match for NdisMSetMiniportAttributes
> no match for NdisMDeregisterMiniportDriver
> no match for NdisAllocateTimerObject
> no match for NdisMPauseComplete
> no match for NdisOpenConfigurationEx
> no match for NdisFreeTimerObject
> no match for NdisCancelTimerObject
> no match for NdisSetTimerObject
> no match for NdisMSynchronizeWithInterruptEx
> no match for NdisMDeregisterInterruptEx
> no match for NdisMRegisterInterruptEx
> no match for NdisMIndicateStatusEx
> no match for NdisFreeNetBufferList
> no match for NdisGetSystemUpTimeEx
> no match for NdisAllocateMdl
> no match for NdisAllocateNetBufferAndNetBufferList
> no match for NdisFreeMdl
> no match for NdisMResetComplete
> no match for NdisMSendNetBufferListsComplete
> no match for NdisAllocateNetBufferListPool
> no match for NdisMRegisterMiniportDriver
> no match for NdisMDeregisterScatterGatherDma
> no match for NdisAllocateMemoryWithTagPriority
> no match for NdisMGetBusData
> no match for NdisMSetBusData
> no match for ZwQueryInformationFile
> no match for ZwReadFile
> no match for ZwCreateFile
> no match for ExFreePoolWithTag
> no match for IoRegisterPlugPlayNotification
> no match for IoUnregisterPlugPlayNotification
> NDIS dummy called...
> NDIS dummy called...
>
> which should mean that the driver doesn't support xp. so i tried
> changing (in the .inf)
> 	%V_BCM% = BROADCOM, NTx86.6.0, NTamd64.6.0, NTx86.6.1, NTamd64.6.1

Now when you mention this I may send patch for ndisgen(8) so it will
deny creating modules for 6.X API drivers.
> to
> 	%V_BCM% = BROADCOM, NTx86, NTamd64
> and then i only get "module ndis already present!", but no interface shows
> up
>
> i also tried removing NTx86, making it
> 	%V_BCM% = BROADCOM, NTamd64
> (it should be correct), and with this modification i get the same
> error messages of the first attempt
>
> anyway i don't have any experience with ndis... should i test anything else?

NDISulator does not support 6.X NDIS API. You will need to find bcmwl5
driver. Note 5 vs 6 in driver name.
Editing inf files will give you nothing.


More information about the freebsd-current mailing list