docs/firmware: Update FW_JUMP documentation

Reformatting, typos, and various corrections.

Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
This commit is contained in:
Damien Le Moal 2019-01-23 16:00:35 +09:00 committed by Anup Patel
parent 808fe4b82a
commit fff48ee2bf

View file

@ -1,39 +1,52 @@
OpenSBI Firmware with Jump Address (FW_JUMP) OpenSBI Firmware with Jump Address *FW_JUMP*
============================================ ============================================
The **OpenSBI firmware with Jump Address (FW_JUMP)** is a OpenSBI **firmware with Jump Address (FW_JUMP)** is a firmware which only
firmware which only know the address of next booting stage handles the address of the next booting stage entry, e.g. a bootloader or an OS
(i.e. bootloader/kernel). kernel, without directly including the binary code for this next stage.
This **FW_JUMP** firmware is particularly useful when booting A *FW_JUMP* firmware is particularly useful when the booting stage executed
stage prior to OpenSBI firmware is capable of loading OpenSBI prior to OpenSBI firmware is capable of loading both the OpenSBI firmware and
firmware and booting stage after OpenSBI firmware separately. the booting stage binary to follow OpenSBI firmware.
How to Enable? *FW_JUMP* Compilation
-------------- ---------------------
The **FW_JUMP** firmware can be enabled by any of the following A platform *FW_JUMP* firmware can be enabled by any of the following methods.
methods:
1. Passing `FW_JUMP=y` command-line parameter to 1. Spedifying `FW_JUMP=y` on the top level `make` command line.
top-level `make` 2. Specifying `FW_JUMP=y` in the target platform *config.mk* configuration file.
2. Setting `FW_JUMP=y` in platform `config.mk`
Config Options 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.
We need more config details for **FW_JUMP** firmware to work *FW_JUMP* Firmware Configuration Options
correctly. These configuration details can be passed as parameters to ----------------------------------------
top-level `make` or can be set in platform `config.mk`.
Following are the configuration options for a **FW_JUMP** firmware: 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 where next booting stage is * **FW_JUMP_ADDR** - Address of the entry point of the booting stage to be
located. This is a mandatory config option and will result executed following OpenSBI firmware. This address generally correspond
in compile error if not provided. 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 FDT passed by the prior * **FW_JUMP_FDT_ADDR** - Address where the *flattened device tree (FDT file)*
booting stage will be placed before passing to the next booting passed by the prior booting stage will be placed in memory before executing
stage. If this option is not provided then the firmware will pass the booting stage following OpenSBI firmware. If this option is not provided
zero as the FDT address to the next booting stage. then OpenSBI firmware will pass zero as the FDT address to the following
>>>>>>> 2c0dc4dc... docs: Typo fixes. booting stage.
*FW_JUMP* Example
-----------------
The *[qemu/virt]* and *[qemu/sifive_u]* platforms illustrates how to configure
and use a *FW_JUMP* firmware. Detailed information regarding these platforms
can be found in the platforms documentation files.
[qemu/virt]: ../platform/qemu_virt.md
[qemu/sifive_u]: ../platform/qemu_sifive_u.md