summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firmware/payloads/test_main.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/firmware/payloads/test_main.c b/firmware/payloads/test_main.c
index 194dbbe6..03f6ba39 100644
--- a/firmware/payloads/test_main.c
+++ b/firmware/payloads/test_main.c
@@ -46,6 +46,13 @@ static inline void sbi_ecall_console_puts(const char *str)
sbi_strlen(str), (unsigned long)str, 0, 0, 0, 0);
}
+static inline void sbi_ecall_shutdown(void)
+{
+ sbi_ecall(SBI_EXT_SRST, SBI_EXT_SRST_RESET,
+ SBI_SRST_RESET_TYPE_SHUTDOWN, SBI_SRST_RESET_REASON_NONE,
+ 0, 0, 0, 0);
+}
+
#define wfi() \
do { \
__asm__ __volatile__("wfi" ::: "memory"); \
@@ -54,7 +61,6 @@ static inline void sbi_ecall_console_puts(const char *str)
void test_main(unsigned long a0, unsigned long a1)
{
sbi_ecall_console_puts("\nTest payload running\n");
-
- while (1)
- wfi();
+ sbi_ecall_shutdown();
+ sbi_ecall_console_puts("sbi_ecall_shutdown failed to execute.\n");
}