summaryrefslogtreecommitdiffstats
path: root/sys/pci
diff options
context:
space:
mode:
authorbde <bde@FreeBSD.org>2002-03-17 04:10:38 +0000
committerbde <bde@FreeBSD.org>2002-03-17 04:10:38 +0000
commitdaa5c16bacd159b911d28368cbfa62a0dde028ea (patch)
treeb21efad5f4c6ffe2503dadd88de8e75995e4408f /sys/pci
parent227f4f1377adfc8f4a63826da35c5e87456a473e (diff)
downloadFreeBSD-src-daa5c16bacd159b911d28368cbfa62a0dde028ea.zip
FreeBSD-src-daa5c16bacd159b911d28368cbfa62a0dde028ea.tar.gz
Work around a PLX9050 bug that causes system lockup in certain systems,
depending on the MMIO addresses allocated to the board. PR: 30965, 20845 (maybe) Submitted by: Daniela Squassoni <daniela@cyclades.com> Tested by: Arjan Knepper <arjan@jak.nl> Scott Klement <klemscot@klements.com>
Diffstat (limited to 'sys/pci')
-rw-r--r--sys/pci/cy_pci.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/pci/cy_pci.c b/sys/pci/cy_pci.c
index ca128af..a806731 100644
--- a/sys/pci/cy_pci.c
+++ b/sys/pci/cy_pci.c
@@ -55,6 +55,7 @@
#define CY_PLX_9060_ICS 0x68
#define CY_PLX_9050_ICS_IENABLE 0x040
#define CY_PLX_9050_ICS_LOCAL_IENABLE 0x001
+#define CY_PLX_9050_ICS_LOCAL_IPOLARITY 0x002
#define CY_PLX_9060_ICS_IENABLE 0x100
#define CY_PLX_9060_ICS_LOCAL_IENABLE 0x800
@@ -177,9 +178,9 @@ cy_pci_attach(dev)
plx_ver = *((u_char *)vaddr + PLX_VER) & 0x0f;
switch (plx_ver) {
case PLX_9050:
- outw(ioport + CY_PLX_9050_ICS,
- inw(ioport + CY_PLX_9050_ICS) | CY_PLX_9050_ICS_IENABLE |
- CY_PLX_9050_ICS_LOCAL_IENABLE);
+ outw(ioport + CY_PLX_9050_ICS,
+ CY_PLX_9050_ICS_IENABLE | CY_PLX_9050_ICS_LOCAL_IENABLE |
+ CY_PLX_9050_ICS_LOCAL_IPOLARITY);
break;
case PLX_9060:
case PLX_9080:
OpenPOWER on IntegriCloud