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: Mon, 11 Jun 2012 15:09:44 -0600 [thread overview]
Message-ID: <4FD65E98.4070200@wwwdotorg.org> (raw)
In-Reply-To: <1339427118-32263-6-git-send-email-thierry.reding@avionic-design.de>
On 06/11/2012 09:05 AM, Thierry Reding wrote:
> This commit adds a platform device driver for the PCIe controller on
> Tegra SOCs. Current users of the old code (TrimSlice and Harmony) are
> converted and now initialize and register a corresponding platform
> device.
> diff --git a/arch/arm/mach-tegra/devices.c b/arch/arm/mach-tegra/devices.c
> +static struct resource tegra_pcie_resources[] = {
> + [0] = {
> + .start = TEGRA_PCIE_BASE,
> + .end = TEGRA_PCIE_BASE + TEGRA_PCIE_SIZE - 1,
> + .flags = IORESOURCE_MEM,
> + },
> + [1] = {
> + .start = TEGRA_PCIE_MMIO_BASE,
> + .end = TEGRA_PCIE_MMIO_BASE + TEGRA_PCIE_MMIO_SIZE - 1,
> + .flags = IORESOURCE_MEM,
> + },
> + [2] = {
> + .start = INT_PCIE_INTR,
> + .end = INT_PCIE_INTR,
> + .flags = IORESOURCE_IRQ,
> + },
> +};
I'm not sure those resources either cover all the necessary regions, nor
are as fine-grained as they should be ...
In particular, in pcie.c, I see separate afi_writel() and pads_writel()
implying those are separate regions.
Also, I see the following hard-code specific addresses, and are still
used by the driver after conversion:
> #define MEM_BASE_0 (TEGRA_PCIE_BASE + SZ_256M)
> #define MEM_SIZE_0 SZ_128M
> #define MEM_BASE_1 (MEM_BASE_0 + MEM_SIZE_0)
> #define MEM_SIZE_1 SZ_128M
> #define PREFETCH_MEM_BASE_0 (MEM_BASE_1 + MEM_SIZE_1)
> #define PREFETCH_MEM_SIZE_0 SZ_128M
> #define PREFETCH_MEM_BASE_1 (PREFETCH_MEM_BASE_0 + PREFETCH_MEM_SIZE_0)
> #define PREFETCH_MEM_SIZE_1 SZ_128M
Also, there's a comment describing the register layout in terms of a
number of separate regions:
> /*
> * 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
> */
(the latter 2 regions at least being also split in half for each of the
2 host ports)
Shouldn't each of these regions be a separate entry in the platform
device resources.
This perhaps isn't that relevant for Tegra20 alone, but Tegra30 supports
3 host ports instead of 2 (hence I presume alters the internal layout of
the 1G chunk of physical memory space allocated to PCIe), and moves the
PCIe area from 2G..3G to 0G..1G (so invalidates the hard-coded
*_MEM_BASE_* above).
That said, I'm not sure whether Tegra20's and Tegra30's PCIe controllers
are similar enough to make a shared driver worthwhile/possible.
(Although our downstream Android driver appears to handle both with a
very small number of ifdefs). If they are similar, then I think my
comments above should be addressed. If they are not similar, then I
think you can just have a single 1G memory region in the resources, and
split it up internally, rather than needing separate resources for
different parts of the address space.
While we can easily fix this kind of driver internals so this doesn't
seem like a big deal, this kind of change would impact the device tree
binding, so it seems that we need to sort it out before DT conversion.
next prev parent reply other threads:[~2012-06-11 21:09 UTC|newest]
Thread overview: 96+ 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 05/10] ARM: tegra: Rewrite PCIe support as a driver Thierry Reding
2012-06-11 21:09 ` Stephen Warren [this message]
[not found] ` <4FD65E98.4070200-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-06-12 6:41 ` Thierry Reding
2012-06-12 7:24 ` Thierry Reding
[not found] ` <20120612072444.GA8577-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-06-12 16:00 ` Stephen Warren
2012-06-13 8:12 ` Thierry Reding
[not found] ` <1339427118-32263-6-git-send-email-thierry.reding-RM9K5IK7kjKj5M59NBduVrNAH6kLmebB@public.gmane.org>
2012-06-11 21:22 ` Stephen Warren
[not found] ` <4FD6617C.4090805-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-06-12 4:59 ` Thierry Reding
2012-06-11 15:05 ` [PATCH v2 06/10] ARM: tegra: pcie: Add MSI support Thierry Reding
[not found] ` <1339427118-32263-7-git-send-email-thierry.reding-RM9K5IK7kjKj5M59NBduVrNAH6kLmebB@public.gmane.org>
2012-06-11 21:19 ` Stephen Warren
2012-06-12 5:07 ` Thierry Reding
2012-06-12 5:33 ` Stephen Warren
[not found] ` <4FD6D4C6.2080201-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-06-12 5:41 ` Thierry Reding
[not found] ` <20120612050713.GB3669-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-06-12 6:10 ` Thierry Reding
[not found] ` <20120612061003.GC4040-RM9K5IK7kjIyiCvfTdI0JKcOhU4Rzj621B7CTYaBSLdn68oJJulU0Q@public.gmane.org>
2012-06-12 15:40 ` Stephen Warren
2012-06-12 17:23 ` Thierry Reding
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
[not found] ` <4FD664F8.4030800-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-06-12 6:13 ` Thierry Reding
[not found] ` <1339427118-32263-9-git-send-email-thierry.reding-RM9K5IK7kjKj5M59NBduVrNAH6kLmebB@public.gmane.org>
2012-06-21 20:17 ` Stephen Warren
[not found] ` <4FE3815C.8030505-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-06-22 6:06 ` Thierry Reding
[not found] ` <1339427118-32263-1-git-send-email-thierry.reding-RM9K5IK7kjKj5M59NBduVrNAH6kLmebB@public.gmane.org>
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 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
[not found] ` <4FD763C5.3090500-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-06-12 17:20 ` Thierry Reding
[not found] ` <20120612172041.GA28010-RM9K5IK7kjIyiCvfTdI0JKcOhU4Rzj621B7CTYaBSLdn68oJJulU0Q@public.gmane.org>
2012-06-12 19:10 ` Mitch Bradley
[not found] ` <4FD7943E.60302-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>
2012-06-12 19:46 ` Stephen Warren
2012-06-12 19:52 ` Mitch Bradley
[not found] ` <4FD79DE8.90603-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>
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
[not found] ` <20120613064519.GD31001-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-06-13 7:28 ` Mitch Bradley
[not found] ` <4FD84133.4060401-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>
2012-06-13 7:52 ` Thierry Reding
[not found] ` <20120613075232.GA6139-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-06-13 8:05 ` Mitch Bradley
[not found] ` <4FD849CF.4030009-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>
2012-06-13 8:19 ` Thierry Reding
[not found] ` <20120613081910.GB6528-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-06-13 8:36 ` Mitch Bradley
2012-06-13 8:42 ` Thierry Reding
[not found] ` <4FD85127.8050301-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>
2012-06-14 9:19 ` Thierry Reding
[not found] ` <20120614091905.GA9081-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-06-14 18:30 ` Stephen Warren
[not found] ` <4FDA2DDA.1030704-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-06-14 19:29 ` Thierry Reding
[not found] ` <20120614192903.GA2212-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-06-14 19:50 ` Stephen Warren
[not found] ` <4FDA40A0.4030206-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-06-15 6:12 ` Thierry Reding
2012-06-19 13:30 ` Thierry Reding
[not found] ` <20120619133001.GB24138-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
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
[not found] ` <4FE20B34.2090305-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>
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
[not found] ` <20120621064722.GA1122-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-06-22 10:18 ` Bjorn Helgaas
[not found] ` <CAErSpo6Bpfqm-0yGiBOXEhF4kD3PTDYvWVr0babLZ4GkBLXJiA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
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
[not found] ` <201206221303.21985.arnd-r2nGTMty4D4@public.gmane.org>
2012-06-22 16:49 ` Bjorn Helgaas
[not found] ` <CAErSpo56=S2oQ0usYfH28T0178SQUBD=5jqmcKWCT6M5WUQF6g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2012-06-22 16:53 ` Arnd Bergmann
[not found] ` <201206221653.31817.arnd-r2nGTMty4D4@public.gmane.org>
2012-06-22 17:13 ` Bjorn Helgaas
[not found] ` <CAErSpo5dj99iHW0WNEABPR1OO2yS=BwNezOivu6_7Go8sKyjsQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
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
[not found] ` <4FE4AB2F.8090402-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-06-25 6:34 ` Thierry Reding
2012-06-26 17:22 ` Stephen Warren
[not found] ` <4FE9EFD8.6010608-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
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
[not found] ` <20120622110403.GA15710-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-06-22 13:22 ` Thierry Reding
[not found] ` <20120622132253.GA30704-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-06-22 13:48 ` Arnd Bergmann
[not found] ` <201206221348.39346.arnd-r2nGTMty4D4@public.gmane.org>
2012-06-22 14:02 ` Thierry Reding
[not found] ` <20120622140210.GA32097-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-06-22 16:40 ` Arnd Bergmann
2012-06-13 20:21 ` Arnd Bergmann
[not found] ` <201206132021.09774.arnd-r2nGTMty4D4@public.gmane.org>
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
[not found] ` <201206141106.49142.arnd-r2nGTMty4D4@public.gmane.org>
2012-06-14 11:58 ` Thierry Reding
[not found] ` <4FD7A36B.9090409-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-06-13 6:34 ` Thierry Reding
[not found] ` <20120613063422.GC31001-RM9K5IK7kjIQXX3q8xo1gnVAuStQJXxyR5q1nwbD4aMs9pC9oP6+/A@public.gmane.org>
2012-06-13 16:20 ` Stephen Warren
2012-06-13 17:03 ` Stephen Warren
2012-06-11 15:05 ` [PATCH v2 09/10] ARM: tegra: harmony: Initialize PCIe from DT Thierry Reding
[not found] ` <1339427118-32263-10-git-send-email-thierry.reding-RM9K5IK7kjKj5M59NBduVrNAH6kLmebB@public.gmane.org>
2012-06-11 21:41 ` Stephen Warren
[not found] ` <4FD6661A.1060407-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-06-12 5:48 ` Thierry Reding
[not found] ` <20120612054811.GB4040-RM9K5IK7kjIyiCvfTdI0JKcOhU4Rzj621B7CTYaBSLdn68oJJulU0Q@public.gmane.org>
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=4FD65E98.4070200@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).