[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [BUG?] vvfat vs. pc-1.1 isa-fdc.check_media_rate=off
From: |
Hervé Poussineau |
Subject: |
Re: [Qemu-devel] [BUG?] vvfat vs. pc-1.1 isa-fdc.check_media_rate=off |
Date: |
Sat, 10 Nov 2012 23:41:27 +0100 |
User-agent: |
Thunderbird 2.0.0.23 (Windows/20090812) |
Hi,
Philipp Hahn a écrit :
I tried to create a virtual VFAT floppy image on-the-fly with qemi(-kvm)-1.1.1
using the command line argument
-drive file=fat:floppy:"$WORK/floppy",if=floppy,index=0
Strange, I just tested today's QEMU git, and I have the opposite problem:
- it works with -M pc-0.14
- it doesn't work with -M pc
- it works with -M pc -global isa-fdc.check_media_rate=off
My test directory only contains one file of 1228800 bytes, and I'm using
MSDOS as guest OS.
Everything worked fine until I added the additional "-M pc-0.14" command line
argument: Then I only get an empty floppy image.
I narrowed this down to the PC_COMPAT_1_0 definition in hw/pc_piix.c, which
added
.driver = "isa-fdc",\
.property = "check_media_rate",\
.value = "off",\
to the compat settings. If I also add an
-global isa-fdc.check_media_rate=on
to explicitly overwrite that setting, vvfat also works with pc-1.0 and
earlier.
>
I didn't unsterstand from reading the code what that flag is supposed to do,
so can somebody give me some help to understand what goes wrong here.
You can have multiple floppy formats, the most known one is 1.44 MB.
Each floppy format requires a specific media rate transfer to be
programmed on the floppy controller.
Before 1.1, QEMU was not checking if the current transfer rate was the
correct one. isa-fdc.check_media_rate parameter enables/disables this
check; it is on by default on 1.1+, and off by default on previous versions.
vvfat is creating by default 2.88 floppies, which don't have the same
transfer rate than 1.44 floppies.
Here, you're probably hitting a SeaBIOS bug, which doesn't try multiple
transfers rates when reading a floppy.
For my case, I can either request floppy controller to not check
transfer rates (-global isa-fdc.check_media_rate=off), or request vvfat
to create a 1.44 floppy:
-drive file=fat:12:floppy:"$WORK/floppy",if=floppy,index=0
I think vvfat needs to be patched to also work with check_media_rate=off.
As said, you may experience a SeaBIOS bug.
Regards,
Hervé