Subject: nell pcmcia and wi lossage
To: None <port-sparc@NetBSD.ORG>
From: Martin Husemann <email@example.com>
Date: 12/02/2002 16:36:41
I've been recently hit with a clue-by-4 multiple times by Paul and Valeriy
(thanks a lot to both!) until I now think I understand what's wrong with nell
interrupt handling and what you can do to work around it.
Basically it's completely wrong. It needs to be redone.
Myself I was lucky, because I could get away with an easy workaround.
My nell in my LX attaches as:
nell0 at sbus0 slot 0 offset 0x0 level 4 (ipl 7) level 7 (ipl 13): rev 1
I only use "wi* at pcmcia?", no other kind of pcmcia card. Now, wi is a network
driver and requests interrupts at IPL_NET (i.e. uses splnet() to protect it's
other code sections). This turns out to be (accidentaly) == "ipl 7" in above
So everything works fine if I configure "nell* at sbus?" without any "flags"
option ("flags 1" would select the second ipl, so 13 in my case).
For reasons you could call my own stupidity I had been using the seond
interrupt - and saw various kinds of lossage, mostly leading to lockups
Now, this only works for network drivers, and only if your nell is assigned
at least one level 7 by your firmware. On my Ultra 2 I get both interrupts
assigned to level 2 - so I'll have to fix it there for real ;-)