qemu-devel
[Top][All Lists]
Advanced

[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é




reply via email to

[Prev in Thread] Current Thread [Next in Thread]