Jump to content

Compiling Jetson TX1/TX2 source code: Difference between revisions

Line 339: Line 339:
EKSFILE="bootloader/eks.img";
EKSFILE="bootloader/eks.img";
FBFILE="bootloader/reserved_fb.xml";
FBFILE="bootloader/reserved_fb.xml";
</pre>
= Bootloader =
The bootloader is a combination of NVIDIA T-Boot (nvtboot) and U-Boot. You can read about the BOOT FLOW in the [http://http.download.nvidia.com/tegra-public-appnotes/t210-nvtboot-flow.html nvtboot wiki page].
According to the [https://devtalk.nvidia.com/default/topic/762653/?comment=4654303 devtalk forum] there are two ways to boot the board: fast boot and uboot
*Fastboot is simpler, and offers no options during boot. It strictly looks for a kernel in the GPT partition from the install's "-k 6" option. This would probably be the way to go for a non-interactive embedded appliance (if not bare metal booting).
*U-boot offers more options, and looks for a zImage in the /boot partition. Boot configuration can also be edited here, for example I threw in a couple of zImage variants (like debugging version and network options added), and edited extlinux.conf...and magically I can boot to any of those kernels at the serial console boot prompt (provided my eye is fast). No flash was required for any kernel beyond the first kernel.
Inside of the bootloader directory you will find several binaries or components, to get a description of these please read the [http://http.download.nvidia.com/tegra-public-appnotes/t210-nvtboot-flow.html nvtboot wiki page].
== Steps ==
1. Backup original uboot files. You see which platform you are using checking the file in $DEVDIR/TX1/Linux_for_Tegra_tx1/jetson-tx1.conf, it says:
<pre>
SYSBOOTFILE=p2371-2180-devkit/extlinux.conf;
</pre>
copy the files to the packages-backup directory
<pre>
cp -rf $DEVDIR/TX1/Linux_for_Tegra_tx1/bootloader/t210ref/p2371-2180-devkit $DEVDIR/images/packages-backup/
</pre>
2. Go to uboot and set environment variables
<pre>
cd $DEVDIR/TX1/Linux_for_Tegra_tx1/sources/u-boot_source/
export CROSS_COMPILE=/opt/linaro/gcc-linaro-5.3-2016.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-
export ARCH=arm64
</pre>
3. Clean and compile
<pre>
make distclean
make p2371-2180_defconfig
make
</pre>
</pre>


Cookies help us deliver our services. By using our services, you agree to our use of cookies.