Commit f66723fab9eab2695a1b3cf15b55ffc2936b6418
1 parent
8cc43fef
put ready it after write command (aka FreeBSD HD access fix) - access 16 mult sector count
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@868 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
3 additions
and
3 deletions
hw/ide.c
@@ -185,7 +185,7 @@ | @@ -185,7 +185,7 @@ | ||
185 | #define DISABLE_SEAGATE 0xFB | 185 | #define DISABLE_SEAGATE 0xFB |
186 | 186 | ||
187 | /* set to 1 set disable mult support */ | 187 | /* set to 1 set disable mult support */ |
188 | -#define MAX_MULT_SECTORS 8 | 188 | +#define MAX_MULT_SECTORS 16 |
189 | 189 | ||
190 | /* ATAPI defines */ | 190 | /* ATAPI defines */ |
191 | 191 | ||
@@ -1142,7 +1142,7 @@ static void ide_ioport_write(void *opaque, uint32_t addr, uint32_t val) | @@ -1142,7 +1142,7 @@ static void ide_ioport_write(void *opaque, uint32_t addr, uint32_t val) | ||
1142 | case WIN_WRITE: | 1142 | case WIN_WRITE: |
1143 | case WIN_WRITE_ONCE: | 1143 | case WIN_WRITE_ONCE: |
1144 | s->error = 0; | 1144 | s->error = 0; |
1145 | - s->status = SEEK_STAT; | 1145 | + s->status = SEEK_STAT | READY_STAT; |
1146 | s->req_nb_sectors = 1; | 1146 | s->req_nb_sectors = 1; |
1147 | ide_transfer_start(s, s->io_buffer, 512, ide_sector_write); | 1147 | ide_transfer_start(s, s->io_buffer, 512, ide_sector_write); |
1148 | break; | 1148 | break; |
@@ -1156,7 +1156,7 @@ static void ide_ioport_write(void *opaque, uint32_t addr, uint32_t val) | @@ -1156,7 +1156,7 @@ static void ide_ioport_write(void *opaque, uint32_t addr, uint32_t val) | ||
1156 | if (!s->mult_sectors) | 1156 | if (!s->mult_sectors) |
1157 | goto abort_cmd; | 1157 | goto abort_cmd; |
1158 | s->error = 0; | 1158 | s->error = 0; |
1159 | - s->status = SEEK_STAT; | 1159 | + s->status = SEEK_STAT | READY_STAT; |
1160 | s->req_nb_sectors = s->mult_sectors; | 1160 | s->req_nb_sectors = s->mult_sectors; |
1161 | n = s->nsector; | 1161 | n = s->nsector; |
1162 | if (n > s->req_nb_sectors) | 1162 | if (n > s->req_nb_sectors) |