Port-sparc archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Sun4/110 "Panic: Crazy Interrupts"
Hi,
> Now that the network issue is resolved, I'm running into a consistent
> kernel panic that happens when booting on my Sun4/110 workstation. I'm
> using a kernel built from the config in this Gist:
> https://gist.github.com/sfurtaw/28a600a282d0af955dc7275e2648c4e6
>
> I've taken a video of what happens here:
> https://www.youtube.com/watch?v=Y6W9c9ul9KY
Good to see that you've made progress!
I'm trying to remember how we handle interrupts on sparc so I'm a bit rusty,
but the basic idea is that we consult the OBP or OFW for descriptions of
devices and build the interrupt mapping from there. For example, on my SS2:
OBP:
ffea8d58: /audio@1,f7201000
interrupts 0000000d
intr 0000000d 00000000
dmesg:
audioamd0 at mainbus0 ioaddr 0xf7201000 ipl 13 softpri 4
(the ipl 0x0d/13 is from the OBP entry).
> Basically, the panic always shows up at this same point in the boot
> process, whether I load diskless over NFS or with my SCSI hard drive
> emulator. After it loads up the sparcvme device, it throws maybe 10
> stray interrupts before the panic.
If you look at the code:
https://github.com/NetBSD/src/blob/trunk/sys/arch/sparc/sparc/intr.c#L97
if we get 10 unhandled interrupts we panic. For the timing, I guess that
we enable interrupts after printing the last found device (VME) so the
problem isn't related to VME, but I could be wrong.
So, it looks like we're getting interrupts that we don't handle. If I
understand correctly, we didn't install a handler because we didn't find
anything in OBP with interrupts at 0x04 or we don't have a driver in the
kernel. Looking at the kernel config file, the framebuffer interrupts at
level 4:
https://github.com/NetBSD/src/blob/trunk/sys/arch/sparc/conf/GENERIC#L623
for the BW2 and also lines 637 (CG4), 643 (CG6) and 648 (CG8).
Do you have a CG2, CG4 or CG8 in your 4/110? These lines are all commented
out in GENERIC, but it looks like you're running a custom kernel. As a
first step, try uncommenting those. They are probably commented out due to
lack of testing, so we might need to fix bugs, but it might help.
Regards,
Julian
PS. I put github links above, but you could also use NXR, e.g.:
https://nxr.netbsd.org/xref/src/sys/arch/sparc/sparc/intr.c#97
--
Home |
Main Index |
Thread Index |
Old Index