diff options
author | Jonathan Gray <jsg@cvs.openbsd.org> | 2007-06-02 18:44:45 +0000 |
---|---|---|
committer | Jonathan Gray <jsg@cvs.openbsd.org> | 2007-06-02 18:44:45 +0000 |
commit | a7dda063f9d16e0d64c3e95b0d24f90089fd068d (patch) | |
tree | d75fcf250837ef3251ad0df4c0e95adc728f07aa /sys/dev/pci | |
parent | 52f667461d5a591f296fe6db9cb631a25486df23 (diff) |
Add support for ICH8M IDE.
Tested by Daniel Dickman <didickman@gmail.com>
pciide(4) does not need to be updated as it does not split
SATA/IDE support up into different sections (ICH8M already listed).
Diffstat (limited to 'sys/dev/pci')
-rw-r--r-- | sys/dev/pci/pciide.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/sys/dev/pci/pciide.c b/sys/dev/pci/pciide.c index ba0ca32911f..29b61509012 100644 --- a/sys/dev/pci/pciide.c +++ b/sys/dev/pci/pciide.c @@ -1,4 +1,4 @@ -/* $OpenBSD: pciide.c,v 1.268 2007/05/11 13:26:20 jsg Exp $ */ +/* $OpenBSD: pciide.c,v 1.269 2007/06/02 18:44:44 jsg Exp $ */ /* $NetBSD: pciide.c,v 1.127 2001/08/03 01:31:08 tsutsui Exp $ */ /* @@ -495,6 +495,10 @@ const struct pciide_product_desc pciide_intel_products[] = { IDE_PCI_CLASS_OVERRIDE, piixsata_chip_map }, + { PCI_PRODUCT_INTEL_82801HBM_IDE, /* Intel 82801HBM (ICH8M) IDE */ + 0, + piix_chip_map + }, { PCI_PRODUCT_INTEL_6321ESB_SATA, /* Intel 6321ESB SATA */ 0, piixsata_chip_map @@ -2179,6 +2183,7 @@ piix_timing_debug(struct pciide_softc *sc) sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801EB_IDE || sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801FB_IDE || sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801GB_IDE || + sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801HBM_IDE || sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82372FB_IDE) { WDCDEBUG_PRINT((", IDE_CONTROL 0x%x", pci_conf_read(sc->sc_pc, sc->sc_tag, PIIX_CONFIG)), @@ -2224,6 +2229,7 @@ piix_chip_map(struct pciide_softc *sc, struct pci_attach_args *pa) case PCI_PRODUCT_INTEL_82801EB_IDE: case PCI_PRODUCT_INTEL_82801FB_IDE: case PCI_PRODUCT_INTEL_82801GB_IDE: + case PCI_PRODUCT_INTEL_82801HBM_IDE: sc->sc_wdcdev.cap |= WDC_CAPABILITY_UDMA; break; } @@ -2247,6 +2253,7 @@ piix_chip_map(struct pciide_softc *sc, struct pci_attach_args *pa) case PCI_PRODUCT_INTEL_82801EB_IDE: case PCI_PRODUCT_INTEL_82801FB_IDE: case PCI_PRODUCT_INTEL_82801GB_IDE: + case PCI_PRODUCT_INTEL_82801HBM_IDE: sc->sc_wdcdev.UDMA_cap = 5; break; default: @@ -2576,6 +2583,7 @@ piix3_4_setup_channel(struct channel_softc *chp) sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801EB_IDE || sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801FB_IDE || sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801GB_IDE || + sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801HBM_IDE || sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82372FB_IDE) { ideconf |= PIIX_CONFIG_PINGPONG; } @@ -2590,7 +2598,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_82801FB_IDE || - sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801GB_IDE) { + sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801GB_IDE || + sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801HBM_IDE) { /* setup Ultra/100 */ if (drvp->UDMA_mode > 2 && (ideconf & PIIX_CONFIG_CR(channel, drive)) == 0) |