# HG changeset patch # User Michael Spacefalcon # Date 1372394949 0 # Node ID a481d648278a96b7b576da9340ee2ed919598f63 # Parent cc1d2413991a02019974c4ca0ed74b9ad485a5c0 fc-loadtool: "quick program" command implemented diff -r cc1d2413991a -r a481d648278a loadtools/ltflash.c --- a/loadtools/ltflash.c Thu Jun 27 23:22:25 2013 +0000 +++ b/loadtools/ltflash.c Fri Jun 28 04:49:09 2013 +0000 @@ -247,6 +247,40 @@ return(0); } +flashcmd_quickprog(argc, argv, bank) + char **argv; +{ + char *targv[4], targ_base[10]; + int stat; + + if (argc != 4) { +inv: fprintf(stderr, "usage: %s %s hex-offset hex-data-string\n", + argv[0], argv[1]); + return(-1); + } + sprintf(targ_base, "%lx", (u_long) flash_bank_info[bank].base_addr); + targv[0] = "AMFB"; + targv[1] = targ_base; + targv[2] = 0; + tpinterf_make_cmd(targv); + if (tpinterf_send_cmd() < 0) + return(-1); + stat = tpinterf_pass_output(1); + if (stat) + return(stat); + targv[0] = "AMFW"; + targv[1] = argv[2]; + targv[2] = argv[3]; + targv[3] = 0; + if (tpinterf_make_cmd(targv) < 0) { + fprintf(stderr, "error: unable to form AMFW target command\n"); + return(-1); + } + if (tpinterf_send_cmd() < 0) + return(-1); + return tpinterf_pass_output(1); +} + extern int flashcmd_erase(); extern int flashcmd_sectors(); @@ -259,6 +293,7 @@ {"dump2srec", flashcmd_dump2file}, {"erase", flashcmd_erase}, {"info", flashcmd_info}, + {"quickprog", flashcmd_quickprog}, {"sectors", flashcmd_sectors}, {0, 0} };