qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] enabling bus-master IDE driver


From: Juergen Keil
Subject: Re: [Qemu-devel] enabling bus-master IDE driver
Date: Fri, 12 Nov 2004 20:07:59 +0100 (CET)


> > +    put_le16(p + 63, 0x07 /*| 0x4 << 8*/); /* Multiword DMA 
supported/selected */
...
> > +    put_le16(p + 88, 0x3f | 0x20 << 8); /* UltraDMA modes 
supported/selected */

> This is interesting..
> 
> I carefully applied these changes to my ide.c and retried:
> 
> Host: Linux 2.6 (Fedora Core 2)
> Guest: XP corp.
> It now says "Current Transfer Mode: Multi-Word DMA Mode 2".
> I'm not real sure how I test to see if disk access is faster,
> or by how much, but this appears to be progress for XP.

Windows 2000 isn't that verbose - it simply prints "DMA mode".

Interesting that XP has enabled "Multi-Word DMA Mode 2".

Setting word 63 to a value of 0x07 should announce the support
for multiword dma modes 0..2.  And no multiword dma mode is
selected.  The commented out "0x4 << 8" part would enable 
multiword dma mode 2.  I've commented it out becuase qemu's hdd
is supposed to support ultra dma modes.


I did change the value for word 88 - the ultra dma modes.
CVS HEAD sets it to ultra dma modes 0..4 supported, and ultra dma
mode 5 selected.  I'm not sure, but it sounds wrong to select
a dma mode that is not supported by the drive.

CVS HEAD:   put_le16(p + 88, 0x1f | (1 << 13));


I've changed it to ultra dma modes 0..5 supported, and ultra dma
mode 5 selected:

            put_le16(p + 88, 0x3f | 0x20 << 8);


Maybe windows checks the ata/atapi version field in word 80?
qemu's hdd only supports ata/atapi-1 and ata/atapi-2.  Ultra dma
might not exist in the ata/atapi-2 standard.






reply via email to

[Prev in Thread] Current Thread [Next in Thread]