From: hadaq Date: Tue, 11 Oct 2011 14:35:40 +0000 (+0000) Subject: bugfixes X-Git-Tag: v6.0~124 X-Git-Url: https://jspc29.x-matter.uni-frankfurt.de/git/?a=commitdiff_plain;h=38c16eefad9a1e0d070d2de43065f06b6d335e62;p=trbnettools.git bugfixes --- diff --git a/libtrbnet/trbflash.c b/libtrbnet/trbflash.c index c52eddb..85bf849 100644 --- a/libtrbnet/trbflash.c +++ b/libtrbnet/trbflash.c @@ -114,11 +114,10 @@ typedef struct { 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; @@ -157,12 +156,11 @@ static int setFlashParam(FlashParam* flashParam, uint16_t hardwareId) 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'; } @@ -173,7 +171,6 @@ static int setFlashParam(FlashParam* flashParam, uint16_t hardwareId) flashParam->manId = 0x00461f; strcpy(flashParam->allowedStringId[0], "adcmv1"); flashParam->numPages = 8192; - flashParam->sectorProtect = 1; break; case 0x3200: @@ -181,7 +178,6 @@ static int setFlashParam(FlashParam* flashParam, uint16_t hardwareId) flashParam->manId = 0x00471f; strcpy(flashParam->allowedStringId[0], "adcmv2"); flashParam->numPages = 16384; - flashParam->sectorProtect = 1; break; case 0x3300: @@ -190,7 +186,6 @@ static int setFlashParam(FlashParam* flashParam, uint16_t hardwareId) flashParam->manId = 0x00471f; strcpy(flashParam->allowedStringId[0], "adcmv3"); flashParam->numPages = 16384; - flashParam->sectorProtect = 1; break; /* MDC HUB */ @@ -199,7 +194,6 @@ static int setFlashParam(FlashParam* flashParam, uint16_t hardwareId) flashParam->manId = 0x1520c2; strcpy(flashParam->allowedStringId[0], "mdchub_fpga1234"); flashParam->numPages = 8192; - flashParam->sectorProtect = 1; break; case 0x1250: @@ -207,7 +201,6 @@ static int setFlashParam(FlashParam* flashParam, uint16_t hardwareId) flashParam->manId = 0x1520c2; strcpy(flashParam->allowedStringId[0], "mdchub_fpga5"); flashParam->numPages = 8192; - flashParam->sectorProtect = 1; break; /* MDC OEP */ @@ -216,7 +209,6 @@ static int setFlashParam(FlashParam* flashParam, uint16_t hardwareId) flashParam->manId = 0x1520c2; strcpy(flashParam->allowedStringId[0], "mdc_oepb"); flashParam->numPages = 8192; - flashParam->sectorProtect = 1; break; case 0x2300: @@ -225,7 +217,6 @@ static int setFlashParam(FlashParam* flashParam, uint16_t hardwareId) flashParam->manId = 0x1520c2; strcpy(flashParam->allowedStringId[0], "mdc_oepb"); flashParam->numPages = 8192; - flashParam->sectorProtect = 1; break; /* SHOWER */ @@ -234,7 +225,6 @@ static int setFlashParam(FlashParam* flashParam, uint16_t hardwareId) flashParam->manId = 0x1520c2; strcpy(flashParam->allowedStringId[0], "shower_fpga1"); flashParam->numPages = 8192; - flashParam->sectorProtect = 1; break; case 0x4220: @@ -242,7 +232,6 @@ static int setFlashParam(FlashParam* flashParam, uint16_t hardwareId) flashParam->manId = 0x1520c2; strcpy(flashParam->allowedStringId[0], "shower_fpga2"); flashParam->numPages = 8192; - flashParam->sectorProtect = 1; break; case 0x4230: @@ -250,7 +239,6 @@ static int setFlashParam(FlashParam* flashParam, uint16_t hardwareId) flashParam->manId = 0x1520c2; strcpy(flashParam->allowedStringId[0], "adcmv3"); flashParam->numPages = 8192; - flashParam->sectorProtect = 1; break; /* TRB3 */ @@ -260,7 +248,6 @@ static int setFlashParam(FlashParam* flashParam, uint16_t hardwareId) strcpy(flashParam->allowedStringId[0], "trb3_central"); strcpy(flashParam->allowedStringId[1], "trb3_fpga5"); flashParam->numPages = 32768; - flashParam->sectorProtect = 1; break; case 0x9100: @@ -272,7 +259,6 @@ static int setFlashParam(FlashParam* flashParam, uint16_t hardwareId) strcpy(flashParam->allowedStringId[3], "trb3_fpga3"); strcpy(flashParam->allowedStringId[4], "trb3_fpga4"); flashParam->numPages = 32768; - flashParam->sectorProtect = 1; break; case 0x9110: @@ -284,7 +270,6 @@ static int setFlashParam(FlashParam* flashParam, uint16_t hardwareId) strcpy(flashParam->allowedStringId[3], "trb3_fpga3"); strcpy(flashParam->allowedStringId[4], "trb3_fpga4"); flashParam->numPages = 32768; - flashParam->sectorProtect = 1; break; case 0x9120: @@ -296,7 +281,6 @@ static int setFlashParam(FlashParam* flashParam, uint16_t hardwareId) strcpy(flashParam->allowedStringId[3], "trb3_fpga3"); strcpy(flashParam->allowedStringId[4], "trb3_fpga4"); flashParam->numPages = 32768; - flashParam->sectorProtect = 1; break; case 0x9130: @@ -309,7 +293,6 @@ static int setFlashParam(FlashParam* flashParam, uint16_t hardwareId) strcpy(flashParam->allowedStringId[3], "trb3_fpga3"); strcpy(flashParam->allowedStringId[4], "trb3_fpga4"); flashParam->numPages = 32768; - flashParam->sectorProtect = 1; break; case 0x9140: @@ -321,7 +304,6 @@ static int setFlashParam(FlashParam* flashParam, uint16_t hardwareId) strcpy(flashParam->allowedStringId[3], "trb3_fpga3"); strcpy(flashParam->allowedStringId[4], "trb3_fpga4"); flashParam->numPages = 32768; - flashParam->sectorProtect = 1; break; default: @@ -468,7 +450,7 @@ static int checkStatus(uint16_t trb_address) 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) { @@ -560,8 +542,8 @@ static int initTransfer(uint16_t trb_address) /* 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; } @@ -606,7 +588,7 @@ static int initTransfer(uint16_t trb_address) break; } j++; - } while (flashParamRef.compatibleManId[j] != 0x00); + } while (flashParamRef.compatibleManId[j] != 0xffffffff); if (match == 0) { fprintf(logFile, @@ -630,7 +612,7 @@ static int initTransfer(uint16_t trb_address) 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, @@ -845,7 +827,7 @@ static int programImageBuffer(uint16_t trb_address, 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) { @@ -869,7 +851,7 @@ static int programImageBuffer(uint16_t trb_address, 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) @@ -933,7 +915,7 @@ static int programImageBuffer(uint16_t trb_address, } } - if ((flashParamRef.manId == 0x01461f) || + if ((flashParamRef.manId == 0x00461f) || (flashParamRef.manId == 0x00471f)) { /* Enable writing */ if (sendCommand(trb_address, 0x06 << 24, 0x00) == -1) { @@ -1444,6 +1426,7 @@ int main(int argc, char **argv) char *imageFileName; FILE *imageFile = NULL; unsigned int page; + int status = 0; if (argc - optind != 3) { usage(basename(argv[0])); @@ -1465,7 +1448,8 @@ int main(int argc, char **argv) } } - if (initTransfer(trb_address) == -1) { + status = initTransfer(trb_address); + if (status |= 1) { fprintf(stderr, "InitTransfer failed, aborting\n"); exit(EXIT_FAILURE); }