Extending the SWSUSP Hibernation Framework to ARM
summary
Hibernation is extended to ARM with a working implementation for AM33XX that handles power domains, clocks, pinctrl save/restore, SRAM context and device context counters, and integrates with Kexec-based SWSUSP; it requires providing four arch callbacks plus a page-selection routine and extra CPU state save/restore. Debugging used GPIO toggles, devm register dumps and oced for traces. A UBoot SWSUSP restore was built to load compressed images and jump to a saved CPU resume pointer. Remaining work: proper pinctrl-power-domain mapping and driver context fixes for full upstreaming and broader SoC support; the AM33XX proof-of-concept functions end-to-end.
AI-written summary · about
chapters (10)
- 0:00Introduction to hibernation
- 0:36Hibernation and SWSUSP basics
- 2:04Snapshot and restore process
- 3:48Challenges of OMAP PM
- 5:19Restoring hardware state
- 8:03Device and driver management
- 11:59Generic ARM hibernation support
- 15:55Debugging and validation
- 17:16U-Boot based restore
- 22:21Lessons and Q&A
related talks
48mExtending the swsusp Hibernation Framework to ARM
52mUnlocking the Potential of Suspend to RAM Using Linux in a Multi-Core, Multi-Fi...
38mImproving Embedded Systems Boot Time by Hibernation
57mCortex-M(etal): Hyper-optimized Zephyr-Friendly Context Switching for a Mature Architecture
27mZephyr Porting Efforts in High Performance SoCs
30mIntroduction to NAND Flash Aware Hibernation-based Boot
39mFrom Hardware to Linux
39mFrom Hardware to Linux
