From 25de8fb6ca9f9ff3fa486ca5c1ff5479de5b19e3 Mon Sep 17 00:00:00 2001 From: Mitchell Horne Date: Fri, 18 Dec 2020 20:10:30 +0000 Subject: [PATCH] riscv: report additional known SBI implementations These implementation IDs are defined in the SBI spec, so we should print their name if detected. Submitted by: Danjel Qyteza Reviewed by: jhb, kp Differential Revision: https://reviews.freebsd.org/D27660 --- sys/riscv/include/sbi.h | 4 ++++ sys/riscv/riscv/sbi.c | 12 ++++++++++++ 2 files changed, 16 insertions(+) diff --git a/sys/riscv/include/sbi.h b/sys/riscv/include/sbi.h index 9458d242456..50cacb3e6e5 100644 --- a/sys/riscv/include/sbi.h +++ b/sys/riscv/include/sbi.h @@ -47,6 +47,10 @@ /* SBI Implementation IDs */ #define SBI_IMPL_ID_BBL 0 #define SBI_IMPL_ID_OPENSBI 1 +#define SBI_IMPL_ID_XVISOR 2 +#define SBI_IMPL_ID_KVM 3 +#define SBI_IMPL_ID_RUSTSBI 4 +#define SBI_IMPL_ID_DIOSIX 5 /* SBI Error Codes */ #define SBI_SUCCESS 0 diff --git a/sys/riscv/riscv/sbi.c b/sys/riscv/riscv/sbi.c index 2727cfc9f47..d529d2d0835 100644 --- a/sys/riscv/riscv/sbi.c +++ b/sys/riscv/riscv/sbi.c @@ -110,6 +110,18 @@ sbi_print_version(void) case (SBI_IMPL_ID_BBL): printf("SBI: Berkely Boot Loader %lu\n", sbi_impl_version); break; + case (SBI_IMPL_ID_XVISOR): + printf("SBI: eXtensible Versatile hypervISOR %lu\n", sbi_impl_version); + break; + case (SBI_IMPL_ID_KVM): + printf("SBI: Kernel-based Virtual Machine %lu\n", sbi_impl_version); + break; + case (SBI_IMPL_ID_RUSTSBI): + printf("SBI: RustSBI %lu\n", sbi_impl_version); + break; + case (SBI_IMPL_ID_DIOSIX): + printf("SBI: Diosix %lu\n", sbi_impl_version); + break; case (SBI_IMPL_ID_OPENSBI): major = sbi_impl_version >> OPENSBI_VERSION_MAJOR_OFFSET; minor = sbi_impl_version & OPENSBI_VERSION_MINOR_MASK; -- 2.42.0