From: "Michael S. Tsirkin" <mst@redhat.com>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
Anthony Liguori <aliguori@us.ibm.com>,
Jan Kiszka <jan.kiszka@siemens.com>,
QEMU Developers <qemu-devel@nongnu.org>,
Marcel Apfelbaum <marcel.a@redhat.com>
Subject: Re: [Qemu-devel] [PATCH RFC v2 2/2] hw/pci: handle unassigned pci addresses
Date: Sun, 15 Sep 2013 18:31:11 +0300 [thread overview]
Message-ID: <20130915153111.GC18549@redhat.com> (raw)
In-Reply-To: <CAFEAcA-DzFiJvWA+tM0pX_Qg3FXMAqMEhDw861o9Cthy2hko2Q@mail.gmail.com>
On Sun, Sep 15, 2013 at 04:08:26PM +0100, Peter Maydell wrote:
> On 15 September 2013 16:05, Michael S. Tsirkin <mst@redhat.com> wrote:
> > On Sun, Sep 15, 2013 at 03:49:00PM +0100, Peter Maydell wrote:
> >> On 15 September 2013 15:20, Michael S. Tsirkin <mst@redhat.com> wrote:
> >> > Actually you previosly wrote:
> >> > > the versatilePB's PCI controller only responds to accesses
> >> > > within its programmed MMIO BAR ranges, so if the device
> >> > > or the controller have been misconfigured you can get an
> >> > > abort when the device tries to do DMA.
> >> > Doesn't this mean versatilePB will have to have
> >> > similar code in it's PCI controller implementation -
> >> > outside PCI controller core?
> >>
> >> If you implement PCI bus mastering sufficiently accurately in the
> >> PCI core code, then maybe not
> >
> > Well it's not about implementation I think:
> > RAM is not on the PCI bus, is it?
>
> A PCI device can only do DMA to RAM if the versatile
> host controller is configured so that (a) it has mapped its
> BARs into the PCI memory space somewhere and (b)
> the host controller's mapping from BARs to system
> addresses means device access to the host controller
> BARs turn into accesses to system addresses where
> the RAM is.
>
> > If it's not on the PCI bus I doubt RAM accesses
> > can cause master aborts on the PCI bus: PCI host
> > would have to claim and then possibly discard them.
>
> The aborts I refer to above are if you misprogram the
> device to try to do a bus master access to some part of
> PCI memory space other than where the host controller's
> BARs are
So the controller won't claim this transaction.
In that case you are right, they likely
trigger PCI master aborts.
> (or if you misprogram the controller not to
> map its BARs at all).
I'm not sure about this one. If BAR is enabled
but part of it maps somewhere outside system RAM,
you likely won't get an error on the PCI bus.
> > Well PCI device access to another PCI device looks
> > differently depending on whether the other device
> > is on the same bus, or not.
> >
> > When it's on the same bus, device detects master abort.
> > When it's on a different bus (across a bridge),
> > bridge detects master abort, device detects completion.
>
> Yeah, but this is all PCI core code, not controller specific.
>
> -- PMM
next prev parent reply other threads:[~2013-09-15 15:29 UTC|newest]
Thread overview: 71+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-09 11:11 [Qemu-devel] [PATCH RFC v2 0/3] pci: complete master abort protocol Marcel Apfelbaum
2013-09-09 11:11 ` [Qemu-devel] [PATCH RFC v2 1/2] memory: allow MemoryRegion's priority field to accept negative values Marcel Apfelbaum
2013-09-09 11:28 ` Peter Maydell
2013-09-09 12:03 ` Marcel Apfelbaum
2013-09-09 11:11 ` [Qemu-devel] [PATCH RFC v2 2/2] hw/pci: handle unassigned pci addresses Marcel Apfelbaum
2013-09-09 11:40 ` Michael S. Tsirkin
2013-09-09 12:11 ` Marcel Apfelbaum
2013-09-09 12:23 ` Michael S. Tsirkin
2013-09-09 12:43 ` Marcel Apfelbaum
2013-09-09 12:52 ` Peter Maydell
2013-09-09 12:59 ` Michael S. Tsirkin
2013-09-09 13:02 ` Peter Maydell
2013-09-09 13:15 ` Marcel Apfelbaum
2013-09-09 13:19 ` Peter Maydell
2013-09-09 13:29 ` Marcel Apfelbaum
2013-09-09 13:39 ` Peter Maydell
2013-09-09 14:04 ` Marcel Apfelbaum
2013-09-09 14:21 ` Peter Maydell
2013-09-09 14:51 ` Marcel Apfelbaum
2013-09-09 14:58 ` Peter Maydell
2013-09-09 16:00 ` Michael S. Tsirkin
2013-09-09 16:02 ` Peter Maydell
2013-09-09 16:34 ` Michael S. Tsirkin
2013-09-09 16:54 ` Jan Kiszka
2013-09-09 16:58 ` Peter Maydell
2013-09-09 17:09 ` Jan Kiszka
2013-09-09 17:14 ` Peter Maydell
2013-09-09 17:27 ` Jan Kiszka
2013-09-09 17:37 ` Michael S. Tsirkin
2013-09-09 17:41 ` Peter Maydell
2013-09-09 18:06 ` Jan Kiszka
2013-09-09 18:11 ` Paolo Bonzini
2013-09-09 19:35 ` Michael S. Tsirkin
2013-09-09 18:03 ` Paolo Bonzini
2013-09-09 18:49 ` Jan Kiszka
2013-09-09 18:59 ` Peter Maydell
2013-09-09 19:04 ` Jan Kiszka
2013-09-09 19:27 ` Michael S. Tsirkin
2013-09-09 19:31 ` Michael S. Tsirkin
2013-09-09 15:54 ` Michael S. Tsirkin
2013-09-09 14:04 ` Michael S. Tsirkin
2013-09-09 14:16 ` Marcel Apfelbaum
2013-09-09 13:59 ` Michael S. Tsirkin
2013-09-09 13:07 ` Marcel Apfelbaum
2013-09-09 13:16 ` Peter Maydell
2013-09-09 13:44 ` Marcel Apfelbaum
2013-09-10 12:39 ` Michael S. Tsirkin
2013-09-10 12:50 ` Peter Maydell
2013-09-10 13:02 ` Michael S. Tsirkin
2013-09-10 13:12 ` Peter Maydell
2013-09-10 14:11 ` Michael S. Tsirkin
2013-09-15 7:14 ` Michael S. Tsirkin
2013-09-15 10:56 ` Peter Maydell
2013-09-15 11:05 ` Michael S. Tsirkin
2013-09-15 11:23 ` Peter Maydell
2013-09-15 12:17 ` Michael S. Tsirkin
2013-09-15 13:24 ` Peter Maydell
2013-09-15 13:39 ` Michael S. Tsirkin
2013-09-15 13:49 ` Peter Maydell
2013-09-15 14:08 ` Michael S. Tsirkin
2013-09-15 14:08 ` Peter Maydell
2013-09-15 14:20 ` Michael S. Tsirkin
2013-09-15 14:49 ` Peter Maydell
2013-09-15 15:05 ` Michael S. Tsirkin
2013-09-15 15:08 ` Peter Maydell
2013-09-15 15:31 ` Michael S. Tsirkin [this message]
2013-09-15 17:12 ` Peter Maydell
2013-09-15 9:29 ` Marcel Apfelbaum
2013-09-09 14:01 ` Michael S. Tsirkin
2013-09-09 13:58 ` Michael S. Tsirkin
2013-09-09 14:10 ` Marcel Apfelbaum
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=20130915153111.GC18549@redhat.com \
--to=mst@redhat.com \
--cc=aliguori@us.ibm.com \
--cc=jan.kiszka@siemens.com \
--cc=marcel.a@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--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).