Re: [PATCH v6 05/21] arm64: Initialise as nVHE before switching to VHE

From: Hector Martin 'marcan'
Date: Fri Feb 05 2021 - 07:07:15 EST


On 01/02/2021 20.56, Marc Zyngier wrote:
As we are aiming to be able to control whether we enable VHE or
not, let's always drop down to EL1 first, and only then upgrade
to VHE if at all possible.

This means that if the kernel is booted at EL2, we always start
with a nVHE init, drop to EL1 to initialise the the kernel, and
only then upgrade the kernel EL to EL2 if possible (the process
is obviously shortened for secondary CPUs).

Unfortunately, this is going to break on Apple SoCs, where it turns out HCR_EL2.E2H is hard-wired to 1 - there is no nVHE mode. :(

>>> mrs(HCR_EL2) & (1<<34)
0x400000000
>>> msr(HCR_EL2, mrs(HCR_EL2) & ~(1<<34))
>>> mrs(HCR_EL2) & (1<<34)
0x400000000

--
Hector Martin "marcan" (marcan@xxxxxxxxx)
Public Key: https://mrcn.st/pub