>I have recompiled my 2.2.17pre11 kernel with int timeout=5000; nothing >has changed (PB 3400): > >ide0 at 0x1020000-0x1020007,0x1020160 on irq 13 >ide1 at 0x1021000-0x1021007,0x1021160 on irq 14 >hda: Enabling MultiWord DMA 2 >hda: IBM-DMCA-21440, 1378MB w/96kB Cache, CHS=2800/16/63, DMA >hdc: Enabling MultiWord DMA 2 >hdc: ATAPI 8X CD-ROM drive, 256kB Cache >Uniform CD-ROM driver Revision: 3.11 >fd0: SWIM3 floppy controller in media bay >scsi0 : MESH >scsi : 1 host. >scsi : detected total. >Partition check: > hda: hda1 hda2 hda3 hda4 hda5 hda6 hda7 hda8 hda9 hda10 hda11 >VFS: Mounted root (ext2 filesystem) readonly. >Freeing unused kernel memory: 92k init 32k prep >Adding Swap: 89492k swap-space (priority -1) >hda: Enabling MultiWord DMA 2 >ide_pmace: wait_for_ready, error status: 51 >pmac_ide_do_setfeature disk not ready after SET_FEATURE ! >hda: Failed ! >hda: timeout waiting for DMA >hda: irq timeout: status=0x00 { } >VFS: Disk change detected on device ide1(22,0) >hdc: Enabling MultiWord DMA 2
Sounds like a bogus hard disk, it's returning an error status from the SET_FEATURE command while advertising some DMA support. I'll double check my code, but at first, I think the drive is wrong. I suggest you edit drivers/block/ide_pmac.c, and try several things: - First, try increasing the wait_for_ready to a larger value - Try increasing the IDE_WAKEUP_DELAY_MS definition to a much larger value (10000 ?) - In function dma_bits_to_command(), comment out the MDMA 2 case (should look like this: static __inline__ unsigned char dma_bits_to_command(unsigned char bits) { /* if(bits & 0x04) return IDE_DMA2_ENABLE; */ if(bits & 0x02) return IDE_DMA1_ENABLE; return IDE_DMA0_ENABLE; } And finally, you can try compiling without the "automatic" enable of DMA in the config option but this will give you a much slower hard disk. I would prefer if you could first test the previous stuffs so it helps me figuring out what's wrong. Ben.