public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH v3 0/30] ARM: tegra: Add PCIe support
@ 2014-11-13  1:26 Simon Glass
  2014-11-13  1:26 ` [U-Boot] [PATCH v3 01/30] vsprintf: Add modifier for phys_addr_t Simon Glass
                   ` (29 more replies)
  0 siblings, 30 replies; 45+ messages in thread
From: Simon Glass @ 2014-11-13  1:26 UTC (permalink / raw)
  To: u-boot

From: Thierry Reding <treding <at> nvidia.com>

(Commit message updated by Simon Glass <sjg@chromium.org> who is sending
this series originally created by Thierry)

This series adds PCIe support for Tegra20, Tegra30 and Tegra124. The size is
mostly due to the large number of infrastructure that's added (Tegra-
specific drivers required by the PCIe driver). In this version I've included
all patches that were previously split into three separate series. Spreading
them over multiple series is probably not worth it since there might be some
dependencies between them and only the end result gives a completely working
setup.

Patch 1 adds a %pa modifier to printf() to print physical addresses. This is
required to allow code to output such addresses irrespective of whether a 64
bit or 32 bit architecture is built for.

Patch 2 is a minor cleanup to the PCI command that prevents a spew of error
messages if a bus does not exist. Patch 3 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 4 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.

Patch 5 implements a driver for the AS3722 PMIC used on the Venice2 and
Jetson TK1 boards.

Patches 6-11 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 12 adds the PCIe controller driver for Tegra20, Tegra30 and Tegra124.

Device tree nodes and configurations options to enable PCIe on the TrimSlice
(Tegra20), Beaver, Cardhu (Tegra30) and Jetson TK1 (Tegra124) boards are
added in patches 13-21.

Patches 22-25 implement non-cached memory support that will be used in the
last batch of patches to implement more reliable packet transfers in the
r8169 driver. Patch 26 enables non-cached memory support on Tegra.

(Note from Simon: These patches may have already been applied in the ARM
tree, but I can't see them there).

Finally, patches 27-30 implement non-cached memory support and various fixes
in the r8169 driver and add support for the revision of the NIC found on the
Jetson TK1.

The above boards all have an ethernet NIC connected to PCIe, which is what
I tested with.

Note from Simon: I have:

- rebased this on top of the I2C driver model series
- dropped the I2C framework patches
- adjust the PMIC driver and code that calls it to use driver mode
- tested the I2C changes on Jetson-TK1

Changes in v3:
- Use driver model for the PMIC
- Use driver model to access the PMIC
- Use driver model to access the PMIC
- Avoid build error with noncached_init() when the dcache is disabled
- Remove cache-line size warning if dcache is disabled

Thierry Reding (30):
  vsprintf: Add modifier for phys_addr_t
  pci: Abort early if bus does not exist
  pci: Honour pci_skip_dev()
  Add pr_fmt() macro
  power: Add AMS AS3722 PMIC support
  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 GIC for Tegra30
  ARM: tegra: Add Tegra30 PCIe device tree node
  ARM: tegra: Enable PCIe on Cardhu
  ARM: tegra: Enable PCIe on Beaver
  ARM: tegra: Add GIC for Tegra124
  ARM: tegra: Add Tegra124 PCIe device tree node
  ARM: tegra: Enable PCIe on Jetson TK1
  ARM: cache_v7: Various minor cleanups
  ARM: cache-cp15: Use more accurate types
  malloc: Output region when debugging
  ARM: Implement non-cached memory support
  ARM: tegra: Enable non-cached memory
  net: rtl8169: Honor CONFIG_SYS_RX_ETH_BUFFER
  net: rtl8169: Properly align buffers
  net: rtl8169: Use non-cached memory if available
  net: rtl8169: Add support for RTL-8168/8111g

 README                                           |   19 +
 arch/arm/cpu/armv7/cache_v7.c                    |   14 +-
 arch/arm/cpu/tegra-common/Makefile               |    2 +
 arch/arm/cpu/tegra-common/powergate.c            |  102 ++
 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       |  716 ++++++++++++++
 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                       |   89 ++
 arch/arm/dts/tegra20-trimslice.dts               |   69 ++
 arch/arm/dts/tegra20.dtsi                        |   59 ++
 arch/arm/dts/tegra30-beaver.dts                  |  245 +++++
 arch/arm/dts/tegra30-cardhu.dts                  |  362 +++++++
 arch/arm/dts/tegra30.dtsi                        |   83 ++
 arch/arm/include/asm/arch-tegra/powergate.h      |   38 +
 arch/arm/include/asm/arch-tegra/xusb-padctl.h    |   24 +
 arch/arm/include/asm/arch-tegra114/powergate.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-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-tegra30/clock.h        |    2 +
 arch/arm/include/asm/arch-tegra30/powergate.h    |    6 +
 arch/arm/include/asm/system.h                    |    7 +-
 arch/arm/lib/cache-cp15.c                        |    6 +-
 arch/arm/lib/cache.c                             |   44 +
 board/compulab/trimslice/trimslice.c             |    8 +
 board/nvidia/cardhu/cardhu.c                     |   52 +
 board/nvidia/common/board.c                      |    3 +
 board/nvidia/jetson-tk1/jetson-tk1.c             |   52 +
 common/board_r.c                                 |   11 +
 common/cmd_pci.c                                 |    7 +
 common/dlmalloc.c                                |    3 +
 drivers/net/rtl8169.c                            |  127 ++-
 drivers/pci/Makefile                             |    1 +
 drivers/pci/pci.c                                |    3 +
 drivers/pci/pci_tegra.c                          | 1143 ++++++++++++++++++++++
 drivers/power/Makefile                           |    1 +
 drivers/power/as3722.c                           |  264 +++++
 include/common.h                                 |   14 +-
 include/configs/beaver.h                         |   10 +
 include/configs/cardhu.h                         |   10 +
 include/configs/jetson-tk1.h                     |   13 +
 include/configs/tegra-common.h                   |    1 +
 include/configs/trimslice.h                      |   10 +
 include/dt-bindings/clock/tegra20-car.h          |    2 +-
 include/dt-bindings/clock/tegra30-car.h          |    2 +-
 include/dt-bindings/pinctrl/pinctrl-tegra-xusb.h |    7 +
 include/fdtdec.h                                 |    6 +
 include/pci.h                                    |    1 +
 include/power/as3722.h                           |   27 +
 lib/fdtdec.c                                     |    5 +
 lib/vsprintf.c                                   |   16 +-
 57 files changed, 4471 insertions(+), 57 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-tegra124/powergate.h
 create mode 100644 arch/arm/include/asm/arch-tegra20/powergate.h
 create mode 100644 arch/arm/include/asm/arch-tegra30/powergate.h
 create mode 100644 drivers/pci/pci_tegra.c
 create mode 100644 drivers/power/as3722.c
 create mode 100644 include/dt-bindings/pinctrl/pinctrl-tegra-xusb.h
 create mode 100644 include/power/as3722.h

-- 
2.1.0.rc2.206.gedb03e5

^ permalink raw reply	[flat|nested] 45+ messages in thread

end of thread, other threads:[~2014-11-24 22:11 UTC | newest]

Thread overview: 45+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-11-13  1:26 [U-Boot] [PATCH v3 0/30] ARM: tegra: Add PCIe support Simon Glass
2014-11-13  1:26 ` [U-Boot] [PATCH v3 01/30] vsprintf: Add modifier for phys_addr_t Simon Glass
2014-11-17 10:18   ` Thierry Reding
2014-11-17 18:31     ` Simon Glass
2014-11-24 22:11   ` [U-Boot] [U-Boot, v3, " Tom Rini
2014-11-13  1:26 ` [U-Boot] [PATCH v3 02/30] pci: Abort early if bus does not exist Simon Glass
2014-11-24 22:11   ` [U-Boot] [U-Boot, v3, " Tom Rini
2014-11-13  1:26 ` [U-Boot] [PATCH v3 03/30] pci: Honour pci_skip_dev() Simon Glass
2014-11-24 22:11   ` [U-Boot] [U-Boot,v3,03/30] " Tom Rini
2014-11-13  1:26 ` [U-Boot] [PATCH v3 04/30] Add pr_fmt() macro Simon Glass
2014-11-24 22:11   ` [U-Boot] [U-Boot,v3,04/30] " Tom Rini
2014-11-13  1:26 ` [U-Boot] [PATCH v3 05/30] power: Add AMS AS3722 PMIC support Simon Glass
2014-11-17 10:04   ` Thierry Reding
2014-11-17 18:30     ` Simon Glass
2014-11-13  1:26 ` [U-Boot] [PATCH v3 06/30] ARM: tegra: Implement tegra_plle_enable() Simon Glass
2014-11-13  1:26 ` [U-Boot] [PATCH v3 07/30] ARM: tegra: Provide PCIEXCLK reset ID Simon Glass
2014-11-13  1:26 ` [U-Boot] [PATCH v3 08/30] ARM: tegra: Implement powergate support Simon Glass
2014-11-13  1:26 ` [U-Boot] [PATCH v3 09/30] ARM: tegra: Implement XUSB pad controller Simon Glass
2014-11-13  1:26 ` [U-Boot] [PATCH v3 10/30] ARM: tegra: Add XUSB pad controller on Tegra124 Simon Glass
2014-11-13  1:26 ` [U-Boot] [PATCH v3 11/30] ARM: tegra: Enable XUSB pad controller on Jetson TK1 Simon Glass
2014-11-13  1:26 ` [U-Boot] [PATCH v3 12/30] pci: tegra: Add Tegra PCIe driver Simon Glass
2014-11-13  1:26 ` [U-Boot] [PATCH v3 13/30] ARM: tegra: Add Tegra20 PCIe device tree node Simon Glass
2014-11-13  1:27 ` [U-Boot] [PATCH v3 14/30] ARM: tegra: Enable PCIe on TrimSlice Simon Glass
2014-11-13  1:27 ` [U-Boot] [PATCH v3 15/30] ARM: tegra: Add GIC for Tegra30 Simon Glass
2014-11-13  1:27 ` [U-Boot] [PATCH v3 16/30] ARM: tegra: Add Tegra30 PCIe device tree node Simon Glass
2014-11-13  1:27 ` [U-Boot] [PATCH v3 17/30] ARM: tegra: Enable PCIe on Cardhu Simon Glass
2014-11-13  1:27 ` [U-Boot] [PATCH v3 18/30] ARM: tegra: Enable PCIe on Beaver Simon Glass
2014-11-13  1:27 ` [U-Boot] [PATCH v3 19/30] ARM: tegra: Add GIC for Tegra124 Simon Glass
2014-11-13  1:27 ` [U-Boot] [PATCH v3 20/30] ARM: tegra: Add Tegra124 PCIe device tree node Simon Glass
2014-11-13  1:27 ` [U-Boot] [PATCH v3 21/30] ARM: tegra: Enable PCIe on Jetson TK1 Simon Glass
2014-11-13  1:27 ` [U-Boot] [PATCH v3 22/30] ARM: cache_v7: Various minor cleanups Simon Glass
2014-11-14  8:00   ` Albert ARIBAUD
2014-11-15  1:54     ` Simon Glass
2014-11-13  1:27 ` [U-Boot] [PATCH v3 23/30] ARM: cache-cp15: Use more accurate types Simon Glass
2014-11-14  8:00   ` Albert ARIBAUD
2014-11-13  1:27 ` [U-Boot] [PATCH v3 24/30] malloc: Output region when debugging Simon Glass
2014-11-24 22:11   ` [U-Boot] [U-Boot, v3, " Tom Rini
2014-11-13  1:27 ` [U-Boot] [PATCH v3 25/30] ARM: Implement non-cached memory support Simon Glass
2014-11-13  1:27 ` [U-Boot] [PATCH v3 26/30] ARM: tegra: Enable non-cached memory Simon Glass
2014-11-13  1:27 ` [U-Boot] [PATCH v3 27/30] net: rtl8169: Honor CONFIG_SYS_RX_ETH_BUFFER Simon Glass
2014-11-13  1:27 ` [U-Boot] [PATCH v3 28/30] net: rtl8169: Properly align buffers Simon Glass
2014-11-13  1:27 ` [U-Boot] [PATCH v3 29/30] net: rtl8169: Use non-cached memory if available Simon Glass
2014-11-17 10:16   ` Thierry Reding
2014-11-13  1:27 ` [U-Boot] [PATCH v3 30/30] net: rtl8169: Add support for RTL-8168/8111g Simon Glass
2014-11-17 10:14   ` Thierry Reding

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox