Port-sparc archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Sun4/110 "Panic: Crazy Interrupts"



Hi,

> I've just checked my hardware from my SunOS 4 installation - I do have
> a CG4 framebuffer installed. After uncommenting the lines and
> re-compiling, I get a data error when the CG4 device gets loaded. Here
> is the line when it panics:
> 
> ```
> [1.0000000] cgfour0 at obio0 addr 0xb300000 level 4: cgfour/p4, 1152 x 900cpu
> 0: data fault: pc=0xf0012090 addr=0xfe04800 ser=0x8002<WRITE,SZERR>
> [1.0000000] panic: kernel fault
> [1.0000000] halted
> ```

I assume here that the CG4 driver doesn't handle something on the 4/110.
It would be really useful to know where exactly it crashed.  You should be
able to get more information if you have DDB compiled into your kernel plus
"options DDB_ONPANIC=1" (which is commented out in GENERIC by default -
normally you could set the ddb.onpanic sysctl in the startup files but that
won't take affect until later).

With DDB and DDB_ONPANIC=1, you will get to the ddb> prompt.  The most
useful command here is "bt" which will give information about where the
kernel crashed.  Ideally, it will translate the pc 0xf0012090 to a location
in the kernel source.  Alternatively, if you have the netbsd.gdb file on
the build host, you should be able to run:

  $ gdb netbsd.gdb
  (gdb) list *0xf0012090

and see results like:

  0xf0012090 is in sw_dma_start (.../src/sys/arch/sparc/dev/sw.c:719).
    ...
  719  csr = SWREG_READ(ncr_sc, SWREG_CSR);

Obviously it's a different location in the kernel that I checked, but gdb
should give you the line in the CG4 code where the kernel crashed.  We can
then look to see what might be the problem.

Regards,

Julian

--


Home | Main Index | Thread Index | Old Index