qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Paul Brook <paul@codesourcery.com>
To: Robert Reif <reif@earthlink.net>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [5849] Change MMIO callbacks to use offsets, not absolute addresses.
Date: Tue, 24 Feb 2009 00:30:29 +0000	[thread overview]
Message-ID: <200902240030.29683.paul@codesourcery.com> (raw)
In-Reply-To: <49A33A81.1070800@earthlink.net>

> 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.

Oh real hardware address decoding is typically implemented as chip selects in 
the host bridge, routing tables in the switch fabric, and/or having 
individual devices do address decoding and claiming transactions on a shared 
bus. Modelling full per-device address decoding simply isn't feasible, we 
have to use additional knowledge (e.g. PCI BARs or fixed address fanges) to 
perform that decoding at a higher level.

> An IOMMU is irrelevant because the IOMMU emulation will take care of the
> virtual to physical translation.

Not really. An IOMMU exists as part of a bus bridge, and translates between 
different physical addresses on different busses. Virtual addresses (at least 
in any conventional sense) are an entirely separate layer that exists only 
within the CPU. Admittedly most IOMMU only act on device->CPU transactions, 
with CPU->device accesses using a static mapping.

I'm pretty sure that the address reported by the CPU fault registers is the 
CPU bus address. With an IOMMU this is likely to be different to the address 
seen by the peripheral.

Paul

  reply	other threads:[~2009-02-24  0:30 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
2009-02-24  0:30               ` Paul Brook [this message]
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=200902240030.29683.paul@codesourcery.com \
    --to=paul@codesourcery.com \
    --cc=qemu-devel@nongnu.org \
    --cc=reif@earthlink.net \
    /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).