servers, firmware check message to init message, minor

This commit is contained in:
maliakal_d 2019-11-11 12:00:04 +01:00
parent 35556e96d1
commit bb26b993ea
15 changed files with 213 additions and 213 deletions

View File

@ -31,9 +31,9 @@ extern udpStruct udpDetails;
extern uint64_t udpFrameNumber; extern uint64_t udpFrameNumber;
extern uint32_t udpPacketNumber; extern uint32_t udpPacketNumber;
int firmware_compatibility = OK; int initError = OK;
int firmware_check_done = 0; int initCheckDone = 0;
char firmware_message[MAX_STR_LENGTH]; char initErrorMessage[MAX_STR_LENGTH];
#ifdef VIRTUAL #ifdef VIRTUAL
pthread_t pthread_virtual_tid; pthread_t pthread_virtual_tid;
@ -66,51 +66,51 @@ int naSamples = 1;
int ndSamples = 1; int ndSamples = 1;
int detPos[2] = {0, 0}; int detPos[2] = {0, 0};
int isFirmwareCheckDone() { int isInitCheckDone() {
return firmware_check_done; return initCheckDone;
} }
int getFirmwareCheckResult(char** mess) { int getInitResult(char** mess) {
*mess = firmware_message; *mess = initErrorMessage;
return firmware_compatibility; return initError;
} }
void basictests() { void basictests() {
firmware_compatibility = OK; initError = OK;
firmware_check_done = 0; initCheckDone = 0;
memset(firmware_message, 0, MAX_STR_LENGTH); memset(initErrorMessage, 0, MAX_STR_LENGTH);
#ifdef VIRTUAL #ifdef VIRTUAL
FILE_LOG(logINFOBLUE, ("******** Chip Test Board Virtual Server *****************\n")); FILE_LOG(logINFOBLUE, ("******** Chip Test Board Virtual Server *****************\n"));
if (mapCSP0() == FAIL) { if (mapCSP0() == FAIL) {
strcpy(firmware_message, strcpy(initErrorMessage,
"Could not map to memory. Dangerous to continue.\n"); "Could not map to memory. Dangerous to continue.\n");
FILE_LOG(logERROR, (firmware_message)); FILE_LOG(logERROR, (initErrorMessage));
firmware_compatibility = FAIL; initError = FAIL;
firmware_check_done = 1; initCheckDone = 1;
return; return;
} }
firmware_check_done = 1; initCheckDone = 1;
return; return;
#else #else
defineGPIOpins(); defineGPIOpins();
resetFPGA(); resetFPGA();
if (mapCSP0() == FAIL) { if (mapCSP0() == FAIL) {
strcpy(firmware_message, strcpy(initErrorMessage,
"Could not map to memory. Dangerous to continue.\n"); "Could not map to memory. Dangerous to continue.\n");
FILE_LOG(logERROR, ("%s\n\n", firmware_message)); FILE_LOG(logERROR, ("%s\n\n", initErrorMessage));
firmware_compatibility = FAIL; initError = FAIL;
firmware_check_done = 1; initCheckDone = 1;
return; return;
} }
// does check only if flag is 0 (by default), set by command line // does check only if flag is 0 (by default), set by command line
if ((!debugflag) && ((checkType() == FAIL) || (testFpga() == FAIL) || (testBus() == FAIL))) { if ((!debugflag) && ((checkType() == FAIL) || (testFpga() == FAIL) || (testBus() == FAIL))) {
strcpy(firmware_message, strcpy(initErrorMessage,
"Could not pass basic tests of FPGA and bus. Dangerous to continue.\n"); "Could not pass basic tests of FPGA and bus. Dangerous to continue.\n");
FILE_LOG(logERROR, ("%s\n\n", firmware_message)); FILE_LOG(logERROR, ("%s\n\n", initErrorMessage));
firmware_compatibility = FAIL; initError = FAIL;
firmware_check_done = 1; initCheckDone = 1;
return; return;
} }
@ -151,7 +151,7 @@ void basictests() {
// return if flag is not zero, debug mode // return if flag is not zero, debug mode
if (debugflag) { if (debugflag) {
firmware_check_done = 1; initCheckDone = 1;
return; return;
} }
@ -159,41 +159,41 @@ void basictests() {
//cant read versions //cant read versions
FILE_LOG(logINFO, ("Testing Firmware-software compatibility:\n")); FILE_LOG(logINFO, ("Testing Firmware-software compatibility:\n"));
if(!fwversion || !sw_fw_apiversion){ if(!fwversion || !sw_fw_apiversion){
strcpy(firmware_message, strcpy(initErrorMessage,
"Cant read versions from FPGA. Please update firmware.\n"); "Cant read versions from FPGA. Please update firmware.\n");
FILE_LOG(logERROR, (firmware_message)); FILE_LOG(logERROR, (initErrorMessage));
firmware_compatibility = FAIL; initError = FAIL;
firmware_check_done = 1; initCheckDone = 1;
return; return;
} }
//check for API compatibility - old server //check for API compatibility - old server
if(sw_fw_apiversion > REQRD_FRMWR_VRSN){ if(sw_fw_apiversion > REQRD_FRMWR_VRSN){
sprintf(firmware_message, sprintf(initErrorMessage,
"This detector software software version (0x%llx) is incompatible.\n" "This detector software software version (0x%llx) is incompatible.\n"
"Please update detector software (min. 0x%llx) to be compatible with this firmware.\n", "Please update detector software (min. 0x%llx) to be compatible with this firmware.\n",
(long long int)sw_fw_apiversion, (long long int)sw_fw_apiversion,
(long long int)REQRD_FRMWR_VRSN); (long long int)REQRD_FRMWR_VRSN);
FILE_LOG(logERROR, (firmware_message)); FILE_LOG(logERROR, (initErrorMessage));
firmware_compatibility = FAIL; initError = FAIL;
firmware_check_done = 1; initCheckDone = 1;
return; return;
} }
//check for firmware compatibility - old firmware //check for firmware compatibility - old firmware
if( REQRD_FRMWR_VRSN > fwversion) { if( REQRD_FRMWR_VRSN > fwversion) {
sprintf(firmware_message, sprintf(initErrorMessage,
"This firmware version (0x%llx) is incompatible.\n" "This firmware version (0x%llx) is incompatible.\n"
"Please update firmware (min. 0x%llx) to be compatible with this server.\n", "Please update firmware (min. 0x%llx) to be compatible with this server.\n",
(long long int)fwversion, (long long int)fwversion,
(long long int)REQRD_FRMWR_VRSN); (long long int)REQRD_FRMWR_VRSN);
FILE_LOG(logERROR, (firmware_message)); FILE_LOG(logERROR, (initErrorMessage));
firmware_compatibility = FAIL; initError = FAIL;
firmware_check_done = 1; initCheckDone = 1;
return; return;
} }
FILE_LOG(logINFO, ("\tCompatibility - success\n")); FILE_LOG(logINFO, ("\tCompatibility - success\n"));
firmware_check_done = 1; initCheckDone = 1;
#endif #endif
} }

View File

@ -25,9 +25,9 @@ extern int isControlServer;
extern void getMacAddressinString(char* cmac, int size, uint64_t mac); extern void getMacAddressinString(char* cmac, int size, uint64_t mac);
extern void getIpAddressinString(char* cip, uint32_t ip); extern void getIpAddressinString(char* cip, uint32_t ip);
int firmware_compatibility = OK; int initError = OK;
int firmware_check_done = 0; int initCheckDone = 0;
char firmware_message[MAX_STR_LENGTH]; char initErrorMessage[MAX_STR_LENGTH];
const char* dac_names[16] = {"SvP","Vtr","Vrf","Vrs","SvN","Vtgstv","Vcmp_ll","Vcmp_lr","cal","Vcmp_rl","rxb_rb","rxb_lb","Vcmp_rr","Vcp","Vcn","Vis"}; const char* dac_names[16] = {"SvP","Vtr","Vrf","Vrs","SvN","Vtgstv","Vcmp_ll","Vcmp_lr","cal","Vcmp_rl","rxb_rb","rxb_lb","Vcmp_rr","Vcp","Vcn","Vis"};
@ -92,19 +92,19 @@ int eiger_virtual_detPos[2] = {0, 0};
int isFirmwareCheckDone() { int isInitCheckDone() {
return firmware_check_done; return initCheckDone;
} }
int getFirmwareCheckResult(char** mess) { int getInitResult(char** mess) {
*mess = firmware_message; *mess = initErrorMessage;
return firmware_compatibility; return initError;
} }
void basictests() { void basictests() {
firmware_compatibility = OK; initError = OK;
firmware_check_done = 0; initCheckDone = 0;
memset(firmware_message, 0, MAX_STR_LENGTH); memset(initErrorMessage, 0, MAX_STR_LENGTH);
#ifdef VIRTUAL #ifdef VIRTUAL
FILE_LOG(logINFOBLUE, ("************ EIGER Virtual Server *****************\n\n")); FILE_LOG(logINFOBLUE, ("************ EIGER Virtual Server *****************\n\n"));
#endif #endif
@ -139,49 +139,49 @@ void basictests() {
udpDetails.srcmac = macadd; udpDetails.srcmac = macadd;
#ifdef VIRTUAL #ifdef VIRTUAL
firmware_check_done = 1; initCheckDone = 1;
return; return;
#endif #endif
// return if debugflag is not zero, debug mode // return if debugflag is not zero, debug mode
if (debugflag) { if (debugflag) {
firmware_check_done = 1; initCheckDone = 1;
return; return;
} }
//cant read versions //cant read versions
if (!fwversion || !sw_fw_apiversion) { if (!fwversion || !sw_fw_apiversion) {
strcpy(firmware_message, "Cant read versions from FPGA. Please update firmware.\n"); strcpy(initErrorMessage, "Cant read versions from FPGA. Please update firmware.\n");
FILE_LOG(logERROR, (firmware_message)); FILE_LOG(logERROR, (initErrorMessage));
firmware_compatibility = FAIL; initError = FAIL;
firmware_check_done = 1; initCheckDone = 1;
return; return;
} }
//check for API compatibility - old server //check for API compatibility - old server
if (sw_fw_apiversion > REQUIRED_FIRMWARE_VERSION) { if (sw_fw_apiversion > REQUIRED_FIRMWARE_VERSION) {
sprintf(firmware_message, "This detector software software version (%lld) is incompatible.\n" sprintf(initErrorMessage, "This detector software software version (%lld) is incompatible.\n"
"Please update detector software (min. %lld) to be compatible with this firmware.\n", "Please update detector software (min. %lld) to be compatible with this firmware.\n",
(long long int)sw_fw_apiversion, (long long int)sw_fw_apiversion,
(long long int)REQUIRED_FIRMWARE_VERSION); (long long int)REQUIRED_FIRMWARE_VERSION);
FILE_LOG(logERROR, (firmware_message)); FILE_LOG(logERROR, (initErrorMessage));
firmware_compatibility = FAIL; initError = FAIL;
firmware_check_done = 1; initCheckDone = 1;
return; return;
} }
//check for firmware compatibility - old firmware //check for firmware compatibility - old firmware
if ( REQUIRED_FIRMWARE_VERSION > fwversion) { if ( REQUIRED_FIRMWARE_VERSION > fwversion) {
sprintf(firmware_message, "This firmware version (%lld) is incompatible.\n" sprintf(initErrorMessage, "This firmware version (%lld) is incompatible.\n"
"Please update firmware (min. %lld) to be compatible with this server.\n", "Please update firmware (min. %lld) to be compatible with this server.\n",
(long long int)fwversion, (long long int)fwversion,
(long long int)REQUIRED_FIRMWARE_VERSION); (long long int)REQUIRED_FIRMWARE_VERSION);
FILE_LOG(logERROR, (firmware_message)); FILE_LOG(logERROR, (initErrorMessage));
firmware_compatibility = FAIL; initError = FAIL;
firmware_check_done = 1; initCheckDone = 1;
return; return;
} }
FILE_LOG(logINFO, ("Compatibility - success\n")); FILE_LOG(logINFO, ("Compatibility - success\n"));
firmware_check_done = 1; initCheckDone = 1;
} }

View File

@ -24,9 +24,9 @@
extern int debugflag; extern int debugflag;
extern udpStruct udpDetails; extern udpStruct udpDetails;
int firmware_compatibility = OK; int initError = OK;
int firmware_check_done = 0; int initCheckDone = 0;
char firmware_message[MAX_STR_LENGTH]; char initErrorMessage[MAX_STR_LENGTH];
#ifdef VIRTUAL #ifdef VIRTUAL
pthread_t pthread_virtual_tid; pthread_t pthread_virtual_tid;
@ -41,47 +41,47 @@ int dacValues[NDAC] = {0};
int onChipdacValues[ONCHIP_NDAC][NCHIP + 1] = {0}; int onChipdacValues[ONCHIP_NDAC][NCHIP + 1] = {0};
int detPos[2] = {0, 0}; int detPos[2] = {0, 0};
int isFirmwareCheckDone() { int isInitCheckDone() {
return firmware_check_done; return initCheckDone;
} }
int getFirmwareCheckResult(char** mess) { int getInitResult(char** mess) {
*mess = firmware_message; *mess = initErrorMessage;
return firmware_compatibility; return initError;
} }
void basictests() { void basictests() {
firmware_compatibility = OK; initError = OK;
firmware_check_done = 0; initCheckDone = 0;
memset(firmware_message, 0, MAX_STR_LENGTH); memset(initErrorMessage, 0, MAX_STR_LENGTH);
#ifdef VIRTUAL #ifdef VIRTUAL
FILE_LOG(logINFOBLUE, ("******** Gotthard2 Virtual Server *****************\n")); FILE_LOG(logINFOBLUE, ("******** Gotthard2 Virtual Server *****************\n"));
if (mapCSP0() == FAIL) { if (mapCSP0() == FAIL) {
strcpy(firmware_message, strcpy(initErrorMessage,
"Could not map to memory. Dangerous to continue.\n"); "Could not map to memory. Dangerous to continue.\n");
FILE_LOG(logERROR, (firmware_message)); FILE_LOG(logERROR, (initErrorMessage));
firmware_compatibility = FAIL; initError = FAIL;
firmware_check_done = 1; initCheckDone = 1;
return; return;
} }
firmware_check_done = 1; initCheckDone = 1;
return; return;
#else #else
if (mapCSP0() == FAIL) { if (mapCSP0() == FAIL) {
strcpy(firmware_message, strcpy(initErrorMessage,
"Could not map to memory. Dangerous to continue.\n"); "Could not map to memory. Dangerous to continue.\n");
FILE_LOG(logERROR, ("%s\n\n", firmware_message)); FILE_LOG(logERROR, ("%s\n\n", initErrorMessage));
firmware_compatibility = FAIL; initError = FAIL;
firmware_check_done = 1; initCheckDone = 1;
return; return;
} }
// does check only if flag is 0 (by default), set by command line // does check only if flag is 0 (by default), set by command line
if ((!debugflag) && ((testFpga() == FAIL) || (testBus() == FAIL))) { if ((!debugflag) && ((testFpga() == FAIL) || (testBus() == FAIL))) {
sprintf(firmware_message, sprintf(initErrorMessage,
"Could not pass basic tests of FPGA and bus. Dangerous to continue. (Firmware version:0x%llx) \n", getFirmwareVersion()); "Could not pass basic tests of FPGA and bus. Dangerous to continue. (Firmware version:0x%llx) \n", getFirmwareVersion());
FILE_LOG(logERROR, ("%s\n\n", firmware_message)); FILE_LOG(logERROR, ("%s\n\n", initErrorMessage));
firmware_compatibility = FAIL; initError = FAIL;
firmware_check_done = 1; initCheckDone = 1;
return; return;
} }
@ -118,48 +118,48 @@ void basictests() {
// return if flag is not zero, debug mode // return if flag is not zero, debug mode
if (debugflag) { if (debugflag) {
firmware_check_done = 1; initCheckDone = 1;
return; return;
} }
//cant read versions //cant read versions
FILE_LOG(logINFO, ("Testing Firmware-software compatibility:\n")); FILE_LOG(logINFO, ("Testing Firmware-software compatibility:\n"));
if(!fwversion || !sw_fw_apiversion){ if(!fwversion || !sw_fw_apiversion){
strcpy(firmware_message, strcpy(initErrorMessage,
"Cant read versions from FPGA. Please update firmware.\n"); "Cant read versions from FPGA. Please update firmware.\n");
FILE_LOG(logERROR, (firmware_message)); FILE_LOG(logERROR, (initErrorMessage));
firmware_compatibility = FAIL; initError = FAIL;
firmware_check_done = 1; initCheckDone = 1;
return; return;
} }
//check for API compatibility - old server //check for API compatibility - old server
if(sw_fw_apiversion > requiredFirmwareVersion){ if(sw_fw_apiversion > requiredFirmwareVersion){
sprintf(firmware_message, sprintf(initErrorMessage,
"This detector software software version (0x%llx) is incompatible.\n" "This detector software software version (0x%llx) is incompatible.\n"
"Please update detector software (min. 0x%llx) to be compatible with this firmware.\n", "Please update detector software (min. 0x%llx) to be compatible with this firmware.\n",
(long long int)sw_fw_apiversion, (long long int)sw_fw_apiversion,
(long long int)requiredFirmwareVersion); (long long int)requiredFirmwareVersion);
FILE_LOG(logERROR, (firmware_message)); FILE_LOG(logERROR, (initErrorMessage));
firmware_compatibility = FAIL; initError = FAIL;
firmware_check_done = 1; initCheckDone = 1;
return; return;
} }
//check for firmware compatibility - old firmware //check for firmware compatibility - old firmware
if( requiredFirmwareVersion > fwversion) { if( requiredFirmwareVersion > fwversion) {
sprintf(firmware_message, sprintf(initErrorMessage,
"This firmware version (0x%llx) is incompatible.\n" "This firmware version (0x%llx) is incompatible.\n"
"Please update firmware (min. 0x%llx) to be compatible with this server.\n", "Please update firmware (min. 0x%llx) to be compatible with this server.\n",
(long long int)fwversion, (long long int)fwversion,
(long long int)requiredFirmwareVersion); (long long int)requiredFirmwareVersion);
FILE_LOG(logERROR, (firmware_message)); FILE_LOG(logERROR, (initErrorMessage));
firmware_compatibility = FAIL; initError = FAIL;
firmware_check_done = 1; initCheckDone = 1;
return; return;
} }
FILE_LOG(logINFO, ("Compatibility - success\n")); FILE_LOG(logINFO, ("Compatibility - success\n"));
firmware_check_done = 1; initCheckDone = 1;
#endif #endif
} }

View File

@ -20,9 +20,9 @@ extern udpStruct udpDetails;
// Variables that will be exported // Variables that will be exported
int phaseShift = DEFAULT_PHASE_SHIFT; int phaseShift = DEFAULT_PHASE_SHIFT;
int firmware_compatibility = OK; int initError = OK;
int firmware_check_done = 0; int initCheckDone = 0;
char firmware_message[MAX_STR_LENGTH]; char initErrorMessage[MAX_STR_LENGTH];
#ifdef VIRTUAL #ifdef VIRTUAL
pthread_t pthread_virtual_tid; pthread_t pthread_virtual_tid;
@ -53,48 +53,48 @@ int slaveadcphase = 0;
int rsttosw1delay = 2; int rsttosw1delay = 2;
int startacqdelay = 1; int startacqdelay = 1;
int isFirmwareCheckDone() { int isInitCheckDone() {
return firmware_check_done; return initCheckDone;
} }
int getFirmwareCheckResult(char** mess) { int getInitResult(char** mess) {
*mess = firmware_message; *mess = initErrorMessage;
return firmware_compatibility; return initError;
} }
void basictests() { void basictests() {
firmware_compatibility = OK; initError = OK;
firmware_check_done = 0; initCheckDone = 0;
memset(firmware_message, 0, MAX_STR_LENGTH); memset(initErrorMessage, 0, MAX_STR_LENGTH);
#ifdef VIRTUAL #ifdef VIRTUAL
FILE_LOG(logINFOBLUE, ("******** Gotthard Virtual Server *****************\n")); FILE_LOG(logINFOBLUE, ("******** Gotthard Virtual Server *****************\n"));
if (mapCSP0() == FAIL) { if (mapCSP0() == FAIL) {
strcpy(firmware_message, strcpy(initErrorMessage,
"Could not map to memory. Dangerous to continue.\n"); "Could not map to memory. Dangerous to continue.\n");
FILE_LOG(logERROR, (firmware_message)); FILE_LOG(logERROR, (initErrorMessage));
firmware_compatibility = FAIL; initError = FAIL;
firmware_check_done = 1; initCheckDone = 1;
return; return;
} }
firmware_check_done = 1; initCheckDone = 1;
return; return;
#else #else
if (mapCSP0() == FAIL) { if (mapCSP0() == FAIL) {
strcpy(firmware_message, strcpy(initErrorMessage,
"Could not map to memory. Dangerous to continue.\n"); "Could not map to memory. Dangerous to continue.\n");
FILE_LOG(logERROR, ("%s\n\n", firmware_message)); FILE_LOG(logERROR, ("%s\n\n", initErrorMessage));
firmware_compatibility = FAIL; initError = FAIL;
firmware_check_done = 1; initCheckDone = 1;
return; return;
} }
// does check only if flag is 0 (by default), set by command line // does check only if flag is 0 (by default), set by command line
if (((checkType() == FAIL) || (testFpga() == FAIL) || (testBus() == FAIL))) { if (((checkType() == FAIL) || (testFpga() == FAIL) || (testBus() == FAIL))) {
strcpy(firmware_message, strcpy(initErrorMessage,
"Could not pass basic tests of FPGA and bus. Dangerous to continue.\n"); "Could not pass basic tests of FPGA and bus. Dangerous to continue.\n");
FILE_LOG(logERROR, ("%s\n\n", firmware_message)); FILE_LOG(logERROR, ("%s\n\n", initErrorMessage));
firmware_compatibility = FAIL; initError = FAIL;
firmware_check_done = 1; initCheckDone = 1;
return; return;
} }
@ -126,7 +126,7 @@ void basictests() {
)); ));
FILE_LOG(logINFO, ("Basic Tests - success\n")); FILE_LOG(logINFO, ("Basic Tests - success\n"));
firmware_check_done = 1; initCheckDone = 1;
#endif #endif
} }

View File

@ -25,9 +25,9 @@
extern int debugflag; extern int debugflag;
extern udpStruct udpDetails; extern udpStruct udpDetails;
int firmware_compatibility = OK; int initError = OK;
int firmware_check_done = 0; int initCheckDone = 0;
char firmware_message[MAX_STR_LENGTH]; char initErrorMessage[MAX_STR_LENGTH];
#ifdef VIRTUAL #ifdef VIRTUAL
pthread_t pthread_virtual_tid; pthread_t pthread_virtual_tid;
@ -43,51 +43,51 @@ int detPos[4] = {0, 0, 0, 0};
int numUDPInterfaces = 1; int numUDPInterfaces = 1;
int isFirmwareCheckDone() { int isInitCheckDone() {
return firmware_check_done; return initCheckDone;
} }
int getFirmwareCheckResult(char** mess) { int getInitResult(char** mess) {
*mess = firmware_message; *mess = initErrorMessage;
return firmware_compatibility; return initError;
} }
void basictests() { void basictests() {
firmware_compatibility = OK; initError = OK;
firmware_check_done = 0; initCheckDone = 0;
memset(firmware_message, 0, MAX_STR_LENGTH); memset(initErrorMessage, 0, MAX_STR_LENGTH);
#ifdef VIRTUAL #ifdef VIRTUAL
FILE_LOG(logINFOBLUE, ("******** Jungfrau Virtual Server *****************\n")); FILE_LOG(logINFOBLUE, ("******** Jungfrau Virtual Server *****************\n"));
if (mapCSP0() == FAIL) { if (mapCSP0() == FAIL) {
strcpy(firmware_message, strcpy(initErrorMessage,
"Could not map to memory. Dangerous to continue.\n"); "Could not map to memory. Dangerous to continue.\n");
FILE_LOG(logERROR, (firmware_message)); FILE_LOG(logERROR, (initErrorMessage));
firmware_compatibility = FAIL; initError = FAIL;
firmware_check_done = 1; initCheckDone = 1;
return; return;
} }
firmware_check_done = 1; initCheckDone = 1;
return; return;
#else #else
defineGPIOpins(); defineGPIOpins();
resetFPGA(); resetFPGA();
if (mapCSP0() == FAIL) { if (mapCSP0() == FAIL) {
strcpy(firmware_message, strcpy(initErrorMessage,
"Could not map to memory. Dangerous to continue.\n"); "Could not map to memory. Dangerous to continue.\n");
FILE_LOG(logERROR, ("%s\n\n", firmware_message)); FILE_LOG(logERROR, ("%s\n\n", initErrorMessage));
firmware_compatibility = FAIL; initError = FAIL;
firmware_check_done = 1; initCheckDone = 1;
return; return;
} }
// does check only if flag is 0 (by default), set by command line // does check only if flag is 0 (by default), set by command line
if ((!debugflag) && ((checkType() == FAIL) || (testFpga() == FAIL) || (testBus() == FAIL))) { if ((!debugflag) && ((checkType() == FAIL) || (testFpga() == FAIL) || (testBus() == FAIL))) {
strcpy(firmware_message, strcpy(initErrorMessage,
"Could not pass basic tests of FPGA and bus. Dangerous to continue.\n"); "Could not pass basic tests of FPGA and bus. Dangerous to continue.\n");
FILE_LOG(logERROR, ("%s\n\n", firmware_message)); FILE_LOG(logERROR, ("%s\n\n", initErrorMessage));
firmware_compatibility = FAIL; initError = FAIL;
firmware_check_done = 1; initCheckDone = 1;
return; return;
} }
@ -129,7 +129,7 @@ void basictests() {
// return if flag is not zero, debug mode // return if flag is not zero, debug mode
if (debugflag) { if (debugflag) {
firmware_check_done = 1; initCheckDone = 1;
return; return;
} }
@ -137,41 +137,41 @@ void basictests() {
//cant read versions //cant read versions
FILE_LOG(logINFO, ("Testing Firmware-software compatibility:\n")); FILE_LOG(logINFO, ("Testing Firmware-software compatibility:\n"));
if(!fwversion || !sw_fw_apiversion){ if(!fwversion || !sw_fw_apiversion){
strcpy(firmware_message, strcpy(initErrorMessage,
"Cant read versions from FPGA. Please update firmware.\n"); "Cant read versions from FPGA. Please update firmware.\n");
FILE_LOG(logERROR, (firmware_message)); FILE_LOG(logERROR, (initErrorMessage));
firmware_compatibility = FAIL; initError = FAIL;
firmware_check_done = 1; initCheckDone = 1;
return; return;
} }
//check for API compatibility - old server //check for API compatibility - old server
if(sw_fw_apiversion > requiredFirmwareVersion){ if(sw_fw_apiversion > requiredFirmwareVersion){
sprintf(firmware_message, sprintf(initErrorMessage,
"This detector software software version (0x%llx) is incompatible.\n" "This detector software software version (0x%llx) is incompatible.\n"
"Please update detector software (min. 0x%llx) to be compatible with this firmware.\n", "Please update detector software (min. 0x%llx) to be compatible with this firmware.\n",
(long long int)sw_fw_apiversion, (long long int)sw_fw_apiversion,
(long long int)requiredFirmwareVersion); (long long int)requiredFirmwareVersion);
FILE_LOG(logERROR, (firmware_message)); FILE_LOG(logERROR, (initErrorMessage));
firmware_compatibility = FAIL; initError = FAIL;
firmware_check_done = 1; initCheckDone = 1;
return; return;
} }
//check for firmware compatibility - old firmware //check for firmware compatibility - old firmware
if( requiredFirmwareVersion > fwversion) { if( requiredFirmwareVersion > fwversion) {
sprintf(firmware_message, sprintf(initErrorMessage,
"This firmware version (0x%llx) is incompatible.\n" "This firmware version (0x%llx) is incompatible.\n"
"Please update firmware (min. 0x%llx) to be compatible with this server.\n", "Please update firmware (min. 0x%llx) to be compatible with this server.\n",
(long long int)fwversion, (long long int)fwversion,
(long long int)requiredFirmwareVersion); (long long int)requiredFirmwareVersion);
FILE_LOG(logERROR, (firmware_message)); FILE_LOG(logERROR, (initErrorMessage));
firmware_compatibility = FAIL; initError = FAIL;
firmware_check_done = 1; initCheckDone = 1;
return; return;
} }
FILE_LOG(logINFO, ("Compatibility - success\n")); FILE_LOG(logINFO, ("Compatibility - success\n"));
firmware_check_done = 1; initCheckDone = 1;
#endif #endif
} }

View File

@ -23,9 +23,9 @@
extern int debugflag; extern int debugflag;
extern udpStruct udpDetails; extern udpStruct udpDetails;
int firmware_compatibility = OK; int initError = OK;
int firmware_check_done = 0; int initCheckDone = 0;
char firmware_message[MAX_STR_LENGTH]; char initErrorMessage[MAX_STR_LENGTH];
#ifdef VIRTUAL #ifdef VIRTUAL
pthread_t pthread_virtual_tid; pthread_t pthread_virtual_tid;
@ -40,48 +40,48 @@ int highvoltage = 0;
int dacValues[NDAC] = {0}; int dacValues[NDAC] = {0};
int detPos[2] = {0, 0}; int detPos[2] = {0, 0};
int isFirmwareCheckDone() { int isInitCheckDone() {
return firmware_check_done; return initCheckDone;
} }
int getFirmwareCheckResult(char** mess) { int getInitResult(char** mess) {
*mess = firmware_message; *mess = initErrorMessage;
return firmware_compatibility; return initError;
} }
void basictests() { void basictests() {
firmware_compatibility = OK; initError = OK;
firmware_check_done = 0; initCheckDone = 0;
memset(firmware_message, 0, MAX_STR_LENGTH); memset(initErrorMessage, 0, MAX_STR_LENGTH);
#ifdef VIRTUAL #ifdef VIRTUAL
FILE_LOG(logINFOBLUE, ("******** Mythen3 Virtual Server *****************\n")); FILE_LOG(logINFOBLUE, ("******** Mythen3 Virtual Server *****************\n"));
if (mapCSP0() == FAIL) { if (mapCSP0() == FAIL) {
strcpy(firmware_message, strcpy(initErrorMessage,
"Could not map to memory. Dangerous to continue.\n"); "Could not map to memory. Dangerous to continue.\n");
FILE_LOG(logERROR, (firmware_message)); FILE_LOG(logERROR, (initErrorMessage));
firmware_compatibility = FAIL; initError = FAIL;
firmware_check_done = 1; initCheckDone = 1;
return; return;
} }
firmware_check_done = 1; initCheckDone = 1;
return; return;
#else #else
FILE_LOG(logINFOBLUE, ("******** Mythen3 Server: do the checks *****************\n")); FILE_LOG(logINFOBLUE, ("******** Mythen3 Server: do the checks *****************\n"));
if (mapCSP0() == FAIL) { if (mapCSP0() == FAIL) {
strcpy(firmware_message, strcpy(initErrorMessage,
"Could not map to memory. Dangerous to continue.\n"); "Could not map to memory. Dangerous to continue.\n");
FILE_LOG(logERROR, ("%s\n\n", firmware_message)); FILE_LOG(logERROR, ("%s\n\n", initErrorMessage));
firmware_compatibility = FAIL; initError = FAIL;
firmware_check_done = 1; initCheckDone = 1;
return; return;
} }
// does check only if flag is 0 (by default), set by command line // does check only if flag is 0 (by default), set by command line
if ((!debugflag) && ((testFpga() == FAIL)|| (testBus() == FAIL))) { if ((!debugflag) && ((testFpga() == FAIL)|| (testBus() == FAIL))) {
strcpy(firmware_message, strcpy(initErrorMessage,
"Could not pass basic tests of FPGA and bus. Dangerous to continue.\n"); "Could not pass basic tests of FPGA and bus. Dangerous to continue.\n");
FILE_LOG(logERROR, ("%s\n\n", firmware_message)); FILE_LOG(logERROR, ("%s\n\n", initErrorMessage));
firmware_compatibility = FAIL; initError = FAIL;
firmware_check_done = 1; initCheckDone = 1;
return; return;
} }
uint16_t hversion = getHardwareVersionNumber(); uint16_t hversion = getHardwareVersionNumber();
@ -120,7 +120,7 @@ void basictests() {
// return if flag is not zero, debug mode // return if flag is not zero, debug mode
if (debugflag) { if (debugflag) {
firmware_check_done = 1; initCheckDone = 1;
return; return;
} }
@ -128,41 +128,41 @@ void basictests() {
//cant read versions //cant read versions
FILE_LOG(logINFO, ("Testing Firmware-software compatibility:\n")); FILE_LOG(logINFO, ("Testing Firmware-software compatibility:\n"));
if(!fwversion || !sw_fw_apiversion){ if(!fwversion || !sw_fw_apiversion){
strcpy(firmware_message, strcpy(initErrorMessage,
"Cant read versions from FPGA. Please update firmware.\n"); "Cant read versions from FPGA. Please update firmware.\n");
FILE_LOG(logERROR, (firmware_message)); FILE_LOG(logERROR, (initErrorMessage));
firmware_compatibility = FAIL; initError = FAIL;
firmware_check_done = 1; initCheckDone = 1;
return; return;
} }
//check for API compatibility - old server //check for API compatibility - old server
if(sw_fw_apiversion > requiredFirmwareVersion){ if(sw_fw_apiversion > requiredFirmwareVersion){
sprintf(firmware_message, sprintf(initErrorMessage,
"This detector software software version (0x%llx) is incompatible.\n" "This detector software software version (0x%llx) is incompatible.\n"
"Please update detector software (min. 0x%llx) to be compatible with this firmware.\n", "Please update detector software (min. 0x%llx) to be compatible with this firmware.\n",
(long long int)sw_fw_apiversion, (long long int)sw_fw_apiversion,
(long long int)requiredFirmwareVersion); (long long int)requiredFirmwareVersion);
FILE_LOG(logERROR, (firmware_message)); FILE_LOG(logERROR, (initErrorMessage));
firmware_compatibility = FAIL; initError = FAIL;
firmware_check_done = 1; initCheckDone = 1;
return; return;
} }
//check for firmware compatibility - old firmware //check for firmware compatibility - old firmware
if( requiredFirmwareVersion > fwversion) { if( requiredFirmwareVersion > fwversion) {
sprintf(firmware_message, sprintf(initErrorMessage,
"This firmware version (0x%llx) is incompatible.\n" "This firmware version (0x%llx) is incompatible.\n"
"Please update firmware (min. 0x%llx) to be compatible with this server.\n", "Please update firmware (min. 0x%llx) to be compatible with this server.\n",
(long long int)fwversion, (long long int)fwversion,
(long long int)requiredFirmwareVersion); (long long int)requiredFirmwareVersion);
FILE_LOG(logERROR, (firmware_message)); FILE_LOG(logERROR, (initErrorMessage));
firmware_compatibility = FAIL; initError = FAIL;
firmware_check_done = 1; initCheckDone = 1;
return; return;
} }
FILE_LOG(logINFO, ("Compatibility - success\n")); FILE_LOG(logINFO, ("Compatibility - success\n"));
firmware_check_done = 1; initCheckDone = 1;
#endif #endif
} }

View File

@ -31,8 +31,8 @@ typedef struct udpStruct_s {
// basic tests // basic tests
int isFirmwareCheckDone(); int isInitCheckDone();
int getFirmwareCheckResult(char** mess); int getInitResult(char** mess);
void basictests(); void basictests();
#if defined(GOTTHARDD) || defined(JUNGFRAUD) || defined(CHIPTESTBOARDD) || defined(MOENCHD) || defined(MYTHEN3D) || defined(GOTTHARD2D) #if defined(GOTTHARDD) || defined(JUNGFRAUD) || defined(CHIPTESTBOARDD) || defined(MOENCHD) || defined(MYTHEN3D) || defined(GOTTHARD2D)
int checkType(); int checkType();

View File

@ -3991,9 +3991,9 @@ int check_version(int file_des) {
FILE_LOG(logDEBUG1, ("Checking software-firmware compatibility and basic test result\n")); FILE_LOG(logDEBUG1, ("Checking software-firmware compatibility and basic test result\n"));
// check if firmware check is done // check if firmware check is done
if (!isFirmwareCheckDone()) { if (!isInitCheckDone()) {
usleep(3 * 1000 * 1000); usleep(3 * 1000 * 1000);
if (!isFirmwareCheckDone()) { if (!isInitCheckDone()) {
ret = FAIL; ret = FAIL;
strcpy(mess,"Firmware Software Compatibility Check (Server Initialization) " strcpy(mess,"Firmware Software Compatibility Check (Server Initialization) "
"still not done done in server. Unexpected.\n"); "still not done done in server. Unexpected.\n");
@ -4003,7 +4003,7 @@ int check_version(int file_des) {
// check firmware check result // check firmware check result
if (ret == OK) { if (ret == OK) {
char* firmware_message = NULL; char* firmware_message = NULL;
if (getFirmwareCheckResult(&firmware_message) == FAIL) { if (getInitResult(&firmware_message) == FAIL) {
ret = FAIL; ret = FAIL;
strcpy(mess, firmware_message); strcpy(mess, firmware_message);
FILE_LOG(logERROR,(mess)); FILE_LOG(logERROR,(mess));

View File

@ -4,9 +4,9 @@
#define APIRECEIVER 0x190722 #define APIRECEIVER 0x190722
#define APIGUI 0x190723 #define APIGUI 0x190723
#define APIMOENCH 0x190820 #define APIMOENCH 0x190820
#define APIGOTTHARD 0x191106 #define APICTB 0x191111
#define APICTB 0x191106 #define APIGOTTHARD 0x191111
#define APIJUNGFRAU 0x191106 #define APIGOTTHARD2 0x191111
#define APIEIGER 0x191106
#define APIGOTTHARD2 0x191108
#define APIMYTHEN3 0x191111 #define APIMYTHEN3 0x191111
#define APIJUNGFRAU 0x191111
#define APIEIGER 0x191111