mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-12 21:07:13 +02:00
check firmware version and api version upon server startup
This commit is contained in:
@ -178,22 +178,10 @@ u_int32_t Beb_GetFirmwareRevision(){
|
||||
int fd = Beb_open(XPAR_VERSION,&baseaddr);
|
||||
if(fd < 0)
|
||||
cprintf(BG_RED,"Firmware Revision Read FAIL\n");
|
||||
|
||||
else{
|
||||
//read revision existing bit
|
||||
value = Beb_Read32(baseaddr, REVISION_EXISTING_OFFSET);
|
||||
//printf("Firmware Revision Read OK\n");
|
||||
//error reading
|
||||
if(!(value&REVISION_EXISTING_BIT)){
|
||||
value = Beb_Read32(baseaddr, FIRMWARE_VERSION_OFFSET);
|
||||
if(!value)
|
||||
cprintf(BG_RED,"Firmware Revision Number does not exist in this version\n");
|
||||
value = 0;
|
||||
}else{
|
||||
//read revision number
|
||||
value = Beb_Read32(baseaddr, 0);
|
||||
//printf("Firmware Revision Number Read OK\n");
|
||||
//printf("Rev: 0x%x.%x\n\n",value & REVISION_MASK,value & SUB_REVISION_MASK);
|
||||
value &= REVISION_MASK;
|
||||
}
|
||||
}
|
||||
|
||||
//close file pointer
|
||||
@ -204,6 +192,27 @@ u_int32_t Beb_GetFirmwareRevision(){
|
||||
}
|
||||
|
||||
|
||||
u_int32_t Beb_GetFirmwareSoftwareAPIVersion(){
|
||||
//mapping new memory
|
||||
u_int32_t baseaddr, value = 0;
|
||||
|
||||
//open file pointer
|
||||
int fd = Beb_open(XPAR_VERSION,&baseaddr);
|
||||
if(fd < 0)
|
||||
cprintf(BG_RED,"Firmware Revision Read FAIL\n");
|
||||
else{
|
||||
value = Beb_Read32(baseaddr, FIRMWARESOFTWARE_API_OFFSET);
|
||||
if(!value)
|
||||
cprintf(BG_RED,"Firmware Software API Version does not exist in this version\n");
|
||||
}
|
||||
|
||||
//close file pointer
|
||||
if(fd > 0)
|
||||
Beb_close(fd);
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
void Beb_ResetFrameNumber(){
|
||||
//mapping new memory to read master top module configuration
|
||||
u_int32_t baseaddr;
|
||||
|
@ -49,6 +49,7 @@ struct BebInfo{
|
||||
|
||||
void Beb_GetModuleCopnfiguration(int* master, int* top);
|
||||
u_int32_t Beb_GetFirmwareRevision();
|
||||
u_int32_t Beb_GetFirmwareSoftwareAPIVersion();
|
||||
void Beb_ResetFrameNumber();
|
||||
|
||||
int Beb_WriteTo(unsigned int index);
|
||||
|
@ -131,11 +131,9 @@
|
||||
#define TWO_REQUESTS_OFFSET 0x1c
|
||||
#define TWO_REQUESTS_BIT 0x80000000
|
||||
|
||||
//firmware version
|
||||
#define REVISION_EXISTING_OFFSET 8
|
||||
#define REVISION_EXISTING_BIT 0x80000000
|
||||
#define REVISION_MASK 0x0FFFFFFF
|
||||
#define SUB_REVISION_MASK 0xF0000000
|
||||
//version
|
||||
#define FIRMWARE_VERSION_OFFSET 0x4
|
||||
#define FIRMWARESOFTWARE_API_OFFSET 0x0
|
||||
|
||||
#define FRAME_NUM_RESET_OFFSET 0xA0
|
||||
|
||||
|
@ -240,6 +240,8 @@ int64_t getDetectorId(enum idMode arg){
|
||||
break;
|
||||
case DETECTOR_FIRMWARE_VERSION:
|
||||
return (int64_t)Beb_GetFirmwareRevision();
|
||||
case SOFTWARE_FIRMWARE_API_VERSION:
|
||||
return (int64_t)Beb_GetFirmwareSoftwareAPIVersion();
|
||||
case DETECTOR_SOFTWARE_VERSION:
|
||||
retval= SVNREV;
|
||||
retval= (retval <<32) | SVNDATE;
|
||||
|
Reference in New Issue
Block a user