spl: support booting via RISC-V OpenSBI
RISC-V OpenSBI is an open-source implementation of the RISC-V Supervisor
Binary Interface (SBI) specification. It is required by Linux and U-Boot
running in supervisor mode. This patch adds support for booting via the
OpenSBI FW_DYNAMIC firmware. It supports OpenSBI version 0.4 and higher.
In this configuration, U-Boot SPL starts in machine mode. After loading
OpenSBI and U-Boot proper, it will start OpenSBI. All necessary
parameters are generated by U-Boot SPL and are passed to OpenSBI. U-Boot
proper is started in supervisor mode by OpenSBI. Support for OpenSBI is
enabled with CONFIG_SPL_OPENSBI. An additional configuration entry,
CONFIG_SPL_OPENSBI_LOAD_ADDR, is used to specify the load address of the
OpenSBI firmware binary. It is not used directly in U-Boot and instead
is intended to make the value available to scripts such as FIT
configuration generators.
The header file include/opensbi.h is based on header files from the
OpenSBI project. They are recent, as of commit bae54f764570 ("firmware:
Add fw_dynamic firmware").
Signed-off-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Tested-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Anup Patel <anup.patel@wdc.com>
This commit is contained in:
@@ -374,6 +374,11 @@ void spl_invoke_atf(struct spl_image_info *spl_image);
|
||||
*/
|
||||
void spl_optee_entry(void *arg0, void *arg1, void *arg2, void *arg3);
|
||||
|
||||
/**
|
||||
* spl_invoke_opensbi - boot using a RISC-V OpenSBI image
|
||||
*/
|
||||
void spl_invoke_opensbi(struct spl_image_info *spl_image);
|
||||
|
||||
/**
|
||||
* board_return_to_bootrom - allow for boards to continue with the boot ROM
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user