summaryrefslogtreecommitdiff
path: root/sys/dev/pci
diff options
context:
space:
mode:
authorMarkus Friedl <markus@cvs.openbsd.org>2002-07-10 11:01:02 +0000
committerMarkus Friedl <markus@cvs.openbsd.org>2002-07-10 11:01:02 +0000
commita9a7f7db6de2c220598dcd9c686204c5384a4169 (patch)
treedcf7877ad49a1e984b81a619cf73af9ee87fa34d /sys/dev/pci
parentbba6dc99abde349cd1521ce45c19e5d2becbb62c (diff)
ICH4 support; ok gluk@
Diffstat (limited to 'sys/dev/pci')
-rw-r--r--sys/dev/pci/pciide.c24
1 files changed, 17 insertions, 7 deletions
diff --git a/sys/dev/pci/pciide.c b/sys/dev/pci/pciide.c
index edf31294dc2..4fad9cd9d6c 100644
--- a/sys/dev/pci/pciide.c
+++ b/sys/dev/pci/pciide.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pciide.c,v 1.86 2002/07/06 14:35:47 gluk Exp $ */
+/* $OpenBSD: pciide.c,v 1.87 2002/07/10 11:01:01 markus Exp $ */
/* $NetBSD: pciide.c,v 1.127 2001/08/03 01:31:08 tsutsui Exp $ */
/*
@@ -307,11 +307,15 @@ const struct pciide_product_desc pciide_intel_products[] = {
0,
piix_chip_map
},
- { PCI_PRODUCT_INTEL_82801CAM_IDE, /* Intel 82801CAM IDE (ICH2) */
+ { PCI_PRODUCT_INTEL_82801CAM_IDE, /* Intel 82801CAM IDE (ICH3) */
0,
piix_chip_map
},
- { PCI_PRODUCT_INTEL_82801CA_IDE, /* Intel 82801CA IDE (ICH2) */
+ { PCI_PRODUCT_INTEL_82801CA_IDE, /* Intel 82801CA IDE (ICH3) */
+ 0,
+ piix_chip_map
+ },
+ { PCI_PRODUCT_INTEL_82801DB_IDE, /* Intel 82801DB IDE (ICH4) */
0,
piix_chip_map
},
@@ -1525,6 +1529,7 @@ piix_chip_map(sc, pa)
case PCI_PRODUCT_INTEL_82801BA_IDE:
case PCI_PRODUCT_INTEL_82801CAM_IDE:
case PCI_PRODUCT_INTEL_82801CA_IDE:
+ case PCI_PRODUCT_INTEL_82801DB_IDE:
sc->sc_wdcdev.cap |= WDC_CAPABILITY_UDMA;
break;
}
@@ -1539,6 +1544,7 @@ piix_chip_map(sc, pa)
case PCI_PRODUCT_INTEL_82801BA_IDE:
case PCI_PRODUCT_INTEL_82801CAM_IDE:
case PCI_PRODUCT_INTEL_82801CA_IDE:
+ case PCI_PRODUCT_INTEL_82801DB_IDE:
sc->sc_wdcdev.UDMA_cap = 5;
break;
default:
@@ -1571,7 +1577,8 @@ piix_chip_map(sc, pa)
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801BAM_IDE ||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801BA_IDE ||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801CAM_IDE ||
- sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801CA_IDE) {
+ sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801CA_IDE ||
+ sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801DB_IDE) {
WDCDEBUG_PRINT((", IDE_CONTROL 0x%x",
pci_conf_read(sc->sc_pc, sc->sc_tag, PIIX_CONFIG)),
DEBUG_PROBE);
@@ -1630,7 +1637,8 @@ next:
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801BAM_IDE ||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801BA_IDE ||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801CAM_IDE ||
- sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801CA_IDE) {
+ sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801CA_IDE ||
+ sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801DB_IDE) {
WDCDEBUG_PRINT((", IDE_CONTROL 0x%x",
pci_conf_read(sc->sc_pc, sc->sc_tag, PIIX_CONFIG)),
DEBUG_PROBE);
@@ -1793,13 +1801,15 @@ piix3_4_setup_channel(chp)
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801BAM_IDE ||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801BA_IDE ||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801CAM_IDE ||
- sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801CA_IDE) {
+ sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801CA_IDE ||
+ sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801DB_IDE) {
ideconf |= PIIX_CONFIG_PINGPONG;
}
if (sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801BAM_IDE ||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801BA_IDE||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801CAM_IDE||
- sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801CA_IDE) {
+ sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801CA_IDE ||
+ sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801DB_IDE) {
/* setup Ultra/100 */
if (drvp->UDMA_mode > 2 &&
(ideconf & PIIX_CONFIG_CR(channel, drive)) == 0)