When using Linux embedded platforms, boot time is an important performance to take into account. Many indication indications or examples can be found on Internet but when a ''real case'' where an <code>industrial platform</code> is used, those techniques cannot be easily adopted. This Technical Note describes which performances can be reached using a ''well-designed board architecture'', like '''DAVE's SDV03 or SDV04''' platforms. It should be taken into account that <i>boot time</i> results strongly depends on the overall system configuration and involves - mainly - the following parameters:
This Technical Note describes * u-boot storage device, i.e. from which performances can be reached using a device the internal iMX6 bootrom fetch the u-boot code* linux binaries storage device: i.e. where the kernel and dtb binaries are loaded from for copying them on DDR memory* u-boot startup configuration** console ''well designed board architecturebootdelay'', like parameter** ''verify'DAVE's SDV03''' platformbinaries** loading binaries optimization* root file system storage device: i.e. where the rfs is stored (where the INIT process starts from)* root file system INIT process optimization: i.e.which daemons are loaded at the beginning
==Testbed==As stated in the introduction, the solution has been tested on a DAVE's Embedded platform: here below the main characteristicsand many other more configuration steps.
* Board: [[SDV03|SDV03]] equipped with [[:Category:AxelLite|AxelLite]] SOM* SOC: NXP i.MX6 DualLite* Flash In any case, the main involved technical decision is which type of storage: eMMC* U-device is used for the boot: 2016phase.03* Linux VersionIt should be considered that, typically, there are three storage device that can be used and they are: 4.1.15 ([[SDV04_Embedded_Linux_Kit_(SDVX)#SDVX_software_components | BSP]]).
To verify * '''NOR''' SPI flash: the boot time achieved, most reliable one (declared as 0 ppm fault) but the slower one* '''NAND''' SLC raw flash: a serial port terminal with timestamping capabilities has been used, like [httpsgood and cheap device that can be populated on the DAVE's SOMs (depending on the order code) starting from 128MB to 2GB (SLC type)* '''SD''' or '''eMMC''' device://ttssh2this is the cheaper one (compared to its size respect a similar NAND device) and the fastest one.osdnThis kind of device is mounted on the carrier board using an SDIO bus for the communication to the AXEL SOM.jp/index.html.en Teraterm]Despite its speed, it is the less reliable one compared to NOR or NAND
== Serial terminal configuration ==
To verify the boot time achieved, a serial port terminal with timestamping capabilities has been used, like [https://ttssh2.osdn.jp/index.html.en Teraterm] Select form from Teraterm the menu: File / Log...
==Use case #1 ===== System configuration ===As stated in the introduction, the solution has been tested on a DAVE's Embedded platform: here below the main characteristics * Board: [[SDV03|SDV03]] equipped with [[:Category:AxelLite|AxelLite]] SOM* SOC: NXP i.MX6 DualLite* Flash storage: eMMC* U-boot: 2016.03* Linux Version: 4.1.15 ([[SDV04_Embedded_Linux_Kit_(SDVX)#SDVX_software_components | BSP]]). The [[SDV03|SDV03]] boot from an eMMC device on the Carrier board. U-boot is properly configured to reduce the waiting time and just boot loading the binary images from the storage device. === Boot time measure ===
The serial terminal collects all the string from u-boot and linux kernel: at the beginning of each raw the related timestamp is printend before the message
and finally the <code>login:</code> is processed after '''less then 8 s''' from the boot
==Use case #2 ==
=== System configuration ===
* Board: [[SDV04|SDV04]] equipped with [[:Category:AXEL_ULite|AXEL ULite]] SOM
* SOC: NXP i.MX6 UL
* Flash storage: SD
* U-boot: 2016.03
* Linux Version: 4.1.15 ([[SDV04_Embedded_Linux_Kit_(SDVX)#SDVX_software_components | BSP]]).
* root file system: development rfs (bz2 tarball to be extracted around 292MB)
The [[SDV04|SDV04]] boot from an microSD card inserted on the Carrier board slot. U-boot is properly configured to reduce the waiting time and just boot loading the binary images from the storage device.
=== Boot time measure ===
The serial terminal collects all the string from u-boot and linux kernel: at the beginning of each raw the related timestamp is printend before the message
* INIT: runlevel 5 is executed after <b>7s</b> from the boot
13:28:07.405
and finally the <code>login:</code> is processed after '''10 s''' from the boot
==Use case #3 ==
=== System configuration ===
* Board: [[SDV04|SDV04]] equipped with [[:Category:AXEL_ULite|AXEL ULite]] SOM
* SOC: NXP i.MX6 UL
* Flash storage: 128 MB SLC NAND
* U-boot: 2016.03
* Linux Version: 4.1.15 ([[SDV04_Embedded_Linux_Kit_(SDVX)#SDVX_software_components | BSP]]).
* root file system: minimal Qt5 rfs (bz2 tarball to be extracted around 42MB)
The [[SDV04|SDV04]] boot from the SOM's onboard NAND flash . U-boot is properly configured to reduce the waiting time and just boot loading the binary images from the NAND device once the UBI fs parameters have been correctly passed to the kernel command line.