qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Robert Reif <reif@earthlink.net>
To: qemu-devel@nongnu.org, Paul Brook <paul@codesourcery.com>
Subject: Re: [Qemu-devel] [5849] Change MMIO callbacks to use offsets,  not absolute addresses.
Date: Mon, 23 Feb 2009 19:08:33 -0500	[thread overview]
Message-ID: <49A33A81.1070800@earthlink.net> (raw)
In-Reply-To: <200902231704.28500.paul@codesourcery.com>

Paul Brook wrote:
> On Monday 23 February 2009, Robert Reif wrote:
>   
>> Paul Brook wrote:
>>     
>>> Should be fixed now.
>>>       
>> Not really.  This fixes that specific case but it doesn't fix the
>> general case where a hardware device needs to call do_unassigned_access
>> because the hardware device still only has the offset.
>>     
>
> qemu has precisely zero devices that do this.
>   
Just because something is currently not implemented properly is
not a good reason to prevent a proper solution from ever being
implemented in the future.
> Also note that the current do_unaligned_access is bogus. You can't raise 
> synchronous exceptions from IO handlers. MMU exceptions have special handling 
> to make sure CPU state is consistent, and trap instructions explicitly 
> synchronise virtual CPU state before raising the exception.
>
>   
This is a problem that currently prevents sun open boot images from passing
their built in self tests.  The BIST does something that should generate an
immediate response but the response doesn't happen until sometime later so
the tests fail and then later complainswhen the response finally happens.
This has been explained to me as a limitation of QEMU.
>> You could store the physical base in each hardware device and recreate
>> the physical address but that requires changing all hardware devices
>> that need to do that.  Why should the hardware drivers go through the
>> trouble to recreate a physical address when just a few instructions
>> before then the physical address was known but irreversibly destroyed
>> when it was converted to an offset.
>>     
>
> Part of the reason for making this change is that it's a first step towards 
> making devices bus agnostic. If you have an IOMMU then the address the device 
> sees is different to the address the CPU sees. The most effective way to 
> avoid problems with this to have the device not know/care.
>
> Paul
>
>
>
>   
Sparc devices are passed in their physical addresses.  They are 
currently hard wired
because there is no proper bus/slot layer and only on-broad devices are 
implemented
anyway.  However each system may have the same hardware located at 
different locations
so this may not be typical QEMU behavior. Real hardware deals with real 
addresses. 
An IOMMU is irrelevant because the IOMMU emulation will take care of the 
virtual
to physical translation.

  reply	other threads:[~2009-02-24  0:08 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-12-01 18:59 [Qemu-devel] [5849] Change MMIO callbacks to use offsets, not absolute addresses Paul Brook
2009-02-23 12:18 ` Robert Reif
2009-02-23 12:36   ` Paul Brook
2009-02-23 12:42     ` Robert Reif
2009-02-23 13:16       ` Paul Brook
2009-02-23 16:43         ` Robert Reif
2009-02-23 17:04           ` Paul Brook
2009-02-24  0:08             ` Robert Reif [this message]
2009-02-24  0:30               ` Paul Brook
2009-02-24  1:05                 ` Robert Reif
2009-02-24  1:12                   ` Paul Brook
2009-02-24  1:27                     ` Robert Reif
2009-02-24  1:50                       ` Paul Brook
2009-02-24 21:04                         ` Blue Swirl
2009-02-24 22:28                           ` Paul Brook
2009-02-25 19:54                             ` Blue Swirl
2009-02-26 15:19                               ` Paul Brook

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=49A33A81.1070800@earthlink.net \
    --to=reif@earthlink.net \
    --cc=paul@codesourcery.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).