summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnup Patel <anup.patel@wdc.com>2020-09-19 14:53:46 +0300
committerAnup Patel <anup@brainfault.org>2020-10-20 11:33:40 +0300
commit3e200370eeda75917a0711d8995391bbbaf58b97 (patch)
tree5812e41d7a62b94db7836b607e90fa1d91de738e
parent530e95bd63f60337140ffa55de335e9acc3811b4 (diff)
downloadopensbi-3e200370eeda75917a0711d8995391bbbaf58b97.tar.xz
lib: sbi: Extend sbi_system_reset() for domains
The sbi_system_reset() should issue platform system reset only if domain of current HART is allowed to do system reset. This patch extends sbi_system_reset() as-per above. Signed-off-by: Anup Patel <anup.patel@wdc.com> Reviewed-by: Atish Patra <atish.patra@wdc.com>
-rw-r--r--lib/sbi/sbi_system.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/sbi/sbi_system.c b/lib/sbi/sbi_system.c
index a938003..96290b3 100644
--- a/lib/sbi/sbi_system.c
+++ b/lib/sbi/sbi_system.c
@@ -37,9 +37,10 @@ void __noreturn sbi_system_reset(u32 platform_reset_type)
/* Stop current HART */
sbi_hsm_hart_stop(scratch, FALSE);
- /* Platform specific reset */
- sbi_platform_system_reset(sbi_platform_ptr(scratch),
- platform_reset_type);
+ /* Platform specific reset if domain allowed system reset */
+ if (dom->system_reset_allowed)
+ sbi_platform_system_reset(sbi_platform_ptr(scratch),
+ platform_reset_type);
/* If platform specific reset did not work then do sbi_exit() */
sbi_exit(scratch);