2001-03-14 13:36:01

by mshiju

[permalink] [raw]
Subject: ISAPNP :driver not recognized when compiled in kernel

Hello,
I have a basic question. Can we build a PnP ISA driver in kernel
with ISAPNP kernel option enabled so that kernel PnP does the job of
allocating the resources for the driver. The problem being that the
/etc/isapnp.conf should be executed before the device driver. I tried this
and was unsuccessful but worked fine when the driver was compiled as a
module. I read somewhere that ISAPNP drivers with ISAPNP enabled in kernel
should only be build as modules so that we can keep the order of execution
. Is this true.? Have any one of you tried this .


Thanks & Regards
Shiju




2001-03-14 14:24:05

by Tony Nugent

[permalink] [raw]
Subject: Re: ISAPNP :driver not recognized when compiled in kernel

On Wed Mar 14 2001 at 18:35, [email protected] wrote:

> module. I read somewhere that ISAPNP drivers with ISAPNP enabled in kernel
> should only be build as modules so that we can keep the order of execution
> . Is this true.? Have any one of you tried this .

I'd believe what you have read.

The general philosphy is that most device drivers are almost always
best built and made available as modules.

Besides, there really are distinct advantages in being able to
unload device drivers at runtime (eg, you can reconfigure the IRQ or
dma etc for the driver by simply unloading and reloading it -
without otherwise resorting to a system reboot which would be the
case if the driver was compiled into the kernel itself).

If you need to load any device drivers before actually booting the
kernel itself (eg, an nfsroot kernel which needs an ethernet
driver), then that problem is solved by creating (and making
available with lilo or bootp or whatever) an initrd image that can
preload the device drivers it needs before actually attempting to
mount the root filesystem. (Fairly easy to do this with something
like redhat's mkinitrd utility).

Cheers
Tony
-=*#*=-=*#*=-=*#*=-=*#*=-=*#*=-=*#*=-=*#*=-=*#*=-=*#*=-=*#*=-=*#*=-
Tony Nugent <[email protected]> Systems Administrator, RHCE
LinuxWorks - PO Box 5747 Gold Coast MC Queensland Australia 9726
Ph: (07) 5526 8020 Mobile: 0408 066 336
-=*#*=-=*#*=-=*#*=-=*#*=-=*#*=-=*#*=-=*#*=-=*#*=-=*#*=-=*#*=-=*#*=-

2001-03-14 14:26:05

by Christoph Hellwig

[permalink] [raw]
Subject: Re: ISAPNP :driver not recognized when compiled in kernel

In article <[email protected]> you wrote:
> Hello,
> I have a basic question. Can we build a PnP ISA driver in kernel
> with ISAPNP kernel option enabled so that kernel PnP does the job of
> allocating the resources for the driver.

Yes you can. Look at drivers/sound/ad1816.c or drivers/sound/sb_card.c for
examples.

> The problem being that the
> /etc/isapnp.conf should be executed before the device driver. I tried this
> and was unsuccessful but worked fine when the driver was compiled as a
> module.

The Linux 2.4 isapnp code does _not_ use isapnp.conf.
Did you write your driver using the isapnp_ kernel APIs (Documented in
Documentation/isapnp.txt)? Or is it a plain isa driver that needs help
from the isapnp tools to work?

> I read somewhere that ISAPNP drivers with ISAPNP enabled in kernel
> should only be build as modules so that we can keep the order of execution
> . Is this true.? Have any one of you tried this .

This was true for Linux 2.2 and earlier as those did not actually support
isapnp and needed the help of the uselevel isapnp tools. Because they can
only be used after the system is up isapnp drivers for theses kernel have to
be modules.

Christoph

--
Of course it doesn't work. We've performed a software upgrade.

2001-03-14 14:35:35

by Brian Gerst

[permalink] [raw]
Subject: Re: ISAPNP :driver not recognized when compiled in kernel

[email protected] wrote:
>
> Hello,
> I have a basic question. Can we build a PnP ISA driver in kernel
> with ISAPNP kernel option enabled so that kernel PnP does the job of
> allocating the resources for the driver. The problem being that the
> /etc/isapnp.conf should be executed before the device driver. I tried this
> and was unsuccessful but worked fine when the driver was compiled as a
> module. I read somewhere that ISAPNP drivers with ISAPNP enabled in kernel
> should only be build as modules so that we can keep the order of execution
> . Is this true.? Have any one of you tried this .
>
> Thanks & Regards
> Shiju

If you build ISAPnP support into the kernel you should not be using the
isapnp userspace tools. Use on or the other, but not both. The ISAPnP
system when non-modular is initialized before built-in drivers, so they
do not have to be modular. With the old userspace tools they must be
modular.

--

Brian Gerst