Subject: Re: PCMCIA interrupt problem
To: Ingolf Koch <ingolf@mipool.uni-jena.de>
From: Stefan Grefen <grefen@hprc.tandem.com>
List: port-i386
Date: 10/27/1998 10:53:39
In message <19981027000421.A545@maus.rz.uni-jena.de>  Ingolf Koch wrote:
> Hi,
> 
> as the Compex LinkPort PCMCIA Ethernet card is not recognized
> by 1.3.2, I tried to write the corresponding entry (see kern/6349).
> Unfortunately, this did not make the card work perfectly on my
> laptop.
> 
> I have the following problems:
> 1) The screen is switched off when
>         bus_space_write_1(asict, asich, NE2000_ASIC_RESET, tmp);
>    is called (sys/dev/ic/ne2000.c, line 276)
> 2) From a remote machine, ping to the laptop succeeds (via the
>    ethernet card). But nothing more works from remote (no
>    traceroute, telnet, etc).
>    From the laptop, I can use the network without problems
>    (telnet, ftp, nfs mounts, etc).
> 
> I suspect, this is an irq problem, so I tried to have another
> irq allocated to the card. This is usually irq 5. Probably,
> it conflicts with some irq used by the laptop's apm...

Well I don't think so, I may collide with on on board sound card.

to change pcmcia interrupt allocation use
options         PCIC_ISA_INTR_ALLOC_MASK=0xXXXX

in your config file.

> 
> As there seems to be no irq option for pcmcia cards in config
> files, I changed the "mask" in isa_intr_alloc() (located in
> sys/arch/i386/isa/isa_machdep.c, lines 358 ff) to explicitly
> exclude irq 5 from being allocated.


> 
> This resulted in assigning irq 7 to the card, but after that,
> I got timeouts for ne0. Probably, the card still used irq 5,
> but the driver software expected irq 7 in this case.

That looks a lot more like an interupt conflict.

> 
> The card's "manual" says that the irq can be configured to
> a number other than the default 5.

The CIS tells that it can use any interrupt.

> 
> Is this a standard feature for pcmcia cards (at least i/o cards)?

Yes.

> 
> If so, is the irq number allocated by isa_intr_alloc() indeed
> written to the card (or the controller)?

It is written to the controller and the card (depending on some CIS bits).

> 
> Any comments, hints, etc welcome.

Try using a different IO-range.  340/350 may collide with a unconfigured
sound card. (I had that problem on my Libretto).

options         PCIC_ISA_INTR_ALLOC_MASK=0xf918
options         PCIC_ISA_ALLOC_IOBASE=0x400
options         PCIC_ISA_ALLOC_IOSIZE=0xbff 

This in the config file cured the problem.

Stefan
> 
> Regards
>     Ingolf

--
Stefan Grefen                                Tandem Computers Europe Inc.
grefen@hprc.tandem.com                       High Performance Research Center
 --- Hacking's just another word for nothing left to kludge. ---