diff options
author | 2003-01-30 07:50:17 +0000 | |
---|---|---|
committer | 2003-01-30 07:50:17 +0000 | |
commit | 74927135bc5cf0fcb529c35450c29123a05a5811 (patch) | |
tree | 320445b01e1e3943db1b9f139448f0c254493a3b | |
parent | sync (diff) | |
download | wireguard-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.c | 12 |
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 |