lib: improve system reboot and shutdown implementation

We improve sbi_system_reboot() an sbi_system_shutdown() by:

1. Calling halt IPI to all harts (except current HART) before
   calling platform reboot/shutdown hook.
2. Calling sbi_exit() instead of sbi_hang() in-case platform
   reboot/shutdown hook failed.

Signed-off-by: Anup Patel <anup.patel@wdc.com>
Reviewed-by: Atish Patra <atish.patra@wdc.com>
This commit is contained in:
Anup Patel 2020-01-03 11:17:44 +05:30
parent b0c9787435
commit 15ed1e7452
2 changed files with 26 additions and 17 deletions

View file

@ -22,10 +22,8 @@ void sbi_system_early_exit(struct sbi_scratch *scratch);
void sbi_system_final_exit(struct sbi_scratch *scratch);
void __attribute__((noreturn))
sbi_system_reboot(struct sbi_scratch *scratch, u32 type);
void __noreturn sbi_system_reboot(struct sbi_scratch *scratch, u32 type);
void __attribute__((noreturn))
sbi_system_shutdown(struct sbi_scratch *scratch, u32 type);
void __noreturn sbi_system_shutdown(struct sbi_scratch *scratch, u32 type);
#endif