diff options
author | Anup Patel <anup.patel@wdc.com> | 2020-11-24 11:59:05 +0530 |
---|---|---|
committer | Anup Patel <anup@brainfault.org> | 2020-12-01 17:10:31 +0530 |
commit | 5c429ae2133e1a82b81403146a3e38e2b4b8350e (patch) | |
tree | 09b02a0042a7ba5697e2f44082d08d05db147b3f /include/sbi_utils | |
parent | da074796df871f6323d052f123b7668d390980dc (diff) |
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 'include/sbi_utils')
-rw-r--r-- | include/sbi_utils/reset/fdt_reset.h | 7 | ||||
-rw-r--r-- | include/sbi_utils/sys/htif.h | 4 | ||||
-rw-r--r-- | include/sbi_utils/sys/sifive_test.h | 4 |
3 files changed, 11 insertions, 4 deletions
diff --git a/include/sbi_utils/reset/fdt_reset.h b/include/sbi_utils/reset/fdt_reset.h index 789a6ac..cce441a 100644 --- a/include/sbi_utils/reset/fdt_reset.h +++ b/include/sbi_utils/reset/fdt_reset.h @@ -15,10 +15,13 @@ struct fdt_reset { const struct fdt_match *match_table; int (*init)(void *fdt, int nodeoff, const struct fdt_match *match); - int (*system_reset)(u32 reset_type); + int (*system_reset_check)(u32 reset_type, u32 reset_reason); + void (*system_reset)(u32 reset_type, u32 reset_reason); }; -int fdt_system_reset(u32 reset_type); +int fdt_system_reset_check(u32 reset_type, u32 reset_reason); + +void fdt_system_reset(u32 reset_type, u32 reset_reason); int fdt_reset_init(void); diff --git a/include/sbi_utils/sys/htif.h b/include/sbi_utils/sys/htif.h index 7384b48..a431723 100644 --- a/include/sbi_utils/sys/htif.h +++ b/include/sbi_utils/sys/htif.h @@ -14,6 +14,8 @@ void htif_putc(char ch); int htif_getc(void); -int htif_system_reset(u32 type); +int htif_system_reset_check(u32 type, u32 reason); + +void htif_system_reset(u32 type, u32 reason); #endif diff --git a/include/sbi_utils/sys/sifive_test.h b/include/sbi_utils/sys/sifive_test.h index 7e153d5..958622e 100644 --- a/include/sbi_utils/sys/sifive_test.h +++ b/include/sbi_utils/sys/sifive_test.h @@ -12,7 +12,9 @@ #include <sbi/sbi_types.h> -int sifive_test_system_reset(u32 type); +int sifive_test_system_reset_check(u32 type, u32 reason); + +void sifive_test_system_reset(u32 type, u32 reason); int sifive_test_init(unsigned long base); |