m3:connected module id

This commit is contained in:
maliakal_d 2021-09-15 11:06:39 +02:00
parent b937bbb058
commit a17b7b1778
4 changed files with 18 additions and 6 deletions

View File

@ -113,6 +113,12 @@
#define SYSTEM_STATUS_SLV_BRD_DTCT_MSK (0x00000001 << SYSTEM_STATUS_SLV_BRD_DTCT_OFST) #define SYSTEM_STATUS_SLV_BRD_DTCT_MSK (0x00000001 << SYSTEM_STATUS_SLV_BRD_DTCT_OFST)
#define MOD_ID_REG (0x0B * REG_OFFSET + BASE_CONTROL)
#define MOD_ID_OFST (0)
#define MOD_ID_MSK (0x0000FFFF << MOD_ID_OFST)
/* Config RW regiseter */ /* Config RW regiseter */
#define CONFIG_REG (0x20 * REG_OFFSET + BASE_CONTROL) #define CONFIG_REG (0x20 * REG_OFFSET + BASE_CONTROL)

View File

@ -283,7 +283,14 @@ u_int32_t getDetectorNumber() {
int getModuleId(int *ret, char *mess) { int getModuleId(int *ret, char *mess) {
return getModuleIdInFile(ret, mess, ID_FILE); return ((bus_r(MOD_ID_REG) & ~MOD_ID_MSK) >> MOD_ID_OFST);
}
void setModuleId(int modid) {
LOG(logINFOBLUE, ("Setting module id in fpga: %d\n", modid))
bus_w(MOD_ID_REG, bus_r(MOD_ID_REG) & ~MOD_ID_MSK);
bus_w(MOD_ID_REG,
bus_r(MOD_ID_REG) | ((modid << MOD_ID_OFST) & MOD_ID_MSK));
} }
u_int64_t getDetectorMAC() { u_int64_t getDetectorMAC() {
@ -445,12 +452,11 @@ void setupDetector() {
setADIFDefaults(); setADIFDefaults();
// set module id in register // set module id in register
getModuleIdInFile(&initError, initErrorMessage, ID_FILE); int modid = getModuleIdInFile(&initError, initErrorMessage, ID_FILE);
if (initError == FAIL) { if (initError == FAIL) {
return; return;
} }
// until firmware is done setModuleId(modid);
// setModuleId(modid);
// set trigger flow for m3 (for all timing modes) // set trigger flow for m3 (for all timing modes)
bus_w(FLOW_TRIGGER_REG, bus_r(FLOW_TRIGGER_REG) | FLOW_TRIGGER_MSK); bus_w(FLOW_TRIGGER_REG, bus_r(FLOW_TRIGGER_REG) | FLOW_TRIGGER_MSK);

View File

@ -1,7 +1,7 @@
#pragma once #pragma once
#include "sls/sls_detector_defs.h" #include "sls/sls_detector_defs.h"
#define REQRD_FRMWRE_VRSN (0x210201) #define REQRD_FRMWRE_VRSN (0x210910)
#define KERNEL_DATE_VRSN "Wed May 20 13:58:38 CEST 2020" #define KERNEL_DATE_VRSN "Wed May 20 13:58:38 CEST 2020"
#define ID_FILE "detid_mythen3.txt" #define ID_FILE "detid_mythen3.txt"

View File

@ -96,7 +96,7 @@ u_int32_t getDetectorNumber();
#if defined(GOTTHARD2D) || defined(EIGERD) || defined(MYTHEN3D) #if defined(GOTTHARD2D) || defined(EIGERD) || defined(MYTHEN3D)
int getModuleId(int *ret, char *mess); int getModuleId(int *ret, char *mess);
#endif #endif
#ifdef GOTTHARD2D #if defined(GOTTHARD2D) || defined(MYTHEN3D)
void setModuleId(int modid); void setModuleId(int modid);
#endif #endif
u_int64_t getDetectorMAC(); u_int64_t getDetectorMAC();