[PATCH 7/7] docs: firmware: list FW_DYNAMIC_APPEND in fw.md
Zong Li
zong.li at sifive.com
Mon Jul 6 20:39:54 PDT 2026
Update the firmware overview to reflect that OpenSBI now supports four
firmware types. Add a short FW_DYNAMIC_APPEND section describing it as a
FW_DYNAMIC variant whose struct fw_dynamic_info is appended into the
binary (before .bss) instead of being passed in a2, and add a pointer to
docs/firmware/fw_dynamic_append.md in the per-type documentation list.
Signed-off-by: Zong Li <zong.li at sifive.com>
---
docs/firmware/fw.md | 19 ++++++++++++++++++-
1 file changed, 18 insertions(+), 1 deletion(-)
diff --git a/docs/firmware/fw.md b/docs/firmware/fw.md
index d2980967..9cdd6a6b 100644
--- a/docs/firmware/fw.md
+++ b/docs/firmware/fw.md
@@ -16,7 +16,7 @@ of RISC-V CPU:
* device tree blob address in memory via *a1* register. The address must
be aligned to 8 bytes.
-OpenSBI currently supports three different types of firmwares.
+OpenSBI currently supports four different types of firmwares.
Firmware with Dynamic Information (*FW_DYNAMIC*)
------------------------------------------------
@@ -28,6 +28,19 @@ A *FW_DYNAMIC* firmware is particularly useful when the booting stage executed
prior to OpenSBI firmware is capable of loading both the OpenSBI firmware
and the booting stage binary to follow OpenSBI firmware.
+Firmware with Appended Dynamic Information (*FW_DYNAMIC_APPEND*)
+-------------------------------------------------------------
+
+The *FW_DYNAMIC_APPEND* firmware is a variant of *FW_DYNAMIC*. It carries
+the same struct fw_dynamic_info, but the structure is appended into the
+OpenSBI binary itself (right before the .bss section, so that it stays part
+of the flat .bin image) instead of being passed by pointer in the a2 register.
+
+A *FW_DYNAMIC_APPEND* firmware is particularly useful when the booting stage
+executed prior to OpenSBI firmware cannot easily allocate and pass a
+struct fw_dynamic_info, but can load the OpenSBI image and patch a few
+fields at the tail of the image before jumping to it.
+
Firmware with Jump Address (*FW_JUMP*)
--------------------------------------
@@ -77,12 +90,16 @@ following documents.
* *[FW_DYNAMIC]*: The *Firmware with Dynamic Information (FW_DYNAMIC)* is
described in more details in the file *fw_dynamic.md*.
+* *[FW_DYNAMIC_APPEND]*: The *Firmware with Appended Dynamic Information
+ (FW_DYNAMIC_APPEND)* is described in more details in the file
+ fw_dynamic_append.md.
* *[FW_JUMP]*: The *Firmware with Jump Address (FW_JUMP)* is described in more
details in the file *fw_jump.md*.
* *[FW_PAYLOAD]*: The *Firmware with Payload (FW_PAYLOAD)* is described in more
details in the file *fw_payload.md*.
[FW_DYNAMIC]: fw_dynamic.md
+[FW_DYNAMIC_APPEND]: fw_dynamic_append.md
[FW_JUMP]: fw_jump.md
[FW_PAYLOAD]: fw_payload.md
--
2.43.7
More information about the opensbi
mailing list