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.