In article <ZtJthK9/wbzky...@homeworld.netbsd.org>, Emmanuel Dreyfus <m...@netbsd.org> wrote: >I got some relative success by disabling DMA in piixide on NetBSD 10.0: >it boots but gets interrupt storms. > >piixide(4) says flags 0x0002 disables DMA, but it seems that >does not happens in piixide sources. I see no usage of >PCIIDE_OPTIONS_NODMA. To disable DMA, I added in piixsata_chip_map >this: > >+ if (sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801H_SATA_1 || >+ sc->sc_pp->ide_product == PCI_PRODUCT_INTEL_82801H_SATA_2) { >+ aprint_verbose_dev(sc->sc_wdcdev.sc_atac.atac_dev, >+ "DMA disabled (PCI PID 0x%x)\n", sc->sc_pp->ide_product); >+ sc->sc_dma_ok = 0; >+ } >+
It is in pciide_common.c:483 Perhaps define in pciidevar.h:181 IDE_NO_DMA, then use put that in the flags for the two products, and use that instead of hard-coding the product ids. christos