Work around qemu quirk - dh not reset on ata drive reset.
authorKevin O'Connor <kevin@koconnor.net>
Wed, 19 Aug 2009 02:17:57 +0000 (22:17 -0400)
committerKevin O'Connor <kevin@koconnor.net>
Wed, 19 Aug 2009 02:17:57 +0000 (22:17 -0400)
src/ata.c

index 7a008ebef1fecfd5afaffe392f6f4e9e6edf5be2..c82e8a3e308fb17292823d4de6c880f094b5cf1f 100644 (file)
--- a/src/ata.c
+++ b/src/ata.c
@@ -115,6 +115,9 @@ ata_reset(int driveid)
                 goto done;
             }
         }
+    } else {
+        // QEMU doesn't reset dh on reset, so set it explicitly.
+        outb(ATA_CB_DH_DEV0, iobase1 + ATA_CB_DH);
     }
 
     // On a user-reset request, wait for RDY if it is an ATA device.