Commit 6b136f9e8f3934f50e07a01b537ade3b57f6b2ce
1 parent
2ddbbd10
CD-ROM detection fix
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@520 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
10 additions
and
5 deletions
hw/ide.c
| ... | ... | @@ -40,14 +40,14 @@ |
| 40 | 40 | #include <sys/wait.h> |
| 41 | 41 | #include <netinet/in.h> |
| 42 | 42 | |
| 43 | +#define NO_THUNK_TYPE_SIZE | |
| 44 | +#include "thunk.h" | |
| 45 | + | |
| 43 | 46 | #include "cpu.h" |
| 44 | 47 | #include "exec-all.h" |
| 45 | 48 | |
| 46 | 49 | #include "vl.h" |
| 47 | 50 | |
| 48 | -#define NO_THUNK_TYPE_SIZE | |
| 49 | -#include "thunk.h" | |
| 50 | - | |
| 51 | 51 | /* debug IDE devices */ |
| 52 | 52 | //#define DEBUG_IDE |
| 53 | 53 | //#define DEBUG_IDE_ATAPI |
| ... | ... | @@ -1128,6 +1128,8 @@ static void ide_ioport_write(CPUX86State *env, uint32_t addr, uint32_t val) |
| 1128 | 1128 | break; |
| 1129 | 1129 | case WIN_READ: |
| 1130 | 1130 | case WIN_READ_ONCE: |
| 1131 | + if (!s->bs) | |
| 1132 | + goto abort_cmd; | |
| 1131 | 1133 | s->req_nb_sectors = 1; |
| 1132 | 1134 | ide_sector_read(s); |
| 1133 | 1135 | break; |
| ... | ... | @@ -1174,7 +1176,7 @@ static void ide_ioport_write(CPUX86State *env, uint32_t addr, uint32_t val) |
| 1174 | 1176 | if (!s->is_cdrom) |
| 1175 | 1177 | goto abort_cmd; |
| 1176 | 1178 | ide_set_signature(s); |
| 1177 | - s->status = READY_STAT; | |
| 1179 | + s->status = 0x00; /* NOTE: READY is _not_ set */ | |
| 1178 | 1180 | s->error = 0x01; |
| 1179 | 1181 | break; |
| 1180 | 1182 | case WIN_PACKETCMD: |
| ... | ... | @@ -1271,7 +1273,10 @@ static void ide_cmd_write(CPUX86State *env, uint32_t addr, uint32_t val) |
| 1271 | 1273 | /* high to low */ |
| 1272 | 1274 | for(i = 0;i < 2; i++) { |
| 1273 | 1275 | s = &ide_if[i]; |
| 1274 | - s->status = READY_STAT; | |
| 1276 | + if (s->is_cdrom) | |
| 1277 | + s->status = 0x00; /* NOTE: READY is _not_ set */ | |
| 1278 | + else | |
| 1279 | + s->status = READY_STAT; | |
| 1275 | 1280 | ide_set_signature(s); |
| 1276 | 1281 | } |
| 1277 | 1282 | } | ... | ... |