OpenBSI and U-Boot

Heinrich Schuchardt xypron.glpk at gmx.de
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
payload.

@Ard:
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

Heinrich


More information about the U-Boot mailing list