[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: HELP! Install problem. How to free I/O locked by "reserve=..." in boot params?








On Wed, 8 Mar 2000, Wojciech Zabolotny wrote:

> On Wed, Mar 08, 2000 at 03:04:03AM +0100, Bjoern Brill wrote:
> > 
> > Have you tried to insert the wd module with parameters (io=0x280 etc.)?
> > I think it doesn't care if resources are reserved or not in this case.
> 
> Hmmm, I used the "insmod wd io=0x280", and it resulted in the mentioned
> error.

What error? I couldn't find a verbatim error message in your previous
postings.

> However I've checked it in my home system. I've append the "reserve=0x300,1"
> line to the lilo.conf (I have ne2000 at 0x300).
> In this case system starts correctly, then I switched off the eth0
> interface and removed the ne module.
> After I tried: "insmod ne", I got:
> 
> #insmod ne
> ne.c: No PCI cards found. Use "io=0xNNN" value(s) for ISA cards.
> /lib/modules/2.0.36/net/ne.o: init_module: Device or resource busy
> 
> However, when I typed "insmod ne=0x300", I got:
> #insmod ne io=0x300
> ne.c:v1.10 9/23/94 Donald Becker (becker@cesdis.gsfc.nasa.gov)
> NE*000 ethercard probe at 0x300: 00 c0 df 48 fa ef
> eth0: NE2000 found at 0x300, using IRQ 11.
> 
> The 0x300 area is still reported in /proc/ioports as:
> 0300-0300 : reserved
> (even when the module is loaded!)
> 
> So I can see a few possibilities:
> 1) The modules ne and wd differently handles the reserved I/O space
> 2) There is a difference in this subject between 2.0 and 2.2 kernels
>    (I use 2.0.36 at home, and 2.2.14 in the failing machine)
> 3) This is not I/O space, what causes the "resource unavailable" error.
>    Unfortunately the insmod gives very poor information about the
>    reasons of failure (even the -v switch does not help).
> 
> Thanks for suggestions. Tomorrow I'll try to investigate the problem
> more thoroughly.
> 

I have just upgraded a machine with an old WD NIC from 2.0.36 to 2.2.14
and tried to reproduce your problem but can't. Situation:

the WD is at 0x300, IRQ 10, mem 0xcc000-0xcffff. The wd driver is
modularized and gets autoloaded. The important lines in /etc/conf.modules
are:

  alias eth0 wd
  options wd		io=0x300 irq=10 mem=0xcc000

Now I boot through LILO and give a "reserve=0x300,0x20" argument. The wd
module loads just fine, using io=0x300 etc. And it really works - the
machine imports /home and lots of other stuff via nfs so I should notice
if it doesn't :)

The io region is still reserved for the kernel (as you said),
"cat /proc/ioports" yields

  0300-031f : reserved

So I'd say the reserve argument is not the problem.

Some ideas about what could be wrong:

* I suppose the WD card connects to the ISA bus (would anybody want to
produce PCI cards with this ancient chipset?). If so, you may have to
tell the BIOS setup the resources the WD uses. They can be taken by
other hardware or disabeled otherwise.

The IRQ has to be marked as "used by ISA card" or the like,
and you have to enable "ISA shared memory" or something like that at the
correct address (0xcc000, size 16k in my case). Look for these options in
the "PnP BIOS Setup" (or similar) section. You may have to disable "auto
config" before you can change or even see any of this.

* Check your /etc/conf.modules (or /etc/modules.conf - the name keeps
changing) for conflicting wd options.

* Try to use modprobe instead of insmod in case the wd module requires
other modularized stuff that doesn't get autoloaded.


Good Luck,

Bjoern
--
Bj"orn Brill <brill@fs.math.uni-frankfurt.de>
Frankfurt am Main, Germany





Reply to: