From: Grant Likely <grant.likely-s3s/WqlpOiPyB63q8FvJNQ@public.gmane.org>
To: David Gibson <david-xT8FGy+AXnRB3Ne2BGzF6laj5H9X9Tb+@public.gmane.org>
Cc: devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org
Subject: Re: PCI bus node location
Date: Thu, 12 Nov 2009 01:00:59 -0700 [thread overview]
Message-ID: <fa686aa40911120000w5aa446fbjc589a1aeb052099e@mail.gmail.com> (raw)
In-Reply-To: <20091112020343.GK3235-787xzQ0H9iRg7VrjXcPTGA@public.gmane.org>
On Wed, Nov 11, 2009 at 7:03 PM, David Gibson
<david-xT8FGy+AXnRB3Ne2BGzF6laj5H9X9Tb+@public.gmane.org> wrote:
> On Wed, Nov 11, 2009 at 03:16:56PM +0100, Rafal Jaworowski wrote:
>>
>> On 2009-11-11, at 01:05, David Gibson wrote:
>>
>> >>The current approach seems a bit of a maintenance problem: the PCI
>> >>bridges control reg need to specify the whole address instead of
>> >>just an offset, which is more error prone in case of changes (when a
>> >
>> >Well, yes. And worse, it means there's two places that need to be
>> >adjusted rather than one, if the the IMMR is relocated (which it can
>> >be). But it's a trade-off of this versus the inconvenience of dealing
>> >with separate "control" and "bridge" nodes for the PCI and following
>> >phandles between them.
>>
>> Would the technique with additional control node and a phandle
>> complicate bindings handling much? The clear benefit is the ability
>> to truly reflect hierarchy of devices available within IMMR/CCSR
>> block.
>>
>> >>number of places need to be adjusted etc.). What would need to be
>> >>done/extended for the ranges prop you mention to allow for better
>> >>handling cases like this?
>> >
>> >I don't really understand the question. As Grant has said the
>> >"correct" approach is to have one node representing the control
>> >registers - located under the IMMR ("soc") node - and another
>> >representing the PCI host bridge itself (which would be in its present
>> >location). There would need to be phandles linking the two. It
>> >doesn't really need any extension to the device tree semantics itself
>> >- just a more complex binding for this device.
>>
>> Maybe I misunderstood Grant, my impression was that there was
>> possible some 'fixing' of ranges properties (which would be
>> alternative to the control node approach).
>
> Well.. the other approach would be for the "soc" node to have, in
> addition to a range for the IMMR registers, extra ranges for all the
> bridged ranges (PCI or localbus, or whatever). That has its own
> problems because it means either we need a complicated encoding, or
> it's less obvious which devices have registers in the IMMR space and
> which have registers elsewhere. We need more complex conventions
> about which range is which in the soc node's "ranges" property and so
> forth.
No, the encoding isn't complex at all. And I think it become very
obvious which range is getting used for by each 'reg' property. It
just has the ugliness of having to describe PCI BARs in the IMMR node.
It would look like this (borrowing heavily from the 5200):
immr@f0000000 {
#size-cells = <1>;
#address-cells = <1>;
ranges = <0 f0000000 0x00010000 # 16k Internal register range
80000000 80000000 0x40000000>; # 1GB range for PCI windows
pci@0xd00 {
#size-cells = <2>;
#address-cells = <3>;
reg = <0xd00 0x100>;
/* 3 range entries; prefetchable, non-prefetchable, & IO. */
ranges = <0x42000000 0 0x80000000 0x80000000 0 0x20000000
0x02000000 0 0xa0000000 0xa0000000 0 0x10000000
0x01000000 0 0x00000000 0xb0000000 0
0x01000000>;
}
}
Cheers,
g.
--
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
next prev parent reply other threads:[~2009-11-12 8:00 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-11-09 19:20 PCI bus node location Rafal Jaworowski
[not found] ` <B7D31A24-3361-4B80-81C4-5A815F09D42F-nYOzD4b6Jr9Wk0Htik3J/w@public.gmane.org>
2009-11-10 2:36 ` Grant Likely
[not found] ` <fa686aa40911091836s2a6b763aq14ece296cd7368db-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-11-10 3:12 ` David Gibson
[not found] ` <20091110031218.GG26042-787xzQ0H9iRg7VrjXcPTGA@public.gmane.org>
2009-11-10 16:55 ` Rafal Jaworowski
[not found] ` <839C8AA0-A8B5-434E-9175-16D2B84D74BD-nYOzD4b6Jr9Wk0Htik3J/w@public.gmane.org>
2009-11-10 23:44 ` David Gibson
[not found] ` <20091110234412.GA3235-787xzQ0H9iRg7VrjXcPTGA@public.gmane.org>
2009-11-11 14:17 ` Rafal Jaworowski
[not found] ` <C75E76CB-73F3-4448-B643-364304ABB364-nYOzD4b6Jr9Wk0Htik3J/w@public.gmane.org>
2009-11-12 2:08 ` David Gibson
2009-11-12 5:54 ` Grant Likely
2009-11-10 16:26 ` Rafal Jaworowski
[not found] ` <A3A4CAD4-BE74-4CD4-BFFA-FE616DF38811-nYOzD4b6Jr9Wk0Htik3J/w@public.gmane.org>
2009-11-11 0:05 ` David Gibson
[not found] ` <20091111000540.GB3235-787xzQ0H9iRg7VrjXcPTGA@public.gmane.org>
2009-11-11 14:16 ` Rafal Jaworowski
[not found] ` <8239D9E6-E390-4DED-81C1-77FACF05C1D4-nYOzD4b6Jr9Wk0Htik3J/w@public.gmane.org>
2009-11-11 17:06 ` Scott Wood
2009-11-12 2:03 ` David Gibson
[not found] ` <20091112020343.GK3235-787xzQ0H9iRg7VrjXcPTGA@public.gmane.org>
2009-11-12 8:00 ` Grant Likely [this message]
2009-11-12 7:30 ` Grant Likely
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=fa686aa40911120000w5aa446fbjc589a1aeb052099e@mail.gmail.com \
--to=grant.likely-s3s/wqlpoipyb63q8fvjnq@public.gmane.org \
--cc=david-xT8FGy+AXnRB3Ne2BGzF6laj5H9X9Tb+@public.gmane.org \
--cc=devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.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