Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 4 Mar 2010 13:19:14 -0500
From:      John Baldwin <jhb@freebsd.org>
To:        Miki <miki.bsd@gmail.com>
Cc:        freebsd-current@freebsd.org, Weongyo Jeong <weongyo@freebsd.org>
Subject:   Re: Call for Test and Review: bwn(4) - another Broadcom Wireless driver
Message-ID:  <201003041319.14675.jhb@freebsd.org>
In-Reply-To: <261c29701003040928h7aa70b3fm37611f974e0b9330@mail.gmail.com>
References:  <20091223035331.GA1293@weongyo> <201003030751.45158.jhb@freebsd.org> <261c29701003040928h7aa70b3fm37611f974e0b9330@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thursday 04 March 2010 12:28:59 pm Miki wrote:
> 2010/3/3 John Baldwin <jhb@freebsd.org>:
> > On Tuesday 02 March 2010 2:08:55 pm Miki wrote:
> >> 2010/3/1 Weongyo Jeong <weongyo.jeong@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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201003041319.14675.jhb>