We are working on optimising boot time for IMX6ull.we observed that uboot takes around 10seconds after power on to start kernel.
1. kindly let us know why booting from NAND takes such a long time ?
2. Any possible way to reduce this duration ?
It’s hard to tell especially not knowing which Linux image you are talking about.
In general - try to reduce kernel size and increase NAND clock speed. But in last case you may start having issue with stability of NAND communication.
Thank you for the Reply alex
TDX Wayland with XWayland 5.2.0-devel-20210409103243+build.0 (dunfell) \n \l Colibri-iMX6ULL_Reference-Minimal-Image
Startup finished in 4.496s (kernel) + 23.648s (userspace) = 28.144s (plus 8 to 10sec extra booting from nand) graphical.target reached after 20.178s in userspace
Same advice remove all unnecessary from Linux kernel and RootFS. Another thing - by default U_Boot set 396 MHz CPU frequency instead of 792 MHz to make boot more reliable. You can try to modify U_Boot to run on full CPU speed.
Thank you for the Reply.
I am working on Removing the kernel modules and i will let you know once I get the Result.
One thing I want to tell you that we are using i.MX6ULL Cortex™-A7 (Single core) RAM: 256MB Processor speed=528MHz.Does the modification of uboot from 396MHz to 792MHz will work?
Thank you for the Reply lkoziarz
And we tried with turn off console logging during boot it will reduce 3 seconds.And we want to know where are the bootup information messages will store?
we checked with var/log/ but there is no such file to store the bootup information.
Yes, CPU spped for Colibri iMX6ULL 256MB is limited to 528MHz. What CPU speed is reported by U_Boot on your module?
CPU speed is reported as 396 MHz by U_Boot.
Try systemd-analyze blame to see why your userspace is taking so long.
Kernel will also boot faster if you turn off console logging during boot (add quiet to bootargs)
Yes, this is correct. iMX6ULL is switched to full speed once the booting process is finished.
Is your issue solved now?
Thank you for the reply @jaski.tx …Why the CPU is taking 396MHz initially ?
@jaski.tx No… we are trying to reduce the IMX6ull boot time…Initially it is taking 48 sec to load the application.we tried with disable the services which we are not using and also disable the boot messages…Now it is taking 35 seconds to load the application.But the issue is Initially uboot takes around 8sec to 10sec after power on to start kernel…If the uboot takes less time then the boot time also reduced… Any other solutions for the issue kindly suggest.
Because it was chosen to have a frequency for all different iMX6ULL SoCs variant at the start-up. What is your application? You might need to switch to a different SoM.
Thanks for your Input.
Could you share your kernel config and all the services you disabled?
Further did you disable the console output?
@jaski.tx This SOM is used for medical device which gathers information from Serial communication, process them and display onto the LCD.
Does this mean this is the limit of the SOM ? There can be no improvements for boot time optimization ?
YES we disabled the console output also.
@jaski.tx can you send me the mail id to send the kernel config and https://share.toradex.com/2z5ji8zu6quj9ac not uploading the file.
Thanks for the kernel config. I will have a look and come back to you.