diff mbox series

[1/1] cmd/exception: support ebreak exception on RISC-V

Message ID 20210409104814.28750-1-xypron.glpk@gmx.de
State Accepted
Commit 91e4b7516d84cefab7324765b3c8d6a909185ce2
Delegated to: Andes
Headers show
Series [1/1] cmd/exception: support ebreak exception on RISC-V | expand

Commit Message

Heinrich Schuchardt April 9, 2021, 10:48 a.m. UTC
The ebreak instruction should generate a breakpoint exception.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
---
 cmd/riscv/exception.c   | 10 ++++++++++
 doc/usage/exception.rst |  3 +++
 2 files changed, 13 insertions(+)

--
2.31.0

Comments

Bin Meng April 12, 2021, 12:22 p.m. UTC | #1
On Fri, Apr 9, 2021 at 6:48 PM Heinrich Schuchardt <xypron.glpk@gmx.de> wrote:
>
> The ebreak instruction should generate a breakpoint exception.
>
> Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
> ---
>  cmd/riscv/exception.c   | 10 ++++++++++
>  doc/usage/exception.rst |  3 +++
>  2 files changed, 13 insertions(+)
>

Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Rick Chen April 13, 2021, 2:09 a.m. UTC | #2
> From: Heinrich Schuchardt [mailto:xypron.glpk@gmx.de]
> Sent: Friday, April 09, 2021 6:48 PM
> To: Rick Jian-Zhi Chen(陳建志)
> Cc: u-boot@lists.denx.de; Heinrich Schuchardt
> Subject: [PATCH 1/1] cmd/exception: support ebreak exception on RISC-V
>
> The ebreak instruction should generate a breakpoint exception.
>
> Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
> ---
>  cmd/riscv/exception.c   | 10 ++++++++++
>  doc/usage/exception.rst |  3 +++
>  2 files changed, 13 insertions(+)

Reviewed-by: Rick Chen <rick@andestech.com>
diff mbox series

Patch

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 <common.h>
 #include <command.h>

+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[] =
 	"<ex>\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