Commit f66723fab9eab2695a1b3cf15b55ffc2936b6418

Authored by bellard
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)