Bug 113385 - Netgear 32-bit CardBus WG511 does not work anymore
Summary: Netgear 32-bit CardBus WG511 does not work anymore
Status: RESOLVED FIXED
Alias: None
Product: SUSE LINUX 10.0
Classification: openSUSE
Component: Kernel (show other bugs)
Version: Beta 3
Hardware: Other All
: P5 - None : Normal
Target Milestone: ---
Assignee: Jiri Bohac
QA Contact: E-mail List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-08-26 17:28 UTC by Thorsten Kukuk
Modified: 2005-11-24 12:54 UTC (History)
1 user (show)

See Also:
Found By: Other
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments
Patch to make prism54 load firmware on initialization (386 bytes, patch)
2005-08-30 08:45 UTC, Joachim Gleissner
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Thorsten Kukuk 2005-08-26 17:28:28 UTC
Hardware: Netgear WG511 CardBus WLAN card, worked fine until 9.3.

After update to 10.0Beta3 I run the install_intersil_firmware script (luckily I had
a network cable to connect, since the location of the firmware on SuSE Linux
changed) to install the new firmware on the system.

I get the following messages if I insert the card:

"Loaded prism54 driver, version 1.2
 PCI: Enabling device 0000:02:00.0 (0000 -> 0002)"


In the past with SuSE Linux 9.3 I got:
Aug 26 09:57:04 rubicon kernel: eth1: uploading firmware...
Aug 26 09:57:04 rubicon kernel: eth1: firmware version: 1.0.4.3
Aug 26 09:57:04 rubicon kernel: eth1: firmware upload complete
Aug 26 09:57:04 rubicon kernel: eth1: interface reset complete

I don't get this anymore, the WLAN card does not work and the MAC is 
00:00:00:00:00:00, which looks like the card will not be initialized
correct.
Comment 1 Christian Zoz 2005-08-26 17:45:56 UTC
Already fixed in stable. The udev rule for the firmware script was wrong. Try
STABLE.
Comment 2 Thorsten Kukuk 2005-08-26 18:26:42 UTC
Nope, does not work with new udev from stable.

If I look at the script and try to understand it, I would think that the prism54
driver does not support /sys correct, at least I cannot find a "loading" directory.
Comment 3 Thorsten Kukuk 2005-08-26 18:32:28 UTC
Adding debug code shows, that the firmware script is not run and yes, I verified
that the path is correct and I bootet to make sure that the new udev is really used.
Comment 4 Thorsten Kukuk 2005-08-26 23:10:00 UTC
After googleing a bit I think I know now what happens:

- Insert the pcmcia card
- Call "ifconfig eth1 up" (eth1 is the card in my case)
- Run "ifup eth1"
Voila, now it works.

What happens is: The firmware will not be loaded before somebody is accessing
the network. But without firmware we don't have the correct MAC address, so a 
"ifup eth1" has to fail. If "ifup eth1" does not work, we cannot access the
network and the firmware will not be loaded :-(
Comment 5 Christian Zoz 2005-08-29 07:04:48 UTC
OK, known problem. I will reactivate the old hack we had in network.agent.
Comment 6 Christian Zoz 2005-08-29 07:44:22 UTC
reduce number of kukuks blocker ...

To be honest, this is just one broken driver of many. This is definitvely not a
blocker.
Comment 7 Christian Zoz 2005-08-29 16:47:44 UTC
Workaround is now in sysconfig package. Call udevcontrol reload_rules, since it
contains new rules.

Joe will also fix the driver.
Comment 8 Joachim Gleissner 2005-08-30 08:45:59 UTC
Created attachment 48111 [details]
Patch to make prism54 load firmware on initialization

Here is a patch for prism54 against the beta3 kernel.
Comment 9 Olaf Kirch 2005-08-30 09:21:20 UTC
Jiri, please review the patch and submit to HEAD if appropriate. 
Comment 10 Jiri Bohac 2005-08-31 16:07:54 UTC
I think there may be some problems with this patch:
- the card will reset and load the firmware twice ... on initialization and on
open; My experience is that prism54 cards often hang hang on a reset.

- if this driver is ever compiled directly into the kernel (not as a module), it
will request the firmware before the root filesystem with the firmware is
mounted, and will probably timeout for 30 seconds (??) -- not sure about this.

Joachim: have you actually tested it works? We don't have the hardware here.

This seems like a workaround, rather than a bugfix that could possibly be sent
upstream. This is a known problem of this driver (and many others), and the
proper fix would be more complicated (one of the solutions is to load the
firmware when the first ioctl call on the device occurs).

If we have a workaround in userspace, do we have to have another one in the kernel?
Comment 11 Joachim Gleissner 2005-09-01 09:01:39 UTC
>  the card will reset and load the firmware twice ... on initialization and   
on open   
   
This is true. But the driver will load the firmware every time the interface   
is set up, so I don't see a problem here.   
   
>  if this driver is ever compiled directly into the kernel (not as a module),  
it will request the firmware before the root filesystem with the firmware is  
mounted, and will probably timeout for 30 seconds (??) -- not sure about this.  
  
The firmware loading will fail in this case, no doubt. Not only the firmware  
image is not available at this point, there is also no firmware hotplug  
handler. But I don't think the kernel will hang.  
  
I've tested it of course and it seems to work. But I don't insist on this  
patch. 
Comment 12 Andreas Schneider 2005-09-06 13:48:55 UTC
Installation: SUSE 10 x86_64 (update from 9.3)
Beta:         Beta4
HW Info:      http://www.cynapses.org/hwinfo.log

Description:
------------
Currently the firmware gets uploaded twice and the interface gets renamed to
eth(x++). So the number increases with every plug-in.

Reproduction:
-------------
Re-plugin the card serveral times

Logs:
-----
I could attach the part of /var/log/messages with udev log_priority=info if wanted.
Comment 13 Joachim Gleissner 2005-09-06 13:58:18 UTC
Christian, that fixed in RC1 iirc, isn't it? 
 
Besides the interface renaming problem, does the card work after all? 
Comment 14 Thorsten Kukuk 2005-09-06 14:01:09 UTC
My card works now fine.
Comment 15 Christian Zoz 2005-09-06 14:45:52 UTC
to comment 12:
don't update betaN to betaN+M
cd /etc/udev/rules.d/; mv 30*rpmnew 30-net.....
Comment 16 Jiri Bohac 2005-11-24 12:54:12 UTC
closing, see comment #14