aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMitchell Horne <mhorne@FreeBSD.org>2020-12-18 20:10:30 +0000
committerMitchell Horne <mhorne@FreeBSD.org>2020-12-18 20:10:30 +0000
commit25de8fb6ca9f9ff3fa486ca5c1ff5479de5b19e3 (patch)
tree8cfd7e497833fb1b5d2d85853d83a69fcac59263
parentfb6d44566125b97213e7c2360d99c6b169d83a1c (diff)
downloadsrc-25de8fb6ca9f9ff3fa486ca5c1ff5479de5b19e3.tar.gz
src-25de8fb6ca9f9ff3fa486ca5c1ff5479de5b19e3.zip
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 <danq1222@gmail.com> Reviewed by: jhb, kp Differential Revision: https://reviews.freebsd.org/D27660
Notes
Notes: svn path=/head/; revision=368767
-rw-r--r--sys/riscv/include/sbi.h4
-rw-r--r--sys/riscv/riscv/sbi.c12
2 files changed, 16 insertions, 0 deletions
diff --git a/sys/riscv/include/sbi.h b/sys/riscv/include/sbi.h
index 9458d2424563..50cacb3e6e5a 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 2727cfc9f47b..d529d2d08351 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;