Join GitHub today
GitHub is home to over 36 million developers working together to host and review code, manage projects, and build software together.Sign up
Tegra X1 EL2 freestanding demo
Fetching latest commit…
Cannot retrieve the latest commit at this time.
|Type||Name||Latest commit message||Commit time|
|Failed to load latest commit information.|
64-bit ARM OS/Kernel/Systems Development on an nVidia Shield TV =============================================================== The Shield TV is based on the 64-bit nVidia X1 chip. The Shield TV allows performing an unlock via "fastboot oem unlock", allowing custom OS images to be booted. _,.-+^*'_,.-+^*'_,.-+^*'_,.-+^*'_,.-+^*'_,.-+^*' nVidia...are you listening? Uncripple your firmware so booting custom images is not a song-and-dance (you broke it in 1.4!) and at least TELL us where the UART pads are on the motherboard. If you're really cool put together an "official" Ubuntu image that runs on the TX1 and the Shield (and fix SCR_EL3.HCE, too). _,.-+^*'_,.-+^*'_,.-+^*'_,.-+^*'_,.-+^*'_,.-+^*' What this is ============= This is a small demo, demonstrating how to build and boot arbitrary code on your Shield TV. What you need - required ======================== * A Shield TV, unlocked. Search Youtube for walkthroughs. * 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. * $ adb reboot-bootloader ...you should now see the nvidia splash screen, followed by the boot menu. * If OS is 1.3, then 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 the screen. The code will now start. You will see text and some drawn diagonal lines black background. The text should say we're at EL2 and the lines should be green. The drawing will be slow - the MMU is off and the caches are thus disabled. Let me know if it's interesting to see the MMU setup code. Credits ======= There's borrowed code from U-boot (cfb_console.c), Linux (vsprintf.c, string.c) and libfdt. Where to go from here ===================== - nv-tegra.nvidia.com/gitweb/?p=linux-3.10.git;a=summary - no idea where the TRM would be, but a lot of the peripherals seem to match the K1 (UART...), it's a Tegra after all. Use the DTS for the real bases.