# HG changeset patch # User Space Falcon # Date 1435510326 0 # Node ID 1b1683cda154864fb2167c3800d2de92500af492 # Parent 0590cfd5803f7f44bb341ea9225e88b64f8ba173 fc-shell: implemented poweroff and tgtreset commands diff -r 0590cfd5803f -r 1b1683cda154 rvinterf/asyncshell/Makefile --- a/rvinterf/asyncshell/Makefile Sun Jun 28 15:40:47 2015 +0000 +++ b/rvinterf/asyncshell/Makefile Sun Jun 28 16:52:06 2015 +0000 @@ -1,7 +1,7 @@ CC= gcc CFLAGS= -O2 -I../include PROG= fc-shell -OBJS= at.o init.o main.o pktsort.o rxctl.o sendsp.o usercmd.o +OBJS= at.o init.o main.o pktsort.o poweroff.o rxctl.o sendsp.o usercmd.o LIBS= ../libasync/libasync.a ../libg23/libg23.a INSTBIN=/usr/local/bin diff -r 0590cfd5803f -r 1b1683cda154 rvinterf/asyncshell/poweroff.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rvinterf/asyncshell/poweroff.c Sun Jun 28 16:52:06 2015 +0000 @@ -0,0 +1,46 @@ +/* + * fc-shell poweroff and tgtreset commands + */ + +#include +#include +#include +#include "pktmux.h" +#include "etm.h" + +void +send_etm_cmd(buf, len) + u_char *buf; +{ + int i, c; + + buf[0] = RVT_TM_HEADER; + c = 0; + for (i = 1; i <= len; i++) + c ^= buf[i]; + buf[i] = c; + send_pkt_to_target(buf, len + 2); +} + +void +cmd_poweroff() +{ + u_char cmdpkt[7]; + + cmdpkt[1] = ETM_CORE; + cmdpkt[2] = TMCORE_OPC_CODEC_WR; + cmdpkt[3] = 30; /* VRPCDEV */ + cmdpkt[4] = 0x01; /* low 8 bits */ + cmdpkt[5] = 0; /* high 2 bits */ + send_etm_cmd(cmdpkt, 5); +} + +void +cmd_tgtreset() +{ + u_char cmdpkt[4]; + + cmdpkt[1] = ETM_CORE; + cmdpkt[2] = TMCORE_OPC_RESET; + send_etm_cmd(cmdpkt, 2); +} diff -r 0590cfd5803f -r 1b1683cda154 rvinterf/asyncshell/usercmd.c --- a/rvinterf/asyncshell/usercmd.c Sun Jun 28 15:40:47 2015 +0000 +++ b/rvinterf/asyncshell/usercmd.c Sun Jun 28 16:52:06 2015 +0000 @@ -13,8 +13,10 @@ extern void cmd_disable(); extern void cmd_enable(); +extern void cmd_poweroff(); extern void cmd_sendat(); extern void cmd_sendsp(); +extern void cmd_tgtreset(); void cmd_exit() @@ -30,9 +32,11 @@ {"disable", cmd_disable}, {"enable", cmd_enable}, {"exit", cmd_exit}, + {"poweroff", cmd_poweroff}, {"quit", cmd_exit}, {"sp", cmd_sendsp}, {"str", cmd_sendat}, + {"tgtreset", cmd_tgtreset}, {0, 0} };