On Apr 5, 2005 4:10 PM, Richard B. Johnson <linux-os@xxxxxxxxxxxx> wrote:On Tue, 5 Apr 2005, Julien Wajsberg wrote:It's a recent drive that did ultra DMA on another motherboard, and a
On Mar 26, 2005 12:59 AM, Julien Wajsberg <julien.wajsberg@xxxxxxxxx> wrote:^^^^^^^^^^^^^^^^^I own an Asus A8N-Sli motherboard with the Nforce4-Sli chipset, and I
experiment the following problem :
Mar 25 22:42:55 evenflow kernel: hda: dma_timer_expiry: dma status == 0x60
Mar 25 22:42:55 evenflow kernel: hda: DMA timeout retry
Mar 25 22:42:55 evenflow kernel: hda: timeout waiting for DMA
Mar 25 22:42:55 evenflow kernel: hda: status error: status=0x58 {
DriveReady SeekComplete DataRequest }
Mar 25 22:42:55 evenflow kernel:
Mar 25 22:42:55 evenflow kernel: ide: failed opcode was: unknown
Mar 25 22:42:55 evenflow kernel: hda: drive not ready for command
Mar 25 22:42:55 evenflow kernel: hda: status timeout: status=0xd0 { Busy }
Mar 25 22:42:55 evenflow kernel:
Mar 25 22:42:55 evenflow kernel: ide: failed opcode was: unknown
Mar 25 22:42:55 evenflow kernel: hdb: DMA disabled
Mar 25 22:42:55 evenflow kernel: hda: drive not ready for command
Of course, if I disable DMA with hdparm, this problem disappear.. but
it isn't a long-term solution ;-)
The long-term solution is to replace either the drive, cable, or the
motherboard that can't do DMA.
recent motherboard with a cable that did ultra DMA before.It was ultra
DMA2 on this old motherboard, but it still was ultra DMA.
A bad DMA operation can write data
anywhere (right into the middle of the kernel). There isn't
anything software can do about it. Software sets up the
controller for a DMA operation, then waits for an interrupt
that tells it has completed or failed. Software can retry failed
operations until software gets destroyed by the hardware, but
there isn't anything else that can be done.
The fact that disabling DMA makes the problem(s) go away is
proof that it isn't a software problem. There are flash-RAM
devices that emulate IDE drives. Most of these can't do DMA
and the IDE driver doesn't accept that fact. That is a known
bug. One needs to use hdparm to tell it to stop trying to
use DMA. In your case, the driver stopped using DMA when
it found out that it didn't work. There is no bug.
In my case, the driver stopped for hdb, that is my dvd-burner/player.
It did nothing for hda or hdc, I had to disable DMA myself.
Will I have to install Windows XP to prove ultra DMA works correctly
on this setup ? I really don't hope...
--
Julien