ia64/xen-unstable

changeset 6202:b310a1b71b54

Enable multi-word DMA mode 2 for the PIIX3 chipset

Without this patch, Linux PIIX3 driver would see ultra DMA and get confused
and ended up disabling DMA.

With the patch, we're able to see 3x increase in disk read throughput.

Signed-off-by: Winston Wang <winston.l.wang@intel.com>
Signed-off-by: Arun Sharma <arun.sharma@intel.com>
author adsharma@los-vmm.sc.intel.com
date Mon Aug 15 12:50:38 2005 -0800 (2005-08-15)
parents 75367adf6055
children 60d20acf8928
files tools/ioemu/hw/ide.c
line diff
     1.1 --- a/tools/ioemu/hw/ide.c	Mon Aug 15 12:50:32 2005 -0800
     1.2 +++ b/tools/ioemu/hw/ide.c	Mon Aug 15 12:50:38 2005 -0800
     1.3 @@ -430,6 +430,7 @@ static void ide_identify(IDEState *s)
     1.4          put_le16(p + 59, 0x100 | s->mult_sectors);
     1.5      put_le16(p + 60, s->nb_sectors);
     1.6      put_le16(p + 61, s->nb_sectors >> 16);
     1.7 +    put_le16(p + 63, 0x07);
     1.8      put_le16(p + 80, (1 << 1) | (1 << 2));
     1.9      put_le16(p + 82, (1 << 14));
    1.10      put_le16(p + 83, (1 << 14));
    1.11 @@ -460,7 +461,7 @@ static void ide_atapi_identify(IDEState 
    1.12      put_le16(p + 48, 1); /* dword I/O (XXX: should not be set on CDROM) */
    1.13      put_le16(p + 49, 1 << 9); /* LBA supported, no DMA */
    1.14      put_le16(p + 53, 3); /* words 64-70, 54-58 valid */
    1.15 -    put_le16(p + 63, 0x103); /* DMA modes XXX: may be incorrect */
    1.16 +    put_le16(p + 63, 0x07); /* Multi-word DMA mode 2 */ 
    1.17      put_le16(p + 64, 1); /* PIO modes */
    1.18      put_le16(p + 65, 0xb4); /* minimum DMA multiword tx cycle time */
    1.19      put_le16(p + 66, 0xb4); /* recommended DMA multiword tx cycle time */