From: Scott Wood <scottwood@freescale.com>
To: Bharat Bhushan <r65777@freescale.com>
Cc: Bharat Bhushan <bharat.bhushan@freescale.com>,
qemu-ppc@nongnu.org, qemu-devel@nongnu.org, agraf@suse.de
Subject: Re: [Qemu-devel] [Qemu-ppc] [PATCH: RFC] Adding BAR0 for e500 PCI controller
Date: Tue, 14 Aug 2012 20:29:20 -0500 [thread overview]
Message-ID: <502AFB70.2070101@freescale.com> (raw)
In-Reply-To: <1344948607-23291-1-git-send-email-Bharat.Bhushan@freescale.com>
On 08/14/2012 07:50 AM, Bharat Bhushan wrote:
> PCI Root complex have TYPE-1 configuration header while PCI endpoint
> have type-0 configuration header. The type-1 configuration header have
> a BAR (BAR0). In Freescale PCI controller BAR0 is used for mapping pci
> address space to CCSR address space. This can used for 2 purposes: 1)
> for MSI interrupt generation 2) Allow CCSR registers access when configured
> as PCI endpoint, which I am not sure is a use case with QEMU-KVM guest.
>
> What I observed is that when guest read the size of BAR0 of host controller
> configuration header (TYPE1 header) then it always reads it as 0. When
> looking into the QEMU hw/ppce500_pci.c, I do not find the PCI controller
> device registering BAR0. I do not find any other controller also doing so
> may they do not use BAR0.
>
> There are two issues when BAR0 is not there (which I can think of):
> 1) There should be BAR0 emulated for PCI Root comaplex (TYPE1 header) and
> when reading the size of BAR0, it should give size as per real h/w.
>
> 2) Do we need this BAR0 inbound address translation?
> When BAR0 is of non-zero size then it will be configured for PCI
> address space to local address(CCSR) space translation on inbound access.
> The primary use case is for MSI interrupt generation. The device is
> configured with a address offsets in PCI address space, which will be
> translated to MSI interrupt generation MPIC registers. Currently I do
> not understand the MSI interrupt generation mechanism in QEMU and also
> IIRC we do not use QEMU MSI interrupt mechanism on e500 guest machines.
> But this BAR0 will be used when using MSI on e500.
This patch is only trying to address #1, right? I don't see any
connection from this BAR to CCSR.
> + memory_region_init_io(&h->bar0, &pci_host_conf_be_ops, h,
> + "PCIHOST-bar0", 0x1000000);
0x01000000 is correct for e500mc-based systems, but it should be
0x00100000 for e500v2-based systems.
-Scott
next prev parent reply other threads:[~2012-08-15 1:29 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-14 12:50 [Qemu-devel] [PATCH: RFC] Adding BAR0 for e500 PCI controller Bharat Bhushan
2012-08-15 1:29 ` Scott Wood [this message]
2012-08-15 2:40 ` [Qemu-devel] [Qemu-ppc] " Bhushan Bharat-R65777
2012-09-03 6:44 ` Bhushan Bharat-R65777
2012-09-06 23:15 ` Scott Wood
2012-09-07 8:08 ` Alexander Graf
2012-09-07 18:58 ` Scott Wood
2012-09-11 11:33 ` Alexander Graf
2012-09-11 19:05 ` Scott Wood
2012-09-11 20:58 ` Alexander Graf
2012-09-11 12:23 ` Andreas Färber
2012-09-11 12:27 ` Alexander Graf
2012-09-11 12:59 ` Andreas Färber
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=502AFB70.2070101@freescale.com \
--to=scottwood@freescale.com \
--cc=agraf@suse.de \
--cc=bharat.bhushan@freescale.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
--cc=r65777@freescale.com \
/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.