- don't abort ATA reset for not existing slave drive. The reset bit must

always be cleared to avoid blocking existing master drive.
This commit is contained in:
Volker Ruppert 2007-12-20 18:12:35 +00:00
parent 6ac7fa7106
commit 46b3ec2397
3 changed files with 7 additions and 7 deletions

Binary file not shown.

Binary file not shown.

View File

@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
// $Id: rombios.c,v 1.192 2007-12-06 16:56:32 sshwarts Exp $ // $Id: rombios.c,v 1.193 2007-12-20 18:12:11 vruppert Exp $
///////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////
// //
// Copyright (C) 2002 MandrakeSoft S.A. // Copyright (C) 2002 MandrakeSoft S.A.
@ -939,7 +939,7 @@ Bit16u cdrom_boot();
#endif // BX_ELTORITO_BOOT #endif // BX_ELTORITO_BOOT
static char bios_cvs_version_string[] = "$Revision: 1.192 $ $Date: 2007-12-06 16:56:32 $"; static char bios_cvs_version_string[] = "$Revision: 1.193 $ $Date: 2007-12-20 18:12:11 $";
#define BIOS_COPYRIGHT_STRING "(c) 2002 MandrakeSoft S.A. Written by Kevin Lawton & the Bochs team." #define BIOS_COPYRIGHT_STRING "(c) 2002 MandrakeSoft S.A. Written by Kevin Lawton & the Bochs team."
@ -2584,7 +2584,7 @@ Bit16u device;
outb(iobase2+ATA_CB_DC, ATA_CB_DC_HD15 | ATA_CB_DC_NIEN | ATA_CB_DC_SRST); outb(iobase2+ATA_CB_DC, ATA_CB_DC_HD15 | ATA_CB_DC_NIEN | ATA_CB_DC_SRST);
// 8.2.1 (b) -- wait for BSY // 8.2.1 (b) -- wait for BSY
if (await_ide(BSY, iobase1, 20)) return; await_ide(BSY, iobase1, 20);
// 8.2.1 (f) -- clear SRST // 8.2.1 (f) -- clear SRST
outb(iobase2+ATA_CB_DC, ATA_CB_DC_HD15 | ATA_CB_DC_NIEN); outb(iobase2+ATA_CB_DC, ATA_CB_DC_HD15 | ATA_CB_DC_NIEN);
@ -2599,10 +2599,10 @@ Bit16u device;
sn = inb(iobase1+ATA_CB_SN); sn = inb(iobase1+ATA_CB_SN);
if ( (sc==0x01) && (sn==0x01) ) { if ( (sc==0x01) && (sn==0x01) ) {
if (type == ATA_TYPE_ATA) //ATA if (type == ATA_TYPE_ATA) //ATA
await_ide(NOT_BSY_RDY, iobase1, IDE_TIMEOUT); await_ide(NOT_BSY_RDY, iobase1, IDE_TIMEOUT);
else //ATAPI else //ATAPI
await_ide(NOT_BSY, iobase1, IDE_TIMEOUT); await_ide(NOT_BSY, iobase1, IDE_TIMEOUT);
} }
// 8.2.1 (h) -- wait for not BSY // 8.2.1 (h) -- wait for not BSY