ARM Boot Architecture

Registered by Grant Likely

Discuss and define the overall boot architecture for ARM. Includes discussions on boot interface, device tree, firmware requirements, upgrade requirements, secure boot

Blueprint information

Status:
Complete
Approver:
Paul McKenney
Priority:
High
Drafter:
None
Direction:
Needs approval
Assignee:
Grant Likely
Definition:
Obsolete
Series goal:
None
Implementation:
Unknown
Milestone target:
None
Completed by
Ilias Biris

Related branches

Sprints

Whiteboard

[ibiris - 24Oct2011]: this blueprint is now obsolete, there is a new direction and decisions taken during the boot-architecture weekly meetings. The new work will be handled via new blueprints after Linaro Connect @ Orlando (Oct31-Nov04 2011)

https://wiki.linaro.org/OfficeofCTO/BootArchitecture

Draft required feature list (to be prioritized):
- zero-risk firmware update
- boot from network (pxe) including IPv6
- boot from wireless network
- boot from removable media (SD card and USB drive)
- unattended control (for server and board farms)
- multiplatform install images
- secure boot (signed kernel/initrd images)
- boot speed
- multi-OS compatibility
- smp boot - how are secondary cpus booted etc.?
- ability to override any device tree with one provided by user
- hypervisor interactions (A15, SW/HW vendors)
- (maybe others - see acpi docs?)
- political neutrality?
- suspend/resume

Other discussion topics:
- Android Fastboot
https://blueprints.launchpad.net/linaro/+spec/linaro-android-o-fastboot-for-validation
- Multiplatform boot for Android targets
https://blueprints.launchpad.net/linaro/+spec/linaro-android-o-multi-platform-boot
- Can the boot architecture be unified for non-Android and Android targets alike?
- Would a kexec boot loader be the best solution?

Notes from UDS, May 10-14, 2011:
https://wiki.linaro.org/OfficeofCTO/BootArchitecture/2011-05-10

Notes from Linaro Connect Q3.11:
https://wiki.linaro.org/OfficeofCTO/BootArchitecture/2011-08-05

(?)

Work Items

Work items:
Consult with stakeholders on boot architecture requirements: DONE
Invite people to APM to discuss first draft: DONE
Capture and document boot architecture requirements: INPROGRESS
Write and publish high level recommended boot architecture document: INPROGRESS
Investigate kernel image format requirements: TODO
Define and publish boot media format (ie. booting install image from SD card): TODO
Define device tree bindings for bootable devices (to be used for kernel/firmware upgrades and by installer): TODO
Modify linaro-image-tools to use bootable device binding: TODO
Define and publish recommended firmware upgrade architecture: TODO
Implement PXE boot: TODO
Build reference system implementing recommendations in boot architecture document: TODO
Document reference implementation: TODO
[lool] to check with Colin Watson what he thinks with his GRUB upstream + Ubuntu hats: TODO
[lool] Investigate U-Boot runtime interface - call into U-Boot from UEFI or GRUB: TODO
[will-deacon] Define SMP boot requirements - spin tables?: TODO
Investigate entry point protocol - multiimage: TODO
[lool] Investigate using DTB fragments: TODO

Dependency tree

* Blueprints in grey have been implemented.