Bug 1090 - Microcode SW error detected
: Microcode SW error detected
Status: VERIFIED FIXED
: IPW3945
firmware error
: 1.0.12
: All All
: P1 blocker
Assigned To:
:
:
:
:
:
  Show dependency treegraph
 
Reported: 2006-07-06 22:45 by
Modified: 2007-05-11 05:27 (History)


Attachments
original dmesg errors (647 bytes, text/plain)
2006-07-26 21:53, Shannon Schlueter
Details
after load debug=... (10.65 KB, text/plain)
2006-07-26 21:54, Shannon Schlueter
Details
after 1st ifup attempt (failure) (6.39 KB, text/plain)
2006-07-26 21:55, Shannon Schlueter
Details
after iwconfig eth1 essid... (2.21 KB, text/plain)
2006-07-26 21:55, Shannon Schlueter
Details
after 2nd ifup (success) (2.97 KB, text/plain)
2006-07-26 21:56, Shannon Schlueter
Details
using associate=1 in modprobe (1.01 KB, text/plain)
2006-07-26 21:57, Shannon Schlueter
Details
RATE=Auto, CHANNEL=11 (39.45 KB, text/plain)
2006-07-28 08:01, Shannon Schlueter
Details
RATE=Auto, CHANNEL=Auto, standard modprobe.conf (7.81 KB, text/plain)
2006-07-28 08:02, Shannon Schlueter
Details
RATE=Auto, CHANNEL=6 (82.70 KB, text/plain)
2006-07-28 08:03, Shannon Schlueter
Details
RATE=Auto,CHANNEL=Auto, associate=1 (modprobe.conf) (37.69 KB, text/plain)
2006-07-28 08:08, Shannon Schlueter
Details
patch to try (452 bytes, patch)
2006-08-17 19:32, Liu, Hong
Details | Diff


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2006-07-06 22:45:21
I'm getting the flashing led, (on a Dell XPS M1710) while it tries to find the
router. The message log says:

ipw3945: Microcode SW error detected.  Restarting.
ipw3945: Error Reply type 0x000000FF cmd LEDS_CMD (0x48) seq 0x04AB ser 0x00030000
ipw
ipw3945: Can't stop Rx DMA.
ipw3945: Detected geography ABG (11 802.11bg channels, 13 802.22a channels)
ipw3945: Microcode SW error detected.  Restarting.
ipw3945: Error Reply type 0x000000FF cmd LEDS_CMD (0x48) seq 0x04AB ser 0x00030000
ipw
ipw3945: Can't stop Rx DMA.
ipw3945: Detected geography ABG (11 802.11bg channels, 13 802.22a channels)


and so on.

Using versions
ieee80211-1.1.14
ipw3945-1.0.12
ipw3945d-1.7.19
------- Comment #1 From 2006-07-09 19:57:16 -------
I believe that I had hard freezes on latest (non-pre) . I see this in my kernel
logs:

Jul  6 20:24:37 laptux usbcore: registered new driver hiddev
Jul  6 20:24:37 laptux usbcore: registered new driver usbhid
Jul  6 20:24:37 laptux drivers/usb/input/hid-core.c: v2.6:USB HID core driver

This is using gentoo, kernel gentoo sources 2.6.16-r12 and 1.1.14 of ieee80211
of the wireless subsystem. Ironically, although that I don't know that this is
related, I am having the version problems every-other reboot, and I'm about to
try that patch, which doesn't work on the latest, which is another bug I will
eventually report. 
------- Comment #2 From 2006-07-09 20:38:20 -------
I had the freezed on the gentoo supplied ebuilds. Installing with these above
mentioned versions fixed that, but no joy on the connection.
------- Comment #3 From 2006-07-13 07:46:32 -------
Can you help to provide the debug info with loading the driver ./load 
debug=0x43fff? It can help us to fix bugs.

-Jun
------- Comment #4 From 2006-07-13 20:48:56 -------
(In reply to comment #3)
> Can you help to provide the debug info with loading the driver ./load 
> debug=0x43fff? It can help us to fix bugs.
> 
> -Jun
I'll give you more information if you give me more info on how to do it. I've
got no program called load.
------- Comment #5 From 2006-07-20 02:16:24 -------
You can go to ipw3945.sf.net to download the latest version of ipw3945, 
compile it and use this command "./load debug=0x43fff". After the problem 
occurs, run this command "dmesg >output", the output file is what we want.

Thanks,
-Jun
------- Comment #6 From 2006-07-26 21:53:09 -------
Created an attachment (id=886) [details]
original dmesg errors
------- Comment #7 From 2006-07-26 21:54:08 -------
Created an attachment (id=887) [details]
after load debug=...
------- Comment #8 From 2006-07-26 21:55:04 -------
Created an attachment (id=888) [details]
after 1st ifup attempt (failure)
------- Comment #9 From 2006-07-26 21:55:48 -------
Created an attachment (id=889) [details]
after iwconfig eth1 essid...
------- Comment #10 From 2006-07-26 21:56:19 -------
Created an attachment (id=890) [details]
after 2nd ifup (success)
------- Comment #11 From 2006-07-26 21:57:02 -------
Created an attachment (id=891) [details]
using associate=1 in modprobe
------- Comment #12 From 2006-07-26 21:59:16 -------
sorry for all the seperate attachments. I thought bugzilla would let me add them
all at once. guess not!

I believe I am seeing the same error. I too am using a M1710 with Fedora Core 5.
I have a bit of a hackish workaround and some debug output as requested by Jun.

versions:
ieee80211-1.1.14-11
ipw3945-1.1.0-12_pre2
ipw3945d-1.17.19-2
ipw3945-ucode-1.13-1

First the workaround:
  Add the following modprobe.conf setup
>>    install ipw3945 /sbin/modprobe -i ipw3945 associate=1 $CMDLINE_OPTS
>>    remove ipw3945 /sbin/ipw3945d --kill; /sbin/modprobe -r -i ipw3945
$CMDLINE_OPTS

  and the following to rc.local
>>    /sbin/ipw3945d --quiet

Explanation:
The associate=1 seems to be the magic bullet.
I haven't been able to get any modprobe install combination to bring up the
ipw3945d daemon (even using the timeout options). Simply loading it later in the
boot cycle seems to work okay however.

Attachements and painful details:
 origDMESG - The relevant dmesg lines for a stock install (bringing up the
ipw3945d manually). These are the lines I believe to be similar to original posting.
 loadDMESG - the 'dmesg -c' immediately after running './load debug...'
 ifup1DMESG - after an /sbin/ifup eth1 command
 essidDMESG - after an /sbin/iwconfig eth1 essid ...
 ifup2DMESG - after ifdown then ifup on eth1

As you can see from the DMESGs setting the essid allowed the card to
(re)associate [The wireless LED above the keybord went solid]. The subsequent
ifup was then succesfull. The prior ifup (ifup1) had failed.

This led me to the associate module parameter and appears to be a temporary
solution. I say temporary because if you notice in the hackDMESG the driver
still threw a microcode error. A quick check of dmesg (I've been using the
wireless to access this webpage) shows that no more errors have been reported.

Hope this helps ----
------- Comment #13 From 2006-07-27 20:33:31 -------
I am not sure how gentoo configure the wirelesss interface.
Can you remove setting rate when loading the driver? 
Brix, how does gentoo implement it?
------- Comment #14 From 2006-07-28 00:32:07 -------
We don't set the rate unless the user has specified a rate setting. All wireless
configuration is done in /etc/conf.d/net and/or /etc/conf.d/wireless.
------- Comment #15 From 2006-07-28 01:28:10 -------
(In reply to comment #14)
> We don't set the rate unless the user has specified a rate setting. All wireless
> configuration is done in /etc/conf.d/net and/or /etc/conf.d/wireless.

ipw3945: U ipw_wx_set_rate Setting rate mask to 0x00000800 [fixed]

This is what we found in the debug log, it sets the rate to 54Mbps only.

Thanks,
Hong
------- Comment #16 From 2006-07-28 07:51:42 -------
(In reply to comment #15)

Sorry for the confusion. 

Let me clear this up a little. I'm running Fedora core 5 (not gentoo), and the
fixed 54Mbs is in my ifcfg-eth1 file as well as the channel=6 parameters. For
some reason system-config-network set this by default (all the networks I attach
to currently are Gs). I just switched these to auto and I'm updating the debug logs.

Okay, very interesting!

Without the fixed rate (but with a fixed channel=11) the card/drivers now seem
to work fine without needing the associate=1 added in!  

Without a fixed channel (channel=Auto) in ifcfg-eth1 I can't pick up an
association. BUMMER!

So maybe the associate=1 trick will work now? KINDA! It seems to have associated
for me but 'ifup eth1' always returns -- Error for wireless request "Set
Frequency" (8B04)--. But then it goes ahead an gets an IP through DHCP and seems
to work fine.

With the wrong channel (I use 6 at home, work is mainly 11) all the APs are
excluded except one very slow one.

I'll add debug logs for the above 3 cases.

So here's the wrap up for my cases.

If (FIXED RATE)
  install -i ipw3945 associate=1 $CMDLINE_OPTS [Needed in modprobe.conf]
If (RATE=Auto,Channel=#)
  standard modprobe.conf works fine [Your stuck on this channel though!]
If (RATE=Auto,Channel=Auto)
  install -i ipw3945 associate=1 $CMDLINE_OPTS [Needed in modprobe.conf]
  * ifup gives error warning (might be able to ignore)


So are the settings in ifcfg-eth1 suppose to have this much effect on the
card/driver prior to initializing it with 'ifup'??

Are these settings saved in cache on the card from one load to the next??
------- Comment #17 From 2006-07-28 08:01:57 -------
Created an attachment (id=892) [details]
RATE=Auto, CHANNEL=11
------- Comment #18 From 2006-07-28 08:02:49 -------
Created an attachment (id=893) [details]
RATE=Auto, CHANNEL=Auto
------- Comment #19 From 2006-07-28 08:03:41 -------
Created an attachment (id=894) [details]
RATE=Auto, CHANNEL=6
------- Comment #20 From 2006-07-28 08:08:39 -------
Created an attachment (id=895) [details]
RATE=Auto,CHANNEL=Auto, associate=1 (modprobe.conf)
------- Comment #21 From 2006-07-30 21:46:15 -------
Usually you don't need to specify the rate and channel in your config file.
The driver will do rate adjusting automatically according to the channel
environment. 


The only thing you should specify is the essid of your wireless network. After
you configure your essid, the driver will perform a scan and it will try to
associate with the network with the essid you set.

Thanks,
Hong
------- Comment #22 From 2006-08-03 07:14:09 -------
Chris:
Can you follow hong's last comment to only set the essid in the cfg file and 
see what happens?

Jun
------- Comment #23 From 2006-08-17 07:24:06 -------
The SYSASSERT on line 58 occurs when host sends an RXON_ASSOCIATED command, 
but the most recent RXON command did not have the "associated" bit set.

RXON and RXON_ASSOCIATED are two different commands (the ASSOCIATIED one just 
updates a few parameters without leaving the association).  uCode doesn't 
allow the ASSOCIATED command unless the previous RXON has "associated" set.

This bug is *not* related to 1085.

-- Ben --
------- Comment #24 From 2006-08-17 19:32:46 -------
Created an attachment (id=914) [details]
patch to try
------- Comment #25 From 2006-08-17 19:33:50 -------
(In reply to comment #23)
> The SYSASSERT on line 58 occurs when host sends an RXON_ASSOCIATED command, 
> but the most recent RXON command did not have the "associated" bit set.
> 
> RXON and RXON_ASSOCIATED are two different commands (the ASSOCIATIED one just 
> updates a few parameters without leaving the association).  uCode doesn't 
> allow the ASSOCIATED command unless the previous RXON has "associated" set.

Attached patch fixed this firmware error.

Thanks,
Hong
------- Comment #26 From 2006-11-01 12:32:50 -------
Patch merged for 1.1.2
------- Comment #27 From 2007-02-04 18:58:48 -------
Chris, can you help to verify this bug on the latest release?

Bests,
-Jun
------- Comment #28 From 2007-05-11 05:27:35 -------
Not found in latest 1.2.1. So verified it.

--Songbo