On Tue, 3 Aug 2010, David Brownlee wrote:
On 23 July 2010 12:42, Christian CortiMore problems: First I fixed the xy driver (which was painful due to the uncomprehensible code) and now it seems that NetBSD is broken in respect with VME bus interrupts. This also explains why I can't use any SCSI disk, too. The
[...]
If you have time it could well be worth test booting older NetBSD releases until you find one that works and then to check how the interrupt code works there :)
Ok, some news with 4.0.1 (the oldest I had tried was 1.6 and that didn't work, too). I've found the reason why interrupts didn't work: A VMEbus interrupt caused an infinite interrupt loop in vmeintr4 (file vme_machdep.c) because of the statement
[...] splx(ihp->ih.ih_classipl); [...]Each time the kernel executed that statement it reentered vmeintr4, and so on. So in fact a loop was created which then was terminated by the watchdog reset. Removing that statement made the VMEbus interrupt system work. So now both the SCSI controller and the Xylogics 450 are working. BTW the onboard I/O devices (e.g. ethernet, serial ports) weren't affected.
I will submit the updated Xylogics driver source when I have finished with enhancing (notably the missing low-level ioctls which I need), testing and cleaning up the code.
Christian