All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
To: qemu-devel@nongnu.org
Cc: Ian Jackson <Ian.Jackson@eu.citrix.com>
Subject: [Qemu-devel] [PATCH] [UPDATE] ide: enable single word DMA
Date: Thu, 17 Jul 2008 14:35:38 +0100	[thread overview]
Message-ID: <487F4AAA.3050904@eu.citrix.com> (raw)

This is an updated version of the patch that enables single word DMA in
the emulated ide drive.
I improved the set transfer mode DMA switch, making sure that mdma is
deactivated when sdma is active and vice versa.

Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
---

diff --git a/hw/ide.c b/hw/ide.c
index 337621d..104e7dc 100644
--- a/hw/ide.c
+++ b/hw/ide.c
@@ -569,6 +569,7 @@ static void ide_identify(IDEState *s)
         put_le16(p + 59, 0x100 | s->mult_sectors);
     put_le16(p + 60, s->nb_sectors);
     put_le16(p + 61, s->nb_sectors >> 16);
+    put_le16(p + 62, 0x07); /* single word dma0-2 supported */
     put_le16(p + 63, 0x07); /* mdma0-2 supported */
     put_le16(p + 65, 120);
     put_le16(p + 66, 120);
@@ -620,6 +621,7 @@ static void ide_atapi_identify(IDEState *s)
 #ifdef USE_DMA_CDROM
     put_le16(p + 49, 1 << 9 | 1 << 8); /* DMA and LBA supported */
     put_le16(p + 53, 7); /* words 64-70, 54-58, 88 valid */
+    put_le16(p + 62, 7);  /* single word dma0-2 supported */
     put_le16(p + 63, 7);  /* mdma0-2 supported */
     put_le16(p + 64, 0x3f); /* PIO modes supported */
 #else
@@ -2194,14 +2196,22 @@ static void ide_ioport_write(void *opaque, uint32_t addr, uint32_t val)
 		switch (s->nsector >> 3) {
 		    case 0x00: /* pio default */
 		    case 0x01: /* pio mode */
+			put_le16(s->identify_data + 62,0x07);
+			put_le16(s->identify_data + 63,0x07);
+			put_le16(s->identify_data + 88,0x3f);
+			break;
+                    case 0x02: /* sigle word dma mode*/
+			put_le16(s->identify_data + 62,0x07 | (1 << (val + 8)));
 			put_le16(s->identify_data + 63,0x07);
 			put_le16(s->identify_data + 88,0x3f);
 			break;
 		    case 0x04: /* mdma mode */
+			put_le16(s->identify_data + 62,0x07);
 			put_le16(s->identify_data + 63,0x07 | (1 << (val + 8)));
 			put_le16(s->identify_data + 88,0x3f);
 			break;
 		    case 0x08: /* udma mode */
+			put_le16(s->identify_data + 62,0x07);
 			put_le16(s->identify_data + 63,0x07);
 			put_le16(s->identify_data + 88,0x3f | (1 << (val + 8)));
 			break;

             reply	other threads:[~2008-07-17 13:35 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-07-17 13:35 Stefano Stabellini [this message]
2008-07-18 13:39 ` [Qemu-devel] Re: [PATCH] [UPDATE] ide: enable single word DMA Ian Jackson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=487F4AAA.3050904@eu.citrix.com \
    --to=stefano.stabellini@eu.citrix.com \
    --cc=Ian.Jackson@eu.citrix.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.