Re: Booting a kernel to EL1 in Armv8.1

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Jan 24, 2017 at 09:50:04PM +0000, Raz wrote:
> Hello
> 
> I am trying to boot EL1 kernel in a platform based on Armv8.1.
> I am using fvp as a hardware.
> What I am trying to achieve is to execute some kernel code in
> EL2 exception level..

When you boot a reasonably recent kernel on VHE, it will execute in EL2,
so all the code you're executing will be at EL2, so I think you've
already achieved what you're trying to do.

> 
> The current VHE patch is booting the kernel into EL2. So I took an older
> kernel
> and I tried to set  TTBR1_EL2 to access kernel memory as if it is TTBR1_EL1
> .

That won't work unless you set the E2H bit, see the ARMv8.1
documentation.

If you boot a kernel that doesn't have the necessary bits to enable VHE,
then you'll just run as on a non-VHE system with the main kernel running
at EL1 and a stub installed at EL2 which eventually gets replaced by the
KVM hyp lowvisor code in EL2.

> 
> It is theoretically possible ?

I'm not sure what you're asking?

> Setting TTBR1_EL2 to TTBR1_EL1
> and enabling mmu  thtough sctlr_el2 does not work.
> 

Again, not sure what you're trying to do.  If you're running in EL1
(because you're old kernel drops you to EL1) then trying to access EL2
registers obviously won't work.

If you run a VHE kernel, it will have already set the _EL2 registers to
the values you want (but it will use _EL1 register access intructions to
do so, and they are transparently rewritten by hardware to program the
corresponding _EL2 registers).

Hope this helps,
-Christoffer
_______________________________________________
kvmarm mailing list
kvmarm@xxxxxxxxxxxxxxxxxxxxx
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm



[Index of Archives]     [Linux KVM]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux