Call for Test and Review: bwn(4) - another Broadcom Wireless driver

John Baldwin jhb at freebsd.org
Thu Mar 4 18:23:56 UTC 2010


On Thursday 04 March 2010 12:28:59 pm Miki wrote:
> 2010/3/3 John Baldwin <jhb at freebsd.org>:
> > On Tuesday 02 March 2010 2:08:55 pm Miki wrote:
> >> 2010/3/1 Weongyo Jeong <weongyo.jeong at gmail.com>:
> >> > On Sun, Feb 28, 2010 at 08:45:32PM +0100, Miki wrote:
> >> >> Hi,
> >> >>
> >> >> Thanks for the work !
> >> >>
> >> >> I have some problems here when I try to create a wlan interface :
> >> >> bwn_v4_ucode5: could not load firmware image, error 2
> >> >> bwn0: the fw file(bwn_v4_ucode5) not found
> >> >
> >> > Did you try to UP the interface withload loading bwn_v4_ucode.ko?  If
> >> > yes currently bwn(4) doesn't automatically load firmware module so you
> >> > need to do it by hand.
> >> >
> >> >  # kldload bwn_v4_ucode
> >>
> >> OK I have loaded bwn_v4_ucode before if_bwn and it works,
> >> my bad, I should have read the man page more carefully.
> >>
> >> >
> >> > The patch for this is ready to commit and it'll be happened soon.
> >> >
> >> >> I have installed bwn-firmware-kmod from ports but the only files I have in
> >> >> /boot/modules are bwn_v4_lp_ucode.ko and bwn_v4_ucode.ko. So I tried to
> >> >> copy bwn_v4_ucode to bwn_v4_ucode5 and it seems to work : wlan0 is
> >> >> created, I can associate to an open Access Point and obtain a DHCP lease.
> >> >> But if I try to do some network IO (browsing the web) the interface hang
> >> >> (I cannot obtain a lease anymore).
> >> >
> >> > I have a exact same device like you have but I didn't encounter this
> >> > issue.
> >> >
> >> > Are there any messages from bwn(4) when you the interface becomes hang?
> >> > One more question, after the interface hang, does the system be hang
> >> > also?
> >>
> >> I have no messages in the log (appart bwn0: need multicast update callback).
> >> In fact it's not a hang, it happens only with the AP that permits me
> >> to have a web
> >> access. I have another AP (sitting next to me) and I don't have the
> >> same behavior :
> >> I can have and renew my dhcp lease multiple times and configure the AP with its
> >> web interface. With the "buggy" AP I can have a dhcp lease only once and nothing
> >> more. If I destroy and recreate the wlan interface the same thing happens.
> >> I have no such a problem with if_bwi and this AP.
> >>
> >> >
> >> > One thing you can do is that trying the device with PIO mode not DMA
> >> > mode using the following tunable variable:
> >> >
> >> >  hw.bwn.usedma
> >> >
> >> > Its default value is 1 to enable DMA operation so if you set it 0, PIO
> >> > mode would be used and could see the message like below:
> >> >
> >> >  bwn0: PIO
> >> >
> >> > Could you please test with it?
> >> >
> >>
> >> Setting hw.bwn.usedma=0 in loader.conf make no differences
> >>
> >> by the way, I need to switch from if_bwn to if_bwi to make some test
> >> and post the results here, but I have this error message :
> >> firmware_register: cannot register image bwi_v3_b0g0initvals5, firmware
> >> table full!
> >> is this normal ?
> >
> > Yes, both bwi and bwn use a lot of individual firmware images, so loading
> > both of them probably fills up the static array of firmware table entries.
> > I think there is a constant in subr_firwmare.c you can increase to make the
> > table bigger.
> >
> > --
> > John Baldwin
> >
> 
> Rising FIRMWARE_MAX from 30 to 60 did the trick ! thanks !
> Are there any reasons to have such a "low" default value ?

I think the number was chosen somewhat randomly.  I do think 30 firmware
images is probably more than enough for common cases.  One option would
be to malloc the table at boot time and make the size configurable via a
loader tunable.  Otherwise we could just make it dynamic and use a
linked-list of some sort instead of the current array.

-- 
John Baldwin


More information about the freebsd-current mailing list