Nvidia SHIELD TV 2015 / 2015 Pro / 2017 Pro (nvidia-foster)

From postmarketOS Wiki
Nvidia SHIELD TV
Nvidia SHIELD TV
Nvidia SHIELD TV
Manufacturer Nvidia
Name SHIELD TV
Codename nvidia-foster
Released 2015
Type set-top box
Hardware
Chipset Nvidia Tegra X1 (T210)
CPU 4x 1.0-2.2 GHz Cortex-A57, 4x 1.3 GHz Cortex-A53
GPU Tegra X1 (GM20B)
Display HDMI
Storage 16/500 GB
Memory 3 GB
Architecture aarch64
Software
Original software Android (TV)
Original version 5.1
FOSS bootloader partial
postmarketOS
Category testing
Pre-built images no
Mainline yes
This device has been tested with postmarketOS, but its device package has not yet been added to the postmarketOS repositories.
This means that it cannot be selected in pmbootstrap.
Features
Flashing
Broken
USB Networking
Works
Internal storage
Works
SD card
Works
Multimedia
3D Acceleration
Works
Audio
Works
IR RX
Works
Connectivity
WiFi
Works
Bluetooth
Works
Ethernet
Works
Miscellaneous
FDE
USB-A
Works
USB OTG
HDMI/DP
Works
U-Boot
Primary Bootloader
Broken
Secondary Bootloader
Partial
Mainline
Works
Internal Storage
Broken
SD card
Works
USB Host
Broken
USB Peripheral
Broken
Buttons
Works

This page is for P2571 board based (foster) SHIELD TV variants.

Contributors

Users owning this device

  • Illen (Notes: 16 GB variant, runs mainline)


How to enter flash mode

Connect the device to host (using microUSB port), power it on and after 2 seconds hold the power button until bootloader menu shows up.

Installation

Booting mainline kernel

The vendor bootloader (CBoot) passes the device tree blob from DTB partition. Flashing this partition is proven to be unsafe, which makes it not feasible to boot non-vendor kernel. Fortunately U-Boot supports the P2571 board and it works good enough to be used as a secondary loader.

Mainline kernel status

Most of features are working except:

  • Hardware video decoding/encoding
  • Cooling fan (therefore I don't recommend overloading it too much).
  • eMMC/SATA are disabled because there's no TegraPT support included in the fork.

GPU reclocking

You can put this GPU into higher power state for better performance (like older NVidia GPUs running with nouveau).

cat /sys/kernel/debug/dri/1/pstate
01: core 76 MHz AC DC *
02: core 153 MHz
03: core 230 MHz
04: core 307 MHz
05: core 384 MHz
06: core 460 MHz
07: core 537 MHz
08: core 614 MHz
09: core 691 MHz
0a: core 768 MHz
0b: core 844 MHz
0c: core 921 MHz
0d: core 998 MHz
DC: core 76 MHz

Seems like currently 0a state is the highest stable.

echo 0a > /sys/kernel/debug/dri/1/pstate

Lightbar

Mainline fork includes the Lightbar LED driver brought from vendor kernel.

This lightbar support 3 modes; normal (default), breathing and blinking

echo breathing > /sys/class/leds/nvidia:green:lightbar/effects

Or to just shut it off: echo 0 > /sys/class/leds/nvidia:green:lightbar/birghtness

Mainline U-Boot status

Can boot from SD cards, USB/eMMC doesn't work. Uses simple framebuffer for video output because there is no HDMI video out support for Tegra 210 in U-Boot.

See also