SiS 645DX problems
Jeroen
koffieyahoo at hotmail.com
Wed Jan 28 23:56:46 PST 2004
"Matthew Dillon" <dillon at xxxxxxxxxxxxxxxxxxxx> wrote:
> :"Jeroen" <koffieyahoo at xxxxxxxxxxx> wrote:
> spl0() will basically reenable interrupts. Any pending interrupts are
> processed. If the machine hangs there then it is likely an interrupt
> service routine that is responsibe.
>
> Can you ctl-alt-esc into ddb when it hangs?
No. In a number of attempts I only managed to get in ddb once, but then I
was already past the point where it normally hangs.
Let me give a short description of what I tried up until now. First three
remarks:
1. it always hangs at exactly the same point (apparently the spl0 call in
the configure function in i386/i386/autoconf.c)
2. the code base I use was checkout Monday morning (UTC +1)
3. I almost use the generic config file, except that I disabled "cpu
I368_CPU"
Basically what I did was adding printf to the code and see what happens.
This directly brings me to the first problem: how accurate, i.e. quick
enough, is printf? Adding a printf to spl0 its multi-character output was
sometimes not complete when the system hanged.
Under the assumption the printf is reasonably accurate in continued and
found that there are always three interrupts pending: 1, 5, 10. That is,
irq 1: keyboard
irq 5: firewire, usb
irq 10: usb, nic, number of devices for which no device drivers are
available
At this point I removed the nic device driver from the kernel which made no
difference.Then, I removed in turn the firewire and the usb from the kernel
which seemed to make it boot perfectly (I didn't try this long enough to be
100% sure of this).
Last thing I can say is that when I add some printf's before the spl0 call
and in the sched_ithd function in kern/kern_intr.c the system does not hang.
So, any suggestions how I can proceed further?
Jeroen Ketema
More information about the Bugs
mailing list