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