I'm guessing that possibly the interrupt is not being ack'd correctly
(perhaps the act of testing it clears it)... or maybe slot F doesn't get
latched like the others (perhaps because it is effectively cascaded 3
deep). I need to do more experimentation.
I've finally fixed it! (I started on these irq patches in 2005...)
Congratulations! Nubus had me baffled since much longer :-)
There's nothing wrong with the IDE driver. But nubus is another story
altogether... basically, the fix is,
1. Don't exit the nubus interrupt handler until there's no irq flagged.
Which may yet kill us if we don't manage to ack (think graphics cards
here).
2. On VIA2-based macs, don't attempt to disable nubus slots by making the
IRQ lines outputs and then driving them high (!)
IIRC we got that idea from BSD early on - what's wrong with this?
3. Since there's no slot irq mask on these macs, don't attempt to disable
nubus slots individually -- just mask the VIA2 CA1 interrupt. That way
no nubus interrupts go missing.
Right ...
4. When using the A/UX irq scheme, install sonic irq handlers on BOTH slot
9 and auto vector 3 -- otherwise, the 1-in-100000 slot 9 interrupt
kills us.
Ah, that's a new one :-)
Michael
-
To unsubscribe from this list: send the line "unsubscribe linux-m68k" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html