From: Julien Grall <julien.grall@linaro.org>
To: Ian Campbell <Ian.Campbell@citrix.com>
Cc: Pranavkumar Sawargaonkar <pranavkumar@linaro.org>,
Clark Laughlin <clark.laughlin@linaro.org>,
tim@xen.org, stefano.stabellini@eu.citrix.com,
xen-devel@lists.xen.org
Subject: Re: [PATCH 5/5] xen: arm: handle PCI DT node ranges and interrupt-map properties
Date: Wed, 18 Feb 2015 14:19:01 +0000 [thread overview]
Message-ID: <54E49F55.2010402@linaro.org> (raw)
In-Reply-To: <1424267412.27775.62.camel@citrix.com>
Hi Ian,
On 18/02/2015 13:50, Ian Campbell wrote:
> On Tue, 2015-02-17 at 17:33 +0000, Julien Grall wrote:
>> Hi Ian,
>>
>> On 24/10/14 10:58, Ian Campbell wrote:
>>> These properties are defined in ePAPR and the OpenFirmware PCI Bus Binding
>>> Specification (IEEE Std 1275-1994).
>>>
>>> This replaces the xgene specific mapping. Tested on Mustang and on a model with
>>> a PCI virtio controller.
>>
>> I'm wondering why you choose to map everything at Xen boot time rather
>> than implementing PHYSDEVOP_pci_device_add to do the job?
>
> Does pci_device_add contain sufficient information to do so?
Hmmm... for the interrupt the SBDF is enough. Although for the MMIO it
looks like there is no difference between PCI bars.
> The regions which are being mapped are essentially the PCI host
> controllers MMIO, IO and CFG "windows" which are then consumed by the
> various bars of the devices on the bus.
>
> So mapping based on pci_device_add would require us to go from the SBDF
> to a set of BARS which need mapping, which is a whole lot more complex
> than just mapping all of the resources owned by the root complex through
> to the h/w domain.
I gave a look to the code which parse the host bridge resource (see
of_pci_get_host_bridge_resources). They seem to re-use to the
of_translate_* function. Would not it be possible to do the same?
> Or perhaps I've misunderstood what you were suggesting?
I was suggesting to do it via pci_add_device but it looks like it's only
possible for IRQ not MMIO.
>> This would allow us to re-use most of the interrupts/mmio decoding
>> provided in the device tree library. It would also avoid missing support
>> of cascade ranges/interrupt-map.
>
> I *think* (if I'm remembering right) I decided we don't need to worry
> about cascades of these things because the second level resources are
> all fully contained within the first (top level) one and so with the
> approach I've taken here are all fully mapped already. That's why I made
> this patch stop descending into children when such a "bus node" is
> found.
I don't understand this paragraph, sorry.
The address range you decoded via the PCI bus may be an intermediate
address which needs to be translated in the physical hardware address.
Regards,
--
Julien Grall
next prev parent reply other threads:[~2015-02-18 14:19 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-24 9:58 [PATCH for-4.6 0/5] xen: arm: Parse PCI DT nodes' ranges and interrupt-map Ian Campbell
2014-10-24 9:58 ` [PATCH 1/5] xen: arm: propagate gic's #address-cells property to dom0 Ian Campbell
2014-10-29 19:03 ` Julien Grall
2014-10-30 10:06 ` Ian Campbell
2014-10-30 10:31 ` Julien Grall
2014-11-04 10:23 ` Ian Campbell
2014-11-04 17:11 ` Konrad Rzeszutek Wilk
2014-11-05 10:47 ` Ian Campbell
2014-10-24 9:58 ` [PATCH 2/5] xen: device-tree: add accessors for the addr/size-cells of a node's children Ian Campbell
2014-10-24 9:58 ` [PATCH 3/5] xen: arm: Add DT_NR_GIC_INTERRUPT_CELLS rather than hardcoding 3 Ian Campbell
2014-10-24 9:58 ` [PATCH 4/5] xen: refactor irq_set_type out of platform_get_irq Ian Campbell
2014-10-24 9:58 ` [PATCH 5/5] xen: arm: handle PCI DT node ranges and interrupt-map properties Ian Campbell
2015-02-17 17:33 ` Julien Grall
2015-02-18 13:50 ` Ian Campbell
2015-02-18 14:19 ` Julien Grall [this message]
2015-02-18 14:37 ` Ian Campbell
2015-02-18 15:05 ` Julien Grall
2015-02-18 15:16 ` Julien Grall
2015-03-05 12:43 ` Ian Campbell
2015-03-05 15:59 ` Julien Grall
2015-02-18 15:18 ` Ian Campbell
2015-02-18 15:31 ` Julien Grall
2015-02-18 15:44 ` Ian Campbell
2015-02-18 15:13 ` Julien Grall
2015-02-18 15:21 ` Ian Campbell
2015-02-16 3:49 ` [PATCH for-4.6 0/5] xen: arm: Parse PCI DT nodes' ranges and interrupt-map Suravee Suthikulpanit
2015-02-16 10:12 ` Julien Grall
[not found] ` <54E2AFCC.3090302@amd.com>
2015-02-17 13:43 ` Julien Grall
2015-02-17 13:50 ` Andrew Cooper
2015-02-17 22:35 ` Suravee Suthikulanit
2015-02-18 0:31 ` Suravee Suthikulanit
2015-02-18 5:28 ` Suravee Suthikulanit
2015-02-18 12:48 ` Julien Grall
2015-02-18 20:13 ` Suravee Suthikulanit
2015-02-19 5:16 ` Manish
2015-02-19 8:14 ` Jan Beulich
2015-02-19 8:47 ` Manish
2015-02-19 13:46 ` Julien Grall
2015-02-18 7:58 ` Jan Beulich
2015-02-18 13:52 ` Ian Campbell
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=54E49F55.2010402@linaro.org \
--to=julien.grall@linaro.org \
--cc=Ian.Campbell@citrix.com \
--cc=clark.laughlin@linaro.org \
--cc=pranavkumar@linaro.org \
--cc=stefano.stabellini@eu.citrix.com \
--cc=tim@xen.org \
--cc=xen-devel@lists.xen.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).