FreeCalypso > hg > freecalypso-tools
annotate rvinterf/tmsh/omw.c @ 497:74610c4f10f7
target-utils: added 10 ms delay at the end of abb_power_off()
The deosmification of the ABB access code (replacement of osmo_delay_ms()
bogus delays with correctly-timed ones, which are significantly shorter)
had one annoying side effect: when executing the poweroff command from
any of the programs, one last '=' prompt character was being sent (and
received by the x86 host) as the Calypso board powers off. With delays
being shorter now, the abb_power_off() function was returning and the
standalone program's main loop was printing its prompt before the Iota chip
fully executed the switch-off sequence!
I thought about inserting an endless tight loop at the end of the
abb_power_off() function, but the implemented solution of a 10 ms delay
is a little nicer IMO because if the DEVOFF operation doesn't happen for
some reason in a manual hacking scenario, there won't be an artificial
blocker in the form of a tight loop keeping us from further poking around.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sat, 25 May 2019 20:44:05 +0000 |
parents | c81d0e9ac3b4 |
children |
rev | line source |
---|---|
149
c81d0e9ac3b4
fc-tmsh: omw command and response handling added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /* |
c81d0e9ac3b4
fc-tmsh: omw command and response handling added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 * Old-style memory write command |
c81d0e9ac3b4
fc-tmsh: omw command and response handling added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 */ |
c81d0e9ac3b4
fc-tmsh: omw command and response handling added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 |
c81d0e9ac3b4
fc-tmsh: omw command and response handling added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 #include <sys/types.h> |
c81d0e9ac3b4
fc-tmsh: omw command and response handling added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 #include <stdio.h> |
c81d0e9ac3b4
fc-tmsh: omw command and response handling added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 #include <string.h> |
c81d0e9ac3b4
fc-tmsh: omw command and response handling added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 #include <strings.h> |
c81d0e9ac3b4
fc-tmsh: omw command and response handling added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 #include <stdlib.h> |
c81d0e9ac3b4
fc-tmsh: omw command and response handling added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 #include "pktmux.h" |
c81d0e9ac3b4
fc-tmsh: omw command and response handling added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 #include "limits.h" |
c81d0e9ac3b4
fc-tmsh: omw command and response handling added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 #include "localtypes.h" |
c81d0e9ac3b4
fc-tmsh: omw command and response handling added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 #include "tm3.h" |
c81d0e9ac3b4
fc-tmsh: omw command and response handling added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 #include "exitcodes.h" |
c81d0e9ac3b4
fc-tmsh: omw command and response handling added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 |
c81d0e9ac3b4
fc-tmsh: omw command and response handling added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 cmd_omw(argc, argv) |
c81d0e9ac3b4
fc-tmsh: omw command and response handling added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 char **argv; |
c81d0e9ac3b4
fc-tmsh: omw command and response handling added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18 { |
c81d0e9ac3b4
fc-tmsh: omw command and response handling added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
19 u32 addr, v; |
c81d0e9ac3b4
fc-tmsh: omw command and response handling added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
20 u_char cmdpkt[MAX_PKT_TO_TARGET]; |
c81d0e9ac3b4
fc-tmsh: omw command and response handling added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
21 int di; |
c81d0e9ac3b4
fc-tmsh: omw command and response handling added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
22 char **ap; |
c81d0e9ac3b4
fc-tmsh: omw command and response handling added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
23 |
c81d0e9ac3b4
fc-tmsh: omw command and response handling added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
24 addr = strtoul(argv[1], 0, 16); |
c81d0e9ac3b4
fc-tmsh: omw command and response handling added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 cmdpkt[1] = MEM_WRITE; |
c81d0e9ac3b4
fc-tmsh: omw command and response handling added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 cmdpkt[2] = addr; |
c81d0e9ac3b4
fc-tmsh: omw command and response handling added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 cmdpkt[3] = addr >> 8; |
c81d0e9ac3b4
fc-tmsh: omw command and response handling added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 cmdpkt[4] = addr >> 16; |
c81d0e9ac3b4
fc-tmsh: omw command and response handling added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29 cmdpkt[5] = addr >> 24; |
c81d0e9ac3b4
fc-tmsh: omw command and response handling added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30 di = 6; |
c81d0e9ac3b4
fc-tmsh: omw command and response handling added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 for (ap = argv + 2; *ap; ap++) { |
c81d0e9ac3b4
fc-tmsh: omw command and response handling added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 v = strtoul(*ap, 0, 16); |
c81d0e9ac3b4
fc-tmsh: omw command and response handling added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 cmdpkt[di++] = v; |
c81d0e9ac3b4
fc-tmsh: omw command and response handling added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 } |
c81d0e9ac3b4
fc-tmsh: omw command and response handling added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 send_etm_cmd(cmdpkt, di - 1); |
c81d0e9ac3b4
fc-tmsh: omw command and response handling added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 return(0); |
c81d0e9ac3b4
fc-tmsh: omw command and response handling added
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 } |