SeaBIOS won't work with SimNOW unless you make the error checking in ata.c less strict.
This is the message you get: ata_transfer : no sectors left (status 00000008)
I reported it to the SimNOW team since it seems like they're not following the spec, but it's been a long time and the bug is still there. To get past it: dprintf(6, "ata_transfer : no sectors left (status %02x)\n", status); + if (status != 0x8) return -7;
Thanks, Myles
On Mon, Mar 09, 2009 at 10:55:28AM -0700, Myles Watson wrote:
SeaBIOS won't work with SimNOW unless you make the error checking in ata.c less strict.
This is the message you get: ata_transfer : no sectors left (status 00000008)
I reported it to the SimNOW team since it seems like they're not following the spec, but it's been a long time and the bug is still there. To get past it: dprintf(6, "ata_transfer : no sectors left (status %02x)\n", status);
if (status != 0x8) return -7;
Yeah, I've run into this too. It looks like the SimNOW CDROM doesn't clear the DRQ bit - even though the spec definitely says it must be cleared.
I make the same change locally (just warn and not abort the transfer) when I test with SimNOW.
-Kevin
On 10.03.2009 01:05, Kevin O'Connor wrote:
On Mon, Mar 09, 2009 at 10:55:28AM -0700, Myles Watson wrote:
SeaBIOS won't work with SimNOW unless you make the error checking in ata.c less strict.
This is the message you get: ata_transfer : no sectors left (status 00000008)
I reported it to the SimNOW team since it seems like they're not following the spec, but it's been a long time and the bug is still there. To get past it: dprintf(6, "ata_transfer : no sectors left (status %02x)\n", status);
if (status != 0x8) return -7;
Yeah, I've run into this too. It looks like the SimNOW CDROM doesn't clear the DRQ bit - even though the spec definitely says it must be cleared.
I make the same change locally (just warn and not abort the transfer) when I test with SimNOW.
Maybe add a conditional message: "Working around SimNow bug" so users and coders know what's happening.
Regards, Carl-Daniel
On Mon, Mar 9, 2009 at 11:55 AM, Myles Watson mylesgw@gmail.com wrote:
SeaBIOS won't work with SimNOW unless you make the error checking in ata.c less strict.
This is the message you get: ata_transfer : no sectors left (status 00000008)
I reported it to the SimNOW team since it seems like they're not following the spec, but it's been a long time and the bug is still there. To get past it: dprintf(6, "ata_transfer : no sectors left (status %02x)\n", status);
- if (status != 0x8)
return -7;
It's been fixed internally, so at the next public release we shouldn't need this patch anymore.
Thanks, Myles