From patchwork Tue Jan 19 19:44:45 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heinrich Schuchardt X-Patchwork-Id: 1428830 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=gmx.net header.i=@gmx.net header.a=rsa-sha256 header.s=badeba3b8450 header.b=iwFEjTl7; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4DKzdk26cMz9sVR for ; Wed, 20 Jan 2021 06:45:14 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id A1EE88291D; Tue, 19 Jan 2021 20:45:08 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=gmx.de Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; secure) header.d=gmx.net header.i=@gmx.net header.b="iwFEjTl7"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 6F8A382935; Tue, 19 Jan 2021 20:45:06 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL,SPF_HELO_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from mout.gmx.net (mout.gmx.net [212.227.17.22]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id F0EF8828D4 for ; Tue, 19 Jan 2021 20:45:01 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmx.de Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=xypron.glpk@gmx.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1611085491; bh=lgVLvPSzmU36AjaQhPJ1MA1h0LwmuOD33pYwBgkJ5dg=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date; b=iwFEjTl7MvNKeKKnN+a8jGdyiuOECiBI7695dIxySlGZTjYvnVQusGD42MWy2hpK0 /O3P9LQpU/VDieotk7oUqmssCiwFsz/DDVDtMsdF4zLHt4mXQqdW9ZTj3VEzojWtbT rBZlhp1pTZ2HneG6NcVygYpRJcwLNwMK22tkeaxc= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from rpi2.fritz.box ([62.143.246.89]) by mail.gmx.com (mrgmx104 [212.227.17.174]) with ESMTPSA (Nemesis) id 1MHXFx-1lEp5W29wH-00DakN; Tue, 19 Jan 2021 20:44:51 +0100 From: Heinrich Schuchardt To: Rick Chen Cc: u-boot@lists.denx.de, Heinrich Schuchardt Subject: [PATCH 1/1] cmd: add more implementation IDs to sbi command Date: Tue, 19 Jan 2021 19:44:45 +0000 Message-Id: <20210119194445.15789-1-xypron.glpk@gmx.de> X-Mailer: git-send-email 2.28.0 MIME-Version: 1.0 X-Provags-ID: V03:K1:IY0wJiKi+2D5euOLWrqmpKowrQdfv0QlNriLkXy99geb6pPG87P 0CXf6m3c8hyL5ZmN55bVlNbWjIFiVfJLaF4sNrFpAa+lr4NpuVZIdt/OcqjgayAwImZOFTL DMFrwStRwx9833W3bm+Yh5CdvOLoBWP3U0CIBgpD5E4Lk+c15q97X3hlNoSQCwWBwQ7led2 3fOEZgj9NFT7ro2xM3/4g== X-UI-Out-Filterresults: notjunk:1;V03:K0:wzRWImzSQac=:cAEH9EJrV4K60Ls519VVD4 s2vrKput28iHAUhRbSut9yUkihndgPK1OqFZxg0Kz8V9nYmjTPn8bAsxB9F2KSs06IntaO+j4 mXBOMQovH2SUl2YJbDc1F2FMFVJ+ye26D1Kh7TxW52GhJmtMOJV/JAsMhwvXJ7WsJKWE4KCAS +8/bCw/nN6HOD7qoN2t57nKyG0DJ8lLr9pmfrAXlWlPJWphOpCKO/X82XGlFhMFyeLSlvIeq0 TJoQlNP1bBwdWJYp5fZXppFnR5LzInf4zc/dJf21VRQjwdGmqdOwFmNT8Ib6tBUeLF/biS7MV R4L0x5I2pOT1VwGfVwxTqyomfQNfflyx5PVNeWNWAExrK9iatWKECaFQ0cuIM4u3UbOgxdICZ yeJWa9AdEC2u1GW0fRBh7ySbhdJMwHqz+dEGjRKwQJE1xRM8SQ4OGAAaeJbbizX9ZBIfdGM2o PSBG4OZQWv8EGOfXj+QROVltzVq1lF3vJ/smG1xNr7uVLGlo0wNT88dzptU55TZXL7gP0KvU0 VIET5iDtQ7uolWNs3J+1w4fG04iPlFBmBOikYClq55I3p7vgT0dTnn1K283H18GkeSXXsu8VM yLckE0Lp7RmsjaDmQmNi1/FpEcl5vbc1BhFgNFEwykJ3pqj1bG1VD825JsHgdMNem+ITt0IDu VGj/nGf22v+gjjaXN+Fv+Ny/+k89Q/DH5NXKC5YcbYWTPkvXR0C7ZukBfZaWjbw+2sRyhXaR1 RniUxtykYLxgMqKm3Q++HujQDaFkMumTGLYS0HA+jNEVVHU+FhiHYAgs2BvcOJj6c8lcPxMUM Q56y+tCre/bCKkKJwI9J4DCjhCAcM18LlQhUH+AGNXVk9OJPV+TTPptezcusEkIGMoXBcnOr4 Z0YSgu8MhNwemOHvmLOA== X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.3 at phobos.denx.de X-Virus-Status: Clean Additional SBI implementation IDs have been added to the upcoming next version of the SBI specification. https://github.com/riscv/riscv-sbi-doc/blob/master/riscv-sbi.adoc Signed-off-by: Heinrich Schuchardt --- cmd/riscv/sbi.c | 37 +++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 16 deletions(-) -- 2.28.0 diff --git a/cmd/riscv/sbi.c b/cmd/riscv/sbi.c index 9897483eb6..90c0811e14 100644 --- a/cmd/riscv/sbi.c +++ b/cmd/riscv/sbi.c @@ -9,11 +9,25 @@ #include #include +struct sbi_imp { + const long id; + const char *name; +}; + struct sbi_ext { const u32 id; const char *name; }; +static struct sbi_imp implementations[] = { + { 0, "Berkeley Boot Loader (BBL)" }, + { 1, "OpenSBI" }, + { 2, "Xvisor" }, + { 3, "KVM" }, + { 4, "RustSBI" }, + { 5, "Diosix" }, +}; + static struct sbi_ext extensions[] = { { 0x00000000, "sbi_set_timer" }, { 0x00000001, "sbi_console_putchar" }, @@ -43,23 +57,14 @@ static int do_sbi(struct cmd_tbl *cmdtp, int flag, int argc, printf("SBI %ld.%ld\n", ret >> 24, ret & 0xffffff); ret = sbi_get_impl_id(); if (ret >= 0) { - switch (ret) { - case 0: - printf("Berkeley Boot Loader (BBL)\n"); - break; - case 1: - printf("OpenSBI\n"); - break; - case 2: - printf("Xvisor\n"); - break; - case 3: - printf("KVM\n"); - break; - default: - printf("Unknown implementation\n"); - break; + for (i = 0; i < ARRAY_SIZE(implementations); ++i) { + if (ret == implementations[i].id) { + printf("%s\n", implementations[i].name); + break; + } } + if (i == ARRAY_SIZE(implementations)) + printf("Unknown implementation ID %ld\n", ret); } printf("Extensions:\n"); for (i = 0; i < ARRAY_SIZE(extensions); ++i) {