summaryrefslogtreecommitdiff
path: root/sys/dev/pci/pciide.c
diff options
context:
space:
mode:
authorAlexander Yurchenko <grange@cvs.openbsd.org>2003-06-06 11:28:42 +0000
committerAlexander Yurchenko <grange@cvs.openbsd.org>2003-06-06 11:28:42 +0000
commit71143033b770c3766c3e21464b4062570e7a8e4c (patch)
tree5023879672c31d925675bbf2f7f98bc2bc7ace4a /sys/dev/pci/pciide.c
parentaa068ae1662028a9c14813d211bd918a0fbd71d5 (diff)
Add support for Intel ICH5/ICH5R IDE
Diffstat (limited to 'sys/dev/pci/pciide.c')
-rw-r--r--sys/dev/pci/pciide.c20
1 files changed, 15 insertions, 5 deletions
diff --git a/sys/dev/pci/pciide.c b/sys/dev/pci/pciide.c
index 8ff4139b773..4857ac3297b 100644
--- a/sys/dev/pci/pciide.c
+++ b/sys/dev/pci/pciide.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pciide.c,v 1.128 2003/05/30 09:07:46 grange Exp $ */
+/* $OpenBSD: pciide.c,v 1.129 2003/06/06 11:28:41 grange Exp $ */
/* $NetBSD: pciide.c,v 1.127 2001/08/03 01:31:08 tsutsui Exp $ */
/*
@@ -354,6 +354,10 @@ const struct pciide_product_desc pciide_intel_products[] = {
0,
piix_chip_map
},
+ { PCI_PRODUCT_INTEL_82801EB_IDE, /* Intel 82801EB/82801ER IDE */
+ 0, /* (ICH5/ICH5R) */
+ piix_chip_map
+ },
};
const struct pciide_product_desc pciide_amd_products[] = {
@@ -1641,6 +1645,7 @@ piix_chip_map(sc, pa)
case PCI_PRODUCT_INTEL_82801CA_IDE:
case PCI_PRODUCT_INTEL_82801DB_IDE:
case PCI_PRODUCT_INTEL_82801DBM_IDE:
+ case PCI_PRODUCT_INTEL_82801EB_IDE:
sc->sc_wdcdev.cap |= WDC_CAPABILITY_UDMA;
break;
}
@@ -1657,6 +1662,7 @@ piix_chip_map(sc, pa)
case PCI_PRODUCT_INTEL_82801CA_IDE:
case PCI_PRODUCT_INTEL_82801DB_IDE:
case PCI_PRODUCT_INTEL_82801DBM_IDE:
+ case PCI_PRODUCT_INTEL_82801EB_IDE:
sc->sc_wdcdev.UDMA_cap = 5;
break;
default:
@@ -1691,7 +1697,8 @@ piix_chip_map(sc, pa)
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_82801DB_IDE ||
- sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801DBM_IDE) {
+ sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801DBM_IDE ||
+ sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801EB_IDE) {
WDCDEBUG_PRINT((", IDE_CONTROL 0x%x",
pci_conf_read(sc->sc_pc, sc->sc_tag, PIIX_CONFIG)),
DEBUG_PROBE);
@@ -1752,7 +1759,8 @@ next:
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_82801DB_IDE ||
- sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801DBM_IDE) {
+ sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801DBM_IDE ||
+ sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801EB_IDE) {
WDCDEBUG_PRINT((", IDE_CONTROL 0x%x",
pci_conf_read(sc->sc_pc, sc->sc_tag, PIIX_CONFIG)),
DEBUG_PROBE);
@@ -1917,7 +1925,8 @@ piix3_4_setup_channel(chp)
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_82801DB_IDE ||
- sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801DBM_IDE) {
+ sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801DBM_IDE ||
+ sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801EB_IDE) {
ideconf |= PIIX_CONFIG_PINGPONG;
}
if (sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801BAM_IDE ||
@@ -1925,7 +1934,8 @@ piix3_4_setup_channel(chp)
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_82801DB_IDE ||
- sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801DBM_IDE) {
+ sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801DBM_IDE ||
+ sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801EB_IDE) {
/* setup Ultra/100 */
if (drvp->UDMA_mode > 2 &&
(ideconf & PIIX_CONFIG_CR(channel, drive)) == 0)