Hi,
I am the maintainer of the UEFI sub-system in U-Boot.
When OpenSBI calls U-Boot it transfers the boot hart ID in register a0 to U-Boot. This value is stored in gd->arch.boot_hart.
When the bootefi command is executed it fixes up the device-tree and sets the /chose/boot-hartid property in the device-tree.
The current patch series for GRUB to enable booting RISC-V booting into Linux is available here: [PATCH v2 0/7] Add LoadFile2 and riscv Linux loader. There is a pending Linux patch needed: [PATCH 1/1] RISC-V: load initrd wherever it fits into memory - Heinrich Schuchardt
Best regards
Heinrich