[U-Boot] [PATCH v4 0/23] ARM: tegra: Add PCIe support

Simon Glass sjg at chromium.org
Wed Dec 17 03:10:44 CET 2014


Hi Tom,

On 9 December 2014 at 22:25, Simon Glass <sjg at chromium.org> wrote:
> From: Thierry Reding <treding at nvidia.com>
>
> (Commit message updated by Simon Glass <sjg at 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.
>
> Some patches have already been applied to this series.
>
> Patch 1 implements a driver for the AS3722 PMIC used on the Venice2 and
> Jetson TK1 boards.
>
> Patches 2-7 are preparatory work for the Tegra PCIe controller. They add
> missing clock driver functionality as well as drivers for the Tegra powergat
> and XUSB pad controller blocks.
>
> Patch 8 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 9-17.
>
> Patch 18 implements 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 19 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 20-23 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 v4:
> - Use const unsigned for bus and address
> - Insert missing word 'to' in a comment
> - Fix typo in commit message
>
> 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 (23):
>   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: 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

The I2C things have hit mainline now so this series is ready now.

There is a trivial fix on the 'Enable non-cached memory' patch - you
can add the CONFIG immediately below CONFIG_SYS_NONCACHED_MEMORY
perhaps.

I pushed my take on it to u-boot-dm/pcie-working in case it helps.


>
>  README                                           |   19 +
>  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                    |    5 +
>  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 +
>  drivers/net/rtl8169.c                            |  127 ++-
>  drivers/pci/Makefile                             |    1 +
>  drivers/pci/pci_tegra.c                          | 1143 ++++++++++++++++++++++
>  drivers/power/Makefile                           |    1 +
>  drivers/power/as3722.c                           |  264 +++++
>  include/configs/beaver.h                         |   10 +
>  include/configs/cardhu.h                         |   10 +
>  include/configs/jetson-tk1.h                     |   13 +
>  include/configs/tegra-common.h                   |    2 +
>  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/power/as3722.h                           |   27 +
>  lib/fdtdec.c                                     |    5 +
>  49 files changed, 4424 insertions(+), 39 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.2.0.rc0.207.ga3a616c
>

Regards,
Simon


More information about the U-Boot mailing list