Hardware Environment: lspci 00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 03) 00:01.0 PCI bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03) 00:0e.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10) 00:0f.0 Multimedia audio controller: Ensoniq ES1371 [AudioPCI-97] (rev 08) 00:14.0 ISA bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 02) 00:14.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01) 00:14.2 USB Controller: Intel Corporation 82371AB/EB/MB PIIX4 USB (rev 01) 00:14.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 02) 01:00.0 VGA compatible controller: Matrox Graphics, Inc. MGA G400/G450 (rev 04) 1 hard drive on ide1 and 1 CompactFlash on ide1 Problem Description: My CampactFlash is my primary hard drive and don't support DMA. My hard drive support DMA. When I boot I have a timeout : dmesg : ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx VP_IDE: IDE controller at PCI slot 0000:00:07.1 VP_IDE: chipset revision 6 VP_IDE: not 100% native mode: will probe irqs later VP_IDE: VIA vt82c686b (rev 40) IDE UDMA100 controller on pci0000:00:07.1 ide0: BM-DMA at 0xd000-0xd007, BIOS settings: hda:pio, hdb:pio ide1: BM-DMA at 0xd008-0xd00f, BIOS settings: hdc:DMA, hdd:DMA Probing IDE interface ide0... Probing IDE interface ide1... hdc: KINGSTON, ATA DISK drive hdd: IC25N030ATCS04-0, ATA DISK drive ide1 at 0x170-0x177,0x376 on irq 15 Probing IDE interface ide0... hdc: max request size: 128KiB hdc: 2030112 sectors (1039 MB) w/1KiB Cache, CHS=2014/16/63, DMA hdc:<4>hdc: dma_timer_expiry: dma status == 0x61 hdc: DMA timeout error hdc: dma timeout error: status=0x58 { DriveReady SeekComplete DataRequest } ide: failed opcode was: unknown hdc: DMA disabled hdd: DMA disabled ide1: reset: success hdc1 hdc2 hdc3 hdc4 <<4>hdc: dma_timer_expiry: dma status == 0x21 hdc: DMA timeout error hdc: dma timeout error: status=0x58 { DriveReady SeekComplete DataRequest } ide: failed opcode was: unknown hdc: DMA disabled ide1: reset: success hdc5<4>hdc: dma_timer_expiry: dma status == 0x21 hdc: DMA timeout error hdc: dma timeout error: status=0x58 { DriveReady SeekComplete DataRequest } ide: failed opcode was: unknown hdc: DMA disabled ide1: reset: success hdc6 > hdd: max request size: 128KiB hdd: 58605120 sectors (30005 MB) w/1768KiB Cache, CHS=58140/16/63 hdd: cache flushes not supported hdd: hdd1 hdd2 hdd3 .... hdc: dma_timer_expiry: dma status == 0x21 hdc: DMA timeout error hdc: dma timeout error: status=0x58 { DriveReady SeekComplete DataRequest } ide: failed opcode was: unknown hdc: DMA disabled ide1: reset: success My Kernel is compiled with : # # IDE chipset support/bugfixes # CONFIG_IDE_GENERIC=y # CONFIG_BLK_DEV_CMD640 is not set # CONFIG_BLK_DEV_IDEPNP is not set CONFIG_BLK_DEV_IDEPCI=y CONFIG_IDEPCI_SHARE_IRQ=y CONFIG_IDEPCI_PCIBUS_ORDER=y # CONFIG_BLK_DEV_OFFBOARD is not set CONFIG_BLK_DEV_GENERIC=y # CONFIG_BLK_DEV_OPTI621 is not set # CONFIG_BLK_DEV_RZ1000 is not set CONFIG_BLK_DEV_IDEDMA_PCI=y # CONFIG_BLK_DEV_IDEDMA_FORCED is not set CONFIG_IDEDMA_ONLYDISK=y # CONFIG_BLK_DEV_AEC62XX is not set # CONFIG_BLK_DEV_ALI15X3 is not set # CONFIG_BLK_DEV_AMD74XX is not set CONFIG_BLK_DEV_ATIIXP=y # CONFIG_BLK_DEV_CMD64X is not set # CONFIG_BLK_DEV_TRIFLEX is not set # CONFIG_BLK_DEV_CY82C693 is not set # CONFIG_BLK_DEV_CS5520 is not set # CONFIG_BLK_DEV_CS5530 is not set # CONFIG_BLK_DEV_CS5535 is not set # CONFIG_BLK_DEV_HPT34X is not set # CONFIG_BLK_DEV_HPT366 is not set # CONFIG_BLK_DEV_JMICRON is not set # CONFIG_BLK_DEV_SC1200 is not set CONFIG_BLK_DEV_PIIX=y # CONFIG_BLK_DEV_IT8213 is not set # CONFIG_BLK_DEV_IT821X is not set # CONFIG_BLK_DEV_NS87415 is not set # CONFIG_BLK_DEV_PDC202XX_OLD is not set # CONFIG_BLK_DEV_PDC202XX_NEW is not set # CONFIG_BLK_DEV_SVWKS is not set # CONFIG_BLK_DEV_SIIMAGE is not set # CONFIG_BLK_DEV_SIS5513 is not set # CONFIG_BLK_DEV_SLC90E66 is not set # CONFIG_BLK_DEV_TRM290 is not set CONFIG_BLK_DEV_VIA82CXXX=y # CONFIG_BLK_DEV_TC86C001 is not set # CONFIG_IDE_ARM is not set # CONFIG_IDE_CHIPSETS is not set CONFIG_BLK_DEV_IDEDMA=y # CONFIG_IDEDMA_IVB is not set # CONFIG_BLK_DEV_HD is not set If I boot with append option "ide=nodma", I have no error but I can't activate DMA on the hard drive : hdparm -d1 /dev/hdd doesn't work.
2.6.24-rc1 has "hdx=nodma" option which allows per device DMA disable Does booting with "hdc=nodma" fix the problem?
Yes, booting with 2.6.24-rc1 and hdc=nodma fix the problem Many thanks Thomas
OK, thanks for confirming this.
I have similiar issue. My question is why DMA mode couldn't be worked? I'm using 2.6.21 kernel.
Hardware limitation, many CF-IDE cards don't have DMA lines wired. Can't tell for sure about your problem (you haven't attached error messages, also 2.6.21 is over a yead old, there has been a lot of fixes since then).