Tool/software:
Hi AM62A Champ!
My customer is developing a wearable device using the AM62A, and their project requirement is to boot up and display camera video output within 3 seconds.
Currently, using the default image, it takes about 15 seconds to boot. In order to reduce this to 2–3 seconds (up to the root login), we need to optimize the booting process.
Could you please provide a fast boot optimization guide for achieving this?
The following is an example approach from their initial rearch. In addition to the guidance provided by TI, it would be helpful if the following items could also be further clarified or specified, if possible.
Fast Booting Guide for AM62A (Wearable Device Use Case)
Goal
-
Reach camera output within 3 seconds after power-on.
-
Currently: ~15 seconds (using default image)
-
Target: 2–3 seconds to root login (or camera app start)
1.
Boot Time Breakdown
Here’s a rough breakdown of boot stages:
| Stage | Current Time | Target Time |
|---|---|---|
| ROM → SPL (R5) | ~0.5 sec | Little to optimize |
| SPL → U-Boot | ~1.0 sec | Can reduce |
| U-Boot → Kernel | ~2.0 sec | Optimizable |
| Kernel Boot | ~8.0 sec | Main target |
| RootFS Init | ~4.0 sec | Needs work |
| App Launch + Camera | ~1–2 sec | Should run in parallel |
2. Summary of Optimization Strategies
| Area | Optimization Goal |
|---|---|
| SPL/U-Boot | Minimize device tree, remove boot delays |
| Kernel | Remove unused drivers/subsystems, optimize initcalls |
| RootFS | Use minimal init system (BusyBox), avoid systemd |
| Application | Launch in parallel with kernel init, preload splash/camera |
| Overall |
Consider Suspend-to-RAM or Snapshot Boot (if feasible) |
3. Detailed Optimization Steps
SPL / U-Boot
-
Set
CONFIG_BOOTDELAY=0to remove delay -
Disable features like
CONFIG_DISPLAY, unless needed -
Minimize Device Tree: keep only camera, LCD, UART, etc.
-
Use
bootcmdto auto boot kernel directly without interaction
Kernel Optimization
-
Minimize Device Tree overlays and unnecessary nodes
-
Use initramfs: load rootfs in memory for faster boot
-
Build camera and display drivers as built-in, not modules
-
Use
systemd-analyzeto identify bottlenecks
RootFS
-
Use Buildroot or Yocto minimal image
-
Replace
systemdwith BusyBoxinitor custom init script -
Customize
/etc/inittab,rcSto start only essential services -
Use squashfs or tmpfs for fast, read-only rootfs
Application Optimization
-
Launch camera app directly in init script (
/etc/init.d/rcS) -
Avoid waiting for full camera probe—handle async in app
-
Combine splash + preview to show visuals immediately
Thanks.
Best Regards, Jack