From 986826cbe91440e0d1b12f4ad053e65a20dd6d41 Mon Sep 17 00:00:00 2001 From: Dhanya Maliakal Date: Tue, 26 Sep 2017 16:39:02 +0200 Subject: [PATCH] x y z and id are written to the udp header for eiger --- slsDetectorSoftware/eigerDetectorServer/Beb.c | 83 +++++++++++++++++- slsDetectorSoftware/eigerDetectorServer/Beb.h | 4 + .../eigerDetectorServer/FebRegisterDefs.h | 13 ++- ....0.16.9 => eigerDetectorServerv3.1.0.21.0} | Bin 288747 -> 290381 bytes .../eigerDetectorServer/gitInfo.txt | 10 +-- .../eigerDetectorServer/gitInfoEiger.h | 8 +- .../slsDetectorFunctionList.c | 27 +++--- .../slsDetectorFunctionList_virtual.c | 6 +- .../slsDetectorServer_defs.h | 3 +- .../slsDetector/slsDetector.cpp | 4 +- .../slsDetectorFunctionList.h | 2 +- .../slsDetectorServer/slsDetectorServer.c | 1 + .../slsDetectorServer_funcs.c | 6 +- 13 files changed, 135 insertions(+), 32 deletions(-) rename slsDetectorSoftware/eigerDetectorServer/bin/{eigerDetectorServerv3.0.0.16.9 => eigerDetectorServerv3.1.0.21.0} (51%) diff --git a/slsDetectorSoftware/eigerDetectorServer/Beb.c b/slsDetectorSoftware/eigerDetectorServer/Beb.c index 2f2bb8fbd..b9b3f42d0 100644 --- a/slsDetectorSoftware/eigerDetectorServer/Beb.c +++ b/slsDetectorSoftware/eigerDetectorServer/Beb.c @@ -17,7 +17,6 @@ - #include "xfs_types.h" #include "xparameters.h" #include "FebRegisterDefs.h" @@ -49,6 +48,8 @@ int Beb_activated = 1; + uint32_t Beb_detid = 0; + void BebInfo_BebInfo(struct BebInfo* bebInfo, unsigned int beb_num){ @@ -144,7 +145,6 @@ void Beb_Beb(){ // Local_LocalLinkInterface1(ll_beb,XPAR_PLB_LL_FIFO_AURORA_DUAL_CTRL_FEB_LEFT_BASEADDR); // Beb_SetByteOrder(); - } @@ -1124,9 +1124,88 @@ int Beb_GetBebFPGATemp() } +void Beb_SetDetectorNumber(uint32_t detid) { + if(!Beb_activated) + return; + + uint32_t swapid = Beb_swap_uint16(detid); + //cprintf(GREEN, "detector id %d swapped %d\n", detid, swapid); + u_int32_t* csp0base=0; + int fd = Beb_open(&csp0base,XPAR_PLB_GPIO_TEST_BASEADDR); + if(fd < 0){ + cprintf(BG_RED,"Set Detector ID FAIL\n"); + return; + }else{ + uint32_t value = Beb_Read32(csp0base, UDP_HEADER_A_OFST); + value &= UDP_HEADER_X_MSK; // to keep previous x value + Beb_Write32(csp0base, UDP_HEADER_A_OFST, value | ((swapid << UDP_HEADER_ID_OFST) & UDP_HEADER_ID_MSK)); + value = Beb_Read32(csp0base, UDP_HEADER_A_OFST); + if((value & UDP_HEADER_ID_MSK) != ((swapid << UDP_HEADER_ID_OFST) & UDP_HEADER_ID_MSK)) + cprintf(BG_RED,"Set Detector ID FAIL\n"); + + Beb_close(fd,csp0base); + } + printf("detector id %d has been set in udp header\n", detid); +} +int Beb_SetDetectorPosition(int pos[]) { + if(!Beb_activated) + return OK; + + pos[0] = Beb_swap_uint16(pos[0]); + pos[1] = Beb_swap_uint16(pos[1]); + pos[2] = Beb_swap_uint16(pos[2]); + + int ret = FAIL; + //mapping new memory to read master top module configuration + u_int32_t* csp0base=0; + //open file pointer + int fd = Beb_open(&csp0base,XPAR_PLB_GPIO_TEST_BASEADDR); + if(fd < 0){ + cprintf(BG_RED,"Set Detector Position FAIL\n"); + return FAIL; + }else{ + uint32_t value = 0; + ret = OK; + // x + value = Beb_Read32(csp0base, UDP_HEADER_A_OFST); + value &= UDP_HEADER_ID_MSK; // to keep previous id value + Beb_Write32(csp0base, UDP_HEADER_A_OFST, value | ((pos[0] << UDP_HEADER_X_OFST) & UDP_HEADER_X_MSK)); + value = Beb_Read32(csp0base, UDP_HEADER_A_OFST); + if((value & UDP_HEADER_X_MSK) != ((pos[0] << UDP_HEADER_X_OFST) & UDP_HEADER_X_MSK)) + ret = FAIL; + + // y + // overwriting z anyway, so no need to look at previous z value + Beb_Write32(csp0base, UDP_HEADER_B_OFST, ((pos[1] << UDP_HEADER_Y_OFST) & UDP_HEADER_Y_MSK)); + value = Beb_Read32(csp0base, UDP_HEADER_B_OFST); + if(value != ((pos[1] << UDP_HEADER_Y_OFST) & UDP_HEADER_Y_MSK)) + ret = FAIL; + + // z + value = Beb_Read32(csp0base, UDP_HEADER_B_OFST); + value &= UDP_HEADER_Y_MSK; // to keep previous y value + Beb_Write32(csp0base, UDP_HEADER_B_OFST, value | ((pos[2] << UDP_HEADER_Z_OFST) & UDP_HEADER_Z_MSK)); + value = Beb_Read32(csp0base, UDP_HEADER_B_OFST); + if((value & UDP_HEADER_Z_MSK) != ((pos[2] << UDP_HEADER_Z_OFST) & UDP_HEADER_Z_MSK)) + ret = FAIL; + + + //close file pointer + Beb_close(fd,csp0base); + } + if (ret == OK) + printf("Position set to [%d, %d, %d]\n", Beb_swap_uint16(pos[0]), Beb_swap_uint16(pos[1]), Beb_swap_uint16(pos[2])); + + return ret; +} + + +uint16_t Beb_swap_uint16( uint16_t val) { + return (val << 8) | (val >> 8 ); +} int Beb_open(u_int32_t** csp0base, u_int32_t offset){ diff --git a/slsDetectorSoftware/eigerDetectorServer/Beb.h b/slsDetectorSoftware/eigerDetectorServer/Beb.h index be1a8296d..a0229dd3b 100644 --- a/slsDetectorSoftware/eigerDetectorServer/Beb.h +++ b/slsDetectorSoftware/eigerDetectorServer/Beb.h @@ -89,6 +89,10 @@ struct BebInfo{ int Beb_GetBebFPGATemp(); + void Beb_SetDetectorNumber(uint32_t detid); + int Beb_SetDetectorPosition(int pos[]); + + uint16_t Beb_swap_uint16( uint16_t val); int Beb_open(u_int32_t** csp0base, u_int32_t offset); u_int32_t Beb_Read32 (u_int32_t* baseaddr, u_int32_t offset); u_int32_t Beb_Write32 (u_int32_t* baseaddr, u_int32_t offset, u_int32_t data); diff --git a/slsDetectorSoftware/eigerDetectorServer/FebRegisterDefs.h b/slsDetectorSoftware/eigerDetectorServer/FebRegisterDefs.h index d7c8c012b..68ccbffe2 100644 --- a/slsDetectorSoftware/eigerDetectorServer/FebRegisterDefs.h +++ b/slsDetectorSoftware/eigerDetectorServer/FebRegisterDefs.h @@ -181,8 +181,17 @@ #define TEN_GIGA_RIGHT_TXN_DELAY_COUNTER 0x1c4 #define TEN_GIGA_RIGHT_FRAME_DELAY_COUNTER 0x1e4 - - +// udp header (position, id) +#define UDP_HEADER_A_OFST 0x00C0 +#define UDP_HEADER_B_OFST 0x00E0 +#define UDP_HEADER_X_OFST (0) +#define UDP_HEADER_X_MSK (0xFFFF << UDP_HEADER_X_OFST) +#define UDP_HEADER_ID_OFST (16) +#define UDP_HEADER_ID_MSK (0xFFFF << UDP_HEADER_ID_OFST) +#define UDP_HEADER_Z_OFST (0) +#define UDP_HEADER_Z_MSK (0xFFFF << UDP_HEADER_Z_OFST) +#define UDP_HEADER_Y_OFST (16) +#define UDP_HEADER_Y_MSK (0xFFFF << UDP_HEADER_Y_OFST) diff --git a/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv3.0.0.16.9 b/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv3.1.0.21.0 similarity index 51% rename from slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv3.0.0.16.9 rename to slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServerv3.1.0.21.0 index 6cbc0d41ada6b37ae04b8b20e6e790bcfe8d3c00..4801a14e8f4601c5d6c405495da0a91727aa9933 100755 GIT binary patch delta 65497 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 UwsOgeb@!}T=l{*^u0`yB0oYeBOaK4? delta 64837 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 V{>V`t #define GOODBYE (-200) -#define REQUIRED_FIRMWARE_VERSION (16) +#define REQUIRED_FIRMWARE_VERSION (21) +#define IDFILECOMMAND "more /home/root/executables/detid.txt" /* Enums */ enum CLK_SPEED_INDEX {FULL_SPEED, HALF_SPEED, QUARTER_SPEED}; diff --git a/slsDetectorSoftware/slsDetector/slsDetector.cpp b/slsDetectorSoftware/slsDetector/slsDetector.cpp index 35cf00496..5e99bfadb 100644 --- a/slsDetectorSoftware/slsDetector/slsDetector.cpp +++ b/slsDetectorSoftware/slsDetector/slsDetector.cpp @@ -6414,8 +6414,8 @@ int slsDetector::configureMAC(){ bool sendpos = 0; int pos[3]={0,0,0}; - // only jungfrau send x, y and z in detector udp header - if (thisDetector->myDetectorType == JUNGFRAU) { + // only jungfrau and eiger, send x, y and z in detector udp header + if (thisDetector->myDetectorType == JUNGFRAU || thisDetector->myDetectorType == EIGER) { sendpos = true; int max = parentDet->getNumberOfDetectors(X); if(!posId) { diff --git a/slsDetectorSoftware/slsDetectorServer/slsDetectorFunctionList.h b/slsDetectorSoftware/slsDetectorServer/slsDetectorFunctionList.h index 15976f26d..683086e68 100644 --- a/slsDetectorSoftware/slsDetectorServer/slsDetectorFunctionList.h +++ b/slsDetectorSoftware/slsDetectorServer/slsDetectorFunctionList.h @@ -152,7 +152,7 @@ long int calcChecksum(int sourceip, int destip); #ifndef MYTHEND int configureMAC(uint32_t destip, uint64_t destmac, uint64_t sourcemac, uint32_t sourceip, uint32_t udpport, uint32_t udpport2, int ival); #endif -#ifdef JUNGFRAUD +#if defined(JUNGFRAUD) || defined(EIGERD) int setDetectorPosition(int pos[]); #endif diff --git a/slsDetectorSoftware/slsDetectorServer/slsDetectorServer.c b/slsDetectorSoftware/slsDetectorServer/slsDetectorServer.c index 7b9ba8197..5de718a47 100755 --- a/slsDetectorSoftware/slsDetectorServer/slsDetectorServer.c +++ b/slsDetectorSoftware/slsDetectorServer/slsDetectorServer.c @@ -10,6 +10,7 @@ #include #include #include +#include extern int sockfd; diff --git a/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c b/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c index 8582c56e1..fb674afb9 100755 --- a/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c +++ b/slsDetectorSoftware/slsDetectorServer/slsDetectorServer_funcs.c @@ -3408,7 +3408,7 @@ int configure_mac(int file_des) { char arg[6][50]; memset(arg,0,sizeof(arg)); n = receiveData(file_des,arg,sizeof(arg),OTHER); -#ifdef JUNGFRAUD +#if defined(JUNGFRAUD) || defined(EIGERD) int pos[3]={0,0,0}; n = receiveData(file_des,pos,sizeof(pos),INT32); #endif @@ -3461,7 +3461,7 @@ int configure_mac(int file_des) { printf("\n"); printf("Configuring MAC of module %d at port %x\n", imod, udpport); -#ifdef JUNGFRAUD +#if defined(JUNGFRAUD) || defined(EIGERD) printf("Position: [%d,%d,%d]\n", pos[0],pos[1],pos[2]); #endif #endif @@ -3481,7 +3481,7 @@ int configure_mac(int file_des) { } else { printf("Configure MAC successful\n"); -#ifdef JUNGFRAUD +#if defined(JUNGFRAUD) || defined(EIGERD) ret = setDetectorPosition(pos); if (ret == FAIL) { sprintf(mess,"could not set detector position\n");