1, the official website download source code:
https://developer.nvidia.com/embedded/downloads#?tx= $software, L4T-TX1
Unzip u-boot_src.tbz2 to Local:
$ TAR-XVJF u-boot_src.tbz2
$ CD u-boot/
2,u-boot modification and compilation
Set Environment variables:
$ Export Arch=arm
$ Export Cross_compile=<your_toolchain_location>
Example: Export cross_compile=/opt/gcc-linaro-6.2.1-2016.11-x86_64_aarch64-linux-gnun/bin/aarch64-linux-gnu-
Configuration and compilation
$ make Distclean
$ make P2371-2180_defconfig
$ make Menuconfig
Can be configured as needed and then compiled
$ make
Compilation Result:
3,u-boot Burn write:
Compile the results u-boot, U-boot.bin, U-boot-dtb.bin, U-BOOT.DTB 4 copies of the files to ~/linux_for_tegra/bootloader/t210ref/p2371-2180/
It is recommended that the original U-boot file be placed in the folder Uboot_backup as an error recovery file.
Run the Devkit in recover mode, and then run the following command in the host host ~/linux_for_tegra/directory to burn the u-boot:
$ sudo./flash.sh-k EBT jetson-tx1 Mmcblk0p1
After burning, Target restarts:
Finish. 4. problems encountered in compiling:
1), Prompt Error:bad value (armv8-a) for-march=switch
The reason is that there is no arm64 and should be set to Arch=arm
2), tips missing compiler-gcc6.h
This latest file is required because of the gcc6.3 version of the compiler. Download it online and put it in the ~/u-boot/include/linux/.
3), hint that the DTC version is too old
Workaround, install the latest Device-tree-compiler:
$ sudo apt-get install Device-tree-compiler
It can be compiled successfully after installation.