diff options
author | Henric Jungheim <henric@cvs.openbsd.org> | 2003-01-30 07:50:18 +0000 |
---|---|---|
committer | Henric Jungheim <henric@cvs.openbsd.org> | 2003-01-30 07:50:18 +0000 |
commit | a3c13611a013840b714f80b68f3f41ce8a1fb52f (patch) | |
tree | b1ed7d69d765c8415769a43ac1b085545b49109d /sys | |
parent | 1d4f0d92aadca43856907ade479f14b317571bca (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.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 |