From 4d7e9134bb1f9745229a350b5a3014af64650012 Mon Sep 17 00:00:00 2001 From: Mitchell Horne Date: Fri, 1 May 2020 21:59:47 +0000 Subject: [PATCH] Use the HSM SBI extension to halt CPUs Differential Revision: https://reviews.freebsd.org/D24498 --- sys/riscv/riscv/machdep.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sys/riscv/riscv/machdep.c b/sys/riscv/riscv/machdep.c index 109337230db3..9dacd4b9d3a1 100644 --- a/sys/riscv/riscv/machdep.c +++ b/sys/riscv/riscv/machdep.c @@ -473,9 +473,16 @@ void cpu_halt(void) { + /* + * Try to power down using the HSM SBI extension and fall back to a + * simple wfi loop. + */ intr_disable(); + if (sbi_probe_extension(SBI_EXT_ID_HSM) != 0) + sbi_hsm_hart_stop(); for (;;) __asm __volatile("wfi"); + /* NOTREACHED */ } /*