SiS 645DX problems

Jeroen koffieyahoo at
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

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

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

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