From: David Gibson <david@gibson.dropbear.id.au>
To: Gerhard Pircher <gerhard_pircher@gmx.net>
Cc: linuxppc-dev@ozlabs.org
Subject: Re: [RFC] AmigaOne device tree source v2
Date: Wed, 5 Sep 2007 12:48:05 +1000 [thread overview]
Message-ID: <20070905024805.GE17189@localhost.localdomain> (raw)
In-Reply-To: <20070904114945.303440@gmx.net>
On Tue, Sep 04, 2007 at 01:49:45PM +0200, Gerhard Pircher wrote:
>
> -------- Original-Nachricht --------
> > Datum: Tue, 4 Sep 2007 00:32:57 +0200
> > Von: Segher Boessenkool <segher@kernel.crashing.org>
> > An: "Gerhard Pircher" <gerhard_pircher@gmx.net>
> > CC: linuxppc-dev@ozlabs.org, David Gibson <david@gibson.dropbear.id.au>
> > Betreff: Re: [RFC] AmigaOne device tree source v2
>
> > PCI memory space sits on the PCI bus, not on the PCI host bridge,
> > so is not part of "reg" but is part of "ranges" here, since it is
> > direct mapped into the host's address space.
> That's right, but what about this example here (from a Pegasos II):
>
> /proc/device-tree/pci@80000000:
> name "pci"
> linux,phandle 0fc59260 (264606304)
> bus-range 00000000 00000000
> pci-bridge-number 00000000
> reg 80000000 40000000
> 8259-interrupt-acknowledge f1000cb4
> ranges 01000000 00000000 00000000 fe000000 00000000 00010000
> 02000000 00000000 80000000 80000000 00000000 40000000
> clock-frequency 01fca055 (33333333)
> #size-cells 00000002
> #address-cells 00000003
> device_type "pci"
>
> AFAIU the reg property overlaps the ranges property for the PCI memory
> space from 0x80000000 to 0xC0000000 or the CPU address space at the
> same location!? Would be good to know, why it was defined like this.
That looks totally bogus. Unlike Segher, I think there are a few
cases where overlapping reg and ranges can make sense (PCI bridges
where config space is accessed indirectly via MMIO registers which lie
in the legacy ISA IO space is an example). But this doesn't look like
such a case - it just looks like whoever did the device tree
misunderstood the distinction between reg and ranges.
> > PCI legacy I/O is not direct mapped: there is no legacy I/O on a
> > PowerPC system bus. So, it can not be mentioned in the "ranges"
> > property, but the PHB registers used to access it should be shown
> > in the "reg" property. It could be a simple linear window (it
> > sounds like it is here?), but it could for example also be implemented
> > via an address/data register pair.
Err... huh? The legacy IO space is assigned a block of addresses in
3-word "OF-PCI-space by the PCI binding. When that is translated into
an MMIO range by the bridge, there's no reason that can't be encoded
into the ranges property.
> Yes, it is a simple linear address window. I'll remove its address range
> from the reg property.
>
> > The order of the "reg" entries depends on the exact model of PCI
> > bridge, so a device binding for it has to be written.
> Only the Pegasos I and the AmigaOne use this PCI bridge. I guess it should
> be enough to check for the board type, but a compatible property doesn't
> hurt.
The whole damn point of the device tree is to avoid using this kind of
non-local information "I know what the board type is over there, so it
must be this PCI bridge over here". The node should have a compatible
property which is sufficient to select the right bridge driver.
I think this is typically badly done at the moment, simply because PCI
has historically been set up by the platform code, rather than by a
"host bridge driver" in the mould of other drivers. I don't see that
changing real soon, but that doesn't mean we shouldn't at least put
enough information in the device tree to make it possible.
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
next prev parent reply other threads:[~2007-09-05 2:48 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-08-31 17:50 [RFC] AmigaOne device tree source v2 Gerhard Pircher
2007-09-03 1:34 ` David Gibson
2007-09-03 8:41 ` Benjamin Herrenschmidt
2007-09-03 10:02 ` Segher Boessenkool
2007-09-03 10:12 ` David Gibson
2007-09-03 16:11 ` Gerhard Pircher
2007-09-03 22:52 ` Segher Boessenkool
2007-09-04 0:27 ` David Gibson
2007-09-06 13:31 ` Segher Boessenkool
2007-09-04 12:20 ` Gerhard Pircher
2007-09-06 13:41 ` Segher Boessenkool
2007-09-03 14:58 ` Gerhard Pircher
2007-09-03 22:32 ` Segher Boessenkool
2007-09-04 11:49 ` Gerhard Pircher
2007-09-05 2:48 ` David Gibson [this message]
2007-09-05 11:54 ` Gerhard Pircher
2007-09-06 14:00 ` Segher Boessenkool
2007-09-06 14:09 ` Sven Luther
2007-09-06 14:42 ` Segher Boessenkool
2007-09-06 13:56 ` Segher Boessenkool
2007-09-06 14:15 ` PCI I/O space -- reg or ranges? Scott Wood
2007-09-06 20:51 ` Gerhard Pircher
2007-09-06 21:01 ` Segher Boessenkool
2007-09-07 0:20 ` [RFC] AmigaOne device tree source v2 David Gibson
2007-09-06 13:36 ` Segher Boessenkool
2007-09-06 21:09 ` Gerhard Pircher
2007-09-07 0:21 ` David Gibson
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=20070905024805.GE17189@localhost.localdomain \
--to=david@gibson.dropbear.id.au \
--cc=gerhard_pircher@gmx.net \
--cc=linuxppc-dev@ozlabs.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).