# HG changeset patch # User Mychaela Falconia # Date 1449720355 0 # Node ID 1ee80bcb0fd0510852b6d95007a2ab61c77d0e2f # Parent ce0ded19a769a7ca036272639bcc17e75aa2cf60 fc-tmsh: omr (old-style memory read) command implemented diff -r ce0ded19a769 -r 1ee80bcb0fd0 rvinterf/tmsh/Makefile --- a/rvinterf/tmsh/Makefile Thu Dec 10 04:00:08 2015 +0000 +++ b/rvinterf/tmsh/Makefile Thu Dec 10 04:05:55 2015 +0000 @@ -5,7 +5,7 @@ LIBS= ../libasync/libasync.a TMSH_OBJS= abb.o etmbasic.o ffs2.o ffs2resp.o ffs2wr.o init.o main.o \ - misc.o pktsort.o tmcore.o usercmd.o + misc.o omr.o pktsort.o tmcore.o usercmd.o all: ${PROGS} diff -r ce0ded19a769 -r 1ee80bcb0fd0 rvinterf/tmsh/omr.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rvinterf/tmsh/omr.c Thu Dec 10 04:05:55 2015 +0000 @@ -0,0 +1,41 @@ +/* + * Old-style memory read command + */ + +#include +#include +#include +#include +#include +#include "pktmux.h" +#include "limits.h" +#include "localtypes.h" +#include "tm3.h" + +extern u_char rvi_msg[]; +extern int rvi_msg_len; + +void +cmd_omr(argc, argv) + char **argv; +{ + u32 addr, size; + u_char cmdpkt[11]; + + addr = strtoul(argv[1], 0, 16); + size = strtoul(argv[2], 0, 0); + if (size < 1 || size > TM3_MEMREAD_MAX) { + printf("error: count argument outside valid range\n"); + return; + } + cmdpkt[1] = MEM_READ; + cmdpkt[2] = addr; + cmdpkt[3] = addr >> 8; + cmdpkt[4] = addr >> 16; + cmdpkt[5] = addr >> 24; + cmdpkt[6] = size; + cmdpkt[7] = 0; + cmdpkt[8] = 0; + cmdpkt[9] = 0; + send_etm_cmd(cmdpkt, 9); +} diff -r ce0ded19a769 -r 1ee80bcb0fd0 rvinterf/tmsh/usercmd.c --- a/rvinterf/tmsh/usercmd.c Thu Dec 10 04:00:08 2015 +0000 +++ b/rvinterf/tmsh/usercmd.c Thu Dec 10 04:05:55 2015 +0000 @@ -17,6 +17,7 @@ extern void cmd_dieid(); extern void cmd_etmpkt(); extern void cmd_ffs2(); +extern void cmd_omr(); extern void cmd_ping(); extern void cmd_r8(); extern void cmd_r16(); @@ -50,6 +51,7 @@ {"etmpkt", 1, 253, cmd_etmpkt}, {"exit", 0, 0, cmd_exit}, {"ffs2", 1, 3, cmd_ffs2}, + {"omr", 2, 2, cmd_omr}, {"ping", 0, 2, cmd_ping}, {"quit", 0, 0, cmd_exit}, {"r8", 1, 2, cmd_r8},