From da16c1101cbca100896581dcacda384a407d1f60 Mon Sep 17 00:00:00 2001 From: Dhanya Thattil <33750417+thattil@users.noreply.github.com> Date: Tue, 23 Aug 2022 08:02:11 +0200 Subject: [PATCH] G2 hdi id (#521) * g2: hdi value in fpga is 3 bits, so using appropriate enum for it * hdi id bits are determined * fw date changed (g2) --- .../gotthard2DetectorServer/RegisterDefs.h | 10 +- .../bin/gotthard2DetectorServer_developer | Bin 273476 -> 273476 bytes .../slsDetectorFunctionList.c | 107 +++++++++++------- .../slsDetectorServer_defs.h | 2 +- slsSupportLib/include/sls/versionAPI.h | 2 +- 5 files changed, 75 insertions(+), 46 deletions(-) diff --git a/slsDetectorServers/gotthard2DetectorServer/RegisterDefs.h b/slsDetectorServers/gotthard2DetectorServer/RegisterDefs.h index 820ba4420..28dd50d34 100644 --- a/slsDetectorServers/gotthard2DetectorServer/RegisterDefs.h +++ b/slsDetectorServers/gotthard2DetectorServer/RegisterDefs.h @@ -102,9 +102,13 @@ #define CONFIG_VETO_CH_10GBE_ENBL_MSK (0x00000001 << CONFIG_VETO_CH_10GBE_ENBL_OFST) #define CONFIG_SLAVE_OFST (16) #define CONFIG_SLAVE_MSK (0x00000001 << CONFIG_SLAVE_OFST) -#define CONFIG_HDI_MOD_ID_OFST (17) -#define CONFIG_HDI_MOD_ID_MSK (0x00000007 << CONFIG_HDI_MOD_ID_OFST) -#define CONFIG_FLIP_DATA_STREAM_OFST (20) +#define CONFIG_HDI_SLAVE_OFST (17) +#define CONFIG_HDI_SLAVE_MSK (0x00000001 << CONFIG_HDI_SLAVE_OFST) +#define CONFIG_HDI_VERSION_OFST (18) +#define CONFIG_HDI_VERSION_MSK (0x0000001F << CONFIG_HDI_VERSION_OFST) +#define CONFIG_HDI_25UM_OFST (23) +#define CONFIG_HDI_25UM_MSK (0x00000001 << CONFIG_HDI_25UM_OFST) +#define CONFIG_FLIP_DATA_STREAM_OFST (24) #define CONFIG_FLIP_DATA_STREAM_MSK (0x00000001 << CONFIG_FLIP_DATA_STREAM_OFST) #define ALGORITHM_HITS_VAL (0x0) #define ALGORITHM_RAW_VAL (0x7) diff --git a/slsDetectorServers/gotthard2DetectorServer/bin/gotthard2DetectorServer_developer b/slsDetectorServers/gotthard2DetectorServer/bin/gotthard2DetectorServer_developer index ddc2e4b7bcc30e4736c6229b10d137e6dfe5b30c..a36a4c7976fd4da602f07c79061e4b3478149605 100755 GIT binary patch delta 60553 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 Ygc>cwt+_(8rU}i*!M6{F8WY6-0atd;?EnA( delta 60353 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 TYPE_NO_MODULE_STARTING_VAL) { + sprintf(mess, "No Module attached! Run server with -nomodule.\n"); + LOG(logERROR, (mess)); + return FAIL; + } else { + sprintf(mess, + "Wrong Module attached! Expected %d, %d, %d, %d or %d for " + "Gotthard2, got %d\n", + TYPE_GOTTHARD2_MODULE_VAL, + TYPE_GOTTHARD2_25UM_MASTER_HD1_V1_VAL, + TYPE_GOTTHARD2_25UM_SLAVE_HDI_V1_VAL, + TYPE_GOTTHARD2_25UM_MASTER_HD1_V2_VAL, + TYPE_GOTTHARD2_25UM_SLAVE_HDI_V2_VAL, type); + LOG(logERROR, (mess)); + return FAIL; + } + if (hdiSlave) { + bus_w(CONFIG_REG, bus_r(CONFIG_REG) | CONFIG_HDI_SLAVE_MSK); + } else { + bus_w(CONFIG_REG, bus_r(CONFIG_REG) & ~CONFIG_HDI_SLAVE_MSK); + } + if (hdi25um) { + bus_w(CONFIG_REG, bus_r(CONFIG_REG) | CONFIG_HDI_25UM_MSK); + } else { + bus_w(CONFIG_REG, bus_r(CONFIG_REG) & ~CONFIG_HDI_25UM_MSK); + } + bus_w(CONFIG_REG, bus_r(CONFIG_REG) & ~CONFIG_HDI_VERSION_MSK); + bus_w(CONFIG_REG, + bus_r(CONFIG_REG) | ((hdiVersion << CONFIG_HDI_VERSION_OFST) & + CONFIG_HDI_VERSION_MSK)); } - // no module or invalid module - else if (type > TYPE_NO_MODULE_STARTING_VAL) { - sprintf(mess, "No Module attached! Run server with -nomodule.\n"); - LOG(logERROR, (mess)); - return FAIL; - } else { - sprintf(mess, - "Wrong Module attached! Expected %d, %d, %d, %d or %d for " - "Gotthard2, got %d\n", - TYPE_GOTTHARD2_MODULE_VAL, - TYPE_GOTTHARD2_25UM_MASTER_HD1_V1_VAL, - TYPE_GOTTHARD2_25UM_SLAVE_HDI_V1_VAL, - TYPE_GOTTHARD2_25UM_MASTER_HD1_V2_VAL, - TYPE_GOTTHARD2_25UM_SLAVE_HDI_V2_VAL, type); - LOG(logERROR, (mess)); - return FAIL; - } - bus_w(CONFIG_REG, bus_r(CONFIG_REG) & ~CONFIG_HDI_MOD_ID_MSK); - bus_w(CONFIG_REG, bus_r(CONFIG_REG) | ((type << CONFIG_HDI_MOD_ID_OFST) & - CONFIG_HDI_MOD_ID_MSK)); - if (setMaster(master) == FAIL) { - strcpy(mess, "Could not set to master/slave."); - LOG(logERROR, (mess)); - return FAIL; + + { + enum MASTERINDEX master = + (bus_r(CONFIG_REG) & CONFIG_HDI_SLAVE_MSK) ? OW_SLAVE : OW_MASTER; + if (setMaster(master) == FAIL) { + strcpy(mess, "Could not set to master/slave."); + LOG(logERROR, (mess)); + return FAIL; + } } return OK; } diff --git a/slsDetectorServers/gotthard2DetectorServer/slsDetectorServer_defs.h b/slsDetectorServers/gotthard2DetectorServer/slsDetectorServer_defs.h index c13f88540..6ccf862e0 100644 --- a/slsDetectorServers/gotthard2DetectorServer/slsDetectorServer_defs.h +++ b/slsDetectorServers/gotthard2DetectorServer/slsDetectorServer_defs.h @@ -3,7 +3,7 @@ #pragma once #include "sls/sls_detector_defs.h" -#define REQRD_FRMWRE_VRSN (0x220720) +#define REQRD_FRMWRE_VRSN (0x220818) #define KERNEL_DATE_VRSN "Mon May 10 18:00:21 CEST 2021" #define ID_FILE "detid_gotthard2.txt" diff --git a/slsSupportLib/include/sls/versionAPI.h b/slsSupportLib/include/sls/versionAPI.h index 4d68ad17d..2c9492e02 100644 --- a/slsSupportLib/include/sls/versionAPI.h +++ b/slsSupportLib/include/sls/versionAPI.h @@ -7,8 +7,8 @@ #define APIGUI 0x220609 #define APIGOTTHARD 0x220816 #define APIEIGER 0x220816 -#define APIGOTTHARD2 0x220816 #define APIJUNGFRAU 0x220816 +#define APIGOTTHARD2 0x220818 #define APIMOENCH 0x220822 #define APIMYTHEN3 0x220822 #define APICTB 0x220822