FreeCalypso > hg > freecalypso-sw
comparison loadtools/ltflash.c @ 64:a481d648278a
fc-loadtool: "quick program" command implemented
author | Michael Spacefalcon <msokolov@ivan.Harhan.ORG> |
---|---|
date | Fri, 28 Jun 2013 04:49:09 +0000 |
parents | 6fb41cfa773d |
children | a7da6648a7f8 |
comparison
equal
deleted
inserted
replaced
63:cc1d2413991a | 64:a481d648278a |
---|---|
245 if (selected_flash_device->nbanks == 2 && !bank) | 245 if (selected_flash_device->nbanks == 2 && !bank) |
246 printf("\nFlash device has 2 banks; flash2 command available\n"); | 246 printf("\nFlash device has 2 banks; flash2 command available\n"); |
247 return(0); | 247 return(0); |
248 } | 248 } |
249 | 249 |
250 flashcmd_quickprog(argc, argv, bank) | |
251 char **argv; | |
252 { | |
253 char *targv[4], targ_base[10]; | |
254 int stat; | |
255 | |
256 if (argc != 4) { | |
257 inv: fprintf(stderr, "usage: %s %s hex-offset hex-data-string\n", | |
258 argv[0], argv[1]); | |
259 return(-1); | |
260 } | |
261 sprintf(targ_base, "%lx", (u_long) flash_bank_info[bank].base_addr); | |
262 targv[0] = "AMFB"; | |
263 targv[1] = targ_base; | |
264 targv[2] = 0; | |
265 tpinterf_make_cmd(targv); | |
266 if (tpinterf_send_cmd() < 0) | |
267 return(-1); | |
268 stat = tpinterf_pass_output(1); | |
269 if (stat) | |
270 return(stat); | |
271 targv[0] = "AMFW"; | |
272 targv[1] = argv[2]; | |
273 targv[2] = argv[3]; | |
274 targv[3] = 0; | |
275 if (tpinterf_make_cmd(targv) < 0) { | |
276 fprintf(stderr, "error: unable to form AMFW target command\n"); | |
277 return(-1); | |
278 } | |
279 if (tpinterf_send_cmd() < 0) | |
280 return(-1); | |
281 return tpinterf_pass_output(1); | |
282 } | |
283 | |
250 extern int flashcmd_erase(); | 284 extern int flashcmd_erase(); |
251 extern int flashcmd_sectors(); | 285 extern int flashcmd_sectors(); |
252 | 286 |
253 static struct cmdtab { | 287 static struct cmdtab { |
254 char *cmd; | 288 char *cmd; |
257 {"blankchk", flashcmd_blankchk}, | 291 {"blankchk", flashcmd_blankchk}, |
258 {"dump2bin", flashcmd_dump2file}, | 292 {"dump2bin", flashcmd_dump2file}, |
259 {"dump2srec", flashcmd_dump2file}, | 293 {"dump2srec", flashcmd_dump2file}, |
260 {"erase", flashcmd_erase}, | 294 {"erase", flashcmd_erase}, |
261 {"info", flashcmd_info}, | 295 {"info", flashcmd_info}, |
296 {"quickprog", flashcmd_quickprog}, | |
262 {"sectors", flashcmd_sectors}, | 297 {"sectors", flashcmd_sectors}, |
263 {0, 0} | 298 {0, 0} |
264 }; | 299 }; |
265 | 300 |
266 cmd_flash(argc, argv) | 301 cmd_flash(argc, argv) |