From: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Date: Sun, 14 Aug 2022 19:57:14 +0000 (+0200)
Subject: cmd/sbi: format KVM version
X-Git-Tag: v2025.01-rc5-pxa1908~1289^2~1
X-Git-Url: http://git.dujemihanovic.xyz/img/html/%7B%7B%20%28.OutputFormats.Get?a=commitdiff_plain;h=aa8aa48b4c32fafaf2c393b4a937b0b35668943e;p=u-boot.git

cmd/sbi: format KVM version

Format the KVM implementation number in a human readable form.

With the patch output of the sbi command for Linux 5.19.1 looks like:

    => sbi
    SBI 0.3
    KVM 5.19.1
    Machine:
      Vendor ID 0
      Architecture ID 7005c
      Implementation ID 7005c
    Extensions:
      SBI Base Functionality
      Timer Extension
      IPI Extension
      RFENCE Extension
      Hart State Management Extension
      System Reset Extension

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
---

diff --git a/cmd/riscv/sbi.c b/cmd/riscv/sbi.c
index ee11e0f88e..522f502435 100644
--- a/cmd/riscv/sbi.c
+++ b/cmd/riscv/sbi.c
@@ -68,11 +68,21 @@ static int do_sbi(struct cmd_tbl *cmdtp, int flag, int argc,
 				ret = sbi_get_impl_version(&vers);
 				if (ret < 0)
 					break;
-				if (impl_id == 1)
+				switch (impl_id) {
+				case 1: /* OpenSBI */
 					printf("%ld.%ld",
 					       vers >> 16, vers & 0xffff);
-				else
+					break;
+				case 3: /* KVM */
+					printf("%ld.%ld.%ld",
+					       vers >> 16,
+					       (vers >> 8) & 0xff,
+					       vers & 0xff);
+					break;
+				default:
 					printf("0x%lx", vers);
+					break;
+				}
 				break;
 			}
 		}