linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Stephen Warren <swarren@wwwdotorg.org>
To: Thierry Reding <thierry.reding@avionic-design.de>
Cc: linux-tegra@vger.kernel.org,
	Jesse Barnes <jbarnes@virtuousgeek.org>,
	linux-pci@vger.kernel.org,
	Grant Likely <grant.likely@secretlab.ca>,
	Rob Herring <rob.herring@calxeda.com>,
	devicetree-discuss@lists.ozlabs.org,
	Russell King <linux@arm.linux.org.uk>,
	linux-arm-kernel@lists.infradead.org,
	Colin Cross <ccross@android.com>, Olof Johansson <olof@lixom.net>
Subject: Re: [PATCH v2 05/10] ARM: tegra: Rewrite PCIe support as a driver
Date: Tue, 12 Jun 2012 10:00:26 -0600	[thread overview]
Message-ID: <4FD7679A.2080800@wwwdotorg.org> (raw)
In-Reply-To: <20120612072444.GA8577@avionic-0098.mockup.avionic-design.de>

On 06/12/2012 01:24 AM, Thierry Reding wrote:
> * Thierry Reding wrote:
>> AFAICT the even partitioning of the non-prefetchable and 
>> prefetchable memory regions is arbitrary and it could
>> potentially be useful to make it configurable via the DT.
> 
> So it turns out that this isn't true. But apart from the comments 
> in the driver I couldn't find any reference to how the prefetch
> and non-prefetch ranges are partitioned. Judging by the code for
> Tegra2 this is evenly partitioned among ports 0 and 1 but it would
> be interesting to know this is done on Tegra3. Is there any way
> you can find out?
> 
> It'd also be nice if some better documentation for the PCIe 
> controller could be made available. The Tegra2 TRM doesn't contain 
> any of the AFI or PADS registers and while the Tegra3 TRM
> documents more registers, their offsets are completely missing.

I've filed a bug to request better documentation.

Looking at our downstream driver, the quoted comment below implies
that the address space layout is pretty arbitrary and programmable at
least for Tegra30. The code in function
tegra_pcie_setup_translations() appears to support this (and is
executed for both Tegra20 and Tegra30, even though the comment for
Tegra20 doesn't mention any programmability).

Tegra20:

> /*
>  * Tegra2 defines 1GB in the AXI address map for PCIe.
>  *
>  * That address space is split into different regions, with sizes and
>  * offsets as follows:
>  *
>  * 0x80000000 - 0x80003fff - PCI controller registers
>  * 0x80004000 - 0x80103fff - PCI configuration space
>  * 0x80104000 - 0x80203fff - PCI extended configuration space
>  * 0x80203fff - 0x803fffff - unused
>  * 0x80400000 - 0x8040ffff - downstream IO
>  * 0x80410000 - 0x8fffffff - unused
>  * 0x90000000 - 0x9fffffff - non-prefetchable memory
>  * 0xa0000000 - 0xbfffffff - prefetchable memory
>  */

(I guess by "is split", it means the driver sets it up that way, not
that the HW is fixed that way)

Tegra30:

> /*
>  * AXI address map for the PCIe aperture , defines 1GB in the AXI
>  *  address map for PCIe.
>  *
>  *  That address space is split into different regions, with sizes and
>  *  offsets as follows. Exepct for the Register space, SW is free to slice the
>  *  regions as it chooces.
>  *
>  *  The split below seems to work fine for now.
>  *
>  *  0x0000_0000 to 0x00ff_ffff - Register space          16MB.
>  *  0x0100_0000 to 0x01ff_ffff - Config space            16MB.
>  *  0x0200_0000 to 0x02ff_ffff - Extended config space   16MB.
>  *  0x0300_0000 to 0x03ff_ffff - Downstream IO space
>  *   ... Will be filled with other BARS like MSI/upstream IO etc.
>  *  0x1000_0000 to 0x1fff_ffff - non-prefetchable memory aperture
>  *  0x2000_0000 to 0x3fff_ffff - Prefetchable memory aperture
>  *
>  *  Config and Extended config sizes are choosen to support
>  *  maximum of 256 devices,
>  *  which is good enough for all the current use cases.
>  *
>  */

From
http://nv-tegra.nvidia.com/gitweb/?p=linux-2.6.git;a=blob;f=arch/arm/mach-tegra/pcie.c;h=b98d4892b5ee46120a9777a969e820a0b5cbb68a;hb=android-tegra-nv-3.1

  reply	other threads:[~2012-06-12 16:00 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 [this message]
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
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=4FD7679A.2080800@wwwdotorg.org \
    --to=swarren@wwwdotorg.org \
    --cc=ccross@android.com \
    --cc=devicetree-discuss@lists.ozlabs.org \
    --cc=grant.likely@secretlab.ca \
    --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=olof@lixom.net \
    --cc=rob.herring@calxeda.com \
    --cc=thierry.reding@avionic-design.de \
    /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).