mirror of
https://github.com/Fishwaldo/opensbi.git
synced 2025-07-08 22:18:18 +00:00
docs: Add documentation for firmware blobs
This patch adds documentation for fw_jump and fw_payload firmware blobs. Signed-off-by: Anup Patel <anup.patel@wdc.com>
This commit is contained in:
parent
ef1f669cb7
commit
33ec85c9ab
2 changed files with 88 additions and 0 deletions
37
docs/blob/fw_jump.md
Normal file
37
docs/blob/fw_jump.md
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
OpenSBI Firmware with Jump Address(FW_JUMP)
|
||||||
|
===========================================
|
||||||
|
|
||||||
|
The **OpenSBI firmware with Jump Address (FW_JUMP)** is a
|
||||||
|
firmware which only know the address of next booting stage
|
||||||
|
(i.e. bootloader/kernel).
|
||||||
|
|
||||||
|
This **FW_JUMP** firmware is particularly useful when booting
|
||||||
|
stage prior to OpenSBI firmware is capable of loading OpenSBI
|
||||||
|
firmware and booting stage after OpenSBI firmware separately.
|
||||||
|
|
||||||
|
How to Enable?
|
||||||
|
--------------
|
||||||
|
|
||||||
|
The **FW_JUMP** firmware can be enabled by any of the following
|
||||||
|
methods:
|
||||||
|
|
||||||
|
1. Passing `FW_JUMP=y` command-line parameter to
|
||||||
|
top-level `make`
|
||||||
|
2. Setting `FW_JUMP=y` in platform `config.mk`
|
||||||
|
|
||||||
|
Config Options
|
||||||
|
--------------
|
||||||
|
|
||||||
|
We need more config details for **FW_JUMP** firmware to work
|
||||||
|
correctly. These config details can be passed as paramter to
|
||||||
|
top-level `make` or can be set in platform `config.mk`.
|
||||||
|
|
||||||
|
Following are the config options for **FW_JUMP** firmware:
|
||||||
|
|
||||||
|
* **FW_JUMP_ADDR** - Address where next booting stage is
|
||||||
|
located. This is a mandatory config option and will result
|
||||||
|
in compile error if not provided.
|
||||||
|
* **FW_JUMP_FDT_ADDR** - Address where FDT passed by prior
|
||||||
|
booting stage will be placed before passing to next booting
|
||||||
|
stage. If this option is not provided then firmware will pass
|
||||||
|
zero as FDT address to next booting stage.
|
51
docs/blob/fw_payload.md
Normal file
51
docs/blob/fw_payload.md
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
OpenSBI Firmware with Payload (FW_PAYLOAD)
|
||||||
|
==========================================
|
||||||
|
|
||||||
|
The **OpenSBI firmware with Payload (FW_PAYLOAD)** is a
|
||||||
|
firmware which includes next booting stage binary (i.e.
|
||||||
|
bootloader/kernel) as payload in the OpenSBI firmware binary.
|
||||||
|
|
||||||
|
This **FW_PAYLOAD** firmware is particularly useful when
|
||||||
|
booting stage prior to OpenSBI firmware is not capable of
|
||||||
|
loading OpenSBI firmware and booting stage after OpenSBI
|
||||||
|
firmware separately.
|
||||||
|
|
||||||
|
It is also possible that booting stage prior to OpenSBI
|
||||||
|
firmware does not pass **flattened device tree (FDT)**. In
|
||||||
|
this case, we have provision to embed FDT in .text section
|
||||||
|
of **FW_PAYLOAD** firmware.
|
||||||
|
|
||||||
|
How to Enable?
|
||||||
|
--------------
|
||||||
|
|
||||||
|
The **FW_PAYLOAD** firmware can be enabled by any of the
|
||||||
|
following methods:
|
||||||
|
|
||||||
|
1. Passing `FW_PAYLOAD=y` command-line parameter to
|
||||||
|
top-level `make`
|
||||||
|
2. Setting `FW_PAYLOAD=y` in platform `config.mk`
|
||||||
|
|
||||||
|
Config Options
|
||||||
|
--------------
|
||||||
|
|
||||||
|
We need more config details for **FW_PAYLOAD** firmware to
|
||||||
|
work correctly. These config details can be passed as paramter
|
||||||
|
to top-level `make` or can be set in platform `config.mk`.
|
||||||
|
|
||||||
|
Following are the config options for **FW_PAYLOAD** firmware:
|
||||||
|
|
||||||
|
* **FW_PAYLOAD_OFFSET** - Offset from FW_TEXT_BASE where next
|
||||||
|
booting stage binary will be linked to **FW_PAYLOAD** firmware.
|
||||||
|
This is a mandatory config option and will result in compile
|
||||||
|
error if not provided.
|
||||||
|
* **FW_PAYLOAD_PATH** - Path to the next booting stage binary.
|
||||||
|
If this option is not provided then **`while (1)`** is taken as
|
||||||
|
payload.
|
||||||
|
* **FW_PAYLOAD_FDT_PATH** - Path to the FDT binary to be embedded
|
||||||
|
in .text section of **FW_PAYLOAD** firmware. If this option is
|
||||||
|
not provided then firmware will expect FDT to be passed by prior
|
||||||
|
booting stage.
|
||||||
|
* **FW_PAYLOAD_FDT_ADDR** - Address where FDT passed by prior
|
||||||
|
booting stage (or embedded FDT) will be placed before passing
|
||||||
|
to next booting stage. If this option is not provided then
|
||||||
|
firmware will pass zero as FDT address to next booting stage.
|
Loading…
Add table
Add a link
Reference in a new issue