Howto speed up Tegraboot

Is there a way to make Tegraboot silent (not print to the terminal) or any way to increase the speed on the boot-up process. It takes 12.607 seconds to get through Tegraboot:

[0012.607] Found secure-pmc; disable BPMP

I would like to have the Nano up and running within a few seconds. I know this is feasible on the Xilinx Zynq’s and NXP i.MX8 parts. Has anyone had any luck with this?

1 Like

Shadowmind,

I am not sure about the terms of “Tegraboot” or just “boot”, which includes bootloader+ kernel part.

If so, I would suggest you to check L4T document -> customized kernel to speed up booting by disabling unnecessary modules.

If you look at this page: https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide%2Fbootflow_jetson_nano.html%23wwconnect_header

It details the boot process for the Jetson Nano. I’ve already decrease the boot time by making changes to u-boot and I’m in the process of customizing the kernel to reduce boot time. Even if I reduce the boot time of those components I still have 12+ seconds of boot time consumed by the TegraBoot (see above link). I have yet to come across any documentation on the TegraBoot source code or how to prevent it from printing to the terminal.

Hi Shdowmind,

TegraBoot source is not released to customer so this part may not able to be optimized.

Shadowmind,

Just want to ask one more question here. What is your boot up time if you don’t do any optimization?

I missed your reply, right now it is roughly 90 seconds to login prompt on the serial terminal. I need to be 30 seconds to first image capture.

Shadowmind,

Could you profile your boot time with us? We’ve tried the boot time on our Jetson Nano but cannot get that long boot time. Do you wait for the login prompt on the monitor or the serial-terminal?

Also, could you tell us what I/O is needed or not needed on your board? For example, if you don’t need monitors, we can disable it in kernel.

All I need is Ethernet, USB, CSI (camera in), I2C, SPI, UART, SD. I don’t need any display support nor PCIE support. I’m attaching a log file with time stamps. Much of u-boot and the kernel boot times can be reduced by specifying silent and quiet respectively. But I have yet to find any information how to minimize the boot time of the Tegraboot.

In the attached file, time starts at 8:41:53.748, control is handed to u-boot at 42:06.320. This means Tegraboot spends 12.6 seconds booting. Control is handed off to the kernel at 42:15.627. Therefore u-boot spends 9.3 seconds (2 seconds are just waiting for user input). The command prompt shows up at 42:28.793. Therefore the kernel is spending 13.2 seconds booting, much of it is printing text to the UART, which can be reduced by quiet.

So it looks like our total boot time is 35 seconds. The last time I timed it must have been a clean first boot. I will try again with u-boot and the kernel silenced.

My real question is: “Is there a way to silience Tegraboot?” The answer seems to be no. Which may be fine for our use case.

Thank you.
teraterm.log (97.5 KB)

So there is no 90 seconds boot time, right?

I notice your boot time is little longer than mine in every stage. Could you share the speed class of your sd card?

Currently we don’t provide customized nvtboot for forum users. If you want to be in 30 second, could you try to disable some driver in cboot or kernel?

This is the SD card I am using.

https://www.amazon.com/Samsung-MicroSDXC-Adapter-MB-ME256DA-AM/dp/B01G7L03OS/ref=sr_1_1?keywords=samsung+256+gb+evo+microsd&qid=1558370170&s=gateway&sr=8-1-spell

Hi Shadowmind,

Per discussed and investigated with our developer, I think the only method we can try here is

  1. Remove the uboot delay (2 second) and another 2 in extlinux.conf (TIMEOUT 10). And then add ‘quiet’ to the kernel cmd line.

  2. Disable pcie and nvdisplay driver in device tree so that driver would not be loaded and save some time.

It turns out boot from sdcard is always slower than emmc boot and we cannot help on that part.