<target_board> for TX1 u-boot

I was able to use tag name “tegra-l4t-r23.1” to “source_sync” u-boot but was unable to find “board_name”, to “make <target_board>_defconfig”

When I tried

“sudo find -name jet*_defconfig”

it only returned “jetson-tk1_defconfig”

“sudo find -name tegra*_defconfig” returned nothing.

Has anyone tried to build u-boot for TX1?

Thanks in advance.

The Jetson TK1 SoC is a tegra124, the TX1 SoC is the tegra210. In default configs you will find tegra21_defconfig (there variations of K1, those are tegra12x, while variations of TX1 would be tegra21x). There is also a tegra_t210ref_gnu_linux_defconfig, but I’m unsure what the differences are…maybe it is related to some of the 32-bit runtime stuff.

Yes, there is “tegra21_defconfig” under kernel source tree, but no “tegraxx_defconfig” under u-boot source tree.

I’m wondering how nvidia built u-boot image for TX1.

I have not yet looked at the u-boot source, but this may be named after the board the tegra210 sits on, and not just the tegra210. In the TX1’s “/boot/extlinux/extlinux.conf”, notice that the firmware file is named “tegra210-jetson-tx1-p2597-2180-a01-devkit.dtb”. The “p2597-2180-a01-devkit” refers to the module board sitting on the developer carrier board. When you look at u-boot I suspect naming will include these board names if there is a board-specific config required (I have not checked, but boot support is about handing off working infrastructure…everything outside the SoC…to the kernel).

Thanks for the info. The board and device tree are important. I looked at “jetson-tk1_decconfig” under “u-boot/configs”, it’s very simple:

CONFIG_ARM=y
CONFIG_TEGRA=y
CONFIG_TEGRA124=y
# L4T compiler workaround
CONFIG_ARMV7_NONSEC=n
CONFIG_TARGET_JETSON_TK1=y
CONFIG_DEFAULT_DEVICE_TREE="tegra124-jetson-tk1"
CONFIG_CMD_NET=y

At least, it should be changed to:

CONFIG_ARM=y
CONFIG_TEGRA=y
CONFIG_TEGRA210=y
# L4T compiler workaround
CONFIG_ARMV7_NONSEC=n
CONFIG_TARGET_JETSON_TX1=y
CONFIG_DEFAULT_DEVICE_TREE="tegra124-jetson-tx1"
CONFIG_CMD_NET=y

I’m not sure if compiler for TX1 u-boot should be 32 bits or 64 bits, even the kernel is 64 bits.

Looking at the u-boot source, I see “arch/arm/”, but I do not see “arch/aarch64/”. This would suggest that u-boot has not been updated for 64-bit. Although u-boot hands off to a 64-bit kernel, there would be no reason why u-boot itself needs to be 64-bit unless u-boot is setting up memory/hardware exceeding 32-bit range. My guess would be to try with only 32-bit “ARCH=arm”. There is still a choice between bare metal and gnueabihf compilers…I’m guessing both would work, but I’d suggest trying each starting with the gnueabihf (this is because this is a compiler you’ve already installed from an Ubuntu repository if you followed the kernel cross-compile docs).

I was able to build TX1 u-boot use 64 bit compiler and “p2597-2180_defconfig”.

Hi yahoo2016:

 Where is "p2597-2180_defconfig" ?

I am also try to build u-boot for TX1, I was able to use tag name "tegra-l4t-r23.1" to "source_sync" u-boot but was unable to find "p2597-2180_defconfig" in configs directory of u-boot.  

Thanks you for your help.

He probably meant the official, upstream (DENX) u-boot, which has support for the Jetson TX1 (aka P2597-2180). See U-Boot / U-Boot · GitLab

It must be a mistake, it should be “p2371-2180_defconfig”: