提交 f66723fa 编写于 作者: B bellard

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
上级 8cc43fef
...@@ -185,7 +185,7 @@ ...@@ -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) ...@@ -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) ...@@ -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)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册