diff mbox series

[1/1] cmd/sbi: format KVM version

Message ID 20220814195714.2522078-1-heinrich.schuchardt@canonical.com
State Accepted
Commit aa8aa48b4c32fafaf2c393b4a937b0b35668943e
Delegated to: Andes
Headers show
Series [1/1] cmd/sbi: format KVM version | expand

Commit Message

Heinrich Schuchardt Aug. 14, 2022, 7:57 p.m. UTC
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>
---
 cmd/riscv/sbi.c | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

Comments

Leo Liang Aug. 30, 2022, 5:03 a.m. UTC | #1
On Sun, Aug 14, 2022 at 09:57:14PM +0200, Heinrich Schuchardt wrote:
> 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>
> ---
>  cmd/riscv/sbi.c | 14 ++++++++++++--
>  1 file changed, 12 insertions(+), 2 deletions(-)

Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
diff mbox series

Patch

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;
 			}
 		}