diff options
author | Markus Friedl <markus@cvs.openbsd.org> | 2002-07-10 11:01:02 +0000 |
---|---|---|
committer | Markus Friedl <markus@cvs.openbsd.org> | 2002-07-10 11:01:02 +0000 |
commit | a9a7f7db6de2c220598dcd9c686204c5384a4169 (patch) | |
tree | dcf7877ad49a1e984b81a619cf73af9ee87fa34d /sys/dev/pci/pciide.c | |
parent | bba6dc99abde349cd1521ce45c19e5d2becbb62c (diff) |
ICH4 support; ok gluk@
Diffstat (limited to 'sys/dev/pci/pciide.c')
-rw-r--r-- | sys/dev/pci/pciide.c | 24 |
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) |