[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