[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: IDE-problems



>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.





Reply to: