SlideShare a Scribd company logo
Quickboot on i.MX6
FTF2014
04/10/2014
Gary Bisson
Embedded Software Engineer
SESSION OVERVIEW
1. Introduction
2. Boot Process
3. Optimizations
4. Solutions
5. Demonstrations
6. Conclusion
ABOUT THE PRESENTER
• Embedded Software Engineer at Adeneo Embedded
(Bellevue, WA)
Linux / Android
♦ BSP Adaptation
♦ Driver Development
♦ System Integration
Partners with Freescale
Introduction
Quickboot on i.MX6 Introduction
ARE WE TALKING ABOUT FASTBOOT?
This presentation is about quick boot
• Fastboot is the protocol used by Android to communicate
with the bootloader in order to reflash a system on the
device
• Type fastboot into google: 90% hits within first 10 pages
are about android
Warning
Fastboot is not the subject here!
5
Quickboot on i.MX6 Introduction
SPEED DOES MATTER
• Critical systems
Automotive: need to handle CAN message within a
specific time frame after boot (typically x100ms)
Monitoring: need to reboot ASAP in case of failure
6
Quickboot on i.MX6 Introduction
SPEED DOES MATTER
Consumer are used to previous generation of non-smart
devices that starts immediately
• Consumer products
TV: turn on quickly whenever pressing on the power
button
Phones: deep sleep mode allowing to have a
aggressive power management policy while keeping
responsiveness
7
Quickboot on i.MX6 Introduction
SPEED DOES MATTER
It is still possible to cheat
• Display splash screen early in the bootloader (x100ms)
• Animate the splash screen while booting
Those tricks give the end user the illusion of a quick boot, but
this could not apply to critical systems.
8
Quickboot on i.MX6 Introduction
SET YOUR GOALS
• Need to have clear goals:
Prioritize features
Set constraints
• Boot-Time optimization = trade-offs
9
Quickboot on i.MX6 Introduction
GOAL OF THE PRESENTATION
This presentation aims at:
• Showing different existing technics to optimize boot time
• Explaining how to integrate those technics
• Showing real customer solutions
10
Boot Process
Quickboot on i.MX6 Boot Process
BOOT PROCESS
12
Quickboot on i.MX6 Boot Process
BOOT PROCESS
Typical i.MX6 boot process:
• Boot ROM
• U-Boot
• Linux Kernel
• Rootfs:
Linux
Android
13
Quickboot on i.MX6 Boot Process
BOOT ROM
• Boot devices:
NOR Flash
NAND Flash
OneNAND Flash
SD/MMC
SATA HDD (only i.MX 6Dual/6Quad)
Serial (I2C/SPI) NOR Flash and EEPROM
14
Quickboot on i.MX6 Boot Process
BOOT ROM
• IVT Header
Entry point (fixed offset)
Points to DCD table
• DCD Table
List of init commands
• Boot data
A table indicating the program image offset and size
15
Quickboot on i.MX6 Boot Process
MEASUREMENT TOOLS
• Grabserial
Serial output time-stamps
• Bootgraph
Kernel driver graph
• Bootchart
Init scripts graph
16
Optimizations
Quickboot on i.MX6 Optimizations
METHODOLOGY
18
Quickboot on i.MX6 Optimizations
INTUITION
The first things that comes in mind are usually:
• Smaller size
Loads faster (bandwidth of the storage mdevice)
Loads from faster storage (NOR, MMC class 10)
• Remove uneeded features
Smaller system (see above)
Not wasting time
19
Quickboot on i.MX6 Optimizations
GENERIC OPTIMIZATIONS
• lpj
If your products are similar, you can set lpj
Gain about 250 ms by skipping the calibration loop
• Stripping init
Start your critical application as soon as possible: rcS
or inittab
An idea may be to try to use your critical application as
init
20
Quickboot on i.MX6 Optimizations
GENERIC OPTIMIZATIONS
• flash storage:
NAND, NOR, SD
We usually get really good performance booting from
SD cards, class 4 or class 6, but you will still have to
benchmark
• toolchains
Not all toolchains are created equal. Changing
toolchains, will usually make you gain the last hundred
of ms
21
Quickboot on i.MX6 Optimizations
BOOTLOADER
• U-Boot is slow? Get rid of it!
• arm-kernel-shim solutions
• Freescale platforms: configure just a few register then
passing atags
Thanks to BootROM / DCD table
22
Quickboot on i.MX6 Optimizations
BOOTLOADER
• Kernel may not initialize every device
relies on the bootloader
• Should we migrate everything to the kernel?
23
Quickboot on i.MX6 Optimizations
GENERIC SOLUTIONS
U-Boot Secondary Program Loader (SPL)
• Small binary that fits in SRAM and loads the main U-Boot
into RAM
• Within U-Boot source tree, sharing same code base
• Two scenarios:
Fast path: SPL loads and then starts Linux kernel
Development or maintenance mode: SPL loads
U-Boot
24
Quickboot on i.MX6 Optimizations
KERNEL OPTIMIZATIONS
• Remove as many features as possible
The smaller, the faster to copy from storage to RAM
Less features means less initializations
• Not always what you want
What about a full-featured kernel?
• Easy optimizations:
printk and DEBUGFS
try CONFIG_CC_OPTIMIZE_FOR_SIZE=y
SLOB memory allocator
KALLSYMS
25
Quickboot on i.MX6 Optimizations
KERNEL OPTIMIZATIONS
• Stripping a lot of features from is not always possible
• Use modules!
Load them when your critical application is ready
Not always possible to compile as module (example:
networking)
• Kernel compression
None
Gzip
LZO
26
Quickboot on i.MX6 Optimizations
KERNEL OPTIMIZATIONS
Use of deferred_initcalls
• Kernel stills grows
• Need to patch kernel
see http://elinux.org/Deferred_Initcall
• Need to modify drivers
deferred_module_init
• Will execute some init only when asked for (user-space)
cat /proc/deferred_initcalls
27
Quickboot on i.MX6 Optimizations
SMP
• SMP is quite slow to initialize
• UP systems may be faster to boot
• Hotplug the other cores afterwards
/sys/devices/system/cpu/cpuX/online
28
Quickboot on i.MX6 Optimizations
ROOTFS
• Multiple challenges when building your rootfs
May not be able to optimize the customer’s application
Even worse, you may not have the sources (blobs)
Sometimes not possible to reduce the size of your
rootfs
29
Quickboot on i.MX6 Optimizations
ROOTFS
• Use an initramfs, but use it right!
• For critical tasks only
• Use of uClibc reduces the size
• Use of mklibs to further strip the libs
• Then switch_root or pivot_root to the final rootfs
30
Solutions
Quickboot on i.MX6 Solutions
SOLUTIONS
• Boot from SDcard
• Custom bootloader
• Stripped down kernel
• Start a custom init:
launches critical application (CAN daemon)
calls deferred_initcalls
switch_root to the final rootfs and exec the final init
32
Quickboot on i.MX6 Solutions
SOLUTIONS
• Boot from SDcard
• Custom bootloader
• Stripped down kernel
• Start a custom init that launches the OpenGL application
• Rootfs has been stripped using mklibs
• Final image (bootloader + kernel + rootfs): 5.2MB
3MB for HW blobs libraries
No compression
33
Quickboot on i.MX6 Solutions
RESULTS
• CAN messages ready for transfer in about 360ms
• OpenGL application is started in 720ms from power on
590ms from reset
34
Quickboot on i.MX6 Solutions
NEXT STEPS
• Use of DMA to load the image
• Parallel inits
• Provide a more generic solution
35
Demonstrations
Quickboot on i.MX6 Demonstrations
HARDWARE SELECTION
• i.MX6Q Sabre Smart Device
• Kernel 3.0.35 release v4.1.0
• 10" LVDS display
37
Quickboot on i.MX6 Demonstrations
SOURCE CODE
• Code for the custom bootloader:
https://github.com/alexandrebelloni/whoosh
• Code for U-Boot SPL: coming soon...
• Main inspiration was http://www.elinux.org/Boot_Time but it
needs some updates
38
Conclusion
Quickboot on i.MX6 Conclusion
CONCLUSION
• No one-size-fits-all solution
• Highly depends on constraints
• Generic solution progress
40
Quickboot on i.MX6 Conclusion
QUESTIONS?
41
Quickboot on i.MX6 Conclusion
REFERENCES
• elinux.org: http://www.elinux.org/
• Free Electrons' training: http://www.free-electrons.com/
42

More Related Content

PDF
Booting Android: bootloaders, fastboot and boot images
PPT
Learning AOSP - Android Booting Process
ODP
Q4.11: Porting Android to new Platforms
PDF
Tuning Android for low RAM
PDF
Embedded Android : System Development - Part I
ODP
Linux Internals - Kernel/Core
PPT
"Learning AOSP" - Android Hardware Abstraction Layer (HAL)
PDF
Android OTA updates
Booting Android: bootloaders, fastboot and boot images
Learning AOSP - Android Booting Process
Q4.11: Porting Android to new Platforms
Tuning Android for low RAM
Embedded Android : System Development - Part I
Linux Internals - Kernel/Core
"Learning AOSP" - Android Hardware Abstraction Layer (HAL)
Android OTA updates

What's hot (20)

PPT
Android CTS training
PDF
Linux boot process – explained
PDF
Embedded Operating System - Linux
PDF
淺談探索 Linux 系統設計之道
PDF
Embedded Android : System Development - Part II (Linux device drivers)
PDF
Understanding the Android System Server
PPTX
Android graphic system (SurfaceFlinger) : Design Pattern's perspective
ODP
Embedded Android : System Development - Part III
PDF
PPT
Learning AOSP - Android Linux Device Driver
PPT
A Quick Introduction to Linux
PDF
Android IPC Mechanism
PDF
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
PDF
Design and Concepts of Android Graphics
PDF
Android Things : Building Embedded Devices
PPT
Android booting sequece and setup and debugging
PDF
Accelerating Envoy and Istio with Cilium and the Linux Kernel
PDF
Kubernetes Basics
PPTX
containerd the universal container runtime
Android CTS training
Linux boot process – explained
Embedded Operating System - Linux
淺談探索 Linux 系統設計之道
Embedded Android : System Development - Part II (Linux device drivers)
Understanding the Android System Server
Android graphic system (SurfaceFlinger) : Design Pattern's perspective
Embedded Android : System Development - Part III
Learning AOSP - Android Linux Device Driver
A Quick Introduction to Linux
Android IPC Mechanism
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
Design and Concepts of Android Graphics
Android Things : Building Embedded Devices
Android booting sequece and setup and debugging
Accelerating Envoy and Istio with Cilium and the Linux Kernel
Kubernetes Basics
containerd the universal container runtime
Ad

Viewers also liked (18)

PDF
Mainline U-BOOT for iMX6 (AR6MX)
PPTX
ELC-E 2010: The Right Approach to Minimal Boot Times
PPTX
Renesas DevCon 2010: Starting a QT Application with Minimal Boot
PDF
Accessing Hardware on Android
PDF
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
PDF
Headless Android Strikes Back!
PDF
Useful USB Gadgets on Linux
PDF
Yocto Project ハンズオン / 参加者用資料
ODP
FirefoxOS and its use of Linux (a deep dive into Gonk architecture)
PDF
Leveraging the Android Open Accessory Protocol
PDF
Linux Porting
PPTX
Yocto bspを作ってみた
PPT
U Boot Presentation Final
PPT
U Boot or Universal Bootloader
PDF
Yocto Project ハンズオン プレゼン用資料
PPTX
Linux Kernel Booting Process (1) - For NLKB
PDF
レシピの作り方入門
PDF
Embedded Android : System Development - Part IV
Mainline U-BOOT for iMX6 (AR6MX)
ELC-E 2010: The Right Approach to Minimal Boot Times
Renesas DevCon 2010: Starting a QT Application with Minimal Boot
Accessing Hardware on Android
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
Headless Android Strikes Back!
Useful USB Gadgets on Linux
Yocto Project ハンズオン / 参加者用資料
FirefoxOS and its use of Linux (a deep dive into Gonk architecture)
Leveraging the Android Open Accessory Protocol
Linux Porting
Yocto bspを作ってみた
U Boot Presentation Final
U Boot or Universal Bootloader
Yocto Project ハンズオン プレゼン用資料
Linux Kernel Booting Process (1) - For NLKB
レシピの作り方入門
Embedded Android : System Development - Part IV
Ad

Similar to Quickboot on i.MX6 (20)

PDF
12 Lessons Learnt in Boot Time Reduction
PDF
Linux Kernel Platform Development: Challenges and Insights
PDF
Improving User Experience with Ubiquitous QuickBoot
 
PPTX
Когда предрелизный не только софт
PDF
"Making Computer Vision Software Run Fast on Your Embedded Platform," a Prese...
PDF
Rapid SPi Device Driver Development over USB
PPTX
Fast boot
PDF
Embedded platform choices
PDF
XPDDS17: Keynote: Shared Coprocessor Framework on ARM - Oleksandr Andrushchen...
PDF
The Linux Block Layer - Built for Fast Storage
ODP
UWE Linux Boot Camp 2007: Hacking embedded Linux on the cheap
PDF
”Bare-Metal Container" presented at HPCC2016
PDF
BUD17-405: Building a reference IoT product with Zephyr
PDF
LMG Lightning Talks - SFO17-205
PPTX
Clr jvm implementation differences
PDF
Iot Bootcamp - abridged - part 1
ODP
The Andc Cluster
PPT
TI TechDays 2010: swiftBoot
PPTX
OpenStack Integration with OpenContrail and OpenDaylight
PDF
The end of embedded Linux (as we know it)
12 Lessons Learnt in Boot Time Reduction
Linux Kernel Platform Development: Challenges and Insights
Improving User Experience with Ubiquitous QuickBoot
 
Когда предрелизный не только софт
"Making Computer Vision Software Run Fast on Your Embedded Platform," a Prese...
Rapid SPi Device Driver Development over USB
Fast boot
Embedded platform choices
XPDDS17: Keynote: Shared Coprocessor Framework on ARM - Oleksandr Andrushchen...
The Linux Block Layer - Built for Fast Storage
UWE Linux Boot Camp 2007: Hacking embedded Linux on the cheap
”Bare-Metal Container" presented at HPCC2016
BUD17-405: Building a reference IoT product with Zephyr
LMG Lightning Talks - SFO17-205
Clr jvm implementation differences
Iot Bootcamp - abridged - part 1
The Andc Cluster
TI TechDays 2010: swiftBoot
OpenStack Integration with OpenContrail and OpenDaylight
The end of embedded Linux (as we know it)

Recently uploaded (20)

PDF
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
PPT
Project quality management in manufacturing
PPTX
KTU 2019 -S7-MCN 401 MODULE 2-VINAY.pptx
PPTX
Sustainable Sites - Green Building Construction
PPTX
Recipes for Real Time Voice AI WebRTC, SLMs and Open Source Software.pptx
PDF
Structs to JSON How Go Powers REST APIs.pdf
DOCX
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
PPTX
Strings in CPP - Strings in C++ are sequences of characters used to store and...
PPTX
CH1 Production IntroductoryConcepts.pptx
PPTX
Lesson 3_Tessellation.pptx finite Mathematics
PPTX
IOT PPTs Week 10 Lecture Material.pptx of NPTEL Smart Cities contd
DOCX
573137875-Attendance-Management-System-original
PPTX
web development for engineering and engineering
PPTX
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
PDF
ETO & MEO Certificate of Competency Questions and Answers
PPTX
additive manufacturing of ss316l using mig welding
PDF
Embodied AI: Ushering in the Next Era of Intelligent Systems
PDF
composite construction of structures.pdf
PPTX
CYBER-CRIMES AND SECURITY A guide to understanding
PPTX
UNIT-1 - COAL BASED THERMAL POWER PLANTS
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
Project quality management in manufacturing
KTU 2019 -S7-MCN 401 MODULE 2-VINAY.pptx
Sustainable Sites - Green Building Construction
Recipes for Real Time Voice AI WebRTC, SLMs and Open Source Software.pptx
Structs to JSON How Go Powers REST APIs.pdf
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
Strings in CPP - Strings in C++ are sequences of characters used to store and...
CH1 Production IntroductoryConcepts.pptx
Lesson 3_Tessellation.pptx finite Mathematics
IOT PPTs Week 10 Lecture Material.pptx of NPTEL Smart Cities contd
573137875-Attendance-Management-System-original
web development for engineering and engineering
FINAL REVIEW FOR COPD DIANOSIS FOR PULMONARY DISEASE.pptx
ETO & MEO Certificate of Competency Questions and Answers
additive manufacturing of ss316l using mig welding
Embodied AI: Ushering in the Next Era of Intelligent Systems
composite construction of structures.pdf
CYBER-CRIMES AND SECURITY A guide to understanding
UNIT-1 - COAL BASED THERMAL POWER PLANTS

Quickboot on i.MX6

  • 1. Quickboot on i.MX6 FTF2014 04/10/2014 Gary Bisson Embedded Software Engineer
  • 2. SESSION OVERVIEW 1. Introduction 2. Boot Process 3. Optimizations 4. Solutions 5. Demonstrations 6. Conclusion
  • 3. ABOUT THE PRESENTER • Embedded Software Engineer at Adeneo Embedded (Bellevue, WA) Linux / Android ♦ BSP Adaptation ♦ Driver Development ♦ System Integration Partners with Freescale
  • 5. Quickboot on i.MX6 Introduction ARE WE TALKING ABOUT FASTBOOT? This presentation is about quick boot • Fastboot is the protocol used by Android to communicate with the bootloader in order to reflash a system on the device • Type fastboot into google: 90% hits within first 10 pages are about android Warning Fastboot is not the subject here! 5
  • 6. Quickboot on i.MX6 Introduction SPEED DOES MATTER • Critical systems Automotive: need to handle CAN message within a specific time frame after boot (typically x100ms) Monitoring: need to reboot ASAP in case of failure 6
  • 7. Quickboot on i.MX6 Introduction SPEED DOES MATTER Consumer are used to previous generation of non-smart devices that starts immediately • Consumer products TV: turn on quickly whenever pressing on the power button Phones: deep sleep mode allowing to have a aggressive power management policy while keeping responsiveness 7
  • 8. Quickboot on i.MX6 Introduction SPEED DOES MATTER It is still possible to cheat • Display splash screen early in the bootloader (x100ms) • Animate the splash screen while booting Those tricks give the end user the illusion of a quick boot, but this could not apply to critical systems. 8
  • 9. Quickboot on i.MX6 Introduction SET YOUR GOALS • Need to have clear goals: Prioritize features Set constraints • Boot-Time optimization = trade-offs 9
  • 10. Quickboot on i.MX6 Introduction GOAL OF THE PRESENTATION This presentation aims at: • Showing different existing technics to optimize boot time • Explaining how to integrate those technics • Showing real customer solutions 10
  • 12. Quickboot on i.MX6 Boot Process BOOT PROCESS 12
  • 13. Quickboot on i.MX6 Boot Process BOOT PROCESS Typical i.MX6 boot process: • Boot ROM • U-Boot • Linux Kernel • Rootfs: Linux Android 13
  • 14. Quickboot on i.MX6 Boot Process BOOT ROM • Boot devices: NOR Flash NAND Flash OneNAND Flash SD/MMC SATA HDD (only i.MX 6Dual/6Quad) Serial (I2C/SPI) NOR Flash and EEPROM 14
  • 15. Quickboot on i.MX6 Boot Process BOOT ROM • IVT Header Entry point (fixed offset) Points to DCD table • DCD Table List of init commands • Boot data A table indicating the program image offset and size 15
  • 16. Quickboot on i.MX6 Boot Process MEASUREMENT TOOLS • Grabserial Serial output time-stamps • Bootgraph Kernel driver graph • Bootchart Init scripts graph 16
  • 18. Quickboot on i.MX6 Optimizations METHODOLOGY 18
  • 19. Quickboot on i.MX6 Optimizations INTUITION The first things that comes in mind are usually: • Smaller size Loads faster (bandwidth of the storage mdevice) Loads from faster storage (NOR, MMC class 10) • Remove uneeded features Smaller system (see above) Not wasting time 19
  • 20. Quickboot on i.MX6 Optimizations GENERIC OPTIMIZATIONS • lpj If your products are similar, you can set lpj Gain about 250 ms by skipping the calibration loop • Stripping init Start your critical application as soon as possible: rcS or inittab An idea may be to try to use your critical application as init 20
  • 21. Quickboot on i.MX6 Optimizations GENERIC OPTIMIZATIONS • flash storage: NAND, NOR, SD We usually get really good performance booting from SD cards, class 4 or class 6, but you will still have to benchmark • toolchains Not all toolchains are created equal. Changing toolchains, will usually make you gain the last hundred of ms 21
  • 22. Quickboot on i.MX6 Optimizations BOOTLOADER • U-Boot is slow? Get rid of it! • arm-kernel-shim solutions • Freescale platforms: configure just a few register then passing atags Thanks to BootROM / DCD table 22
  • 23. Quickboot on i.MX6 Optimizations BOOTLOADER • Kernel may not initialize every device relies on the bootloader • Should we migrate everything to the kernel? 23
  • 24. Quickboot on i.MX6 Optimizations GENERIC SOLUTIONS U-Boot Secondary Program Loader (SPL) • Small binary that fits in SRAM and loads the main U-Boot into RAM • Within U-Boot source tree, sharing same code base • Two scenarios: Fast path: SPL loads and then starts Linux kernel Development or maintenance mode: SPL loads U-Boot 24
  • 25. Quickboot on i.MX6 Optimizations KERNEL OPTIMIZATIONS • Remove as many features as possible The smaller, the faster to copy from storage to RAM Less features means less initializations • Not always what you want What about a full-featured kernel? • Easy optimizations: printk and DEBUGFS try CONFIG_CC_OPTIMIZE_FOR_SIZE=y SLOB memory allocator KALLSYMS 25
  • 26. Quickboot on i.MX6 Optimizations KERNEL OPTIMIZATIONS • Stripping a lot of features from is not always possible • Use modules! Load them when your critical application is ready Not always possible to compile as module (example: networking) • Kernel compression None Gzip LZO 26
  • 27. Quickboot on i.MX6 Optimizations KERNEL OPTIMIZATIONS Use of deferred_initcalls • Kernel stills grows • Need to patch kernel see http://elinux.org/Deferred_Initcall • Need to modify drivers deferred_module_init • Will execute some init only when asked for (user-space) cat /proc/deferred_initcalls 27
  • 28. Quickboot on i.MX6 Optimizations SMP • SMP is quite slow to initialize • UP systems may be faster to boot • Hotplug the other cores afterwards /sys/devices/system/cpu/cpuX/online 28
  • 29. Quickboot on i.MX6 Optimizations ROOTFS • Multiple challenges when building your rootfs May not be able to optimize the customer’s application Even worse, you may not have the sources (blobs) Sometimes not possible to reduce the size of your rootfs 29
  • 30. Quickboot on i.MX6 Optimizations ROOTFS • Use an initramfs, but use it right! • For critical tasks only • Use of uClibc reduces the size • Use of mklibs to further strip the libs • Then switch_root or pivot_root to the final rootfs 30
  • 32. Quickboot on i.MX6 Solutions SOLUTIONS • Boot from SDcard • Custom bootloader • Stripped down kernel • Start a custom init: launches critical application (CAN daemon) calls deferred_initcalls switch_root to the final rootfs and exec the final init 32
  • 33. Quickboot on i.MX6 Solutions SOLUTIONS • Boot from SDcard • Custom bootloader • Stripped down kernel • Start a custom init that launches the OpenGL application • Rootfs has been stripped using mklibs • Final image (bootloader + kernel + rootfs): 5.2MB 3MB for HW blobs libraries No compression 33
  • 34. Quickboot on i.MX6 Solutions RESULTS • CAN messages ready for transfer in about 360ms • OpenGL application is started in 720ms from power on 590ms from reset 34
  • 35. Quickboot on i.MX6 Solutions NEXT STEPS • Use of DMA to load the image • Parallel inits • Provide a more generic solution 35
  • 37. Quickboot on i.MX6 Demonstrations HARDWARE SELECTION • i.MX6Q Sabre Smart Device • Kernel 3.0.35 release v4.1.0 • 10" LVDS display 37
  • 38. Quickboot on i.MX6 Demonstrations SOURCE CODE • Code for the custom bootloader: https://github.com/alexandrebelloni/whoosh • Code for U-Boot SPL: coming soon... • Main inspiration was http://www.elinux.org/Boot_Time but it needs some updates 38
  • 40. Quickboot on i.MX6 Conclusion CONCLUSION • No one-size-fits-all solution • Highly depends on constraints • Generic solution progress 40
  • 41. Quickboot on i.MX6 Conclusion QUESTIONS? 41
  • 42. Quickboot on i.MX6 Conclusion REFERENCES • elinux.org: http://www.elinux.org/ • Free Electrons' training: http://www.free-electrons.com/ 42