Re: Sun4/110 "Panic: Crazy Interrupts"

Julian Coleman <[email protected]>
Newsgroups gmane.os.netbsd.ports.sparc
Message-ID <[email protected]>
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

--
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.