Boot mode

Registered by Michael Hope on 2012-03-21

We've said that the system shall be in hypervisor mode when entering the kernel. The earlier stages such as the stage 0 boot and boot loader must ensure this. Document, publish, promote, and discuss with the other hypervisors such as Xen.

This may fall under Grant Likely's remit as part of standardizing the boot architecture for enterprise.

Blueprint information

Status:
Complete
Approver:
Michael Hope
Priority:
High
Drafter:
Michael Hope
Direction:
Needs approval
Assignee:
Michael Hope
Definition:
Approved
Series goal:
Accepted for trunk
Implementation:
Implemented
Milestone target:
None
Started by
Michael Hope on 2012-04-02
Completed by
Michael Hope on 2012-09-07

Related branches

Sprints

Whiteboard

[michaelh1 2012-06-29] Pinged Grant in a new thread

2012-03-31: Grant, Nicolas, Dave, and Michael:

> Hi Grant. For KVM we want the boot loader to start the kernel in
> hypervisor mode. I understand you want the same for big/little. I
> want to make sure this is communicated well with the other switcher,
> hypervisor, or boot loader makers and documented as part of the
> kernel.

[cc'ing Dave Martin & Nicolas]

Hey Michael,

Yes, this can be added to Documentation/arm/Booting. Something like
the following perhaps:

diff --git a/Documentation/arm/Booting b/Documentation/arm/Booting
index a341d87..7be3060 100644
--- a/Documentation/arm/Booting
+++ b/Documentation/arm/Booting
@@ -154,7 +154,10 @@ In either case, the following conditions must be met:

 - CPU mode
  All forms of interrupts must be disabled (IRQs and FIQs)
- The CPU must be in SVC mode. (A special exception exists for Angel)
+ The CPU must be in HYP mode if supported by hardware, or SVC mode
+ otherwise. Starting in HYP mode is required for big.LITTLE and
+ virtualization support. Virtualized guests always start in SVC mode.
+ A special exemption exists for Angel.

[1] michaelh1 2012-07-02: blocked on boot-i-hyp-mode support in the kernel. Implement then document.

(?)

Work Items

Work items:
Discuss: DONE
Add to Documentation/arm/Booting[1]: DONE

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.