[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