[U-Boot] [RFC 1/1] efi_loader: refactor switch to hypervisor mode

Alexander Graf agraf at suse.de
Wed Dec 26 21:07:36 UTC 2018



On 26.12.18 13:05, Mark Kettenis wrote:
>> From: Heinrich Schuchardt <xypron.glpk at gmx.de>
>> Date: Wed, 26 Dec 2018 10:57:38 +0100
>>
>> On 12/26/18 8:42 AM, Alexander Graf wrote:
>>>
>>> On 26.12.18 03:02, Heinrich Schuchardt wrote:
>>>>
>>>> Thanks Mark for pointing this out.
>>>>
>>>> We have some major differences between bootm and bootefi:
>>>>
>>>> - Bootefi does not support CONFIG_ARMV8_SWITCH_TO_EL1 used by some
>>>>   Xilinx boards.
>>>
>>> Yeah, mostly because I really dislike boards that simply switch to EL1
>>> for no good reason ;).
> 
> The only justification I can see for this is when EL2 is sufficiently
> broken that it is inadvisable to have the kernel support
> virtualization or if EL2 is used to work around broken hardware.  An
> example of the latter is the Socionext Synqacer where virtualization
> is used to fix up broken PCIe hardware.  Of course that U-Boot doesn't
> use that SoC; the fixup happens in Tianocore.

In that case I would not expect to see CONFIG_ARMV8_SWITCH_TO_EL1 used
though. Instead, I would expect that either ATF, something in between
U-Boot and ATF or board specific code would do the fixup magic in EL2.

> 
>>>> - It ignores CONFIG_ARMV8_PSCI.
>>>
>>> What exactly should it honor here?
>>
>> Call armv8_setup_psci() and possibly smp_kick_all_cpus().
> 
> Probably because most ARMv8 SoCs actually use TF-A to implement PSCI.

Yeah, I don't think I ran into a case where U-Boot was implementing
PSCI. That's probably the reason this case never got triggered so far :/.


Alex


More information about the U-Boot mailing list