On Fri, Nov 21, 2025 at 02:00:46AM +0000, Ivan Velickovic wrote: > Hello everyone, > > My understanding of the general RISC-V bootflow ABI is that each boot stage > provides the hart ID and DTB > in a0 and a1 respectively. From [1] I can see that U-Boot also adheres to > that.
I think the ABI is only defined for Linux. OpenSBI follows a similar convention, but provides a raw binary with no image header, and requires an extra fw_dynamic_info parameter if dynamic image is used. > For my use-case, I am typically booting my OS/application with U-Boot via the > `go` or `bootelf` commands. > I believe that currently these methods do not adhere to this ABI, and I’m > wondering if someone could clarify > whether that is a mistake or intentional? There's some previous discussion about passing hart ID/DTB, too with bootelf[3], but I think the patch is stalled. Here's the v2[4] but I've never seen v3. Personally speaking, I think it's a better idea to pack your customized kernel into a Linux-style image, in which way existing facilities could be re-used, and ABI stability is guaranteed, too. > I can see that for `bootm` for Linux images for example, the ABI is preserved > [2]. Yes, and similar convention also preserved in common/spl/spl_opensbi.c which loads OpenSBI. But for "go" and "bootelf", you couldn't tell what ABI the image really follows, so preserving the de-facto ABI may benefit in some situation, but I personally won't consider the current implementation buggy. > Thank you, > Ivan > > [1]: https://docs.u-boot.org/en/latest/arch/riscv.html > [2]: > https://github.com/u-boot/u-boot/blob/2bc0715b558fa1ac5c88b11e250740b16a905837/arch/riscv/lib/bootm.c#L100. Regards, Yao Zi > This email and any files transmitted with it may contain confidential > information. If you believe you have received this email or any of its > contents in error, please notify me immediately by return email and destroy > this email. Do not use, disseminate, forward, print or copy any contents of > an email received in error. > [3]: https://lore.kernel.org/u-boot/me0p300mb13096732af44ac5409b9d0d49f...@me0p300mb1309.ausp300.prod.outlook.com/ [4]: https://lore.kernel.org/u-boot/sy7p282mb5675687ea430c83d458678f89f...@sy7p282mb5675.ausp282.prod.outlook.com/

