summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorHenric Jungheim <henric@cvs.openbsd.org>2003-01-30 07:50:18 +0000
committerHenric Jungheim <henric@cvs.openbsd.org>2003-01-30 07:50:18 +0000
commita3c13611a013840b714f80b68f3f41ce8a1fb52f (patch)
treeb1ed7d69d765c8415769a43ac1b085545b49109d /sys
parent1d4f0d92aadca43856907ade479f14b317571bca (diff)
Many Ultra 5s likes to hang when starting. The last thing on the console
is: "pcons at mainbus0 not configured". The problem is that the IDE chip asserts a PCI interrupt line even while the registers on the chip claim that it is not. Doing a channel reset helps, but is almost certainly only a work-around for the real problem. Several other work-arounds have been suggested, but this one has had the most testing. Many have looked and helped (notably grange@). Thanks. ok jason@
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/pci/pciide.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/sys/dev/pci/pciide.c b/sys/dev/pci/pciide.c
index 1efeeeaf349..2be496fc8ff 100644
--- a/sys/dev/pci/pciide.c
+++ b/sys/dev/pci/pciide.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pciide.c,v 1.110 2003/01/17 00:54:23 grange Exp $ */
+/* $OpenBSD: pciide.c,v 1.111 2003/01/30 07:50:17 henric Exp $ */
/* $NetBSD: pciide.c,v 1.127 2001/08/03 01:31:08 tsutsui Exp $ */
/*
@@ -2808,6 +2808,16 @@ cmd0643_9_setup_channel(chp)
idedma_ctl);
}
pciide_print_modes(cp);
+#ifdef __sparc64__
+ /*
+ * The Ultra 5 has a tendency to hang during reboot. This is due
+ * to the PCI0646U asserting a PCI interrtupt line when the chip
+ * registers claim that it is not. Performing a reset at this
+ * point appears to eliminate the symptoms. It is likely the
+ * real cause is still lurking somewhere in the code.
+ */
+ wdcreset(chp, SILENT);
+#endif /* __sparc64__ */
}
void