summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhenric <henric@openbsd.org>2003-01-30 07:50:17 +0000
committerhenric <henric@openbsd.org>2003-01-30 07:50:17 +0000
commit74927135bc5cf0fcb529c35450c29123a05a5811 (patch)
tree320445b01e1e3943db1b9f139448f0c254493a3b
parentsync (diff)
downloadwireguard-openbsd-74927135bc5cf0fcb529c35450c29123a05a5811.tar.xz
wireguard-openbsd-74927135bc5cf0fcb529c35450c29123a05a5811.zip
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@
-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