linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Bjorn Helgaas <bhelgaas@google.com>
To: Thierry Reding <thierry.reding@avionic-design.de>
Cc: Mitch Bradley <wmb@firmworks.com>,
	Stephen Warren <swarren@wwwdotorg.org>,
	Russell King <linux@arm.linux.org.uk>,
	linux-pci@vger.kernel.org, devicetree-discuss@lists.ozlabs.org,
	Rob Herring <rob.herring@calxeda.com>,
	Jesse Barnes <jbarnes@virtuousgeek.org>,
	Colin Cross <ccross@android.com>,
	linux-tegra@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	Arnd Bergmann <arnd@arndb.de>
Subject: Re: [PATCH v2 07/10] ARM: tegra: pcie: Add device tree support
Date: Fri, 22 Jun 2012 04:18:05 -0600	[thread overview]
Message-ID: <CAErSpo6Bpfqm-0yGiBOXEhF4kD3PTDYvWVr0babLZ4GkBLXJiA@mail.gmail.com> (raw)
In-Reply-To: <20120621064722.GA1122@avionic-0098.mockup.avionic-design.de>

On Thu, Jun 21, 2012 at 12:47 AM, Thierry Reding
<thierry.reding@avionic-design.de> wrote:
> On Tue, Jun 19, 2012 at 11:31:39AM -1000, Mitch Bradley wrote:

>> Version A - 3 address cells:  In this version, the intermediate
>> address space has 3 cells:  port#, address type, offset.  Address
>> type is
>>   0 : root port
>>   1 : config space
>>   2 : extended config space
>>   3 : I/O
>>   4 : non-prefetchable memory
>>   5 : prefetchable memory.
>>
>> The third cell "offset" is necessary so that the size field has a
>> number space that can include it.
>>
>>       pcie-controller {
>>               compatible = "nvidia,tegra20-pcie";
>>               reg = <0x80003000 0x00000800   /* PADS registers */
>>                      0x80003800 0x00000200>; /* extended configuration space */
>>               interrupts = <0 98 0x04   /* controller interrupt */
>>                             0 99 0x04>; /* MSI interrupt */
>>               status = "disabled";
>>
>>               ranges = <0 0 0  0x80000000 0x00001000   /* Root port 0 */
>>                         0 1 0  0x80004000 0x00080000   /* Port 0 config space */
>>                         0 2 0  0x80104000 0x00080000   /* Port 0 ext config space *
>>                         0 3 0  0x80400000 0x00008000   /* Port 0 downstream I/O */
>>                         0 4 0  0x90000000 0x08000000   /* Port 0 non-prefetchable memory */
>>                         0 5 0  0xa0000000 0x08000000   /* Port 0 prefetchable memory */
>>
>>                         1 0 0  0x80001000 0x00001000   /* Root port 1 */
>>                         1 1 0  0x80004000 0x00080000   /* Port 1 config space */
>>                         1 2 0  0x80184000 0x00080000   /* Port 1 ext config space */
>>                         1 3 0  0x80408000 0x00010000   /* Port 1 downstream I/O */
>>                         1 4 0  0x98000000 0x08000000   /* Port 1 non-prefetchable memory */
>>                         1 5 0  0xa0000000 0x08000000>; /* Port 1 prefetchable memory */
>>
>>               #address-cells = <3>;
>>               #size-cells = <1>;
>>
>>               pci@0 {
>>                       reg = <0 0 0 0x1000>;
>>                       status = "disabled";
>>
>>                       #address-cells = <3>;
>>                       #size-cells = <2>;
>>
>>                       ranges = <0x80000000 0 0  0 1 0  0 0x00080000   /* config */
>>                                 0x90000000 0 0  0 2 0  0 0x00080000   /* extended config */
>>                                 0x81000000 0 0  0 3 0  0 0x00008000   /* I/O */
>>                                 0x82000000 0 0  0 4 0  0 0x08000000   /* non-prefetchable memory */
>>                                 0xc2000000 0 0  0 5 0  0 0x08000000>; /* prefetchable memory */
>>
>>                       nvidia,ctrl-offset = <0x110>;
>>                       nvidia,num-lanes = <2>;
>>               };
>>
>>
>>               pci@1 {
>>                       reg = <1 0 0 0x1000>;
>>                       status = "disabled";
>>
>>                       #address-cells = <3>;
>>                       #size-cells = <2>;
>>
>>                       ranges = <0x80000000 0 0  1 1 0  0 0x00080000   /* config */
>>                                 0x90000000 0 0  1 2 0  0 0x00080000   /* extended config */
>>                                 0x81000000 0 0  1 3 0  0 0x00008000   /* I/O */
>>                                 0x82000000 0 0  1 4 0  0 0x08000000   /* non-prefetchable memory */
>>                                 0xc2000000 0 0  1 5 0  0 0x08000000>; /* prefetchable memory */
>>
>>                       nvidia,ctrl-offset = <0x118>;
>>                       nvidia,num-lanes = <2>;
>>               };

I'm not familiar with device tree, so pardon me if these are stupid
questions.  These seem to be describing PCI host bridges.  I assume
some of these ranges describe MMIO, prefetchable MMIO, and I/O port
apertures that the bridge forwards to the PCI bus.

Is there provision for any address offset applied by the bridge when
it forwards downstream?  (Maybe these bridges don't apply any offset?)
 "0xa0000000 0x08000000" appears for both ports 0 and 1 prefetchable
memory; I don't know if that's an error, an indication that each
bridge applies a different offset, or that both bridges forward the
same aperture (I hope not the latter, because Linux can't really deal
with that).

Is the bus number aperture included somewhere?  How do we know what
bus numbers are available for allocation under each bridge?

I see mention of config space.  Is some of that referring to the ECAM
as in 7.2.2 of the PCIe spec v3.0 (what we refer to as MMCONFIG on
x86)?

  reply	other threads:[~2012-06-22 10:18 UTC|newest]

Thread overview: 95+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-11 15:05 [PATCH v2 00/10] ARM: tegra: Add PCIe device tree support Thierry Reding
2012-06-11 15:05 ` [PATCH v2 01/10] PCI: Keep pci_fixup_irqs() around after init Thierry Reding
2012-06-11 15:05 ` [PATCH v2 02/10] ARM: pci: Keep pci_common_init() " Thierry Reding
2012-06-11 15:05 ` [PATCH v2 03/10] ARM: pci: Allow passing per-controller private data Thierry Reding
2012-06-11 15:05 ` [PATCH v2 04/10] ARM: tegra: Move tegra_pcie_xclk_clamp() to PMC Thierry Reding
2012-06-11 15:05 ` [PATCH v2 05/10] ARM: tegra: Rewrite PCIe support as a driver Thierry Reding
2012-06-11 21:09   ` Stephen Warren
2012-06-12  6:41     ` Thierry Reding
2012-06-12  7:24       ` Thierry Reding
2012-06-12 16:00         ` Stephen Warren
2012-06-13  8:12           ` Thierry Reding
2012-06-11 21:22   ` Stephen Warren
2012-06-12  4:59     ` Thierry Reding
2012-06-11 15:05 ` [PATCH v2 06/10] ARM: tegra: pcie: Add MSI support Thierry Reding
2012-06-11 21:19   ` Stephen Warren
2012-06-12  5:07     ` Thierry Reding
2012-06-12  5:33       ` Stephen Warren
2012-06-12  5:41         ` Thierry Reding
2012-06-12  6:10       ` Thierry Reding
2012-06-12 15:40         ` Stephen Warren
2012-06-12 17:23           ` Thierry Reding
2012-06-11 15:05 ` [PATCH v2 07/10] ARM: tegra: pcie: Add device tree support Thierry Reding
2012-06-11 21:33   ` Stephen Warren
2012-06-12  6:21     ` Thierry Reding
2012-06-12 15:44       ` Stephen Warren
2012-06-12 17:20         ` Thierry Reding
     [not found]           ` <4FD7943E.60302@firmworks.com>
2012-06-12 19:46             ` Stephen Warren
2012-06-12 19:52               ` Mitch Bradley
2012-06-13  5:54                 ` Thierry Reding
2012-06-13  7:04                   ` Mitch Bradley
2012-06-12 20:15           ` Stephen Warren
2012-06-12 21:11             ` Mitch Bradley
2012-06-13  6:45               ` Thierry Reding
2012-06-13  7:28                 ` Mitch Bradley
2012-06-13  7:52                   ` Thierry Reding
2012-06-13  8:05                     ` Mitch Bradley
2012-06-13  8:19                       ` Thierry Reding
2012-06-13  8:36                         ` Mitch Bradley
2012-06-13  8:42                           ` Thierry Reding
2012-06-14  9:19                           ` Thierry Reding
2012-06-14 18:30                             ` Stephen Warren
2012-06-14 19:29                               ` Thierry Reding
2012-06-14 19:50                                 ` Stephen Warren
2012-06-15  6:12                                   ` Thierry Reding
2012-06-19 13:30                                     ` Thierry Reding
2012-06-19 16:40                                       ` Stephen Warren
2012-06-19 21:31                                       ` Mitch Bradley
2012-06-20 16:32                                         ` Stephen Warren
2012-06-20 17:41                                           ` Mitch Bradley
2012-06-20 17:47                                             ` Stephen Warren
2012-06-20 19:57                                         ` Arnd Bergmann
2012-06-20 20:19                                           ` Mitch Bradley
2012-06-21  6:47                                         ` Thierry Reding
2012-06-22 10:18                                           ` Bjorn Helgaas [this message]
2012-06-22 11:00                                             ` Thierry Reding
2012-06-22 11:46                                               ` Bjorn Helgaas
2012-06-22 12:43                                                 ` Thierry Reding
2012-06-22 13:03                                                   ` Arnd Bergmann
2012-06-22 16:49                                                     ` Bjorn Helgaas
2012-06-22 16:53                                                       ` Arnd Bergmann
2012-06-22 17:13                                                         ` Bjorn Helgaas
2012-06-22 21:08                                                           ` Arnd Bergmann
2012-06-22 17:14                                                         ` Arnd Bergmann
2012-06-22 17:00                                               ` Stephen Warren
2012-06-22 17:28                                                 ` Stephen Warren
2012-06-23 21:35                                                   ` Bjorn Helgaas
2012-06-25  6:34                                                   ` Thierry Reding
2012-06-26 17:22                                                     ` Stephen Warren
2012-06-27  6:19                                                       ` Thierry Reding
2012-06-22 16:20                                           ` Stephen Warren
2012-06-22 17:09                                           ` Mitch Bradley
2012-06-22 11:04                                         ` Thierry Reding
2012-06-22 13:22                                           ` Thierry Reding
2012-06-22 13:48                                             ` Arnd Bergmann
2012-06-22 14:02                                               ` Thierry Reding
2012-06-22 16:40                                                 ` Arnd Bergmann
2012-06-13 20:21                     ` Arnd Bergmann
2012-06-14  8:37                       ` Thierry Reding
2012-06-14 10:25                         ` Arnd Bergmann
2012-06-14 10:31                           ` Thierry Reding
2012-06-14 11:06                             ` Arnd Bergmann
2012-06-14 11:58                               ` Thierry Reding
2012-06-13  6:34             ` Thierry Reding
2012-06-13 16:20               ` Stephen Warren
2012-06-13 17:03               ` Stephen Warren
2012-06-11 15:05 ` [PATCH v2 08/10] ARM: tegra: harmony: Initialize regulators from DT Thierry Reding
2012-06-11 21:36   ` Stephen Warren
2012-06-12  6:13     ` Thierry Reding
2012-06-21 20:17   ` Stephen Warren
2012-06-22  6:06     ` Thierry Reding
2012-06-11 15:05 ` [PATCH v2 09/10] ARM: tegra: harmony: Initialize PCIe " Thierry Reding
2012-06-11 21:41   ` Stephen Warren
2012-06-12  5:48     ` Thierry Reding
2012-06-12 15:38       ` Stephen Warren
2012-06-11 15:05 ` [PATCH v2 10/10] ARM: tegra: trimslice: " Thierry Reding

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=CAErSpo6Bpfqm-0yGiBOXEhF4kD3PTDYvWVr0babLZ4GkBLXJiA@mail.gmail.com \
    --to=bhelgaas@google.com \
    --cc=arnd@arndb.de \
    --cc=ccross@android.com \
    --cc=devicetree-discuss@lists.ozlabs.org \
    --cc=jbarnes@virtuousgeek.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=rob.herring@calxeda.com \
    --cc=swarren@wwwdotorg.org \
    --cc=thierry.reding@avionic-design.de \
    --cc=wmb@firmworks.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 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).