Re: b43/BCM4312 fails with DMA errors

2009-10-16 Thread fred99

Hi Chris --

 Chris Vine  wrote: 
> Hi,
> 
> I have a Levono S-12 Netbook, which has the Atom N270 processor and a
> Broadcom 14e4:4315 wireless chip with low power PHY.  lspci -vnn | grep
> 14e4 gives:
> 
>   02:00.0 Ethernet controller [0200]: Broadcom Corporation NetLink BCM5906M 
> Fast Ethernet PCI Express [14e4:1713] (rev 02)
>   03:00.0 Network controller [0280]: Broadcom Corporation BCM4312 802.11b/g 
> [14e4:4315] (rev 01)
>   Subsystem: Broadcom Corporation Unknown device [14e4:04b5]
> 
> As suggested for this chip on the linux wireless b43 howto web page, I
> am using firmware extracted from broadcom-wl-4.178.10.4.tar.bz2 using
> the current b43-fwcutter in git.
> 
> Although wireless works with the broadcom wl driver provided by
> Broadcom in their hybrid-portsrc-x86_32-v5.10.91.9.3.tar.gz package up
> to and including kernel 2.6.28 (but not afterwards, presumably because
> of the replacement of ieee80211 by lib80211), the b43 driver in both
> 2.6.32-rc4 and current compat-wireless fails on a cold boot with dma
> errors (I use "cold boot" advisedly - see the working case 1 for b43
> mentioned at the end).
> 
> Prior to failure, modprobe b43 && dmesg | egrep "ssb|b43" gives:
> 
>   b43-pci-bridge :03:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
>   b43-pci-bridge :03:00.0: setting latency timer to 64
>   ssb: Sonics Silicon Backplane found on PCI device :03:00.0
>   b43-phy0: Broadcom 4312 WLAN found (core revision 15)
>   b43-phy0 debug: Found PHY: Analog 6, Type 5, Revision 1
>   b43-phy0 debug: Found Radio: Manuf 0x17F, Version 0x2062, Revision 2
>   Registered led device: b43-phy0::tx
>   Registered led device: b43-phy0::rx
>   Registered led device: b43-phy0::radio
> 
> So far it looks normal.  However, bringing up the wlan0 interface and
> attempting to associate will shortly afterwards trigger DMA errors, and
> any further use of the interface thereafter will fail.  Sometimes
> failure happens immediately the interface is brought up, usually I can
> get as far as successfully scanning for APs with 'iwlist scan wlan0',
> and sometimes it gets as far as negotiating association with the AP,
> but it always ends at some point with logging output such as this
> in /var/log/messages (with b43 debugging switched on):
> 
>   b43-phy0: Broadcom 4312 WLAN found (core revision 15)
>   b43-phy0 debug: Found PHY: Analog 6, Type 5, Revision 1
>   b43-phy0 debug: Found Radio: Manuf 0x17F, Version 0x2062, Revision 2
>   phy0: Selected rate control algorithm 'minstrel'
>   Registered led device: b43-phy0::tx
>   Registered led device: b43-phy0::rx
>   Registered led device: b43-phy0::radio
>   Broadcom 43xx driver loaded [ Features: PMLS, Firmware-ID: FW13 ]
>   b43 ssb0:0: firmware: requesting b43/ucode15.fw
>   b43 ssb0:0: firmware: requesting b43/lp0initvals15.fw
>   b43 ssb0:0: firmware: requesting b43/lp0bsinitvals15.fw
>   b43-phy0: Loading firmware version 478.104 (2008-07-01 00:50:23)
>   b43-phy0 debug: b2062: Using crystal tab entry 19200 kHz.
>   b43-phy0 debug: RC calib: Failed to switch to channel 7, error = -5
>   b43-phy0 debug: Chip initialized
>   b43-phy0 debug: 64-bit DMA initialized
>   b43-phy0 debug: QoS enabled
>   b43-phy0 debug: Wireless interface started
>   b43-phy0 debug: Adding Interface type 2
>   ADDRCONF(NETDEV_UP): wlan0: link is not ready
>   b43-phy0 ERROR: Fatal DMA error: 0x0800, 0x, 0x, 
> 0x, 0x, 0x

I had 0x0400, rather than 0x0800

>   b43-phy0: Controller RESET (DMA error) ...
>   b43-phy0 debug: Wireless interface stopped
>   b43-phy0 debug: DMA-64 rx_ring: Used slots 1/64, Failed frames 0/0 = 0.0%, 
> Average tries 0.00
>   b43-phy0 debug: DMA-64 tx_ring_AC_BK: Used slots 0/256, Failed frames 0/0 = 
> 0.0%, Average tries 0.00
>   b43-phy0 debug: DMA-64 tx_ring_AC_BE: Used slots 0/256, Failed frames 0/0 = 
> 0.0%, Average tries 0.00
>   b43-phy0 debug: DMA-64 tx_ring_AC_VI: Used slots 0/256, Failed frames 0/0 = 
> 0.0%, Average tries 0.00
>   b43-phy0 debug: DMA-64 tx_ring_AC_VO: Used slots 2/256, Failed frames 0/11 
> = 0.0%, Average tries 1.00
>   b43-phy0 debug: DMA-64 tx_ring_mcast: Used slots 0/256, Failed frames 0/0 = 
> 0.0%, Average tries 0.00
>   b43-phy0: Loading firmware version 478.104 (2008-07-01 00:50:23)
>   b43-phy0 debug: b2062: Using crystal tab entry 19200 kHz.
>   b43-phy0 debug: Chip initialized
>   [ ... and so on ... ]
> 
> The DMA error message repeats at approximately 5 second intervals (so
> filling up /var/log/messages quite nicely after a while).
> 
> Two other points which may help locate the problem, when b43 WILL work:
> 
> 1.  If I boot up ubuntu kernel-2.6.27 with the proprietary wl driver,
> and then do a warm reboot to kernel 2.6.32-rc4, b43 works normally.
> No DMA errors are reported.  This may point to a firmware loading issue,
> but see 2 below.

I had similar problems, and was advised to try the full wireless-testing kernel,
which worked OK for

Re: 14e4:4315 DMA Errors (still)

2009-10-06 Thread fred99

 "Gábor Stefanik"  wrote: 
> On Fri, Oct 2, 2009 at 11:04 PM,   wrote:
> >
> > Hi Folks --
> >
> > I've read in the archives about DMA errors with the LP-PHY, but there didn't
> > seem to be any conclusion.  Any guidance on what I can test to get it 
> > working?
> > It's reproducable on my Lenovo G530 laptop.  (Yes, I know forcing PIO works 
> > for
> > others, and it works for me too, but I'd like to help testing if I can).
> >
> > Any guidance on which tests would be most likely to work?  AFAIK, options to
> > test include:
> > * 64bit kernel (and userland?)
> > * Hack b43/dma.c to force fallback to 32bit DMA (as a trial datapoint only)
> 
> Won't work - LP-PHY only supports 64bit DMA.
> 
> > * Boot with Mem=2G.  Currently 4G ram is installed.
> > * Firmware 5xx
> >
> > Or is this a HW design error in the laptop, and I should just live with 
> > forcing PIO?
> >
> > My system details:
> > * Compat-wireless-2009-09-30 (and also back to 9-21)
> > * Fedora Rawhide 32-bit, kernel 2.6.31.1-56.fc12.i686
> > * Firmware 478.104
> > * Fatal DMA error soon after heavy traffic starts
> >
> 
> Try installing a proper wireless-testing kernel (not just
> compat-wireless). This issue seems to specifically affect
> 2.6.31+compat-wireless users (probably something needs to be
> backported). 2.6.32-rc1+compat-wireless shoud also work.

Thanks!  I cloned the latest wireless-testing from last night, 2.6.32-rc3 I 
think.  That seems to work so far, with several hundreds of MB FTP transfers 
OK.  Previously DMA errors would show up immediately after starting the 
transfer.  Still get the "NOHZ: local_softirq_pending" stuff.  I will test more 
transfers and a suspend/resume cycle later tonight, as Lance has reported.  

Any chance of finding out what needs to be fixed for 2.6.31?  Fedora is about 
to release F12 with a 2.6.31 kernel, and it would be great to be able to 
backport a fix.  I'm a git noob, but I don't see how to bisect between the 
wireless-testing tree and compat-wireless.

Lance, you wrote that if you cold boot, then 'sometimes' you can connect.  That 
means sometimes it *fails* after a cold boot too?  Same DMA errors?

regards, . Charlie

> 
> > dmesg extract:
> >
> > ssb: Sonics Silicon Backplane found on PCI device :04:00.0
> > b43-phy0: Broadcom 4312 WLAN found (core revision 15)
> > b43-phy0 debug: Found PHY: Analog 6, Type 5, Revision 1
> > b43-phy0 debug: Found Radio: Manuf 0x17F, Version 0x2062, Revision 2
> > phy0: Selected rate control algorithm 'minstrel'
> > Registered led device: b43-phy0::tx
> > Registered led device: b43-phy0::rx
> > Registered led device: b43-phy0::radio
> > Broadcom 43xx driver loaded [ Features: PML, Firmware-ID: FW13 ]
> > b43 ssb0:0: firmware: requesting b43/ucode15.fw
> > cfg80211: Calling CRDA for country: US
> > cfg80211: Regulatory domain changed to country: US
> >(start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
> >(2402000 KHz - 2472000 KHz @ 4 KHz), (300 mBi, 2700 mBm)
> >(517 KHz - 525 KHz @ 4 KHz), (300 mBi, 1700 mBm)
> >(525 KHz - 533 KHz @ 4 KHz), (300 mBi, 2000 mBm)
> >(549 KHz - 571 KHz @ 4 KHz), (300 mBi, 2000 mBm)
> >(5735000 KHz - 5835000 KHz @ 4 KHz), (300 mBi, 3000 mBm)
> > b43 ssb0:0: firmware: requesting b43/lp0initvals15.fw
> > b43 ssb0:0: firmware: requesting b43/lp0bsinitvals15.fw
> > b43-phy0: Loading firmware version 478.104 (2008-07-01 00:50:23)
> > b43-phy0 debug: b2062: Using crystal tab entry 19200 kHz.
> > b43-phy0 debug: RC calib: Failed to switch to channel 7, error = -5
> > b43-phy0 debug: Chip initialized
> > b43-phy0 debug: 64-bit DMA initialized
> > b43-phy0 debug: QoS enabled
> > b43-phy0 debug: Wireless interface started
> > b43-phy0 debug: Adding Interface type 2
> > ADDRCONF(NETDEV_UP): wlan0: link is not ready
> > wlan0: deauthenticating from 00:0c:41:e2:f9:81 by local choice (reason=3)
> > wlan0: direct probe to AP 00:0c:41:e2:f9:81 (try 1)
> > wlan0: direct probe responded
> > wlan0: authenticate with AP 00:0c:41:e2:f9:81 (try 1)
> > wlan0: authenticated
> > wlan0: associate with AP 00:0c:41:e2:f9:81 (try 1)
> > wlan0: RX AssocResp from 00:0c:41:e2:f9:81 (capab=0x411 status=0 aid=2)
> > wlan0: associated
> > ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
> > b43-phy0 debug: Using hardware based encryption for keyidx: 0, mac:
> > ff:ff:ff:ff:ff:ff
> > NOHZ: local_softirq_pending 08
> > NOHZ: local_softirq_pending 08
> > NOHZ: local_softirq_pending 08
> > NOHZ: local_softirq_pending 08
> > NOHZ: local_softirq_pending 08
> > NOHZ: local_softirq_pending 08
> > NOHZ: local_softirq_pending 08
> > NOHZ: local_softirq_pending 08
> > NOHZ: local_softirq_pending 08
> > NOHZ: local_softirq_pending 08
> > wlan0: no IPv6 routers present
> > CE: hpet increasing min_delta_ns to 15000 nsec
> > b43-phy0 ERROR: Fatal DMA error: 0x, 0x0400, 0x, 
> > 0x,
> > 0x, 0x
> > b43-phy0: Con

14e4:4315 DMA Errors (still)

2009-10-05 Thread fred99

Hi Folks -- 
 
I've read in the archives about DMA errors with the LP-PHY, but there didn't 
seem to be any conclusion.  Any guidance on what I can test to get it working?  
It's reproducable on my Lenovo G530 laptop.  (Yes, I know forcing PIO works for 
others, and it works for me too, but I'd like to help testing if I can). 
 
Any guidance on which tests would be most likely to work?  AFAIK, options to 
test include: 
* 64bit kernel (and userland?) 
* Hack b43/dma.c to force fallback to 32bit DMA (as a trial datapoint only) 
* Boot with Mem=2G.  Currently 4G ram is installed. 
* Firmware 5xx 

Or is this a HW design error in the laptop, and I should just live with forcing 
PIO?
 
My system details: 
* Compat-wireless-2009-09-30 (and also back to 9-21) 
* Fedora Rawhide 32-bit, kernel 2.6.31.1-56.fc12.i686 
* Firmware 478.104 
* Fatal DMA error soon after heavy traffic starts 
 
dmesg extract: 
 
ssb: Sonics Silicon Backplane found on PCI device :04:00.0 
b43-phy0: Broadcom 4312 WLAN found (core revision 15) 
b43-phy0 debug: Found PHY: Analog 6, Type 5, Revision 1 
b43-phy0 debug: Found Radio: Manuf 0x17F, Version 0x2062, Revision 2 
phy0: Selected rate control algorithm 'minstrel' 
Registered led device: b43-phy0::tx 
Registered led device: b43-phy0::rx 
Registered led device: b43-phy0::radio 
Broadcom 43xx driver loaded [ Features: PML, Firmware-ID: FW13 ] 
b43 ssb0:0: firmware: requesting b43/ucode15.fw 
cfg80211: Calling CRDA for country: US 
cfg80211: Regulatory domain changed to country: US 
(start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp) 
(2402000 KHz - 2472000 KHz @ 4 KHz), (300 mBi, 2700 mBm) 
(517 KHz - 525 KHz @ 4 KHz), (300 mBi, 1700 mBm) 
(525 KHz - 533 KHz @ 4 KHz), (300 mBi, 2000 mBm) 
(549 KHz - 571 KHz @ 4 KHz), (300 mBi, 2000 mBm) 
(5735000 KHz - 5835000 KHz @ 4 KHz), (300 mBi, 3000 mBm) 
b43 ssb0:0: firmware: requesting b43/lp0initvals15.fw 
b43 ssb0:0: firmware: requesting b43/lp0bsinitvals15.fw 
b43-phy0: Loading firmware version 478.104 (2008-07-01 00:50:23) 
b43-phy0 debug: b2062: Using crystal tab entry 19200 kHz. 
b43-phy0 debug: RC calib: Failed to switch to channel 7, error = -5 
b43-phy0 debug: Chip initialized 
b43-phy0 debug: 64-bit DMA initialized 
b43-phy0 debug: QoS enabled 
b43-phy0 debug: Wireless interface started 
b43-phy0 debug: Adding Interface type 2 
ADDRCONF(NETDEV_UP): wlan0: link is not ready 
wlan0: deauthenticating from 00:0c:41:e2:f9:81 by local choice (reason=3) 
wlan0: direct probe to AP 00:0c:41:e2:f9:81 (try 1) 
wlan0: direct probe responded 
wlan0: authenticate with AP 00:0c:41:e2:f9:81 (try 1) 
wlan0: authenticated 
wlan0: associate with AP 00:0c:41:e2:f9:81 (try 1) 
wlan0: RX AssocResp from 00:0c:41:e2:f9:81 (capab=0x411 status=0 aid=2) 
wlan0: associated 
ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready 
b43-phy0 debug: Using hardware based encryption for keyidx: 0, mac: 
ff:ff:ff:ff:ff:ff 
NOHZ: local_softirq_pending 08 
NOHZ: local_softirq_pending 08 
NOHZ: local_softirq_pending 08 
NOHZ: local_softirq_pending 08 
NOHZ: local_softirq_pending 08 
NOHZ: local_softirq_pending 08 
NOHZ: local_softirq_pending 08 
NOHZ: local_softirq_pending 08 
NOHZ: local_softirq_pending 08 
NOHZ: local_softirq_pending 08 
wlan0: no IPv6 routers present 
CE: hpet increasing min_delta_ns to 15000 nsec 
b43-phy0 ERROR: Fatal DMA error: 0x, 0x0400, 0x, 
0x, 
0x, 0x 
b43-phy0: Controller RESET (DMA error) ... 
b43-phy0 debug: Wireless interface stopped 
b43-phy0 debug: DMA-64 rx_ring: Used slots 8/64, Failed frames 0/0 = 0.0%, 
Average tries 0.00 
b43-phy0 debug: DMA-64 tx_ring_AC_BK: Used slots 0/256, Failed frames 0/0 = 
0.0%, Average tries 0.00 
b43-phy0 debug: DMA-64 tx_ring_AC_BE: Used slots 256/256, Failed frames 0/7742 
= 
0.0%, Average tries 1.37 
b43-phy0 debug: DMA-64 tx_ring_AC_VI: Used slots 0/256, Failed frames 0/0 = 
0.0%, Average tries 0.00 
b43-phy0 debug: DMA-64 tx_ring_AC_VO: Used slots 2/256, Failed frames 0/555 = 
0.0%, Average tries 1.01 
b43-phy0 debug: DMA-64 tx_ring_mcast: Used slots 0/256, Failed frames 0/0 = 
0.0%, Average tries 0.00 
b43-phy0: Loading firmware version 478.104 (2008-07-01 00:50:23) 
b43-phy0 debug: b2062: Using crystal tab entry 19200 kHz. 
b43-phy0 debug: Chip initialized 
b43-phy0 debug: 64-bit DMA initialized 
b43-phy0 debug: QoS enabled 
b43-phy0 debug: Wireless interface started 
b43-phy0: Controller restarted 
b43-phy0 ERROR: Fatal DMA error: 0x0400, 0x, 0x, 
0x, 
0x, 0x 
b43-phy0: Controller RESET (DMA error) ... 
b43-phy0 debug: Wireless interface stopped 
b43-phy0 debug: DMA-64 rx_ring: Used slots 0/64, Failed frames 0/0 = 0.0%, 
Average tries 0.00 
b43-phy0 debug: DMA-64 tx_ring_AC_BK: Used slots 0/256, Failed frames 0/0 = 
0.0%, Average tries 0.00 
b43-phy0 debug: DMA-64 tx_ring_AC_BE: Used slots 1/256, Failed frames 0/