From: Leo Liang <ycliang@andestech.com>
To: Sean Anderson <seanga2@gmail.com>
Cc: "Heinrich Schuchardt" <xypron.glpk@gmx.de>,
"Rick Jian-Zhi Chen(陳建志)" <rick@andestech.com>,
"Bin Meng" <bin.meng@windriver.com>,
"Atish Patra" <atish.patra@wdc.com>,
"Pragnesh Patel" <pragnesh.patel@openfive.com>,
"u-boot@lists.denx.de" <u-boot@lists.denx.de>,
"Dimitri John Ledkov" <dimitri.ledkov@canonical.com>,
"Heinrich Schuchardt" <heinrich.schuchardt@canonical.com>
Subject: Re: [PATCH 2/2] cmd/sbi: add missing SBI information
Date: Mon, 26 Jul 2021 15:08:16 +0800 [thread overview]
Message-ID: <20210726070806.GB983@andestech.com> (raw)
In-Reply-To: <30512559-ac9a-8d4a-2857-16d8957c9029@gmail.com>
On Tue, Jul 20, 2021 at 01:13:56PM +0800, Sean Anderson wrote:
> On 7/20/21 12:59 AM, Heinrich Schuchardt wrote:
> > Am 20. Juli 2021 03:11:34 MESZ schrieb Sean Anderson <seanga2@gmail.com>:
> >> On 7/19/21 4:28 PM, Heinrich Schuchardt wrote:
> >>> Let the sbi command display:
> >>>
> >>> * SBI implementation version
> >>> * 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.schuchardt@canonical.com>
> >>> ---
> >>> cmd/riscv/sbi.c | 19 ++++++++++++++++++-
> >>> 1 file changed, 18 insertions(+), 1 deletion(-)
> >>>
> >>> diff --git a/cmd/riscv/sbi.c b/cmd/riscv/sbi.c
> >>> index 90c0811e14..c0db763ba7 100644
> >>> --- a/cmd/riscv/sbi.c
> >>> +++ b/cmd/riscv/sbi.c
> >>> @@ -59,13 +59,30 @@ static int do_sbi(struct cmd_tbl *cmdtp, int
> >> flag, int argc,
> >>> if (ret >= 0) {
> >>> for (i = 0; i < ARRAY_SIZE(implementations); ++i) {
> >>> if (ret == implementations[i].id) {
> >>> - printf("%s\n", implementations[i].name);
> >>> + printf("%s", implementations[i].name);
> >>> + ret = sbi_get_impl_version();
> >>> + if (ret > 0) {
> >>
> >> Shouldn't this have to check to ensure that i == 1?
> >
> > Other SBI implementions may also provide a version number. I did not analyze how the should be formatted.
>
> Right, so shouldn't we default to the raw hex string?
+1
>
> >
> >>
> >>> + /* OpenSBI specific version encoding */
> >>> + printf(" %ld", ret >> 16);
> >>> + printf(".%ld", ret & 0xffff);
> >>> + }
> >>> + printf("\n");
> >>> break;
> >>> }
> >>> }
> >>> if (i == ARRAY_SIZE(implementations))
> >>> printf("Unknown implementation ID %ld\n", ret);
> >>> }
> >>> + printf("Machine:\n");
> >>> + ret = sbi_get_mvendorid();
> >>> + if (ret != -ENOTSUPP)
> >
> > Should we use an unsigned int as return value and 0 to indicate a missing implementation? mvendorid is only 32 bits wide.
> >
> >>> + printf(" Vendor ID %lx\n", ret);
> >>
> >> perhaps %0.8lx? And should we decode the JEDEC id?
> >
> > Leading zeros won't add any meaning here. Splitting into the 25 bit and 7 bit subfields could be reasonable.
>
> I think this would be a good option.
+1 with 25, 7 split.
IMHO, perhaps we could show only the "numbers" of the continuation code and the "decoded offset" ?
Something like: vendor ID: 489, continuation code: 9, offset decoded: 0x89.
Best regards,
Leo
>
> > Decoding could result in up to 2^26 digits. I don't want to wait for all of these on my serial console.
>
> Well, they're only up to 12 continuation codes, so imposing a small maximum would likely not be too onerous.
>
> --Sean
prev parent reply other threads:[~2021-07-26 7:09 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-07-19 20:28 [PATCH 0/2] cmd/sbi: add missing SBI information Heinrich Schuchardt
2021-07-19 20:28 ` [PATCH 1/2] riscv: provide missing base extension functions Heinrich Schuchardt
2021-07-20 1:07 ` Sean Anderson
2021-07-26 6:44 ` Leo Liang
2021-07-19 20:28 ` [PATCH 2/2] cmd/sbi: add missing SBI information Heinrich Schuchardt
2021-07-20 1:11 ` Sean Anderson
2021-07-20 4:59 ` Heinrich Schuchardt
2021-07-20 5:13 ` Sean Anderson
2021-07-26 7:08 ` Leo Liang [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210726070806.GB983@andestech.com \
--to=ycliang@andestech.com \
--cc=atish.patra@wdc.com \
--cc=bin.meng@windriver.com \
--cc=dimitri.ledkov@canonical.com \
--cc=heinrich.schuchardt@canonical.com \
--cc=pragnesh.patel@openfive.com \
--cc=rick@andestech.com \
--cc=seanga2@gmail.com \
--cc=u-boot@lists.denx.de \
--cc=xypron.glpk@gmx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox