From patchwork Fri Apr 9 10:48:14 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heinrich Schuchardt X-Patchwork-Id: 1464277 X-Patchwork-Delegate: uboot@andestech.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=gOZBzfHy; 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) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4FGvxm2Kp5z9sSC for ; Fri, 9 Apr 2021 20:48:44 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id BC87D802AE; Fri, 9 Apr 2021 12:48:34 +0200 (CEST) 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="gOZBzfHy"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id BC48480375; Fri, 9 Apr 2021 12:48:32 +0200 (CEST) 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_MSPIKE_H2,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 7762880207 for ; Fri, 9 Apr 2021 12:48:29 +0200 (CEST) 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=1617965299; bh=tY5HR95ibaDnmkYSUETxC1/qMx4dISkiW6qLg0tmlvg=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date; b=gOZBzfHyWtZW21PAuCLnaP/7DH+gytKZA4qlqr7el13k01jMU+cdwEqCrdNLZzicy gqS0fApRJCLhphj8+cRCryeXq7VzWNAy6g1XPUIGVf0VeKDEOKOxoEE297yAWsuVEB DIrJCV54qK1b36XUnuwH/P7XL3qAxvXTnz2KigzE= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from rpi2.fritz.box ([62.143.247.63]) by mail.gmx.net (mrgmx104 [212.227.17.174]) with ESMTPSA (Nemesis) id 1MHG8m-1lHZ7z2bqK-00DH6m; Fri, 09 Apr 2021 12:48:19 +0200 From: Heinrich Schuchardt To: Rick Chen Cc: u-boot@lists.denx.de, Heinrich Schuchardt Subject: [PATCH 1/1] cmd/exception: support ebreak exception on RISC-V Date: Fri, 9 Apr 2021 10:48:14 +0000 Message-Id: <20210409104814.28750-1-xypron.glpk@gmx.de> X-Mailer: git-send-email 2.31.0 MIME-Version: 1.0 X-Provags-ID: V03:K1:WAPNZZIv6JD7hoWj7mGfmybLYNpNb1ob8DJGcpMU/9ToYWU3PHH S4wlVPKhaevVpp9x+tSrTv8180+WvzLatyNiGOl7ygiv1VCWIup+8OmhBwgJpAJUhZUzfIc Ex6fhXKJjq9ssrYtl1BtPzpx3Q4LaHtPlzwtrT2QIdqj49RTmgWn6fj8u/o8yB6bid7da9j +rhzWflBa4DWXyLf3NgvQ== X-UI-Out-Filterresults: notjunk:1;V03:K0:Q5FmxlRyjuY=:FQi/6XppeeTg2scwZH1Ukr /Lv1MWn+wBaGgDyyWhjt312XfAW4PL/V4zx4+N/3Q5GwaRwLClO+BI9uZuHzmKD93zKcBxLdJ h51uWd5i8yvLOfJUWwmIfsAMzny2vf3US33PEDbLYJ2HCy1a+iNS42MGVMmicThf3QykYQivp iy1GnudrKFfXt2tZ3mHe3NI2kq7qhj6eSvFnCeXtmDp0abOYSVHtkwpG7mcAmTjwh0bPuOAcp /CTO7e1SQie1P2R208VvSPiVKkHpEdNyJgcNlGXYOb0p0jaB9Irr65jkZOUm37l5mJLnrq3Ie nVYzCjMXP0z/xQKnulwizFKUs9Ciesv7VAC/wMHjgDCj/+JP7cUdjH5F//mybs6IT3PSQV2AX LjDNrszCHfQxdpDXFKlsp7Itf1rVN4mjD2IBk6zGXUs1UjWEMVGSD6tcGTLMIHreP8jP2HTgS M9AXDIMpU+m3jlDhY14HNYZLqjwkh+z3mZd2bqVjW2527+8K1KifQHLS6g3CGRTpCW2eDjUNT 6h8LI2TiyiNJf7/4KcVM9XtRqZNrURRlmXQ7yY7KzMoNd2fbjJ3ZhdHAi2ewKLfJPDlxOEcGU mSJp66Nh9b1HQZJ7uqwmzlG/5w8N0Nj36PahPq2nX9PJw6Li+gbPrzu57xcy4TmxAUf9pSGCC QuLA8MM0ZlcqkKSkihbwGi74zkOpzNzijaJa0SU5OxDkq5RnPM/Nv/NYJjfuddouYzsYWXz54 dGAfphSFVBSs8LTUI1bJGbs18W0FTT+V0J43OGWRbBgvJy2VxIGCKjnP7tXDJGMO4lGnRQmbe XckOAsD4n9BOVRnjGdZEU/NKqpWiiItLw/jp7LXmbaY+k+izHrKT62aCFS+BuhmBjK7Q5ra/Y TMgh30v8ebtkfSBWQGvveGNi6qxnOuAcg24DMUTfI2iTPqgq6js0n98eljDd9t+bdpklJWZ6K jGNKLobRl0gsvGV7JRZgNIO3OUOX463Dl22BfBU7+wUhoLT0RtZBfQm9GohwO0ZXISrmCHkwP t/ryFMIaJ0q1v9lFy3J9MxaTAYlanelCCY1MIHcbvnZCl3WMgbdsOrxVCo6kfHd6aJCOmfsvt rNbFQb6gY5NGn3SyE0BYsoaONwVwnt9bmgV9vcumHtKsf/+zvi5HUpFgLxeRw/NUvTTOlEftK Xk5qG363UdV/RujlE4j0dz2mFSk9yF4+rbIWP8c7Aey2JoD/5gDPrh23eRmAm3Tsnky9w= 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.4 at phobos.denx.de X-Virus-Status: Clean The ebreak instruction should generate a breakpoint exception. Signed-off-by: Heinrich Schuchardt Reviewed-by: Bin Meng Reviewed-by: Rick Chen --- cmd/riscv/exception.c | 10 ++++++++++ doc/usage/exception.rst | 3 +++ 2 files changed, 13 insertions(+) -- 2.31.0 diff --git a/cmd/riscv/exception.c b/cmd/riscv/exception.c index 9687cec812..7a08061d12 100644 --- a/cmd/riscv/exception.c +++ b/cmd/riscv/exception.c @@ -8,6 +8,13 @@ #include #include +static int do_ebreak(struct cmd_tbl *cmdtp, int flag, int argc, + char *const argv[]) +{ + asm volatile ("ebreak\n"); + return CMD_RET_FAILURE; +} + static int do_unaligned(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) { @@ -28,6 +35,8 @@ static int do_undefined(struct cmd_tbl *cmdtp, int flag, int argc, } static struct cmd_tbl cmd_sub[] = { + U_BOOT_CMD_MKENT(ebreak, CONFIG_SYS_MAXARGS, 1, do_ebreak, + "", ""), U_BOOT_CMD_MKENT(unaligned, CONFIG_SYS_MAXARGS, 1, do_unaligned, "", ""), U_BOOT_CMD_MKENT(undefined, CONFIG_SYS_MAXARGS, 1, do_undefined, @@ -37,6 +46,7 @@ static struct cmd_tbl cmd_sub[] = { static char exception_help_text[] = "\n" " The following exceptions are available:\n" + " ebreak - breakpoint\n" " undefined - illegal instruction\n" " unaligned - load address misaligned\n" ; diff --git a/doc/usage/exception.rst b/doc/usage/exception.rst index db1490f005..27df88bd5c 100644 --- a/doc/usage/exception.rst +++ b/doc/usage/exception.rst @@ -31,6 +31,9 @@ type **RISC-V:** + ebreak + breakpoint exception + unaligned load address misaligned