uint32_t compatibleManId[16];
char allowedStringId[16][64];
uint32_t numPages;
- int sectorProtect; /* single = 1, all = 1 */
} FlashParam;
static FlashParam flashParamRef;
-static const char trbflash_version[] = "$Revision: 2.33 $";
+static const char trbflash_version[] = "$Revision: 2.34 $";
static uint32_t mdcFlashSelect = 1;
if (flashParam == NULL) return -1;
flashParam->flashType = FLASH_INVALID;
- flashParam->manId = 0x00;
+ flashParam->manId = 0xffffffff;
flashParam->numPages = 0;
- flashParam->sectorProtect = 0;
for (i = 0; i < 16; i++) {
flashParam->compatibleType[i] = FLASH_INVALID;
- flashParam->compatibleManId[i] = 0x00;
+ flashParam->compatibleManId[i] = 0xffffffff;
flashParam->allowedStringId[i][0] = '\0';
}
flashParam->manId = 0x00461f;
strcpy(flashParam->allowedStringId[0], "adcmv1");
flashParam->numPages = 8192;
- flashParam->sectorProtect = 1;
break;
case 0x3200:
flashParam->manId = 0x00471f;
strcpy(flashParam->allowedStringId[0], "adcmv2");
flashParam->numPages = 16384;
- flashParam->sectorProtect = 1;
break;
case 0x3300:
flashParam->manId = 0x00471f;
strcpy(flashParam->allowedStringId[0], "adcmv3");
flashParam->numPages = 16384;
- flashParam->sectorProtect = 1;
break;
/* MDC HUB */
flashParam->manId = 0x1520c2;
strcpy(flashParam->allowedStringId[0], "mdchub_fpga1234");
flashParam->numPages = 8192;
- flashParam->sectorProtect = 1;
break;
case 0x1250:
flashParam->manId = 0x1520c2;
strcpy(flashParam->allowedStringId[0], "mdchub_fpga5");
flashParam->numPages = 8192;
- flashParam->sectorProtect = 1;
break;
/* MDC OEP */
flashParam->manId = 0x1520c2;
strcpy(flashParam->allowedStringId[0], "mdc_oepb");
flashParam->numPages = 8192;
- flashParam->sectorProtect = 1;
break;
case 0x2300:
flashParam->manId = 0x1520c2;
strcpy(flashParam->allowedStringId[0], "mdc_oepb");
flashParam->numPages = 8192;
- flashParam->sectorProtect = 1;
break;
/* SHOWER */
flashParam->manId = 0x1520c2;
strcpy(flashParam->allowedStringId[0], "shower_fpga1");
flashParam->numPages = 8192;
- flashParam->sectorProtect = 1;
break;
case 0x4220:
flashParam->manId = 0x1520c2;
strcpy(flashParam->allowedStringId[0], "shower_fpga2");
flashParam->numPages = 8192;
- flashParam->sectorProtect = 1;
break;
case 0x4230:
flashParam->manId = 0x1520c2;
strcpy(flashParam->allowedStringId[0], "adcmv3");
flashParam->numPages = 8192;
- flashParam->sectorProtect = 1;
break;
/* TRB3 */
strcpy(flashParam->allowedStringId[0], "trb3_central");
strcpy(flashParam->allowedStringId[1], "trb3_fpga5");
flashParam->numPages = 32768;
- flashParam->sectorProtect = 1;
break;
case 0x9100:
strcpy(flashParam->allowedStringId[3], "trb3_fpga3");
strcpy(flashParam->allowedStringId[4], "trb3_fpga4");
flashParam->numPages = 32768;
- flashParam->sectorProtect = 1;
break;
case 0x9110:
strcpy(flashParam->allowedStringId[3], "trb3_fpga3");
strcpy(flashParam->allowedStringId[4], "trb3_fpga4");
flashParam->numPages = 32768;
- flashParam->sectorProtect = 1;
break;
case 0x9120:
strcpy(flashParam->allowedStringId[3], "trb3_fpga3");
strcpy(flashParam->allowedStringId[4], "trb3_fpga4");
flashParam->numPages = 32768;
- flashParam->sectorProtect = 1;
break;
case 0x9130:
strcpy(flashParam->allowedStringId[3], "trb3_fpga3");
strcpy(flashParam->allowedStringId[4], "trb3_fpga4");
flashParam->numPages = 32768;
- flashParam->sectorProtect = 1;
break;
case 0x9140:
strcpy(flashParam->allowedStringId[3], "trb3_fpga3");
strcpy(flashParam->allowedStringId[4], "trb3_fpga4");
flashParam->numPages = 32768;
- flashParam->sectorProtect = 1;
break;
default:
ret = 0;
for (i = 0; i < status; i += 2) {
- if ((flashParamRef.manId == 0x01461f) ||
+ if ((flashParamRef.manId == 0x00461f) ||
(flashParamRef.manId == 0x00471f)) {
/* Check EPE Bit (ADCM and SHOWER) */
if (((trbBuffer[i + 1] >> 5) & 0x01) == 1) {
/* Check here for flash group compatibility */
do {
- if (( flashParam.flashType == flashParamRef.flashType) ||
- ( flashParam.flashType == flashParamRef.compatibleType[j])) {
+ if ((flashParam.flashType == flashParamRef.flashType) ||
+ (flashParam.flashType == flashParamRef.compatibleType[j])) {
match = 1;
break;
}
break;
}
j++;
- } while (flashParamRef.compatibleManId[j] != 0x00);
+ } while (flashParamRef.compatibleManId[j] != 0xffffffff);
if (match == 0) {
fprintf(logFile,
fprintf(stderr, "Found %d Endpoint(s) of group %s\n",
counter, FlashTypeStr[flashParamRef.flashType]);
- return 0;
+ return counter;
}
static int readPage(uint16_t trb_address, uint32_t pageNumber,
if ((mode != PMODE_VERIFY) &&
((bytesWritten > 0) || (writeInfoPage == 1))) {
- if ((flashParamRef.manId == 0x01461f) ||
+ if ((flashParamRef.manId == 0x00461f) ||
(flashParamRef.manId == 0x00471f)) {
/* Enable writing */
if (sendCommand(trb_address, 0x06 << 24, 0) == -1) {
return -1;
}
- if ((flashParamRef.manId == 0x01461f) ||
+ if ((flashParamRef.manId == 0x00461f) ||
(flashParamRef.manId == 0x00471f)) {
/* Unprotect sector */
if (sendCommand(trb_address, 0x39 << 24 | (BLOCK_SIZE * block), 3)
}
}
- if ((flashParamRef.manId == 0x01461f) ||
+ if ((flashParamRef.manId == 0x00461f) ||
(flashParamRef.manId == 0x00471f)) {
/* Enable writing */
if (sendCommand(trb_address, 0x06 << 24, 0x00) == -1) {
char *imageFileName;
FILE *imageFile = NULL;
unsigned int page;
+ int status = 0;
if (argc - optind != 3) {
usage(basename(argv[0]));
}
}
- if (initTransfer(trb_address) == -1) {
+ status = initTransfer(trb_address);
+ if (status |= 1) {
fprintf(stderr, "InitTransfer failed, aborting\n");
exit(EXIT_FAILURE);
}