]>
Commit | Line | Data |
---|---|---|
1 | /* | |
2 | * (C) Copyright 2014-2016 Leo C. <erbl259-lmu@yahoo.de> | |
3 | * | |
4 | * SPDX-License-Identifier: GPL-2.0 | |
5 | */ | |
6 | ||
7 | #include "common.h" | |
8 | #include "command.h" | |
9 | #include "cmd_mem.h" | |
10 | ||
11 | extern command_ret_t do_help(cmd_tbl_t *, int, int, char * const []); | |
12 | extern command_ret_t do_echo(cmd_tbl_t *, int, int, char * const []); | |
13 | extern command_ret_t do_sleep(cmd_tbl_t *, int, int, char * const []); | |
14 | extern command_ret_t do_env_print(cmd_tbl_t *, int, int, char * const []); | |
15 | extern command_ret_t do_env_default(cmd_tbl_t *, int, int, char * const []); | |
16 | extern command_ret_t do_env_set(cmd_tbl_t *, int, int, char * const []); | |
17 | extern command_ret_t do_env_save(cmd_tbl_t *, int, int, char * const []); | |
18 | extern command_ret_t do_loadf(cmd_tbl_t *, int, int, char * const []); | |
19 | extern command_ret_t do_loadcpm3(cmd_tbl_t *, int, int, char * const []); | |
20 | extern command_ret_t do_loadihex(cmd_tbl_t *, int, int, char * const []); | |
21 | #if defined(CONFIG_CMD_LOADB) | |
22 | extern command_ret_t do_load_serial_bin(cmd_tbl_t *, int, int, char * const []); | |
23 | #endif | |
24 | extern command_ret_t do_go(cmd_tbl_t *, int, int, char * const []); | |
25 | extern command_ret_t do_restart(cmd_tbl_t *, int, int, char * const []); | |
26 | extern command_ret_t do_console(cmd_tbl_t *, int, int, char * const []); | |
27 | extern command_ret_t do_dump_mem(cmd_tbl_t *, int, int, char * const []); | |
28 | extern command_ret_t do_mem_mm_avr(cmd_tbl_t *, int, int, char * const []); | |
29 | extern command_ret_t do_mem_nm_avr(cmd_tbl_t *, int, int, char * const []); | |
30 | extern command_ret_t do_eep_cp(cmd_tbl_t *, int, int, char * const []); | |
31 | extern command_ret_t do_busreq_pulse(cmd_tbl_t *, int, int, char * const []); | |
32 | extern command_ret_t do_date(cmd_tbl_t *, int, int, char * const []); | |
33 | extern command_ret_t do_gpio(cmd_tbl_t *, int, int, char * const []); | |
34 | extern command_ret_t do_sd(cmd_tbl_t *, int, int, char * const []); | |
35 | extern command_ret_t do_fat_stat(cmd_tbl_t *, int, int, char * const []); | |
36 | extern command_ret_t do_fat_ls(cmd_tbl_t *, int, int, char * const []); | |
37 | extern command_ret_t do_fat_rw(cmd_tbl_t *, int, int, char * const []); | |
38 | extern command_ret_t do_run(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]); | |
39 | extern command_ret_t do_source(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]); | |
40 | ||
41 | #ifdef CONFIG_SYS_LONGHELP | |
42 | const FLASH char sd_help_text[] = | |
43 | "bla \t- do bla\n" | |
44 | ; | |
45 | #endif /* CONFIG_SYS_LONGHELP */ | |
46 | ||
47 | ||
48 | cmd_tbl_t cmd_tbl[] = { | |
49 | ||
50 | CMD_TBL_ITEM( | |
51 | date, 2, 1, do_date, | |
52 | "get/set date & time", | |
53 | "[MMDDhhmm[[CC]YY][.ss]]\n" | |
54 | " - without arguments: print date & time\n" | |
55 | " - with numeric argument: set the system date & time\n" | |
56 | ), | |
57 | ||
58 | #ifdef DEBUG | |
59 | ||
60 | CMD_TBL_ITEM( | |
61 | !mdr, 3, 1, do_dump_mem, | |
62 | "RAM dump", | |
63 | "address [count]" | |
64 | ), | |
65 | CMD_TBL_ITEM( | |
66 | !mde, 3, 1, do_dump_mem, | |
67 | "EEPROM dump", | |
68 | "address [count]" | |
69 | ), | |
70 | CMD_TBL_ITEM( | |
71 | !mdf, 3, 1, do_dump_mem, | |
72 | "FLASH dump", | |
73 | "address [count]" | |
74 | ), | |
75 | CMD_TBL_ITEM( | |
76 | !cpe, 4, 0, do_eep_cp, | |
77 | "EEPROM copy", | |
78 | "source target count" | |
79 | ), | |
80 | CMD_TBL_ITEM( | |
81 | !mm, 2, 1, do_mem_mm_avr, | |
82 | "avr memory modify (auto-incrementing address)", | |
83 | "address" | |
84 | ), | |
85 | CMD_TBL_ITEM( | |
86 | !nm, 2, 1, do_mem_nm_avr, | |
87 | "avr memory modify (constant address)", | |
88 | "address" | |
89 | ), | |
90 | #endif | |
91 | CMD_TBL_ITEM( | |
92 | mstep, 2, 1, do_busreq_pulse, | |
93 | "execute one M cycle", | |
94 | "[count]\n" | |
95 | " - repeat count times" | |
96 | ), | |
97 | CMD_TBL_ITEM( | |
98 | echo, CONFIG_SYS_MAXARGS, 1, do_echo, | |
99 | "display a line of text", | |
100 | "[-n] [argument ...]\n" | |
101 | "- echo the argument(s) to console.\n" | |
102 | " -n do not output the trailing newline" | |
103 | ), | |
104 | CMD_TBL_ITEM( | |
105 | sleep , 2, 1, do_sleep, | |
106 | "delay execution for some time", | |
107 | "N[m][s]\n" | |
108 | " - delay execution for decimal N (milli) seconds" | |
109 | ), | |
110 | CMD_TBL_ITEM_COMPLETE( | |
111 | run, CONFIG_SYS_MAXARGS, 1, do_run, | |
112 | "run commands in an environment variable", | |
113 | "var [...]\n" | |
114 | " - run the commands in the environment variable(s) 'var'", | |
115 | var_complete | |
116 | ), | |
117 | CMD_TBL_ITEM_COMPLETE( | |
118 | source, CONFIG_SYS_MAXARGS, 1, do_source, | |
119 | "run commands from a file", | |
120 | "filename\n" | |
121 | " - run the commands in the script file 'filename'", | |
122 | var_complete | |
123 | ), | |
124 | CMD_TBL_ITEM_COMPLETE( | |
125 | printenv, CONFIG_SYS_MAXARGS, 1, do_env_print, | |
126 | "print environment variables", | |
127 | "\n" | |
128 | " - print values of all environment variables\n" | |
129 | "printenv name ...\n" | |
130 | " - print value of environment variable 'name'", | |
131 | var_complete | |
132 | ), | |
133 | CMD_TBL_ITEM_COMPLETE( | |
134 | setenv, CONFIG_SYS_MAXARGS, 0, do_env_set, | |
135 | "set environment variables", | |
136 | "name value ...\n" | |
137 | " - set environment variable 'name' to 'value ...'\n" | |
138 | "setenv name\n" | |
139 | " - delete environment variable 'name'", | |
140 | var_complete | |
141 | ), | |
142 | CMD_TBL_ITEM( | |
143 | saveenv, 1, 0, do_env_save, | |
144 | "save environment variables to persistent storage", | |
145 | "" | |
146 | ), | |
147 | CMD_TBL_ITEM( | |
148 | defaultenv, 1, 0, do_env_default, | |
149 | "set all environment variables to their default values", | |
150 | "" | |
151 | ), | |
152 | ||
153 | CMD_TBL_ITEM( | |
154 | loadf, 1, 0, do_loadf, | |
155 | "load srec_cat prepared image from controller flash", | |
156 | "" | |
157 | ), | |
158 | CMD_TBL_ITEM( | |
159 | loadcpm3, 3, 0, do_loadcpm3, | |
160 | "load CPM3.SYS file", | |
161 | "[filename [common-base [banked-base]]] \n" | |
162 | " - Load CP/M 3 system file from FAT filesystem. This command makes\n" | |
163 | " CPMLDR superfluous. Uses the following environment variables if set:\n" | |
164 | " '"ENV_CPM3_SYSFILE"' File to load. Default is '"CONFIG_CPM3_SYSFILE"'.\n" | |
165 | " '"ENV_CPM3_BANKED_BASE"' Default is '"CONFIG_CPM3_BANKED_BASE_STR"'.\n" | |
166 | " Sets the following environment variables after loading:\n" | |
167 | " '"ENV_CPM3_COMMON_BASE"'\n" | |
168 | " '"ENV_STARTADDRESS"'" | |
169 | ), | |
170 | CMD_TBL_ITEM( | |
171 | loadi, 2, 0, do_loadihex, | |
172 | "load intel hex file over serial line", | |
173 | "[[-]offset]\n" | |
174 | " - load Intel-Hex-Record file over serial line with offset 'offset'" | |
175 | ), | |
176 | ||
177 | #if defined(CONFIG_CMD_LOADB) | |
178 | CMD_TBL_ITEM( | |
179 | loadb, 1, 0, do_load_serial_bin, | |
180 | "load binary file over serial line (kermit mode)", | |
181 | " - load binary file over serial line" | |
182 | ), | |
183 | ||
184 | CMD_TBL_ITEM( | |
185 | loadx, 1, 0, do_load_serial_bin, | |
186 | "load binary file over serial line (xmodem mode)", | |
187 | " - load binary file over serial line" | |
188 | ), | |
189 | ||
190 | CMD_TBL_ITEM( | |
191 | loady, 1, 0, do_load_serial_bin, | |
192 | "load binary file over serial line (ymodem mode)", | |
193 | " - load binary file over serial line" | |
194 | ), | |
195 | #endif /* CONFIG_CMD_LOADB */ | |
196 | ||
197 | CMD_TBL_ITEM( | |
198 | go, 2, 0, do_go, | |
199 | "start application at address 'addr'", | |
200 | "addr\n" | |
201 | " - start application at address 'addr'" | |
202 | // "\n" | |
203 | // " passing 'arg' as arguments" | |
204 | ), | |
205 | CMD_TBL_ITEM( | |
206 | reset, 1, 0, do_reset, | |
207 | "Keep CPU in RESET state", | |
208 | "" | |
209 | ), | |
210 | CMD_TBL_ITEM( | |
211 | restart, 1, 1, do_restart, | |
212 | "Perform RESET of the CPU", | |
213 | "" | |
214 | ), | |
215 | CMD_TBL_ITEM( | |
216 | connect, 1, 0, do_console, | |
217 | "Connect to CPU console i/o", | |
218 | "\n" | |
219 | " - type the escape character followed by Q to close the connection, \n" | |
220 | " or followed by ? to see other options. The default escape character \n" | |
221 | " is Ctrl-^ (0x1E). It can be changed by setting env var '"ENV_ESC_CHAR"'." | |
222 | ||
223 | ), | |
224 | ||
225 | CMD_TBL_ITEM( | |
226 | pin, CONFIG_SYS_MAXARGS, 1, do_gpio, | |
227 | "Set or query pin state", | |
228 | "[-s] [<pins>]\n" | |
229 | " - print cofiguration and state or frequency of pins\n" | |
230 | " print all pins, if argument is omitted\n" | |
231 | "pin <pins> h[igh]|l[ow]\n" | |
232 | " - config pins as output and set to level high or low\n" | |
233 | "pin <pins> ts|i[n]|p[ullup]\n" | |
234 | " - config pins as input/tristate or input with pullup\n" | |
235 | "pin <pins> value[K|M][Hz]\n" | |
236 | " - output a clock on pins\n" | |
237 | " value is system clock divider or frequency, if 'Hz' is appended\n" | |
238 | " divider is rounded down to next possible value (depends on pin)\n" | |
239 | "\n" | |
240 | "<pins> is a comma separated list of numbers or ranges, i.e. \"0,9,3-6\"\n" | |
241 | ), | |
242 | ||
243 | CMD_TBL_ITEM( | |
244 | md, 3, 1, do_mem_md, | |
245 | "memory display", | |
246 | "address [# of objects]" | |
247 | ), | |
248 | CMD_TBL_ITEM( | |
249 | mm, 2, 1, do_mem_mm, | |
250 | "memory modify (auto-incrementing address)", | |
251 | "address" | |
252 | ), | |
253 | CMD_TBL_ITEM( | |
254 | nm, 2, 1, do_mem_nm, | |
255 | "memory modify (constant address)", | |
256 | "address" | |
257 | ), | |
258 | CMD_TBL_ITEM( | |
259 | mw, CONFIG_SYS_MAXARGS, 1, do_mem_mw, | |
260 | "memory write (fill)", | |
261 | "[-bwl] address value [count]\n" | |
262 | " -b write value as byte (8 bit, default)\n" | |
263 | " -w write value as word (16 bit)\n" | |
264 | " -l write value as long (32 bit)\n" | |
265 | ), | |
266 | CMD_TBL_ITEM( | |
267 | cp, 4, 1, do_mem_cp, | |
268 | "memory copy", | |
269 | "source target count" | |
270 | ), | |
271 | CMD_TBL_ITEM( | |
272 | cmp, 4, 1, do_mem_cmp, | |
273 | "memory compare", | |
274 | "addr1 addr2 count" | |
275 | ), | |
276 | CMD_TBL_ITEM( | |
277 | base, 2, 0, do_mem_base, | |
278 | "print or set address offset", | |
279 | "\n" | |
280 | " - print address offset for memory commands\n" | |
281 | "base offset\n" | |
282 | " - set address offset for memory commands to 'offset'" | |
283 | ), | |
284 | CMD_TBL_ITEM( | |
285 | mloop, 3, 1, do_mem_loop, | |
286 | "infinite loop on address range", | |
287 | "address number_of_bytes" | |
288 | ), | |
289 | CMD_TBL_ITEM( | |
290 | mloopw, 4, 1, do_mem_loopw, | |
291 | "infinite write loop on address range", | |
292 | "address number_of_bytes data_to_write" | |
293 | ), | |
294 | ||
295 | #ifdef CONFIG_CMD_MEMTEST | |
296 | CMD_TBL_ITEM( | |
297 | mtest, 4, 1, do_mem_mtest, | |
298 | "simple RAM read/write test", | |
299 | "[start [end [iterations]]]" | |
300 | ), | |
301 | #endif /* CONFIG_CMD_MEMTEST */ | |
302 | ||
303 | #ifdef CONFIG_MX_CYCLIC | |
304 | CMD_TBL_ITEM( | |
305 | mdc, 4, 1, do_mem_mdc, | |
306 | "memory display cyclic", | |
307 | "address count delay(ms)" | |
308 | ), | |
309 | CMD_TBL_ITEM( | |
310 | mwc, 4, 1, do_mem_mdc, | |
311 | "memory write cyclic", | |
312 | "address value delay(ms)" | |
313 | ), | |
314 | #endif /* CONFIG_MX_CYCLIC */ | |
315 | ||
316 | CMD_TBL_ITEM( | |
317 | sd, CONFIG_SYS_MAXARGS, 1, do_sd, | |
318 | "SD/MMC card handling commands", | |
319 | "<subcommand> args ...\n" | |
320 | "sd help\n" | |
321 | " - print help on subcommands" | |
322 | ), | |
323 | ||
324 | CMD_TBL_ITEM( | |
325 | fatstat, 2, 1, do_fat_stat, | |
326 | "Show logical drive status", | |
327 | "dev" | |
328 | ), | |
329 | CMD_TBL_ITEM( | |
330 | fatls, 2, 1, do_fat_ls, | |
331 | "Directory listing", | |
332 | "path" | |
333 | ), | |
334 | CMD_TBL_ITEM( | |
335 | fatload, 5, 0, do_fat_rw, | |
336 | "load binary file from a dos filesystem", | |
337 | "<d:/path/filename> <addr> [bytes [pos]]\n" | |
338 | " - Load binary file 'path/filename' on logical drive 'd'\n" | |
339 | " to address 'addr' from dos filesystem.\n" | |
340 | " 'pos' gives the file position to start loading from.\n" | |
341 | " If 'pos' is omitted, 0 is used. 'pos' requires 'bytes'.\n" | |
342 | " 'bytes' gives the size to load. If 'bytes' is 0 or omitted,\n" | |
343 | " the load stops on end of file." | |
344 | ), | |
345 | CMD_TBL_ITEM( | |
346 | fatwrite, 4, 0, do_fat_rw, | |
347 | "write file into a dos filesystem", | |
348 | "<d:/path/filename> <addr> <bytes>\n" | |
349 | " - Write file to 'path/filename' on logical drive 'd' from RAM\n" | |
350 | " starting at address 'addr'.\n" | |
351 | ), | |
352 | ||
353 | CMD_TBL_ITEM( | |
354 | help, CONFIG_SYS_MAXARGS, 1, do_help, | |
355 | "print command description/usage", | |
356 | "\n" | |
357 | " - print brief description of all commands\n" | |
358 | "help command ...\n" | |
359 | " - print detailed usage of 'command'" | |
360 | ), | |
361 | ||
362 | /* This does not use the CMD_TBL_ITEM macro as ? can't be used in symbol names */ | |
363 | {FSTR("?"), CONFIG_SYS_MAXARGS, 1, do_help, | |
364 | FSTR("alias for 'help'"), | |
365 | #ifdef CONFIG_SYS_LONGHELP | |
366 | FSTR(""), | |
367 | #endif /* CONFIG_SYS_LONGHELP */ | |
368 | #ifdef CONFIG_AUTO_COMPLETE | |
369 | 0, | |
370 | #endif | |
371 | }, | |
372 | /* Mark end of table */ | |
373 | { 0 }, | |
374 | }; |