forked from Mirrors/opensbi
docs: Document parameters passed to firmware and alignment requirement
This updates documentation to describe parameters passed to firmware from previous booting stage, and corresponding address alignment requirement. This also fixes a typo in fw_dynamic.md (it's => its). Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Anup Patel <anup.patel@wdc.com>
This commit is contained in:
@@ -9,6 +9,13 @@ OpenSBI generic library code. The supported firmwares type will differ in how
|
|||||||
the arguments passed by the platform early boot stage are handled, as well as
|
the arguments passed by the platform early boot stage are handled, as well as
|
||||||
how the boot stage following the firmware will be handled and executed.
|
how the boot stage following the firmware will be handled and executed.
|
||||||
|
|
||||||
|
The previous booting stage will pass information via the following registers
|
||||||
|
of RISC-V CPU:
|
||||||
|
|
||||||
|
* hartid via *a0* register
|
||||||
|
* 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 three different types of firmwares.
|
||||||
|
|
||||||
Firmware with Dynamic Information (*FW_DYNAMIC*)
|
Firmware with Dynamic Information (*FW_DYNAMIC*)
|
||||||
|
@@ -6,8 +6,9 @@ information about next booting stage (e.g. a bootloader or an OS) and runtime
|
|||||||
OpenSBI library options from previous booting stage.
|
OpenSBI library options from previous booting stage.
|
||||||
|
|
||||||
The previous booting stage will pass information to *FW_DYNAMIC* by creating
|
The previous booting stage will pass information to *FW_DYNAMIC* by creating
|
||||||
*struct fw_dynamic_info* in memory and passing it's address to *FW_DYNAMIC*
|
*struct fw_dynamic_info* in memory and passing its address to *FW_DYNAMIC*
|
||||||
via *a2* register of RISC-V CPU.
|
via *a2* register of RISC-V CPU. The address must be aligned to 8 bytes on
|
||||||
|
RV64 and 4 bytes on RV32.
|
||||||
|
|
||||||
A *FW_DYNAMIC* firmware is particularly useful when the booting stage executed
|
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
|
prior to OpenSBI firmware is capable of loading both the OpenSBI firmware and
|
||||||
|
Reference in New Issue
Block a user