From: Thierry Reding <thierry.reding@gmail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 00/23] ARM: tegra: Add PCIe support
Date: Mon, 18 Aug 2014 09:16:13 +0200 [thread overview]
Message-ID: <1408346196-30419-1-git-send-email-thierry.reding@gmail.com> (raw)
From: Thierry Reding <treding@nvidia.com>
This series adds PCIe support for Tegra20, Tegra30 and Tegra124. The size is
mostly due to the large number of infrastructure that's added (libfdt, Tegra
specific drivers required by the PCIe driver).
Patches 1-5 add various FDT helpers to make it easier to parse complex device
trees.
Patch 6 is a minor cleanup to the PCI command that prevents a spew of error
messages if a bus does not exist. Patch 7 modifies the PCI enumeration code
to honor theh restrictions encoded within a host controller driver's
pci_ski_dev() implementation. This is required to prevent exceptions from
the NVIDIA Tegra PCIe controller.
Patch 8 imports the pr_fmt() macro used within the Linux kernel to reduce
the number of characters consumed by literal strings by allowing a source
file to specify a prefix or suffix that should be applied to all format
strings in the file. It is currently used by the debug() and error() macros.
Patches 9-14 are preparatory work for the Tegra PCIe controller. They add
missing clock driver functionality as well as drivers for the Tegra powergate
and XUSB pad controller blocks.
Patch 15 adds the PCIe controller driver for Tegra20, Tegra30 and Tegra124.
Finally, patches 16-23 add the various device tree nodes and configuration
options to enable PCIe on the TrimSlice (Tegra20), Beaver, Cardhu (Tegra30)
and Jetson TK1 (Tegra124) boards.
The above boards all have an ethernet NIC connected to PCIe, which is what
I tested with. There are some cache maintenance issues related to that, but
a separate series will shortly be sent out to address those.
Thierry
Thierry Reding (23):
fdt: Add functions to query a node's #address- and #size-cells
fdt: Add a function to get the index of a string
fdt: Add resource parsing functions
fdt: Add a function to return PCI BDF triplet
fdt: Add a subnodes iterator macro
pci: Abort early if bus does not exist
pci: Honour pci_skip_dev()
Add pr_fmt() macro
ARM: tegra: Implement tegra_plle_enable()
ARM: tegra: Provide PCIEXCLK reset ID
ARM: tegra: Implement powergate support
ARM: tegra: Implement XUSB pad controller
ARM: tegra: Add XUSB pad controller on Tegra124
ARM: tegra: Enable XUSB pad controller on Jetson TK1
pci: tegra: Add Tegra PCIe driver
ARM: tegra: Add Tegra20 PCIe device tree node
ARM: tegra: Enable PCIe on TrimSlice
ARM: tegra: Add Tegra30 PCIe device tree node
ARM: tegra: Enable PCIe on Beaver
ARM: tegra: Enable PCIe on Cardhu
ARM: tegra: Add GIC for Tegra124
ARM: tegra: Add Tegra124 PCIe device tree node
ARM: tegra: Enable PCIe on Jetson TK1
arch/arm/cpu/tegra-common/Makefile | 2 +
arch/arm/cpu/tegra-common/powergate.c | 80 ++
arch/arm/cpu/tegra-common/xusb-padctl.c | 39 +
arch/arm/cpu/tegra124-common/Makefile | 1 +
arch/arm/cpu/tegra124-common/clock.c | 109 +++
arch/arm/cpu/tegra124-common/xusb-padctl.c | 766 +++++++++++++++
arch/arm/cpu/tegra20-common/clock.c | 141 ++-
arch/arm/cpu/tegra30-common/clock.c | 155 +++
arch/arm/dts/tegra124-jetson-tk1.dts | 373 +++++++
arch/arm/dts/tegra124.dtsi | 90 ++
arch/arm/dts/tegra20-trimslice.dts | 35 +
arch/arm/dts/tegra20.dtsi | 56 ++
arch/arm/dts/tegra30-beaver.dts | 166 ++++
arch/arm/dts/tegra30-cardhu.dts | 357 +++++++
arch/arm/dts/tegra30.dtsi | 71 ++
arch/arm/include/asm/arch-tegra/powergate.h | 27 +
arch/arm/include/asm/arch-tegra/xusb-padctl.h | 14 +
arch/arm/include/asm/arch-tegra114/powergate.h | 6 +
arch/arm/include/asm/arch-tegra114/xusb-padctl.h | 6 +
arch/arm/include/asm/arch-tegra124/clock.h | 2 +
arch/arm/include/asm/arch-tegra124/powergate.h | 6 +
arch/arm/include/asm/arch-tegra124/xusb-padctl.h | 6 +
arch/arm/include/asm/arch-tegra20/clock-tables.h | 2 +-
arch/arm/include/asm/arch-tegra20/clock.h | 2 +
arch/arm/include/asm/arch-tegra20/powergate.h | 6 +
arch/arm/include/asm/arch-tegra20/xusb-padctl.h | 6 +
arch/arm/include/asm/arch-tegra30/clock.h | 2 +
arch/arm/include/asm/arch-tegra30/powergate.h | 6 +
arch/arm/include/asm/arch-tegra30/xusb-padctl.h | 6 +
board/compulab/trimslice/trimslice.c | 8 +
board/nvidia/cardhu/cardhu.c | 56 ++
board/nvidia/common/board.c | 3 +
board/nvidia/jetson-tk1/jetson-tk1.c | 218 +++++
common/cmd_pci.c | 7 +
drivers/pci/Makefile | 1 +
drivers/pci/pci.c | 3 +
drivers/pci/pci_tegra.c | 1133 ++++++++++++++++++++++
include/common.h | 14 +-
include/configs/beaver.h | 10 +
include/configs/cardhu.h | 10 +
include/configs/jetson-tk1.h | 10 +
include/configs/trimslice.h | 10 +
include/dt-bindings/clock/tegra124-car.h | 341 +++++++
include/dt-bindings/clock/tegra20-car.h | 158 +++
include/dt-bindings/clock/tegra30-car.h | 265 +++++
include/dt-bindings/pinctrl/pinctrl-tegra-xusb.h | 7 +
include/fdtdec.h | 64 ++
include/libfdt.h | 59 ++
include/pci.h | 1 +
lib/fdtdec.c | 61 ++
lib/libfdt/fdt_ro.c | 64 ++
51 files changed, 5033 insertions(+), 8 deletions(-)
create mode 100644 arch/arm/cpu/tegra-common/powergate.c
create mode 100644 arch/arm/cpu/tegra-common/xusb-padctl.c
create mode 100644 arch/arm/cpu/tegra124-common/xusb-padctl.c
create mode 100644 arch/arm/include/asm/arch-tegra/powergate.h
create mode 100644 arch/arm/include/asm/arch-tegra/xusb-padctl.h
create mode 100644 arch/arm/include/asm/arch-tegra114/powergate.h
create mode 100644 arch/arm/include/asm/arch-tegra114/xusb-padctl.h
create mode 100644 arch/arm/include/asm/arch-tegra124/powergate.h
create mode 100644 arch/arm/include/asm/arch-tegra124/xusb-padctl.h
create mode 100644 arch/arm/include/asm/arch-tegra20/powergate.h
create mode 100644 arch/arm/include/asm/arch-tegra20/xusb-padctl.h
create mode 100644 arch/arm/include/asm/arch-tegra30/powergate.h
create mode 100644 arch/arm/include/asm/arch-tegra30/xusb-padctl.h
create mode 100644 drivers/pci/pci_tegra.c
create mode 100644 include/dt-bindings/clock/tegra124-car.h
create mode 100644 include/dt-bindings/clock/tegra20-car.h
create mode 100644 include/dt-bindings/clock/tegra30-car.h
create mode 100644 include/dt-bindings/pinctrl/pinctrl-tegra-xusb.h
--
2.0.4
next reply other threads:[~2014-08-18 7:16 UTC|newest]
Thread overview: 92+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-18 7:16 Thierry Reding [this message]
2014-08-18 7:16 ` [U-Boot] [PATCH 01/23] fdt: Add functions to query a node's #address- and #size-cells Thierry Reding
2014-08-18 17:52 ` Simon Glass
2014-08-19 10:59 ` Thierry Reding
2014-08-19 12:52 ` Simon Glass
2014-08-19 13:06 ` Thierry Reding
2014-08-23 3:03 ` Simon Glass
2014-08-23 11:26 ` Thierry Reding
2014-08-18 7:16 ` [U-Boot] [PATCH 02/23] fdt: Add a function to get the index of a string Thierry Reding
2014-08-18 17:58 ` Simon Glass
2014-08-19 11:13 ` Thierry Reding
2014-08-18 7:16 ` [U-Boot] [PATCH 03/23] fdt: Add resource parsing functions Thierry Reding
2014-08-18 18:06 ` Simon Glass
2014-08-19 11:35 ` Thierry Reding
2014-08-19 12:55 ` Simon Glass
2014-08-19 13:12 ` Thierry Reding
2014-08-19 21:28 ` Simon Glass
2014-08-20 6:36 ` Thierry Reding
2014-08-20 14:05 ` Simon Glass
2014-08-18 7:16 ` [U-Boot] [PATCH 04/23] fdt: Add a function to return PCI BDF triplet Thierry Reding
2014-08-18 18:20 ` Simon Glass
2014-08-18 7:16 ` [U-Boot] [PATCH 05/23] fdt: Add a subnodes iterator macro Thierry Reding
2014-08-18 18:11 ` Simon Glass
2014-08-19 12:22 ` Thierry Reding
2014-08-19 12:57 ` Simon Glass
2014-08-19 13:12 ` Thierry Reding
2014-08-18 7:16 ` [U-Boot] [PATCH 06/23] pci: Abort early if bus does not exist Thierry Reding
2014-08-18 7:16 ` [U-Boot] [PATCH 07/23] pci: Honour pci_skip_dev() Thierry Reding
2014-08-18 7:16 ` [U-Boot] [PATCH 08/23] Add pr_fmt() macro Thierry Reding
2014-08-18 18:24 ` Simon Glass
2014-08-19 12:27 ` Thierry Reding
2014-08-19 12:58 ` Simon Glass
2014-08-18 7:16 ` [U-Boot] [PATCH 09/23] ARM: tegra: Implement tegra_plle_enable() Thierry Reding
2014-08-20 18:12 ` Stephen Warren
2014-08-18 7:16 ` [U-Boot] [PATCH 10/23] ARM: tegra: Provide PCIEXCLK reset ID Thierry Reding
2014-08-20 18:20 ` Stephen Warren
2014-08-22 12:38 ` Thierry Reding
2014-08-18 7:16 ` [U-Boot] [PATCH 11/23] ARM: tegra: Implement powergate support Thierry Reding
2014-08-20 18:24 ` Stephen Warren
2014-08-22 13:54 ` Thierry Reding
2014-08-18 7:16 ` [U-Boot] [PATCH 12/23] ARM: tegra: Implement XUSB pad controller Thierry Reding
2014-08-20 18:32 ` Stephen Warren
2014-08-22 14:11 ` Thierry Reding
2014-08-22 14:38 ` Thierry Reding
2014-08-18 7:16 ` [U-Boot] [PATCH 13/23] ARM: tegra: Add XUSB pad controller on Tegra124 Thierry Reding
2014-08-20 18:33 ` Stephen Warren
2014-08-18 7:16 ` [U-Boot] [PATCH 14/23] ARM: tegra: Enable XUSB pad controller on Jetson TK1 Thierry Reding
2014-08-20 18:34 ` Stephen Warren
2014-08-18 7:16 ` [U-Boot] [PATCH 15/23] pci: tegra: Add Tegra PCIe driver Thierry Reding
2014-08-20 19:04 ` Stephen Warren
2014-08-22 15:24 ` Thierry Reding
2014-08-22 17:33 ` Stephen Warren
2014-08-22 19:41 ` Thierry Reding
2014-08-18 7:16 ` [U-Boot] [PATCH 16/23] ARM: tegra: Add Tegra20 PCIe device tree node Thierry Reding
2014-08-20 18:37 ` Stephen Warren
2014-08-18 7:16 ` [U-Boot] [PATCH 17/23] ARM: tegra: Enable PCIe on TrimSlice Thierry Reding
2014-08-20 18:38 ` Stephen Warren
2014-08-22 14:44 ` Thierry Reding
2014-08-18 7:16 ` [U-Boot] [PATCH 18/23] ARM: tegra: Add Tegra30 PCIe device tree node Thierry Reding
2014-08-20 18:39 ` Stephen Warren
2014-08-22 14:51 ` Thierry Reding
2014-08-18 7:16 ` [U-Boot] [PATCH 19/23] ARM: tegra: Enable PCIe on Beaver Thierry Reding
2014-08-19 13:48 ` Marcel Ziswiler
2014-08-20 6:38 ` Thierry Reding
2014-08-20 8:56 ` Marcel Ziswiler
2014-08-20 9:46 ` Thierry Reding
2014-08-20 13:13 ` Marcel Ziswiler
2014-08-20 18:43 ` Stephen Warren
2014-08-22 12:33 ` Thierry Reding
2014-08-18 7:16 ` [U-Boot] [PATCH 20/23] ARM: tegra: Enable PCIe on Cardhu Thierry Reding
2014-08-18 7:16 ` [U-Boot] [PATCH 21/23] ARM: tegra: Add GIC for Tegra124 Thierry Reding
2014-08-20 18:45 ` Stephen Warren
2014-08-18 7:16 ` [U-Boot] [PATCH 22/23] ARM: tegra: Add Tegra124 PCIe device tree node Thierry Reding
2014-08-20 18:46 ` Stephen Warren
2014-08-18 7:16 ` [U-Boot] [PATCH 23/23] ARM: tegra: Enable PCIe on Jetson TK1 Thierry Reding
2014-08-18 18:37 ` Simon Glass
2014-08-19 12:29 ` Thierry Reding
2014-08-19 13:07 ` Simon Glass
2014-08-20 18:51 ` Stephen Warren
2014-08-22 12:09 ` Thierry Reding
2014-08-22 18:50 ` Stephen Warren
2014-08-22 19:27 ` Simon Glass
2014-08-22 19:40 ` Thierry Reding
2014-08-22 20:12 ` Simon Glass
2014-08-22 22:03 ` Thierry Reding
2014-08-23 1:47 ` Simon Glass
2014-08-23 11:33 ` Thierry Reding
2014-08-20 18:54 ` Stephen Warren
2014-08-26 12:54 ` Tuomas Tynkkynen
2014-08-27 13:28 ` Thierry Reding
2014-08-27 14:34 ` Thierry Reding
2014-08-27 16:52 ` Tuomas Tynkkynen
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=1408346196-30419-1-git-send-email-thierry.reding@gmail.com \
--to=thierry.reding@gmail.com \
--cc=u-boot@lists.denx.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