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
This commit is contained in:
bellard 2004-05-29 11:04:25 +00:00
parent 8cc43feffc
commit f66723fab9
1 changed files with 3 additions and 3 deletions

View File

@ -185,7 +185,7 @@
#define DISABLE_SEAGATE 0xFB #define DISABLE_SEAGATE 0xFB
/* set to 1 set disable mult support */ /* set to 1 set disable mult support */
#define MAX_MULT_SECTORS 8 #define MAX_MULT_SECTORS 16
/* ATAPI defines */ /* ATAPI defines */
@ -1142,7 +1142,7 @@ static void ide_ioport_write(void *opaque, uint32_t addr, uint32_t val)
case WIN_WRITE: case WIN_WRITE:
case WIN_WRITE_ONCE: case WIN_WRITE_ONCE:
s->error = 0; s->error = 0;
s->status = SEEK_STAT; s->status = SEEK_STAT | READY_STAT;
s->req_nb_sectors = 1; s->req_nb_sectors = 1;
ide_transfer_start(s, s->io_buffer, 512, ide_sector_write); ide_transfer_start(s, s->io_buffer, 512, ide_sector_write);
break; break;
@ -1156,7 +1156,7 @@ static void ide_ioport_write(void *opaque, uint32_t addr, uint32_t val)
if (!s->mult_sectors) if (!s->mult_sectors)
goto abort_cmd; goto abort_cmd;
s->error = 0; s->error = 0;
s->status = SEEK_STAT; s->status = SEEK_STAT | READY_STAT;
s->req_nb_sectors = s->mult_sectors; s->req_nb_sectors = s->mult_sectors;
n = s->nsector; n = s->nsector;
if (n > s->req_nb_sectors) if (n > s->req_nb_sectors)