Hello Freescale gurus!
I was impressed to read in a BeagleBone forum that several Linux boot-time experts were able to get from cold-boot to user-space in less than one second on the i.MX6
To learn the recipe they used, see my original post is in this BeagleBoard.org - Forums (Linux sub-forum, post of the same name... cannot obtain direct URL)
Part of the reason why people have been able to boot so quickly is because the level of sophistication in the i.MX6 ROM bootloader is capable of loading & executing the Linux kernel directly... thereby passing bootloaders such as u-Boot / barebox.
Unfortunately, the i.MX6 is overkill for our cost-sensitive application. My question is: which member of the i.MX family have this 'sophisticated ROM bootloader' that is conducive to ultra-fast Linux boot times?
Many thanks for taking the time to help me out!
If I understand correctly, the terms of "the level of sophistication in the i.MX6 ROM bootloader is capable of loading & executing the Linux kernel directly" you mentioned is the function of direct jump to the entry point from ROM. This is what we done for DSM(deep sleep mode) mode. The pre-condition is that you put linux kernel suspend into DRAM, and then power off the i.MX6 but keeping DRAM powered on and in self-refresh, then when you power up the i.MX6 again, the boot ROM detect that there is valid entry point, it will jump to the entry point and resume the previou linux kernel before suspend. So, technically, it is a new low power mode called low power state retension mode, it need board design support, such as keeping DRAM powered on when i.MX6 is powered off etc..
Sorry that I can NOT tell you that which member of i.MX family has such feature, as far as I know, only since i.MX6, we linux BSP support suspend with ARM core power off and need boot ROM to jump to kernel directly when resume. But I think for other i.MX chips, you also can make this feature work, you can make the uboot jump to the previous kernel resume point instead of ROM, the only latency compared to i.MX6 is some more instructions of ROM code and a couple of instruction of uboot need to be run, you should be able to hit the 1 second target as well. This is my opinion, hope it is helpful for you.
Adding to Yongcai Huang’s comment, there is an interesting presentation from Adeneo where they implemented fast boot on the i.MX53 and i.MX6. There are some more details in the video presentation and slides (link below). Perhaps this may also help, they are certainly interesting.
He gusarambula, many thanks for that very pertinent link.
At first glance it appears interesting. I'll study this stuff very carefully.
As a return, one of the most well documented sequence of step I've found for embedded Linux is Sitara Linux Training: Boot Time Reduction - Texas Instruments Wiki
Thanks again! :smileyhappy:
Hello Yongcai, many thanks to you sir for taking the time to type that valuable post! Three more questions if I may...
Q1: Is the suspend / resume functionality you refer to ready for prime time? In other words is it stable enough to be inserted in consumer-facing products?
Q2: How are the 'resume' times in comparison to the sub-one-second cold-boot times reported by Linux boot-time experts on the i.MX6?
Q3: Are you aware of other chips in the i.MX family that offer ultra-fast boot-times (and / or ultra-fast suspend / resume times)?
Again many thanks for sharing your hard-earned experience!!