diff options
author | Palmer Dabbelt <palmer@dabbelt.com> | 2017-07-28 14:10:20 -0700 |
---|---|---|
committer | Palmer Dabbelt <palmer@dabbelt.com> | 2017-08-02 12:32:45 -0700 |
commit | 62effc6bfe4f1a7e8a771c49966c4ab7755d6612 (patch) | |
tree | 5c43ece292d162809e0a0544817d1d20abbef73b /machine | |
parent | bb19fef663a5ce32d7e2d3557362a51da8d99365 (diff) | |
download | riscv-pk-62effc6bfe4f1a7e8a771c49966c4ab7755d6612.zip riscv-pk-62effc6bfe4f1a7e8a771c49966c4ab7755d6612.tar.gz riscv-pk-62effc6bfe4f1a7e8a771c49966c4ab7755d6612.tar.bz2 |
Allow the platform to disable HTIF
Diffstat (limited to 'machine')
-rw-r--r-- | machine/mtrap.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/machine/mtrap.c b/machine/mtrap.c index d0c1684..ff4eb60 100644 --- a/machine/mtrap.c +++ b/machine/mtrap.c @@ -7,6 +7,7 @@ #include "uart.h" #include "fdt.h" #include "unprivileged_memory.h" +#include "platform_interface.h" #include <errno.h> #include <stdarg.h> #include <stdio.h> @@ -20,7 +21,7 @@ static uintptr_t mcall_console_putchar(uint8_t ch) { if (uart) { uart_putchar(ch); - } else { + } else if (platform__use_htif()) { htif_console_putchar(ch); } return 0; @@ -28,7 +29,11 @@ static uintptr_t mcall_console_putchar(uint8_t ch) void poweroff() { - htif_poweroff(); + if (platform__use_htif()) { + htif_poweroff(); + } else { + while (1); + } } void putstring(const char* s) @@ -61,8 +66,10 @@ static uintptr_t mcall_console_getchar() { if (uart) { return uart_getchar(); - } else { + } else if (platform__use_htif()) { return htif_console_getchar(); + } else { + return '\0'; } } |