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