summaryrefslogtreecommitdiff
path: root/sys/dev/pci
diff options
context:
space:
mode:
authorJonathan Gray <jsg@cvs.openbsd.org>2005-04-10 00:45:43 +0000
committerJonathan Gray <jsg@cvs.openbsd.org>2005-04-10 00:45:43 +0000
commit199405120bc55c0aa6f415339b7eb0489e6669c1 (patch)
tree154e754b175ac644273f2b5fbc418d6a364edb43 /sys/dev/pci
parentd63ffbd930487028bf0da5edf0c271713ff127d9 (diff)
Support for ICH6M IDE. Tested on a Dell Latitude D810 by
Raymond Lillard <rlillard at sonic.net>. ok grange@
Diffstat (limited to 'sys/dev/pci')
-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 c99291ec66f..b049dfb4c34 100644
--- a/sys/dev/pci/pciide.c
+++ b/sys/dev/pci/pciide.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: pciide.c,v 1.186 2005/02/21 19:55:50 grange Exp $ */
+/* $OpenBSD: pciide.c,v 1.187 2005/04/10 00:45:41 jsg Exp $ */
/* $NetBSD: pciide.c,v 1.127 2001/08/03 01:31:08 tsutsui Exp $ */
/*
@@ -367,6 +367,10 @@ const struct pciide_product_desc pciide_intel_products[] = {
IDE_PCI_CLASS_OVERRIDE,
piix_chip_map
},
+ { PCI_PRODUCT_INTEL_82801FBM_IDE, /* Intel 82801FBM (ICH6M) IDE */
+ IDE_PCI_CLASS_OVERRIDE,
+ piix_chip_map
+ },
{ PCI_PRODUCT_INTEL_82801FB_SATA, /* Intel 82801FB (ICH6) SATA */
IDE_PCI_CLASS_OVERRIDE,
piix_chip_map
@@ -1739,6 +1743,7 @@ piix_chip_map(struct pciide_softc *sc, struct pci_attach_args *pa)
case PCI_PRODUCT_INTEL_6300ESB_SATA:
case PCI_PRODUCT_INTEL_6300ESB_SATA2:
case PCI_PRODUCT_INTEL_82801FB_IDE:
+ case PCI_PRODUCT_INTEL_82801FBM_IDE:
case PCI_PRODUCT_INTEL_82801FB_SATA:
case PCI_PRODUCT_INTEL_82801FR_SATA:
sc->sc_wdcdev.cap |= WDC_CAPABILITY_UDMA;
@@ -1764,6 +1769,7 @@ piix_chip_map(struct pciide_softc *sc, struct pci_attach_args *pa)
case PCI_PRODUCT_INTEL_6300ESB_SATA:
case PCI_PRODUCT_INTEL_6300ESB_SATA2:
case PCI_PRODUCT_INTEL_82801FB_IDE:
+ case PCI_PRODUCT_INTEL_82801FBM_IDE:
case PCI_PRODUCT_INTEL_82801FB_SATA:
case PCI_PRODUCT_INTEL_82801FR_SATA:
sc->sc_wdcdev.UDMA_cap = 5;
@@ -1820,7 +1826,8 @@ piix_chip_map(struct pciide_softc *sc, struct pci_attach_args *pa)
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801DBM_IDE ||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801EB_IDE ||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_6300ESB_IDE ||
- sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801FB_IDE) {
+ sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801FB_IDE ||
+ sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801FBM_IDE) {
WDCDEBUG_PRINT((", IDE_CONTROL 0x%x",
pci_conf_read(sc->sc_pc, sc->sc_tag, PIIX_CONFIG)),
DEBUG_PROBE);
@@ -1909,7 +1916,8 @@ next:
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801DBM_IDE ||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801EB_IDE ||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_6300ESB_IDE ||
- sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801FB_IDE) {
+ sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801FB_IDE ||
+ sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801FBM_IDE) {
WDCDEBUG_PRINT((", IDE_CONTROL 0x%x",
pci_conf_read(sc->sc_pc, sc->sc_tag, PIIX_CONFIG)),
DEBUG_PROBE);
@@ -2075,7 +2083,8 @@ piix3_4_setup_channel(struct channel_softc *chp)
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801DBM_IDE ||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801EB_IDE ||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_6300ESB_IDE ||
- sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801FB_IDE) {
+ sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801FB_IDE ||
+ sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801FBM_IDE) {
ideconf |= PIIX_CONFIG_PINGPONG;
}
if (sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801BAM_IDE ||
@@ -2086,7 +2095,8 @@ piix3_4_setup_channel(struct channel_softc *chp)
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801DBM_IDE ||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801EB_IDE ||
sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_6300ESB_IDE ||
- sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801FB_IDE) {
+ sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801FB_IDE ||
+ sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801FBM_IDE) {
/* setup Ultra/100 */
if (drvp->UDMA_mode > 2 &&
(ideconf & PIIX_CONFIG_CR(channel, drive)) == 0)