diff options
Diffstat (limited to 'lib/utils/sys/sifive_test.c')
-rw-r--r-- | lib/utils/sys/sifive_test.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/lib/utils/sys/sifive_test.c b/lib/utils/sys/sifive_test.c index fdf3169..4533954 100644 --- a/lib/utils/sys/sifive_test.c +++ b/lib/utils/sys/sifive_test.c @@ -9,6 +9,7 @@ #include <sbi/riscv_io.h> #include <sbi/sbi_ecall_interface.h> +#include <sbi/sbi_system.h> #include <sbi_utils/sys/sifive_test.h> #define FINISHER_FAIL 0x3333 @@ -17,7 +18,7 @@ static void *sifive_test_base; -int sifive_test_system_reset_check(u32 type, u32 reason) +static int sifive_test_system_reset_check(u32 type, u32 reason) { switch (type) { case SBI_SRST_RESET_TYPE_SHUTDOWN: @@ -29,7 +30,7 @@ int sifive_test_system_reset_check(u32 type, u32 reason) return 0; } -void sifive_test_system_reset(u32 type, u32 reason) +static void sifive_test_system_reset(u32 type, u32 reason) { /* * Tell the "finisher" that the simulation @@ -49,9 +50,16 @@ void sifive_test_system_reset(u32 type, u32 reason) } } +static struct sbi_system_reset_device sifive_test_reset = { + .name = "sifive_test", + .system_reset_check = sifive_test_system_reset_check, + .system_reset = sifive_test_system_reset +}; + int sifive_test_init(unsigned long base) { sifive_test_base = (void *)base; + sbi_system_reset_set_device(&sifive_test_reset); return 0; } |