]> xenbits.xensource.com Git - qemu-xen-4.1-testing.git/commitdiff
ide: add ncq identify data for ahci sata drives
authorRoland Elek <elek.roland@gmail.com>
Tue, 14 Dec 2010 00:34:37 +0000 (01:34 +0100)
committerKevin Wolf <kwolf@redhat.com>
Fri, 17 Dec 2010 15:11:02 +0000 (16:11 +0100)
I modified ide_identify() to include the zero-based queue length
value in word 75, and set bit 8 in word 76 to signal NCQ support
in the identify data for AHCI SATA drives.

Signed-off-by: Roland Elek <elek.roland@gmail.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
hw/ide/core.c
hw/ide/internal.h

index 228911dc8c5787ade0ff5f591d42596988dcf659..9e1d4e67174ecf96b327cb77f25c869eff2a54b7 100644 (file)
@@ -140,6 +140,13 @@ static void ide_identify(IDEState *s)
     put_le16(p + 66, 120);
     put_le16(p + 67, 120);
     put_le16(p + 68, 120);
+
+    if (s->ncq_queues) {
+        put_le16(p + 75, s->ncq_queues - 1);
+        /* NCQ supported */
+        put_le16(p + 76, (1 << 8));
+    }
+
     put_le16(p + 80, 0xf0); /* ata3 -> ata6 supported */
     put_le16(p + 81, 0x16); /* conforms to ata5 */
     /* 14=NOP supported, 5=WCACHE supported, 0=SMART supported */
index aadb505a1f7d0189ad91825437d8170bdca48ba6..697c3b4dc18c4e76981f5c7aafb66185ce47ad9d 100644 (file)
@@ -447,6 +447,8 @@ struct IDEState {
     int smart_errors;
     uint8_t smart_selftest_count;
     uint8_t *smart_selftest_data;
+    /* AHCI */
+    int ncq_queues;
 };
 
 struct IDEDMAOps {