Subject: Re: some diffs to 1.0-current / 1.0 (probably as well)
To: Niklas Hallqvist <niklas@appli.se>
From: None <mw@eunet.ch>
List: amiga-dev
Date: 01/03/1995 18:09:28
> Zeus SCSI interface, and this is what breaks. First I thought some
> interrupts got missed so I rewrote _fake_lev6intr to be a loop like
> this:
>
> _lev4intr:
> _fake_lev6intr:
> moveml d0/d2/a0,sp@- | save scratch regs
Did you write this from memory, or is this the actual code you were
compiling? This originally was
moveml #0xC0C0,sp@-
which symbolically would be
moveml d0/d1/a0/a1,sp@-
nothing going on with d2... Take care, you're later branching into
the other interrupt-handler, which expects to find d0/d1/a0/a1 on
the stack to restore... Store d2 after deciding that it's indeed
a fake level 6.
> Yeah, I changed Lnotdma to Lplainintr, but that shouldn't matter. I
> also removed the intreq clearing from the devices as I do it in
> Lskipciab instead. I have removed the INTF_AUD? intena resets in
> cc.c. However, this doesn't help. My zeus refuses to mount the root
> with a ENXIO, but all the config stuff went OK, so it has to be the
> interrupt system that's messed up. Michael, have you tried Markus'
> changes? Markus, anyone, ideas?
Unless you did some other changes you didn't mention, check your
register saving ...
> BTW, the above code makes statclock (called from hardclock) panic at
> times (when siop_debug is enabled), so I must be doing something
> wrong.
Looks like siop is reenabling AUD3 too early, so that the clock can
interrupt a siop-function that in theory should run at the same spl...
-Markus
--
EUnet Switzerland Tel: +41 1 291 45 80 Markus Wild
Zweierstrasse 35 Hotline: +41 1 291 45 60 mw@eunet.ch
CH-8004 Zuerich Fax: +41 1 291 46 42 S=mw;P=EUnet;A=EUnet;C=CH
>Solaris 2 is not an upgrade from Solaris 1. They just want you to THINK it is.