summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorAlexander Yurchenko <grange@cvs.openbsd.org>2005-01-12 18:19:06 +0000
committerAlexander Yurchenko <grange@cvs.openbsd.org>2005-01-12 18:19:06 +0000
commiteb8624fb6e9e9c6817ddf901062909be182b3865 (patch)
treee699e852dde9106d385118efbac8e79b5d859f51 /sys
parent36a124220f7b2b6b58cf3b7775f6d718abe02e93 (diff)
Intel 82443BX DRAM address errata seems to be fixed in the latest revisions
of the chipset. Inspired from netbsd pr by scottr@NetBSD.org. ok theo
Diffstat (limited to 'sys')
-rw-r--r--sys/arch/i386/pci/pchb.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/sys/arch/i386/pci/pchb.c b/sys/arch/i386/pci/pchb.c
index 3c48c32d40b..f096a35354d 100644
--- a/sys/arch/i386/pci/pchb.c
+++ b/sys/arch/i386/pci/pchb.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pchb.c,v 1.42 2004/11/23 13:33:14 grange Exp $ */
+/* $OpenBSD: pchb.c,v 1.43 2005/01/12 18:19:05 grange Exp $ */
/* $NetBSD: pchb.c,v 1.6 1997/06/06 23:29:16 thorpej Exp $ */
/*
@@ -230,11 +230,13 @@ pchbattach(parent, self, aux)
* fetched from the wrong location. This is
* the workaround.
*/
- bcreg = pci_conf_read(pa->pa_pc, pa->pa_tag,
- PCISET_INTEL_SDRAMC_REG);
- bcreg |= PCISET_INTEL_SDRAMC_IPDLT;
- pci_conf_write(pa->pa_pc, pa->pa_tag,
- PCISET_INTEL_SDRAMC_REG, bcreg);
+ if (PCI_REVISION(pa->pa_class) < 0x3) {
+ bcreg = pci_conf_read(pa->pa_pc, pa->pa_tag,
+ PCISET_INTEL_SDRAMC_REG);
+ bcreg |= PCISET_INTEL_SDRAMC_IPDLT;
+ pci_conf_write(pa->pa_pc, pa->pa_tag,
+ PCISET_INTEL_SDRAMC_REG, bcreg);
+ }
break;
case PCI_PRODUCT_INTEL_PCI450_PB:
bcreg = pci_conf_read(pa->pa_pc, pa->pa_tag,