@@ -31,9 +31,15 @@ follows:
* **FW_JUMP_ADDR** - Address of the entry point of the booting stage to be
executed following OpenSBI firmware. This address generally corresponds
- exactly to the address where this next booting stage was loaded. This is a
- mandatory parameter. Compilation errors will result from not defining this
- address.
+ exactly to the address where this next booting stage was loaded.
+ At least one of *FW_JUMP_ADDR* and *FW_JUMP_OFFSET* (see below) should be
+ defined. Compilation errors will result from not defining one of them.
+
+* **FW_JUMP_OFFSET** - Address offset from the *FW_TEXT_START* of *FW_JUMP_ADDR*.
+ This offset is used as relocatable *FW_JUMP_ADDR* when "FW_PIC=y".
+ If *FW_JUMP_ADDR* is also defined, the firmware will prefer *FW_JUMP_ADDR*.
+ This offset will convert to *FW_JUMP_ADDR* at build time if "FW_PIC=n"
+ and *FW_JUMP_ADDR* is not defined.
* **FW_JUMP_FDT_ADDR** - Address where the *flattened device tree (FDT file)*
passed by the prior booting stage will be placed in memory before executing
@@ -56,6 +62,11 @@ follows:
(( `tail -1` > (FW_JUMP_FDT_ADDR - FW_JUMP_ADDR) )) &&
echo fdt overlaps kernel, increase FW_JUMP_FDT_ADDR
```
+* **FW_JUMP_FDT_OFFSET** - Address offset from the *FW_TEXT_START* of
+ *FW_JUMP_FDT_ADDR*. This offset is used as relocatable *FW_JUMP_FDT_ADDR*
+ when "FW_PIC=y". If *FW_JUMP_FDT_ADDR* is also defined, the firmware will
+ prefer *FW_JUMP_FDT_ADDR*. This offset will convert to *FW_JUMP_FDT_ADDR*
+ at build time if "FW_PIC=n" and *FW_JUMP_FDT_ADDR* is not defined.
*FW_JUMP* Example
-----------------
@@ -62,6 +62,12 @@ file. The parameters currently defined are as follows:
firmware will pass the FDT address passed by the previous booting stage
to the next booting stage.
+* **FW_PAYLOAD_FDT_OFFSET** - Address offset from the *FW_TEXT_START* of
+ *FW_PAYLOAD_FDT_ADDR*. This offset is used as relocatable *FW_PAYLOAD_FDT_ADDR*
+ when "FW_PIC=y". If *FW_PAYLOAD_FDT_ADDR* is also defined, the firmware will
+ prefer *FW_PAYLOAD_FDT_ADDR*. This offset will convert to *FW_PAYLOAD_FDT_ADDR*
+ at build time if "FW_PIC=n" and *FW_PAYLOAD_FDT_ADDR* is not defined.
+
*FW_PAYLOAD* Example
--------------------
Adding relocatable address brings new configuration options. Add these new options in doc. Signed-off-by: Inochi Amaoto <inochiama@outlook.com> --- docs/firmware/fw_jump.md | 17 ++++++++++++++--- docs/firmware/fw_payload.md | 6 ++++++ 2 files changed, 20 insertions(+), 3 deletions(-)