Subject: weird pcmcia hot-swap behavior on Toshiba Portege SS 3010
To: None <current-users@netbsd.org, port-i386@netbsd.org>
From: Ken Nakata <kenn@synap.ne.jp>
List: current-users
Date: 01/23/1999 16:04:23
Hi,

I've been running the latest i386 current snapshot on my Toshiba
Portege SS 3010 for almost a month, and I love this thing!  But
there's one thing that's been bugging me.

Hot-insersion and removal of PC cards are not detected properly.  A
state transition (insersion or removal) has to occur in *both* slots
in order to be detected.

For instance, assume I have a modem card inserted in slot 0 and
nothing in slot 1.  When I remove the modem card, it goes unnoticed,
but when I put it in the other slot, first slot 0 removal is detected
(and comN device gets detached) then slot 1 insersion is detected (and
comN device gets reattached in case of the modem card).

If I remove the modem card from slot 1 again and slap it back into
slot 0, this time, insersion in slot 0 gets detected first (comM
device attached, where M = N + 1), then removal from slot 1 next (comN
device detached).

This is sometimes annoying, especially when I'm using an Ethernet card
in one slot and want to insert a modem in the other slot for some
reason.  Simply inserting the modem card doesn't make kernel detect
the card.  I would also have to remove the Ethernet card in the other
slot but it would cause a kernel panic (When is if_delref() going to
be implemented, BTW?).  I have no choice but reboot the system to use
the modem.

I asked some FreeBSD people and they say they don't have the problem
even on the same model.  I suspect it has something to do with the way
pcic interrupt is set up under NetBSD, but I know nothing about
i82365.

Excerpt from dmesg:
> pcic0 at isa0 port 0x3e0-0x3e1 iomem 0xd0000-0xd3fff: using irq 3
> pcic0: controller 0 (Intel 82365SL Revision 1) has sockets A and B

I appreciate any insight.

Ken