mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-04-21 19:30:03 +02:00
m3:connected module id
This commit is contained in:
parent
b937bbb058
commit
a17b7b1778
@ -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)
|
||||||
|
|
||||||
|
@ -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);
|
||||||
|
@ -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"
|
||||||
|
|
||||||
|
@ -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();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user