Tegra/Mainline SW/Linux kernel

From eLinux.org
Jump to: navigation, search

NVIDIA Tegra SoCs are well supported by mainline kernels.

Kernel releases may be obtained from:

The following mainline kernel releases introduced support for Tegra SoCs:

  • Tegra20 has been upstream for many years.
  • Tegra30 support was added in v3.3.
  • Tegra114 support was added in v3.9.
  • Tegra124 support was added in v3.13.

The first kernel release to support a given SoC has historically contained extremely minimal support. One or two kernel releases later will typically be the first useful version.

Features that already work are:

  • It boots!
  • Serial console.
  • CPU hotplug.
  • CPU frequency scaling (basic, for Tegra20 only).
  • I2C master.
  • Regulators, PMICs, RTCs.
  • SPI.
  • SD/eMMC.
  • USB2 Host.
  • Display controller (not all I/O interfaces on all SoCs; see below):
    • RGB/LVDS for Tegra20/30 (for LCD panel support).
    • DSI for Tegra114 (for LCD panel support).
    • eDP for Tegra124 (for LCD panel support).
    • HDMI for Tegra20/30/114/124.
  • PCIe (Tegra20/30).

A probably-incomplete list of features that are not yet implemented is:

  • Kepler GPU support via Nouvea (work in progress).
  • Advanced (high-speed) transfer modes for SD and eMMC. IO voltage scaling.
  • PCIe on Tegra124.
  • USB3 controller.
  • SATA.
  • USB2 device mode and OTG.
  • SKU awareness (SKU-specific clock and thermal limits).
  • POR (Plan Of Record) clocks.
  • cpufreq for SoCs other than Tegra20.
  • EMC (memory controller) frequency scaling.
  • DVFS (Dynamic Voltage and Frequency Scaling).
  • Thermal management.
  • USB2 bus power saving.
  • I2C slave support. The Toshiba AC100 NVEC driver could be generalized to provide this.
  • SPI slave support?