Port-sparc archive

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

Re: Sun4/110 "Panic: Crazy Interrupts"



Hi,

> The panic DDB isn't wanting to take input for me, so I added printf's
> to find the line number. It looks like we crash at line 304:
> ```
> bt->bt_addr = 0
> ```

Looking at cgfourattach, there didn't appear to be much apart from the DAC
initialisation, but I'm still somewhat surprised that the SZERR comes from
here.

We define these registers (bt_regs):

  https://nxr.netbsd.org/xref/src/sys/dev/sun/btreg.h#71

as integers, but I wonder if they are only readable/writeable as 8-bit
quantities on P4 framebuffers.  If so, I wonder how this worked in the
past.

I'm guessing that we could either (or both):

  a) alter the CG4/P4 code to only read/write 8-bit quantities
  b) look at the Sun3 code (especially the P4 register definition:
      https://nxr.netbsd.org/xref/src/sys/arch/sun3/dev/p4reg.h
    and disable interrupts.  After all, we're not going to use them.

As a quick hack, commenting out the BT DAC setup might get us past this
crash and to check if attaching the CG4 driver does help with the interrupt
problem.  If so, we could work on a), if not we can fall back to b).

Can you comment out the lines with:

  bt->bt_addr = 0;
  for (i = 0; i < 256 * 3 / 4; i++)
    ((char *)&sc->sc_cmap)[i] = bt->bt_cmap >> 24;
  BT_INIT(bt, 24);

and see if that gets us further along?

Regards,

Julian

PS.  I don't have access to my development environment at the moment, so I'm
not able to easily send patches.


Home | Main Index | Thread Index | Old Index