qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [Bug 1608802] [NEW] READ_DMA (0xC8) command does not wo


From: Stefan Weil
Subject: Re: [Qemu-devel] [Bug 1608802] [NEW] READ_DMA (0xC8) command does not work correctly
Date: Tue, 2 Aug 2016 08:52:21 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Icedove/45.1.0

Am 02.08.2016 um 08:11 schrieb Stefan Weil:
> Public bug reported:
>
> The QEMU PC emulation of DMA does not behave like real hardware or other
> virtualization software.
>
> >From the original bug report (Benjamin David Lunt):
>
>     Back to the READ_DMA command, it is my conclusion that the
>     READ_DMA command, more precisely, the BUS Master part of QEMU is
>     in error.  The tests that people have done to see if it works, is
>     probably the guest finding out that DMA doesn't work and defaulting
>     to PIO, but since the read was successful visually to the user, the
>     user assumed the READ_DMA command works, where the guest actually
>     defaulted back to PIO transfers without notice.
>
>     My code works on real hardware (numerous machines), Bochs, and Oracle's
>     Virtual Box.
>
>     ...
>
>     I have a small test suite, zipped and included at:
>     www.fysnet.net/temp/c8bug.zip
>
>     Within this zip file is a.img. This is a freeDOS bootable
>     floppy.  Emulate it with QEMU and then at the DOS prompt, run
>     c8bug.exe.
>
>     It will say that the drive is not ready.
>      "Drive never became ready"
>     (along with a few other lines of text)
>
>     The source for this test suite is also included.
>      c8bug.c is the c source code
>      c8bug.h is the header file
>      ctype.h is a quick way to get 'bit8u' type defines
>      timer.h is a delay routine from another project I have
>     (The base IO addresses are assumed and set at the top of c8bug.c)
>     (compiled with DJGPP for DPMI)
>
>     q.bat is my command line for QEMU
>
>     On all other machines and VirtualBox, the controller is ready
>     for me to receive the sector data.
>      "Drive is ready to transmit data..."
>
>     However, in QEMU, the controller never becomes ready.
>      "Drive never became ready"
>
> The bug was reported for QEMU for Windows, but I can confirm that QEMU
> for Linux also shows that behaviour, while VirtualBox works.
>
> ** Affects: qemu
>      Importance: Undecided
>          Status: Confirmed
>
> ** Description changed:
>
>   The QEMU PC emulation of DMA does not behave like real hardware or other
>   virtualization software.
>   
>   From the original bug report (Benjamin David Lunt):
>   
> -     Back to the READ_DMA command, it is my conclusion that the
> -     READ_DMA command, more precisely, the BUS Master part of QEMU is
> -     in error.  The tests that people have done to see if it works, is
> -     probably the guest finding out that DMA doesn't work and defaulting
> -     to PIO, but since the read was successful visually to the user, the
> -     user assumed the READ_DMA command works, where the guest actually
> -     defaulted back to PIO transfers without notice.
> +     Back to the READ_DMA command, it is my conclusion that the
> +     READ_DMA command, more precisely, the BUS Master part of QEMU is
> +     in error.  The tests that people have done to see if it works, is
> +     probably the guest finding out that DMA doesn't work and defaulting
> +     to PIO, but since the read was successful visually to the user, the
> +     user assumed the READ_DMA command works, where the guest actually
> +     defaulted back to PIO transfers without notice.
>   
> -     My code works on real hardware (numerous machines), Bochs, and Oracle's
> -     Virtual Box.
> +     My code works on real hardware (numerous machines), Bochs, and Oracle's
> +     Virtual Box.
>   
> -     ...
> +     ...
>   
> -     I have a small test suite, zipped and included at:
> -     www.fysnet.net/temp/c8bug.zip
> +     I have a small test suite, zipped and included at:
> +     www.fysnet.net/temp/c8bug.zip
>   
> -     Within this zip file is a.img. This is a freeDOS bootable
> -     floppy.  Emulate it with QEMU and then at the DOS prompt, run
> -     c8bug.exe.
> +     Within this zip file is a.img. This is a freeDOS bootable
> +     floppy.  Emulate it with QEMU and then at the DOS prompt, run
> +     c8bug.exe.
>   
> -     It will say that the drive is not ready.
> -      "Drive never became ready"
> -     (along with a few other lines of text)
> +     It will say that the drive is not ready.
> +      "Drive never became ready"
> +     (along with a few other lines of text)
>   
> -     The source for this test suite is also included.
> -      c8bug.c is the c source code
> -      c8bug.h is the header file
> -      ctype.h is a quick way to get 'bit8u' type defines
> -      timer.h is a delay routine from another project I have
> -     (The base IO addresses are assumed and set at the top of c8bug.c)
> -     (compiled with DJGPP for DPMI)
> +     The source for this test suite is also included.
> +      c8bug.c is the c source code
> +      c8bug.h is the header file
> +      ctype.h is a quick way to get 'bit8u' type defines
> +      timer.h is a delay routine from another project I have
> +     (The base IO addresses are assumed and set at the top of c8bug.c)
> +     (compiled with DJGPP for DPMI)
>   
> -     q.bat is my command line for QEMU
> +     q.bat is my command line for QEMU
>   
> -     On all other machines and VirtualBox, the controller is ready
> -     for me to receive the sector data.
> -      "Drive is ready to transmit data..."
> +     On all other machines and VirtualBox, the controller is ready
> +     for me to receive the sector data.
> +      "Drive is ready to transmit data..."
>   
> -     However, in QEMU, the controller never becomes ready.
> -      "Drive never became ready" 
> +     However, in QEMU, the controller never becomes ready.
> +      "Drive never became ready"
>   
> - The bug was reported for QEMU for Windows, but I can confirm that QEMU for 
> Linux also shows that
> - behaviour, while VirtualBox works.
> + The bug was reported for QEMU for Windows, but I can confirm that QEMU
> + for Linux also shows that behaviour, while VirtualBox works.
>
> ** Changed in: qemu
>        Status: New => Confirmed

Hi John,

I got this bug report only recently from a Windows user,
but it also occurs on Linux.

As I don't know whether this is a regression or whether
it is relevant for QEMU 2.7, it would be good if you and
maybe more people could have a look on that problem,
too.

Kind regards,
Stefan




reply via email to

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