On 8/20/19 6:25 AM, Philippe Mathieu-Daudé wrote: > [cross posting QEMU & SeaBIOS] > > Hello, > > I'v been looking at a QEMU bug report [1] which bisection resulted in a > SeaBIOS commit: > > 4a6dbcea3e412fe12effa2f812f50dd7eae90955 is the first bad commit > commit 4a6dbcea3e412fe12effa2f812f50dd7eae90955 > Author: Nikolay Nikolov <nick...@users.sourceforge.net> > Date: Sun Feb 4 17:27:01 2018 +0200 > > floppy: Use timer_check() in floppy_wait_irq() > > Use timer_check() instead of using floppy_motor_counter in BDA for the > timeout check in floppy_wait_irq(). > > The problem with using floppy_motor_counter was that, after it reaches > 0, it immediately stops the floppy motors, which is not what is > supposed to happen on real hardware. Instead, after a timeout (like in > the end of every floppy operation, regardless of the result - success, > timeout or error), the floppy motors must be kept spinning for > additional 2 seconds (the FLOPPY_MOTOR_TICKS). So, now the > floppy_motor_counter is initialized to 255 (the max value) in the > beginning of the floppy operation. For IRQ timeouts, a different > timeout is used, specified by the new FLOPPY_IRQ_TIMEOUT constant > (currently set to 5 seconds - a fairly conservative value, but should > work reliably on most floppies). > > After the floppy operation, floppy_drive_pio() resets the > floppy_motor_counter to 2 seconds (FLOPPY_MOTOR_TICKS). > > This is also consistent with what other PC BIOSes do. > > > This commit improve behavior with real hardware, so maybe QEMU is not > modelling something or modelling it incorrectly? > > > Regards, > > Phil. > > > PD: How to reproduce: > > - Download Windows 98 SE floppy image from [2] > > - Run QEMU using the 'isapc' machine: > > $ qemu-system-i386 -M isapc \ > -fda Windows\ 98\ Second\ Edition\ Boot.img > > SeaBIOS (version rel-1.11.0-11-g4a6dbce-prebuilt.qemu.org) > Booting from Floppy... > Boot failed: could not read the boot disk > > [1] https://bugs.launchpad.net/qemu/+bug/1840719 > [2] https://winworldpc.com/download/417d71c2-ae18-c39a-11c3-a4e284a2c3a5 >
Well, that's unfortunate. What version of QEMU shipped the SeaBIOS that caused the regression? _______________________________________________ SeaBIOS mailing list -- seabios@seabios.org To unsubscribe send an email to seabios-le...@seabios.org