Subject: re: Ultra 30 almost working
To: None <eeh@netbsd.org, mrg@eterna.com.au>
From: None <eeh@netbsd.org>
List: port-sparc64
Date: 12/13/2001 18:31:57
|    Index: psycho.c
|    ===================================================================
|    RCS file: /cvsroot/syssrc/sys/arch/sparc64/dev/psycho.c,v
|    retrieving revision 1.39
|    diff -p -u -r1.39 psycho.c
|    --- psycho.c    2001/10/07 20:30:41     1.39
|    +++ psycho.c    2001/12/13 00:29:39
|    @@ -487,6 +487,18 @@ found:
|                    if (PROM_getproplen(sc->sc_node, "no-streaming-cache") >= 0)
|                            sc->sc_is->is_sb[1] = &pci_ctl->pci_strbuf;
|                    iommu_reset(sc->sc_is);
|    +
|    +               /*
|    +                * Apparently the kernel is spending too much time in nucleus
|    +                * mode with interrupts disabled and a number of machines with
|    +                * psycho and psycho+ controllers are losing interrupts.
|    +                * We'll try setting the interrupt retry timeout to a larger
|    +                * value for the monent, which seems to help alleviate this
|    +                * problem until the trap handlers can be revamped.
|    +                */
|    +               bus_space_write_8(sc->sc_bustag,
|    +                       (bus_space_handle_t)
|    +                       (u_long)&sc->sc_regs->intr_retry_timer, 0, 0xff);
|            }
|
|
| maybe read the current value in and only reset it there?  and
| warn when doing so?  dunno...

Actually....  It would be interesting to determine what that's set to
on sysios....

Eduardo