All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Hervé Poussineau" <hpoussin@reactos.org>
To: Philipp Hahn <hahn@univention.de>
Cc: Kevin Wolf <kwolf@redhat.com>, qemu-devel <qemu-devel@nongnu.org>
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	[thread overview]
Message-ID: <509ED817.3070902@reactos.org> (raw)
In-Reply-To: <201211091950.31378.hahn@univention.de>

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	other threads:[~2012-11-10 22:41 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-09 18:50 [Qemu-devel] [BUG?] vvfat vs. pc-1.1 isa-fdc.check_media_rate=off Philipp Hahn
2012-11-10 22:41 ` Hervé Poussineau [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=509ED817.3070902@reactos.org \
    --to=hpoussin@reactos.org \
    --cc=hahn@univention.de \
    --cc=kwolf@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.