Tegra/Mainline SW/Linux kernel
NVIDIA Tegra SoCs are well supported by mainline kernels.
Kernel releases may be obtained from:
- https://www.kernel.org/ releases, via download.
- https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/ releases, via git.
- https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/ absolute latest development code, via git.
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!||YES||> v3.3||> v3.9||> v3.13|
|CPU frequency scaling||YES||?||?||?|
|USB 2.0 Host||YES||YES||YES||YES|
A probably-incomplete list of features that are not yet implemented is:
- Kepler GPU support via Nouveau (work in progress).
- Advanced (high-speed) transfer modes for SD and eMMC. IO voltage scaling.
- PCIe on Tegra124. Thierry Reding is working on this.
- USB3 controller. Andrew Bresticker is working on this.
- 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?