On Tue, Jul 08, 2025 at 08:48:11AM -0700, Jesse Taube wrote:
Add --[enable|disable]-sbi-exit-code to configure script. With the default value as disabled. Add a check for SBI_EXIT_CODE in the environment, so that passing of the test status is configurable from both the environment and the configure script
Signed-off-by: Jesse Taube jesse@rivosinc.com
configure | 11 +++++++++++ lib/riscv/io.c | 4 +++- 2 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/configure b/configure index 20bf5042..7c949bdc 100755 --- a/configure +++ b/configure @@ -67,6 +67,7 @@ earlycon= console= efi= efi_direct= +sbi_exit_code=0 target_cpu= # Enable -Werror by default for git repositories only (i.e. developer builds) @@ -141,6 +142,9 @@ usage() { system and run from the UEFI shell. Ignored when efi isn't enabled and defaults to enabled when efi is enabled for riscv64. (arm64 and riscv64 only)
--[enable|disable]-sbi-exit-code
Enable or disable sending pass/fail exit code to SBI SRST.
(disabled by default, riscv only)
EOF exit 1 } @@ -236,6 +240,12 @@ while [[ $optno -le $argc ]]; do --disable-efi-direct) efi_direct=n ;;
- --enable-sbi-exit-code)
sbi_exit_code=1
;;
- --disable-sbi-exit-code)
sbi_exit_code=0
--enable-werror) werror=-Werror ;;;;
@@ -551,6 +561,7 @@ EOF elif [ "$arch" = "riscv32" ] || [ "$arch" = "riscv64" ]; then echo "#define CONFIG_UART_EARLY_BASE ${uart_early_addr}" >> lib/config.h [ "$console" = "sbi" ] && echo "#define CONFIG_SBI_CONSOLE" >> lib/config.h
- echo "#define CONFIG_SBI_EXIT_CODE ${sbi_exit_code}" >> lib/config.h echo >> lib/config.h
fi echo "#endif" >> lib/config.h diff --git a/lib/riscv/io.c b/lib/riscv/io.c index b1163404..c46845de 100644 --- a/lib/riscv/io.c +++ b/lib/riscv/io.c @@ -6,6 +6,7 @@
- Copyright (C) 2023, Ventana Micro Systems Inc., Andrew Jones ajones@ventanamicro.com
*/ #include <libcflat.h> +#include <argv.h> #include <bitops.h> #include <config.h> #include <devicetree.h> @@ -163,7 +164,8 @@ void halt(int code); void exit(int code) { printf("\nEXIT: STATUS=%d\n", ((code) << 1) | 1);
- sbi_shutdown(code == 0);
- sbi_shutdown(GET_CONFIG_OR_ENV(SBI_EXIT_CODE) ? code == 0 : true); halt(code); __builtin_unreachable();
}
2.43.0
Reviewed-by: Andrew Jones andrew.jones@linux.dev