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>