On 3/17/22 2:36 AM, Heinrich Schuchardt wrote:
Let the sbi command display:

* machine vendor ID
* machine architecture ID
* machine implementation ID

With this patch the output for the HiFive Unmatched looks like

     => sbi
     SBI 0.3
     OpenSBI 0.9
     Machine:
       Vendor ID 489
       Architecture ID 8000000000000007
       Implementation ID 20181004
     Extensions:
       sbi_set_timer
       sbi_console_putchar
       sbi_console_getchar
       sbi_clear_ipi
       sbi_send_ipi
       sbi_remote_fence_i
       sbi_remote_sfence_vma
       sbi_remote_sfence_vma_asid
       sbi_shutdown
       SBI Base Functionality
       Timer Extension
       IPI Extension
       RFENCE Extension
       Hart State Management Extension
       System Reset Extension

Signed-off-by: Heinrich Schuchardt <heinrich.schucha...@canonical.com>
---
  cmd/riscv/sbi.c | 13 ++++++++++++-
  1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/cmd/riscv/sbi.c b/cmd/riscv/sbi.c
index 8349123925..8fc8ab0ac5 100644
--- a/cmd/riscv/sbi.c
+++ b/cmd/riscv/sbi.c
@@ -52,6 +52,7 @@ static int do_sbi(struct cmd_tbl *cmdtp, int flag, int argc,
  {
        int i, impl_id;
        long ret;
+       long mvendorid, marchid, mimpid;
ret = sbi_get_spec_version();
        if (ret >= 0)
@@ -77,7 +78,17 @@ static int do_sbi(struct cmd_tbl *cmdtp, int flag, int argc,
                if (i == ARRAY_SIZE(implementations))
                        printf("Unknown implementation ID %ld", ret);
        }
-       printf("\nExtensions:\n");
+       printf("\nMachine:\n");
+       ret = sbi_get_mvendorid(&mvendorid);
+       if (!ret)
+               printf("  Vendor ID %lx\n", mvendorid);
+       ret = sbi_get_marchid(&marchid);
+       if (!ret)
+               printf("  Architecture ID %lx\n", marchid);
+       ret = sbi_get_mimpid(&mimpid);
+       if (!ret)
+               printf("  Implementation ID %lx\n", mimpid);
+       printf("Extensions:\n");
        for (i = 0; i < ARRAY_SIZE(extensions); ++i) {
                ret = sbi_probe_extension(extensions[i].id);
                if (ret > 0)


Reviewed-by: Sean Anderson <sean...@gmail.com>

Reply via email to