[PATCH 0/3] Support OpenSBI firmware header

Anup Patel anup at brainfault.org
Tue Sep 15 22:09:58 PDT 2026


On Tue, Sep 15, 2026 at 1:17 PM Zong Li <zong.li at sifive.com> wrote:
>
> On Tue, Sep 1, 2026 at 10:22 AM Zong Li <zong.li at sifive.com> wrote:
> >
> > This series adds OpenSBI firmware header. The motivation is when a
> > system where the previous booting stage runs on a dedicated boot
> > processor, it can load and patch the OpenSBI image in DRAM and then
> > release the application hart that runs OpenSBI, but it can never execute
> > on that hart and therefore cannot place anything in its registers, such
> > as $a0, $a1 and $a2
> >
> > Every OpenSBI firmware image, regardless of its type (FW_DYNAMIC,
> > FW_JUMP or FW_PAYLOAD), starts with a fixed 128-byte header. The header
> > serves two purposes:
> >
> > 1. it lets the previous booting stage recognize an OpenSBI firmware
> >    image and find out what it was built for, and
> > 2. it gives the previous booting stage a well-known place inside the
> >    image to hand over the boot arguments by patching a few words,
> >    instead of setting up the *a0*, *a1* and *a2* registers.
> >
> > This series also provides a document 'docs/firmware/fw_header.md' to
> > describe the layout of the 128-byte OpenSBI firmware header, the
> > a0/a1/a2 override flags, what a previous booting stage is expected to put
> > in each register, and an example of how to patch the header.
> >
> > Thanks Anup for discussing it and providing the ideas
> >
>
> Hi Anup,
> Could I know if this patch set looks good to you? Thanks

Overall, the series is in very good shape. Once the comment about
FW_HEADER_FLAGS_OVERRIDE_A0 is addressed, I will merge.

Thanks,
Anup



More information about the opensbi mailing list