Subject: re: Ultra 30 almost working
To: None <eeh@netbsd.org>
From: matthew green <mrg@eterna.com.au>
List: port-sparc64
Date: 12/13/2001 17:03:52
   
   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...


.mrg.