forked from Mirrors/opensbi
lib: sbi: Improve system reset platform operations
To implement the SBI SRST extension, we need two platform operations for system reset: 1) system_reset_check() - This operation will check whether given reset type and reason are supported by the platform 2) system_reset() - This operation will do the actual platform system reset and it will not return if reset type and reason are supported by the platform This patch updates system reset related code everywhere as-per above. Signed-off-by: Anup Patel <anup.patel@wdc.com> Reviewed-by: Atish Patra <atish.patra@wdc.com>
This commit is contained in:
@@ -108,10 +108,14 @@ static int c910_timer_init(bool cold_boot)
|
||||
return clint_warm_timer_init();
|
||||
}
|
||||
|
||||
static int c910_system_reset(u32 type)
|
||||
static int c910_system_reset_check(u32 type, u32 reason)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
static void c910_system_reset(u32 type, u32 reason)
|
||||
{
|
||||
asm volatile ("ebreak");
|
||||
return 0;
|
||||
}
|
||||
|
||||
int c910_hart_start(u32 hartid, ulong saddr)
|
||||
@@ -135,6 +139,7 @@ const struct sbi_platform_operations platform_ops = {
|
||||
.timer_init = c910_timer_init,
|
||||
.timer_event_start = clint_timer_event_start,
|
||||
|
||||
.system_reset_check = c910_system_reset_check,
|
||||
.system_reset = c910_system_reset,
|
||||
|
||||
.hart_start = c910_hart_start,
|
||||
|
Reference in New Issue
Block a user