static FlashType flashType = FLASH_INVALID;
static uint32_t manId = 0;
-static const char trbflash_version[] = "$Revision: 2.21 $";
+static const char trbflash_version[] = "$Revision: 2.22 $";
static uint32_t mdcFlashSelect = 1;
static int skipFirmwareIdCheck = 0;
-static int skipHwIdCheck = 0;
+static int skipVerify = 0;
/* ------ Local Functions ----------------------------------------------- */
if ((status = trb_register_write(trb_address, SetupReg,
(uint32_t)(value << 24))) == -1) {
fprintf(logFile, "Error > writeSetupRegister: TRBNet %s\n",
- trb_strerrorf());
+ trb_strerror());
return -1;
}
if (trb_term.status_channel != 0) {
fprintf(logFile,
"Error > writeSetupRegister: invalid Status returned %s\n",
- trb_strerrorf());
+ trb_strerror());
return -1;
}
if ((status = trb_register_read(trb_address, CtrlReg,
trbBuffer, TRB_BUFFER_SIZE)) == -1) {
fprintf(logFile, "Error > readCtrlRegister: TRBNet %s\n",
- trb_strerrorf());
+ trb_strerror());
return -1;
}
if ((status = trb_register_write(trb_address, CtrlReg,
value)) == -1) {
fprintf(logFile, "Error > writeCtrlRegister: TRBNet %s\n",
- trb_strerrorf());
+ trb_strerror());
return -1;
}
trb_register_read(trb_address, BlockRam, trbBuffer,
TRB_BUFFER_SIZE)) == -1) {
fprintf(logFile, "Error > checkStatus: TRBNet %s\n",
- trb_strerrorf());
+ trb_strerror());
return -1;
}
if (trb_register_write(trb_address, BlockRam, (uint32_t)value) == -1) {
fprintf(logFile, "Error > writeStatusRegister: TRBNet %s\n",
- trb_strerrorf());
+ trb_strerror());
return -1;
}
if (sendCommand(trb_address, 0x01 << 24, 0) == -1) {
trb_register_read(trb_address, HardwareId, trbBuffer,
TRB_BUFFER_SIZE)) == -1) {
fprintf(logFile, "Error > initTransfer, read HardwareIds: TRBNet %s\n",
- trb_strerrorf());
+ trb_strerror());
return -1;
}
trb_register_read(trb_address, BlockRam, trbBuffer,
TRB_BUFFER_SIZE)) == -1) {
fprintf(logFile, "Error > initTransfer, read ManIds: TRBNet %s\n",
- trb_strerrorf());
+ trb_strerror());
return -1;
}
trbBuffer, TRB_BUFFER_SIZE))
== -1) {
fprintf(logFile, "Error > readPage: TRBNet %s\n",
- trb_strerrorf());
+ trb_strerror());
return -1;
}
trbBuffer, size))
== -1) {
fprintf(logFile, "Error > writePage: TRBNet %s\n",
- trb_strerrorf());
+ trb_strerror());
return -1;
}
if (trb_register_write(trb_address, MDCFlashRomSelect,
(uint32_t)number) == -1) {
fprintf(logFile, "\nError > selcetMdcFlashRom: TRBNet %s\n",
- trb_strerrorf());
+ trb_strerror());
return -1;
}
void usage(const char *progName)
{
- printf("Usage: %s [-s str] [-g] [-y] [-f] [-h] [-V] <COMMAND>\n",
+ printf("Usage: %s [-s str] [-g] [-y] [-f] [-v] [-h] [-V] <COMMAND>\n",
progName);
printf("Options:\n");
printf(" -s set user-string of info page (default: empty string)\n");
printf(" -y assume yes to all questions which might will be asked\n");
printf(" -f do not validate FirmwareId of ImageFile (DON'T USE, for "
"EXPERTS ONLY)\n");
- /* printf(" -F do not crosscheck HardwareIDs of Endpoints "
- "(DON'T USE, for EXPERTS ONLY)\n"); */
+ printf(" -v skip verifying after programming\n");
printf(" -h give this help\n");
printf(" -V Version number\n");
printf("\nCommands:\n");
mdcFlashSelect = 1;
yesToAll = 0;
skipFirmwareIdCheck = 0;
- skipHwIdCheck = 0;
-
+ skipVerify = 0;
+
/* Parse Arguments */
- while ((i = getopt(argc, argv, "+hd:s:gyVf")) != -1) {
+ while ((i = getopt(argc, argv, "+hd:s:gyvVf")) != -1) {
switch (i) {
case '?':
usage(basename(argv[0]));
case 'f':
skipFirmwareIdCheck = 1;
break;
- case 'F':
- skipHwIdCheck = 2;
+ case 'v':
+ skipVerify = 1;
break;
case 'V':
printf("%s %s, using libtrbnet %s\n",
exit(EXIT_FAILURE);
}
- if (programImageBuffer(trb_address, size, PMODE_VERIFY, 1) == -1) {
- exit(EXIT_FAILURE);
+ if (skipVerify == 0) {
+ if (programImageBuffer(trb_address, size, PMODE_VERIFY, 1) == -1) {
+ exit(EXIT_FAILURE);
+ }
}
} else if (strcmp(argv[optind], "verify") == 0) {
if (programImageBuffer(trb_address, size, PMODE_PROGRAM_FULL, 0) == -1) {
exit(EXIT_FAILURE);
}
-
- if (programImageBuffer(trb_address, size, PMODE_VERIFY, 0) == -1) {
- exit(EXIT_FAILURE);
+
+ if (skipVerify == 0) {
+ if (programImageBuffer(trb_address, size, PMODE_VERIFY, 0) == -1) {
+ exit(EXIT_FAILURE);
+ }
}
} else if (strcmp(argv[optind], "info") == 0) {