OpenBSI and U-Boot

Heinrich Schuchardt xypron.glpk at
Sat Aug 8 16:59:35 CEST 2020

Hello Anup,

I have looking at you OpenSBI code firmware/payloads/test_head.S. Here
like in U-Boot's common/spl/spl_opensbi.c you put all but one hart in to
an enless loop (hang).

When Linux boots via UEFI it will wake up the extra harts after
ExitBootServices(). So I assume we should define function hang() in
lib/hang.c as __efi_runtime to avoid seeing it overwritten by the EFI

Does Linux take care of the hanging harts and redirect them to its own
routine before SetVirtualAddressMap()? Otherwise anything could happen.

On the Kendryte K210 we don't have SPL. So we will not boot in the
sequence SPL->OpenSBI->U-Boot but OpenSBI->U-Boot. Does this imply that
we have to implement the hart lottery at the entry point of main U-Boot
in this case?

Best regards


More information about the U-Boot mailing list