diff options
Diffstat (limited to 'roms/opensbi/docs/firmware/fw_jump.md')
-rw-r--r-- | roms/opensbi/docs/firmware/fw_jump.md | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/roms/opensbi/docs/firmware/fw_jump.md b/roms/opensbi/docs/firmware/fw_jump.md new file mode 100644 index 000000000..eea301387 --- /dev/null +++ b/roms/opensbi/docs/firmware/fw_jump.md @@ -0,0 +1,51 @@ +OpenSBI Firmware with Jump Address (FW_JUMP) +============================================ + +OpenSBI **firmware with Jump Address (FW_JUMP)** is a firmware which only +handles the address of the next booting stage entry, e.g. a bootloader or an OS +kernel, without directly including the binary code for this next stage. + +A *FW_JUMP* firmware is particularly useful when the booting stage executed +prior to the OpenSBI firmware is capable of loading both the OpenSBI firmware +and the booting stage binary to follow the OpenSBI firmware. + +*FW_JUMP* Compilation +--------------------- + +A platform *FW_JUMP* firmware can be enabled by any of the following methods: + +1. Specifying `FW_JUMP=y` on the top level `make` command line. +2. Specifying `FW_JUMP=y` in the target platform *config.mk* configuration file. + +The compiled *FW_JUMP* firmware ELF file is named *fw_jump.elf*. Its expanded +image file is *fw_jump.bin*. Both files are created in the platform-specific +build directory under the *build/platform/<platform_subdir>/firmware* directory. + +*FW_JUMP* Firmware Configuration Options +---------------------------------------- + +To operate correctly, a *FW_JUMP* firmware requires some configuration +parameters to be defined using either the top level `make` command line or the +target platform *config.mk* configuration file. The possible parameters are as +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. + +* **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 + the booting stage following the OpenSBI firmware. If this option is not + provided, then the OpenSBI firmware will pass the FDT address passed by the + previous booting stage to the next booting stage. + +*FW_JUMP* Example +----------------- + +The *[qemu/virt]* platform illustrates how to configure and use a *FW_JUMP* +firmware. Detailed information regarding these platforms can be found in the +platform documentation files. + +[qemu/virt]: ../platform/qemu_virt.md |