Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/cobalt/pci Different form of PCI bug workaround. Sh...



details:   https://anonhg.NetBSD.org/src/rev/9c4f0f53286f
branches:  trunk
changeset: 486840:9c4f0f53286f
user:      soren <soren%NetBSD.org@localhost>
date:      Mon May 29 15:45:15 2000 +0000

description:
Different form of PCI bug workaround. Should make 2700 system work.

diffstat:

 sys/arch/cobalt/pci/pci_machdep.c |  18 ++++++++++++++++--
 1 files changed, 16 insertions(+), 2 deletions(-)

diffs (39 lines):

diff -r 0cb53ee1ea8c -r 9c4f0f53286f sys/arch/cobalt/pci/pci_machdep.c
--- a/sys/arch/cobalt/pci/pci_machdep.c Mon May 29 15:44:22 2000 +0000
+++ b/sys/arch/cobalt/pci/pci_machdep.c Mon May 29 15:45:15 2000 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: pci_machdep.c,v 1.5 2000/04/09 00:13:27 soren Exp $    */
+/*     $NetBSD: pci_machdep.c,v 1.6 2000/05/29 15:45:15 soren Exp $    */
 
 /*
  * Copyright (c) 2000 Soren S. Jorvang.  All rights reserved.
@@ -78,7 +78,7 @@
        pci_chipset_tag_t pc;
        int busno;
 {
-       return 31;              /* Probing device 31 hangs the system. */
+       return 32;
 }
 
 pcitag_t
@@ -113,6 +113,20 @@
        int reg;
 {
        pcireg_t data;
+       int bus, dev, func;
+       
+       pci_decompose_tag(pc, tag, &bus, &dev, &func);
+
+       /*
+        * 2700 hardware wedges on accesses to device 6.
+        */
+       if (bus == 0 && dev == 6)
+               return 0;
+       /*
+        * 2800 hardware wedges on accesses to device 31.
+        */
+       if (bus == 0 && dev == 31)
+               return 0;
 
        *PCI_CFG_ADDR = 0x80000000 | tag | reg;
        data = *PCI_CFG_DATA;



Home | Main Index | Thread Index | Old Index