[SeaBIOS] CD-ROM boot broken on current revision?
Paolo Bonzini
pbonzini at redhat.com
Mon Mar 19 11:35:49 CET 2012
Il 18/03/2012 22:47, fellaw at gmx.net ha scritto:
> Hi,
>
> I'm a new subscriber to seabios.org. Not much exp. with mailing lists
> nor C++, so feel free to straighten me out as necessary. I found out an
> issue: Booting from CD-ROM doesn't work anymore, though related make
> options have been set. I tried to debug it a little bit. To me it looks
> that order changes related to media sensing/capacity request broke it up.
>
> In 1.6.3, cdb_read_capacity(line 204 in src/cdrom.c) takes place before
> cdb_get_sense(line 209) resulting in a break.
>
> In current revision, this has been changed, has it?
> cdrom_boot(src/cdrom.cline 188) calls scsi_is_ready(line 197), which
> looks similar to atapi_is_ready from 1.6.3/src/cdrom.c.
>
> However: scsi_is_ready is missing
>
> struct cdbres_read_capacity info;
> ret = cdb_read_capacity(op, &info);
> if (!ret)
> // Success
> break;
>
> contrary to 1.6.3. In line cdb_get_sense returns 0xC with a medium in
> the drive, but this seems to result into an endless loop due to continue;
>
> For me, I added above snippet to blockcmd.c right before ret =
> cdb_get_sense(..) and it worked.
> Later CD-ROM boots using boot managers(e.g. grub4dos or PloP) work fine
> without changes, though.
>
> Debugging was done in Qemu 1.0.1. Since I'm on Windows, I used this build:
> http://lassauge.free.fr/qemu/release/Qemu-1.0.1-windows.zip
>
> Please confirm or advise.
This works for me, but only after a time out on test_unit_ready which
more or less confirms your bug. I'll reply to this message with a patch
that fixes it for me. Can you please test it?
Paolo
More information about the SeaBIOS
mailing list