From afa71895e71c6b24b12670f9143bdfde9eeca478 Mon Sep 17 00:00:00 2001 From: Erik Frojdh Date: Mon, 15 Jun 2020 10:38:55 +0200 Subject: [PATCH 1/4] eiger virtual slave missing c99 --- slsDetectorServers/eigerDetectorServer/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slsDetectorServers/eigerDetectorServer/CMakeLists.txt b/slsDetectorServers/eigerDetectorServer/CMakeLists.txt index 6b427b22a..49918a8ac 100644 --- a/slsDetectorServers/eigerDetectorServer/CMakeLists.txt +++ b/slsDetectorServers/eigerDetectorServer/CMakeLists.txt @@ -58,7 +58,7 @@ target_compile_definitions(eigerDetectorServerSlaveTop_virtual ) target_link_libraries(eigerDetectorServerSlaveTop_virtual - PUBLIC pthread rt + PUBLIC pthread rt slsProjectCSettings ) set_target_properties(eigerDetectorServerSlaveTop_virtual PROPERTIES From ad36ee2ba21cf6e09377c525f5702c9dbebe8fbe Mon Sep 17 00:00:00 2001 From: Erik Frojdh Date: Mon, 15 Jun 2020 10:40:30 +0200 Subject: [PATCH 2/4] and bottom... --- slsDetectorServers/eigerDetectorServer/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/slsDetectorServers/eigerDetectorServer/CMakeLists.txt b/slsDetectorServers/eigerDetectorServer/CMakeLists.txt index 49918a8ac..c4d8f5260 100644 --- a/slsDetectorServers/eigerDetectorServer/CMakeLists.txt +++ b/slsDetectorServers/eigerDetectorServer/CMakeLists.txt @@ -86,7 +86,7 @@ target_compile_definitions(eigerDetectorServerSlaveBottom_virtual ) target_link_libraries(eigerDetectorServerSlaveBottom_virtual - PUBLIC pthread rt + PUBLIC pthread rt slsProjectCSettings ) set_target_properties(eigerDetectorServerSlaveBottom_virtual PROPERTIES From d5ae9a22f4d00b981bc4ea2859e3c9dd95b6ac37 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Tue, 16 Jun 2020 15:00:02 +0200 Subject: [PATCH 3/4] mythen3: changed system vco from 1.25GHz to 1GHz and hence the sytem clock dividers defaults --- .../bin/mythen3DetectorServer_developer | Bin 172864 -> 172864 bytes .../slsDetectorServer_defs.h | 8 ++++---- slsSupportLib/include/versionAPI.h | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_developer b/slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_developer index 65f996a9411c57103539eaaa5b9d51cd7fa515d6..59b3440a748f60f554541cad7e47d872ad897a1e 100755 GIT binary patch delta 87 zcmX?bjO)NLt_>wJOf9XG*U6|)o-4x-WNuz3^NdxIh4BD`DANIfEes6|EUhyISeSr( hW+eXPtxEpvU!L_burzFH=2mX!R%YDJt;}TF002XG9BKdn delta 87 zcmX?bjO)NLt_>wJOe`&v*U6|)o-4x-WNuz3^Ndx|h4BD`DANIfEes6|EUhyIT9|-* hW+eXPtxEpvB?~4ouqe!L=2mX!R%YDJt;}TF000(N8*=~v diff --git a/slsDetectorServers/mythen3DetectorServer/slsDetectorServer_defs.h b/slsDetectorServers/mythen3DetectorServer/slsDetectorServer_defs.h index 632cc66b1..11d81a494 100644 --- a/slsDetectorServers/mythen3DetectorServer/slsDetectorServer_defs.h +++ b/slsDetectorServers/mythen3DetectorServer/slsDetectorServer_defs.h @@ -37,9 +37,9 @@ #define DEFAULT_TIMING_MODE (AUTO_TIMING) #define DEFAULT_READOUT_C0 (10) //(125000000) // rdo_clk, 125 MHz #define DEFAULT_READOUT_C1 (10) //(125000000) // rdo_x2_clk, 125 MHz -#define DEFAULT_SYSTEM_C0 (5) //(250000000) // run_clk, 250 MHz -#define DEFAULT_SYSTEM_C1 (10) //(125000000) // chip_clk, 125 MHz -#define DEFAULT_SYSTEM_C2 (10) //(125000000) // sync_clk, 125 MHz +#define DEFAULT_SYSTEM_C0 (4) //(250000000) // run_clk, 250 MHz +#define DEFAULT_SYSTEM_C1 (8) //(125000000) // chip_clk, 125 MHz +#define DEFAULT_SYSTEM_C2 (8) //(125000000) // sync_clk, 125 MHz #define DEFAULT_ASIC_LATCHING_NUM_PULSES (10) #define DEFAULT_MSTR_OTPT_P1_NUM_PULSES (20) @@ -47,7 +47,7 @@ #define IP_HEADER_SIZE (20) #define FIXED_PLL_FREQUENCY (020000000) // 20MHz #define READOUT_PLL_VCO_FREQ_HZ (1250000000) // 1.25GHz -#define SYSTEM_PLL_VCO_FREQ_HZ (1250000000) // 1.25GHz +#define SYSTEM_PLL_VCO_FREQ_HZ (1000000000) // 1GHz #define MAX_PATTERN_LENGTH (0x2000) // maximum number of words (64bit) /** Other Definitions */ diff --git a/slsSupportLib/include/versionAPI.h b/slsSupportLib/include/versionAPI.h index 47dac799a..70c424440 100644 --- a/slsSupportLib/include/versionAPI.h +++ b/slsSupportLib/include/versionAPI.h @@ -6,7 +6,7 @@ #define APICTB 0x200610 #define APIGOTTHARD 0x200610 #define APIJUNGFRAU 0x200610 -#define APIMYTHEN3 0x200610 #define APIMOENCH 0x200610 #define APIGOTTHARD2 0x200610 #define APIEIGER 0x200615 +#define APIMYTHEN3 0x200616 From 7609a2bda4ab06867535b5c2eba77324a90317d2 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil Date: Tue, 16 Jun 2020 16:47:03 +0200 Subject: [PATCH 4/4] mythen3: timers based on run clk and not on sync clk --- .../bin/mythen3DetectorServer_developer | Bin 172864 -> 172864 bytes .../slsDetectorFunctionList.c | 32 +++++++++--------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_developer b/slsDetectorServers/mythen3DetectorServer/bin/mythen3DetectorServer_developer index 59b3440a748f60f554541cad7e47d872ad897a1e..2d7534defca473ab5bca460f97d6583468df9369 100755 GIT binary patch delta 206 zcmX?bjO)NLt_^=Im|7Sn|FhTzp#mneSsep1H=nb5!~_v?p8VDJJcxPDYWe0|dwE6> zyU*beL^fdZGuPvjGo9vxxPI=-C+FI`O#bS88=`32Aom}XPEZZFD*B3s+Q DQ-4xG delta 206 zcmX?bjO)NLt_^=Im{=Gm|FhTzp#mneSsep1H=nb5!~_v?p8VDJJcxPDYWe0|dwE6> zyU*beL^fdZGuPvjGo9vxxPI=-C+FI`O#bS88=`32Aom}XPEZZFD*B3s+Q DxA;m> diff --git a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c index dfe0b8f8e..87cffcb72 100644 --- a/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c +++ b/slsDetectorServers/mythen3DetectorServer/slsDetectorFunctionList.c @@ -813,12 +813,12 @@ int setPeriod(int64_t val) { return FAIL; } LOG(logINFO, ("Setting period %lld ns\n", (long long int)val)); - val *= (1E-9 * getFrequency(SYSTEM_C2)); + val *= (1E-9 * getFrequency(SYSTEM_C0)); set64BitReg(val, SET_PERIOD_LSB_REG, SET_PERIOD_MSB_REG); // validate for tolerance int64_t retval = getPeriod(); - val /= (1E-9 * getFrequency(SYSTEM_C2)); + val /= (1E-9 * getFrequency(SYSTEM_C0)); if (val != retval) { return FAIL; } @@ -827,7 +827,7 @@ int setPeriod(int64_t val) { int64_t getPeriod() { return get64BitReg(SET_PERIOD_LSB_REG, SET_PERIOD_MSB_REG) / - (1E-9 * getFrequency(SYSTEM_C2)); + (1E-9 * getFrequency(SYSTEM_C0)); } void setNumIntGates(int val) { @@ -860,7 +860,7 @@ void updateGatePeriod() { } } LOG(logINFO, ("\tSetting Gate Period to %lld ns\n", (long long int)max)); - max *= (1E-9 * getFrequency(SYSTEM_C2)); + max *= (1E-9 * getFrequency(SYSTEM_C0)); set64BitReg(max, ASIC_EXP_GATE_PERIOD_LSB_REG, ASIC_EXP_GATE_PERIOD_MSB_REG); } @@ -868,7 +868,7 @@ void updateGatePeriod() { int64_t getGatePeriod() { return get64BitReg(ASIC_EXP_GATE_PERIOD_LSB_REG, ASIC_EXP_GATE_PERIOD_MSB_REG) / - (1E-9 * getFrequency(SYSTEM_C2)); + (1E-9 * getFrequency(SYSTEM_C0)); } int setExpTime(int gateIndex, int64_t val) { @@ -898,12 +898,12 @@ int setExpTime(int gateIndex, int64_t val) { } LOG(logINFO, ("Setting exptime %lld ns (index:%d)\n", (long long int)val, gateIndex)); - val *= (1E-9 * getFrequency(SYSTEM_C2)); + val *= (1E-9 * getFrequency(SYSTEM_C0)); set64BitReg(val, alsb, amsb); // validate for tolerance int64_t retval = getExpTime(gateIndex); - val /= (1E-9 * getFrequency(SYSTEM_C2)); + val /= (1E-9 * getFrequency(SYSTEM_C0)); if (val != retval) { return FAIL; } @@ -933,7 +933,7 @@ int64_t getExpTime(int gateIndex) { LOG(logERROR, ("Invalid gate index: %d\n", gateIndex)); return -1; } - return get64BitReg(alsb, amsb) / (1E-9 * getFrequency(SYSTEM_C2)); + return get64BitReg(alsb, amsb) / (1E-9 * getFrequency(SYSTEM_C0)); } int setGateDelay(int gateIndex, int64_t val) { @@ -963,12 +963,12 @@ int setGateDelay(int gateIndex, int64_t val) { } LOG(logINFO, ("Setting gate delay %lld ns (index:%d)\n", (long long int)val, gateIndex)); - val *= (1E-9 * getFrequency(SYSTEM_C2)); + val *= (1E-9 * getFrequency(SYSTEM_C0)); set64BitReg(val, alsb, amsb); // validate for tolerance int64_t retval = getGateDelay(gateIndex); - val /= (1E-9 * getFrequency(SYSTEM_C2)); + val /= (1E-9 * getFrequency(SYSTEM_C0)); if (val != retval) { return FAIL; } @@ -998,7 +998,7 @@ int64_t getGateDelay(int gateIndex) { LOG(logERROR, ("Invalid gate index: %d\n", gateIndex)); return -1; } - return get64BitReg(alsb, amsb) / (1E-9 * getFrequency(SYSTEM_C2)); + return get64BitReg(alsb, amsb) / (1E-9 * getFrequency(SYSTEM_C0)); } void setCounterMask(uint32_t arg) { @@ -1027,12 +1027,12 @@ int setDelayAfterTrigger(int64_t val) { return FAIL; } LOG(logINFO, ("Setting delay after trigger %lld ns\n", (long long int)val)); - val *= (1E-9 * getFrequency(SYSTEM_C2)); + val *= (1E-9 * getFrequency(SYSTEM_C0)); set64BitReg(val, SET_TRIGGER_DELAY_LSB_REG, SET_TRIGGER_DELAY_MSB_REG); // validate for tolerance int64_t retval = getDelayAfterTrigger(); - val /= (1E-9 * getFrequency(SYSTEM_C2)); + val /= (1E-9 * getFrequency(SYSTEM_C0)); if (val != retval) { return FAIL; } @@ -1041,7 +1041,7 @@ int setDelayAfterTrigger(int64_t val) { int64_t getDelayAfterTrigger() { return get64BitReg(SET_TRIGGER_DELAY_LSB_REG, SET_TRIGGER_DELAY_MSB_REG) / - (1E-9 * getFrequency(SYSTEM_C2)); + (1E-9 * getFrequency(SYSTEM_C0)); } int64_t getNumFramesLeft() { @@ -1054,12 +1054,12 @@ int64_t getNumTriggersLeft() { int64_t getDelayAfterTriggerLeft() { return get64BitReg(GET_DELAY_LSB_REG, GET_DELAY_MSB_REG) / - (1E-9 * getFrequency(SYSTEM_C2)); + (1E-9 * getFrequency(SYSTEM_C0)); } int64_t getPeriodLeft() { return get64BitReg(GET_PERIOD_LSB_REG, GET_PERIOD_MSB_REG) / - (1E-9 * getFrequency(SYSTEM_C2)); + (1E-9 * getFrequency(SYSTEM_C0)); } int64_t getFramesFromStart() {