ARM processor mode, kernel startup, Hyp / secure state
Ian Jackson
Ian.Jackson at eu.citrix.com
Tue Aug 23 13:23:32 EDT 2011
Catalin Marinas writes ("Re: ARM processor mode, kernel startup, Hyp / secure state"):
> (I'll be on holiday from tomorrow, so not able to follow up until September).
Right. Let's try to be quick :-).
> We had some discussions both with ARM partners and Christoffer and it
> is not clear how we go about initialising the Hyp mode. Most SoC
> vendors would probably just run Linux in non-secure SVC mode and would
> not touch the Hyp mode at all. Linux would issue an SMC to set the
> HVBAR (could do HVC but I expect that there is no secure monitor
> code). Once this is set, assuming that the Hyp MMU is disabled, Linux
> can invoke an HVC and initialise the Hyp mode.
Well, yes. Do SoC vendors all expect to own the secure state ?
If so then the answer is perhaps simply that they should boot Linux in
Hyp mode (and expect Linux to drop to ordinary svc mode).
> The problem is that the SMC API is specific to a secure monitor
> implementation. An alternative would be to ask the vendors to get some
> simple Hyp code which would trap access to HVBAR for example and set
> it with that value.
That's seems to be extending the range of ways in which the firmware
can make things go wrong, and broadening the interface to the
firmware.
> From the above, I would just allow (iii). As Dave pointed out, we
> don't have the ELF information at this point.
If we had a more functional bootloader setup (which AIUI is definitely
planned) we could do.
> > (b) If started in Hyp mode:
> > * Install a trivial hypervisor vector which unconditionally
> > copies r0 to HVBAR and returns
> > (c) Rest of startup.
>
> Maybe we could allow (b) if SoC vendors don't provide a different API
> to set the HVBAR. But it means that kernels not aware of this feature
> would fail.
It turns out that at least your kernel boots just fine if started in
Hyp mode :-).
Ian.
More information about the linux-arm-kernel
mailing list