public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [PATCH 1/1] cmd: exception: unaligned data access on RISC-V
@ 2020-08-04 11:09 Heinrich Schuchardt
       [not found] ` <752D002CFF5D0F4FA35C0100F1D73F3FA47309C8@ATCPCS16.andestech.com>
  0 siblings, 1 reply; 5+ messages in thread
From: Heinrich Schuchardt @ 2020-08-04 11:09 UTC (permalink / raw)
  To: u-boot

The command 'exception' can be used to test the handling of exceptions.

Currently the exception command only allows to create an illegal
instruction exception on RISC-V.

Provide a sub-command 'exception unaligned' to cause a misaligned load
address exception.

Adjust the online help for 'exception undefined'.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
---
 cmd/riscv/exception.c | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/cmd/riscv/exception.c b/cmd/riscv/exception.c
index 3c8dbbec0e..53159531d9 100644
--- a/cmd/riscv/exception.c
+++ b/cmd/riscv/exception.c
@@ -8,6 +8,17 @@
 #include <common.h>
 #include <command.h>

+static int do_unaligned(struct cmd_tbl *cmdtp, int flag, int argc,
+			char *const argv[])
+{
+	asm volatile (
+		"auipc a1, 0\n"
+		"ori   a1, a1, 3\n"
+		"lw    a2, (0)(a1)\n"
+	);
+	return CMD_RET_FAILURE;
+}
+
 static int do_undefined(struct cmd_tbl *cmdtp, int flag, int argc,
 			char *const argv[])
 {
@@ -16,6 +27,8 @@ static int do_undefined(struct cmd_tbl *cmdtp, int flag, int argc,
 }

 static struct cmd_tbl cmd_sub[] = {
+	U_BOOT_CMD_MKENT(unaligned, CONFIG_SYS_MAXARGS, 1, do_unaligned,
+			 "", ""),
 	U_BOOT_CMD_MKENT(undefined, CONFIG_SYS_MAXARGS, 1, do_undefined,
 			 "", ""),
 };
@@ -23,7 +36,8 @@ static struct cmd_tbl cmd_sub[] = {
 static char exception_help_text[] =
 	"<ex>\n"
 	"  The following exceptions are available:\n"
-	"  undefined  - undefined instruction\n"
+	"  undefined - illegal instruction\n"
+	"  unaligned - load address misaligned\n"
 	;

 #include <exception.h>
--
2.27.0

^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2020-08-06  2:56 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-08-04 11:09 [PATCH 1/1] cmd: exception: unaligned data access on RISC-V Heinrich Schuchardt
     [not found] ` <752D002CFF5D0F4FA35C0100F1D73F3FA47309C8@ATCPCS16.andestech.com>
2020-08-05  8:47   ` Rick Chen
2020-08-05 10:26     ` Heinrich Schuchardt
2020-08-06  2:15       ` Rick Chen
2020-08-06  2:56         ` Leo Liang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox