2005-09-26 15:22:28

by Keenan Pepper

[permalink] [raw]
Subject: ipw2200 only works as a module?

With CONFIG_IPW2200=y I get:

ipw2200: ipw-2.2-boot.fw load failed: Reason -2
ipw2200: Unable to load firmware: 0xFFFFFFFE

but with CONFIG_IPW2200=m it works fine. If it doesn't work when built into the
kernel, why even give people the option?

BTW, a better error message than "Reason -2" would be nice. =)

Keenan Pepper


2005-09-26 17:07:34

by Bharath Ramesh

[permalink] [raw]
Subject: Re: ipw2200 only works as a module?

When the kernel is booting it tries to locate the ipw-2.2 firmware
which cannot be found as the filesystems are yet to be mounted. The
firmware normally resides in the /lib directory. Its always advisable
to use drivers which require firmware loading as modules so that when
you try loading the module you have your file system already mounted.

On 9/26/05, Keenan Pepper <[email protected]> wrote:
> With CONFIG_IPW2200=y I get:
>
> ipw2200: ipw-2.2-boot.fw load failed: Reason -2
> ipw2200: Unable to load firmware: 0xFFFFFFFE
>
> but with CONFIG_IPW2200=m it works fine. If it doesn't work when built into the
> kernel, why even give people the option?
>
> BTW, a better error message than "Reason -2" would be nice. =)
>
> Keenan Pepper
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>

2005-09-26 17:12:35

by Luca

[permalink] [raw]
Subject: Re: ipw2200 only works as a module?

Keenan Pepper <[email protected]> ha scritto:
> With CONFIG_IPW2200=y I get:
>
> ipw2200: ipw-2.2-boot.fw load failed: Reason -2
> ipw2200: Unable to load firmware: 0xFFFFFFFE
>
> but with CONFIG_IPW2200=m it works fine. If it doesn't work when built into the
> kernel, why even give people the option?
>
> BTW, a better error message than "Reason -2" would be nice. =)

-2 is -ENOENT (no such file or directory). ipw2000 requests its firmware
using a hotplug event, but when the driver is compiled into the kernel
it gets loaded _before_ the root fs is mounted and of course the hotplug
system and the firmware are not available.

I suggest to stick with modular driver, otherwise you must create an
initrd with hotplug + firmware.

More on firmware loading here: http://lwn.net/Articles/32997/

Luca
--
Home: http://kronoz.cjb.net
"L'amore consiste nell'essere cretini insieme." -- P. Valery

2005-09-27 05:11:57

by Alejandro Bonilla

[permalink] [raw]
Subject: Re: ipw2200 only works as a module?

Luca wrote:

>Keenan Pepper <[email protected]> ha scritto:
>
>
>>With CONFIG_IPW2200=y I get:
>>
>>ipw2200: ipw-2.2-boot.fw load failed: Reason -2
>>ipw2200: Unable to load firmware: 0xFFFFFFFE
>>
>>but with CONFIG_IPW2200=m it works fine. If it doesn't work when built into the
>>kernel, why even give people the option?
>>
>>BTW, a better error message than "Reason -2" would be nice. =)
>>
>>
>
>-2 is -ENOENT (no such file or directory). ipw2000 requests its firmware
>using a hotplug event, but when the driver is compiled into the kernel
>it gets loaded _before_ the root fs is mounted and of course the hotplug
>system and the firmware are not available.
>
>I suggest to stick with modular driver, otherwise you must create an
>initrd with hotplug + firmware.
>
>

I think I have seen this but in FC3 or FC4. We have had issues with them
loading things too soon and then making the driver to fail loading.

Try it with * built in and then once booted to load it. If it works,
then is a distro thing. It works for me here in Debian with Y or as a
module.

.Alejandro

>More on firmware loading here: http://lwn.net/Articles/32997/
>
>Luca
>
>

2005-10-22 17:01:32

by Rob Landley

[permalink] [raw]
Subject: Re: ipw2200 only works as a module?

On Monday 26 September 2005 12:12, Luca wrote:
> Keenan Pepper <[email protected]> ha scritto:
> > With CONFIG_IPW2200=y I get:
> >
> > ipw2200: ipw-2.2-boot.fw load failed: Reason -2
> > ipw2200: Unable to load firmware: 0xFFFFFFFE
> >
> > but with CONFIG_IPW2200=m it works fine. If it doesn't work when built
> > into the kernel, why even give people the option?
> >
> > BTW, a better error message than "Reason -2" would be nice. =)
>
> -2 is -ENOENT (no such file or directory). ipw2000 requests its firmware
> using a hotplug event, but when the driver is compiled into the kernel
> it gets loaded _before_ the root fs is mounted and of course the hotplug
> system and the firmware are not available.

Any possibility of extracting initramfs early enough that the firmware could
live in there when this sucker's built in?

Rob

2005-10-22 22:49:50

by Alistair John Strachan

[permalink] [raw]
Subject: Re: ipw2200 only works as a module?

On Wednesday 19 October 2005 22:35, Rob Landley wrote:
> On Monday 26 September 2005 12:12, Luca wrote:
> > Keenan Pepper <[email protected]> ha scritto:
> > > With CONFIG_IPW2200=y I get:
> > >
> > > ipw2200: ipw-2.2-boot.fw load failed: Reason -2
> > > ipw2200: Unable to load firmware: 0xFFFFFFFE
> > >
> > > but with CONFIG_IPW2200=m it works fine. If it doesn't work when built
> > > into the kernel, why even give people the option?
> > >
> > > BTW, a better error message than "Reason -2" would be nice. =)
> >
> > -2 is -ENOENT (no such file or directory). ipw2000 requests its firmware
> > using a hotplug event, but when the driver is compiled into the kernel
> > it gets loaded _before_ the root fs is mounted and of course the hotplug
> > system and the firmware are not available.
>
> Any possibility of extracting initramfs early enough that the firmware
> could live in there when this sucker's built in?
>

Another possible solution would be to delay initialisation of the hardware
until the network interface is brought up. This is a more robust approach
because then if something bad happens and the firmware needs to be reloaded,
you can just cycle the interface (ifdown/ifup) and the firmware will be
reuploaded.

An example of hardware doing this is the prism54 driver (also in tree) which
delays loading the firmware until it absolutely has to. This driver survives
being built-in quite happily.

--
Cheers,
Alistair.

'No sense being pessimistic, it probably wouldn't work anyway.'
Third year Computer Science undergraduate.
1F2 55 South Clerk Street, Edinburgh, UK.

2005-10-23 22:19:33

by Alejandro Bonilla

[permalink] [raw]
Subject: Re: ipw2200 only works as a module?

Alistair John Strachan wrote:

>On Wednesday 19 October 2005 22:35, Rob Landley wrote:
>
>
>>On Monday 26 September 2005 12:12, Luca wrote:
>>
>>
>>>Keenan Pepper <[email protected]> ha scritto:
>>>
>>>
>>>>With CONFIG_IPW2200=y I get:
>>>>
>>>>ipw2200: ipw-2.2-boot.fw load failed: Reason -2
>>>>ipw2200: Unable to load firmware: 0xFFFFFFFE
>>>>
>>>>but with CONFIG_IPW2200=m it works fine. If it doesn't work when built
>>>>into the kernel, why even give people the option?
>>>>
>>>>
I have seen this before with users using FC or RH. They end up
increasing the timeout of the hotplug event and then it all works. But
then again, it only occurs for what I have seen with FC users. Dunno Why.

.Alejandro

2005-10-24 06:18:32

by Denis Vlasenko

[permalink] [raw]
Subject: Re: ipw2200 only works as a module?

On Monday 24 October 2005 01:19, Alejandro Bonilla Beeche wrote:
> >>>>With CONFIG_IPW2200=y I get:
> >>>>
> >>>>ipw2200: ipw-2.2-boot.fw load failed: Reason -2
> >>>>ipw2200: Unable to load firmware: 0xFFFFFFFE
> >>>>
> >>>>but with CONFIG_IPW2200=m it works fine. If it doesn't work when built
> >>>>into the kernel, why even give people the option?

because we want allyesconfig to compile.

> I have seen this before with users using FC or RH. They end up
> increasing the timeout of the hotplug event and then it all works. But
> then again, it only occurs for what I have seen with FC users. Dunno Why.

Firmware-loaded-by-hotplug is a necessary compromise in non-GPL world.
Ideally, firmware can be GPLed too and be included in the module
(u32 firmware_image[NNN]).

With closed firmwares, you should use modules (or wait until kernel will
have usable hotplug before root fs is mounted).
--
vda