summaryrefslogtreecommitdiff
path: root/hw/ide.c
diff options
context:
space:
mode:
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2005-07-07 21:46:09 +0000
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2005-07-07 21:46:09 +0000
commita368741bf2508b7ca29d9ade73ec1b0f29ae2286 (patch)
treee666b63af98e6e052c892de3c927de1d1b5ec01f /hw/ide.c
parent61271e5c2d3eff4cc0c4845be291172c2015b6f1 (diff)
suppressed ppc ide hack - fixed read toc for Darwin/PPC
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1509 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'hw/ide.c')
-rw-r--r--hw/ide.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/hw/ide.c b/hw/ide.c
index 31670a1607..f5fd028b82 100644
--- a/hw/ide.c
+++ b/hw/ide.c
@@ -1118,10 +1118,16 @@ static int cdrom_read_toc_raw(IDEState *s, uint8_t *buf, int msf,
*q++ = 0; /* min */
*q++ = 0; /* sec */
*q++ = 0; /* frame */
- *q++ = 0;
- *q++ = 0;
- *q++ = 0;
- *q++ = 0;
+ if (msf) {
+ *q++ = 0;
+ lba_to_msf(q, 0);
+ q += 3;
+ } else {
+ *q++ = 0;
+ *q++ = 0;
+ *q++ = 0;
+ *q++ = 0;
+ }
len = q - buf;
cpu_to_ube16(buf, len - 2);
@@ -1488,11 +1494,6 @@ static void ide_ioport_write(void *opaque, uint32_t addr, uint32_t val)
unit = (val >> 4) & 1;
s = ide_if + unit;
ide_if->cur_drive = s;
-#ifdef TARGET_PPC
- /* XXX: currently a workaround for Darwin/PPC. Need to check
- the IDE spec to see if it is correct */
- ide_set_signature(s);
-#endif
break;
default:
case 7: