64-bit ARM OS/Kernel/Systems Development on an nVidia Shield TV (Tegra X1)The Shield TV is based on the 64-bit nVidia X1 chip. Unlike the K1, this is actually a Cortex-A57 based design, instead of being based on the nVidia "Denver" design. That by itself is kind of interesting already. The Shield TV was available much much earlier than the X1-based nVidia development board (Jetson TX1, you can even buy it on Amazon), and costs about a third of the TX1. The Shield TV allows performing an unlock via "fastboot oem unlock", allowing custom OS images to be booted. Unlike the TX1, you don't get a UART (and I haven't found the UART pads yet, either).
What this ishttps://github.com/andreiw/shieldTV_demo
This is a small demo, demonstrating how to build and boot arbitrary code on your Tegra Shield TV. Unlike the previous Tegra K1 demo, you get EL2 (hypervisor mode!).
- A Shield TV, unlocked. Search Youtube for walkthroughs.
- Shield OS version >= 1.3.
- GNU Make.
- An AArch64 GNU toolchain.
- ADB/Fastboot tools.
- Bootimg tools (https://github.com/pbatard/bootimg-tools), built and somewhere in your path.
- An HDMI-capable screen. Note, HDMI, not DVI-HDMI adapter. You want the firmware to configure the screen into 1920x1080 mode, otherwise you'll be in 640x480 and we don't want that...
How to build
$ CROSS_COMPILE=aarch64-linux-gnu- make...should yield 'shieldTV_demo'.
How to boot
- Connect the Shield TV a USB cable to your dev workstation.
- Reboot device via:
$ adb reboot-bootloader...you should now see the nVidia splash screen, followed by the boot menu.
- If OS is 1.3, you can simply:
$ fastboot boot shieldTV_demo
- If OS is 1.4 or 2.1, you will need to:
$ fastboot flash recovery shieldTV_demo...and then boot the "recovery kernel" by following instructions on screen.
Let me know if it's interesting to see the MMU setup code.