Nvidia Tegra 2/3/4
SoCs
![]() NVIDIA T20 chip | |
Manufacturer | Nvidia |
---|---|
Name | Tegra 2 |
Architecture | armv7 |
CPU | 2x 1.0/1.2 GHz ARM Cortex-A9 |
GPU | Nvidia ULP Geforce |
Year | 2010 |
Process | 40nm |
Mainline | yes |
Community Page | https://github.com/grate-driver |
Components | |
CPU |
Works |
UART |
Works |
Storage |
Works |
USB |
Works |
Display |
Works |
GPU |
Partial |
Pinctrl |
Works |
I²C |
Works |
SPI |
Works |
Audio |
Works |
Video |
Partial |
Thermal |
Works |
Camera |
Broken |
NPU |
No data |
Suspend |
Works |
Ethernet |
No data |
SATA |
No data |
![]() NVIDIA T30 chip | |
Manufacturer | Nvidia |
---|---|
Name | Tegra 3 |
Architecture | armv7 |
CPU | 4x 1.2/1.4/1.6 GHz ARM Cortex-A9 |
GPU | Nvidia ULP Geforce |
Year | 2011 |
Process | 40nm |
Mainline | yes |
Community Page | https://github.com/grate-driver |
Components | |
CPU |
Works |
UART |
Works |
Storage |
Works |
USB |
Works |
Display |
Works |
GPU |
Partial |
Pinctrl |
Works |
I²C |
Works |
SPI |
Works |
Audio |
Works |
Video |
Partial |
Thermal |
Works |
Camera |
Broken |
NPU |
No data |
Suspend |
Works |
Ethernet |
No data |
SATA |
No data |
![]() NVIDIA T114 chip | |
Manufacturer | Nvidia |
---|---|
Name | Tegra 4 |
Architecture | armv7 |
CPU | 4x 1.8-1.9 GHz Cortex-A15 |
GPU | Nvidia ULP Geforce 72 cores |
Year | 2013 |
Process | 28nm |
Mainline | yes |
Community Page | https://github.com/grate-driver |
Components | |
CPU |
Partial |
UART |
Works |
Storage |
Works |
USB |
Partial |
Display |
Works |
GPU |
Partial |
Pinctrl |
Works |
I²C |
Works |
SPI |
No data |
Audio |
Works |
Video |
Partial |
Thermal |
Works |
Camera |
Broken |
NPU |
No data |
Suspend |
Works |
Ethernet |
No data |
SATA |
No data |
Tegra 2
Devices with a Tegra 2 Chipset
CPU
Tegra 2 uses 2 A9 cores, but it doesn't have NEON instructions.
Tegra 3
Devices with a Nvidia Tegra 3 Chipset
Tegra 4
Devices with a Nvidia Tegra 4 Chipset
Device | Mainline |
---|---|
Asus Transformer Pad (TF701T) | Y |
HP Slate 21 | |
Microsoft Surface 2 | Y |
Nvidia Tegra Note 7 | Y |
List of missing/malfunctioning drivers
- DSI driver and MIPI calibration (malfunctioning on TF701T)
- HDMI driver (no evidence that it can work on T114)
- ACTMON driver (is present but has dependency on missing driver)
- SPI driver (fails to detect some spi devices)
- EMC/external-memory-controller driver (missing, required by actmon)
- HDA driver (T30 has T114 support but it fails to work)
- XUSB and XUSB-padctl (missing, T124 may be used as reference)
- CEC driver (present but not tested since HDMI does not work)
- SOCTHERM driver and thermal zones (missing, T124 may be used as reference)
- DFLL driver (missing, T124 may be used as reference)
- cortex-a15-pmu (check if it is used by t114)
- powergates and power-domains (check if it is needed by t114)
GPU
Tegra 2/3/4 use grate driver.
Tegra K1 and newer use nouveau.
However, all Tegra SoCs share drm driver.
Tegra 2/3/4
Components (source)
- Mesa-3D (minimal implementation, not complete enough (GL 1.4) to run XWayland (requires GL 2.1 or GLES2)
- xf86-video-tegra (2D acceleration for X11, EXA)
- libvdpau-tegra
Usability
Wayland:
- Phosh works, but UI is accelerated trough llvmpipe (software rendering), thus is slow.
- Plasma mobile not tested (please update)
X11:
- Xfce4 and Mate desktop will run on 2D acceleration.
- Hildon requires an OpenGL backend.
- As of cogl 1.22.2 the clutter/cogl backend requires stencil buffers (
EGL_STENCIL_SIZE
). This not yet implemented in the grate-driver.
- As of cogl 1.22.2 the clutter/cogl backend requires stencil buffers (
Tegra K1 and newer
See https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2960
Video Decoding
Video Decoder Engine (VDE) was added to mainline kernel v4.16. The grate-driver includes hardware h264 decoding with libvdpau-tegra.
The vdpau driver does not support h264 videos encoded with:
- weighted prediction
- CABAC
Sample video that can be decoded with hardware acceleration: https://peach.blender.org/trailer-page/
$ mpv --hwdec=vdpau trailer_720p.mov
Using hardware decoding (vdpau).
VO: [vdpau] 1280x720 vdpau[yuv420p]
Participate development
Develop
Mesa3D Gallium driver
https://github.com/grate-driver/mesa
- Host1x ABI rework (required before mesa implemenetation): (G. docs)
- migrate from TGSI to NIR
- establishing demos that work, where can be seen regression
New Device Trees
To generate the correct RAM timings for new Tegra 3 devices from known kernel sources, you can start from the known (downstream) RAM model code, and generate valid timings using this tool by Ion Agorria: https://gitlab.com/IonAgorria/tegra-timings-generator.
The #postmarketOS-on-transformers:matrix.org chat room will also be an excellent starting point for the porting of any new Tegra 2/3/4 device, also outside strictly the ASUS Transformer series