diff options
author | Anup Patel <anup.patel@wdc.com> | 2020-11-24 09:29:05 +0300 |
---|---|---|
committer | Anup Patel <anup@brainfault.org> | 2020-12-01 14:40:31 +0300 |
commit | 5c429ae2133e1a82b81403146a3e38e2b4b8350e (patch) | |
tree | 09b02a0042a7ba5697e2f44082d08d05db147b3f /platform/nuclei | |
parent | da074796df871f6323d052f123b7668d390980dc (diff) | |
download | opensbi-5c429ae2133e1a82b81403146a3e38e2b4b8350e.tar.xz |
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>
Diffstat (limited to 'platform/nuclei')
-rw-r--r-- | platform/nuclei/ux600/platform.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/platform/nuclei/ux600/platform.c b/platform/nuclei/ux600/platform.c index ba6803e..d0a45a2 100644 --- a/platform/nuclei/ux600/platform.c +++ b/platform/nuclei/ux600/platform.c @@ -186,13 +186,17 @@ static int ux600_timer_init(bool cold_boot) return clint_warm_timer_init(); } -static int ux600_system_reset(u32 type) +static int ux600_system_reset_check(u32 type, u32 reason) +{ + return 1; +} + +static void ux600_system_reset(u32 type, u32 reason) { /* Reset system using MSFTRST register in Nuclei Timer. */ writel(UX600_NUCLEI_TIMER_MSFTRST_KEY, (void *)(UX600_NUCLEI_TIMER_ADDR + UX600_NUCLEI_TIMER_MSFTRST_OFS)); while(1); - return 0; } const struct sbi_platform_operations platform_ops = { @@ -209,6 +213,7 @@ const struct sbi_platform_operations platform_ops = { .timer_event_stop = clint_timer_event_stop, .timer_event_start = clint_timer_event_start, .timer_init = ux600_timer_init, + .system_reset_check = ux600_system_reset_check, .system_reset = ux600_system_reset }; |