mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2026-01-17 00:03:42 +01:00
Merge branch '6.0.1.rc1' of github.com:slsdetectorgroup/slsDetectorPackage into 6.0.1.rc1
This commit is contained in:
Binary file not shown.
BIN
slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServerv6.0.1
Executable file
BIN
slsDetectorServers/ctbDetectorServer/bin/ctbDetectorServerv6.0.1
Executable file
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -2083,24 +2083,40 @@ int setReadoutSpeed(int val) {
|
||||
case G2_108MHZ:
|
||||
LOG(logINFOBLUE, ("Setting readout speed to 108 MHz\n"));
|
||||
if (setClockDivider(READOUT_C0, SPEED_108_CLKDIV_0) == FAIL) {
|
||||
LOG(logERROR, ("Could not set readout speed to 108 MHz. Failed to set readout clk 0 to %d\n", SPEED_108_CLKDIV_0));
|
||||
return FAIL;
|
||||
}
|
||||
if (setClockDivider(READOUT_C1, SPEED_108_CLKDIV_1) == FAIL) {
|
||||
LOG(logERROR, ("Could not set readout speed to 108 MHz. Failed to set readout clk 1 to %d\n", SPEED_108_CLKDIV_1));
|
||||
return FAIL;
|
||||
}
|
||||
if (setPhase(READOUT_C1, SPEED_108_CLKPHASE_DEG_1, 1) == FAIL) {
|
||||
LOG(logERROR, ("Could not set readout speed to 108 MHz. Failed to set clk phase 1 %d deg\n", SPEED_108_CLKPHASE_DEG_1));
|
||||
return FAIL;
|
||||
}
|
||||
setDBITPipeline(SPEED_144_DBIT_PIPELINE);
|
||||
if (getDBITPipeline() != SPEED_144_DBIT_PIPELINE) {
|
||||
LOG(logERROR, ("Could not set readout speed to 108 MHz. Failed to set dbitpipeline to %d \n", SPEED_144_DBIT_PIPELINE));
|
||||
return FAIL;
|
||||
}
|
||||
break;
|
||||
case G2_144MHZ:
|
||||
LOG(logINFOBLUE, ("Setting readout speed to 144 MHz\n"));
|
||||
if (setClockDivider(READOUT_C0, SPEED_144_CLKDIV_0) == FAIL) {
|
||||
LOG(logERROR, ("Could not set readout speed to 144 MHz. Failed to set readout clk 0 to %d\n", SPEED_144_CLKDIV_0));
|
||||
return FAIL;
|
||||
}
|
||||
if (setClockDivider(READOUT_C1, SPEED_144_CLKDIV_1) == FAIL) {
|
||||
LOG(logERROR, ("Could not set readout speed to 144 MHz. Failed to set readout clk 1 to %d\n", SPEED_144_CLKDIV_1));
|
||||
return FAIL;
|
||||
}
|
||||
if (setPhase(READOUT_C1, SPEED_144_CLKPHASE_DEG_1, 1) == FAIL) {
|
||||
LOG(logERROR, ("Could not set readout speed to 144 MHz. Failed to set clk phase 1 %d deg\n", SPEED_144_CLKPHASE_DEG_1));
|
||||
return FAIL;
|
||||
}
|
||||
setDBITPipeline(SPEED_144_DBIT_PIPELINE);
|
||||
if (getDBITPipeline() != SPEED_144_DBIT_PIPELINE) {
|
||||
LOG(logERROR, ("Could not set readout speed to 144 MHz. Failed to set dbitpipeline to %d \n", SPEED_144_DBIT_PIPELINE));
|
||||
return FAIL;
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -67,9 +67,11 @@
|
||||
#define SPEED_144_CLKDIV_0 (6)
|
||||
#define SPEED_144_CLKDIV_1 (6)
|
||||
#define SPEED_144_CLKPHASE_DEG_1 (122) // 125 not possible
|
||||
#define SPEED_144_DBIT_PIPELINE (1)
|
||||
#define SPEED_108_CLKDIV_0 (8)
|
||||
#define SPEED_108_CLKDIV_1 (8)
|
||||
#define SPEED_108_CLKPHASE_DEG_1 (268) // 270 not possible
|
||||
#define SPEED_108_DBIT_PIPELINE (1)
|
||||
|
||||
/* Firmware Definitions */
|
||||
#define FIXED_PLL_FREQUENCY (20000000) // 20MHz
|
||||
|
||||
Binary file not shown.
BIN
slsDetectorServers/gotthardDetectorServer/bin/gotthardDetectorServerv6.0.1
Executable file
BIN
slsDetectorServers/gotthardDetectorServer/bin/gotthardDetectorServerv6.0.1
Executable file
Binary file not shown.
Binary file not shown.
BIN
slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServerv6.0.1
Executable file
BIN
slsDetectorServers/jungfrauDetectorServer/bin/jungfrauDetectorServerv6.0.1
Executable file
Binary file not shown.
@@ -501,12 +501,14 @@ void setupDetector() {
|
||||
// temp threshold and reset event
|
||||
setThresholdTemperature(DEFAULT_TMP_THRSHLD);
|
||||
setTemperatureEvent(0);
|
||||
setFlipRows(DEFAULT_FLIP_ROWS);
|
||||
if (getChipVersion() == 11) {
|
||||
setFilterResistor(DEFAULT_FILTER_RESISTOR);
|
||||
setNumberOfFilterCells(DEFAULT_FILTER_CELL);
|
||||
}
|
||||
setReadNRows(MAX_ROWS_PER_READOUT);
|
||||
if (!isHardwareVersion2()) {
|
||||
setFlipRows(DEFAULT_FLIP_ROWS);
|
||||
setReadNRows(MAX_ROWS_PER_READOUT);
|
||||
}
|
||||
}
|
||||
|
||||
int resetToDefaultDacs(int hardReset) {
|
||||
@@ -1671,6 +1673,11 @@ int setReadNRows(int value) {
|
||||
LOG(logERROR, ("Invalid number of rows %d\n", value));
|
||||
return FAIL;
|
||||
}
|
||||
if (isHardwareVersion2()) {
|
||||
LOG(logERROR, ("Could not set number of rows. Only available for "
|
||||
"Hardware Board version 2.0.\n"));
|
||||
return FAIL;
|
||||
}
|
||||
|
||||
// regval is numpackets - 1
|
||||
int regval = (value / READ_N_ROWS_MULTIPLE) - 1;
|
||||
@@ -1679,7 +1686,6 @@ int setReadNRows(int value) {
|
||||
bus_w(addr, bus_r(addr) & ~READ_N_ROWS_NUM_ROWS_MSK);
|
||||
bus_w(addr, bus_r(addr) | ((regval << READ_N_ROWS_NUM_ROWS_OFST) &
|
||||
READ_N_ROWS_NUM_ROWS_MSK));
|
||||
|
||||
if (value == MAX_ROWS_PER_READOUT) {
|
||||
LOG(logINFO, ("Disabling Partial Readout (#rows)\n"));
|
||||
bus_w(addr, bus_r(addr) & ~READ_N_ROWS_ENBL_MSK);
|
||||
@@ -1691,6 +1697,10 @@ int setReadNRows(int value) {
|
||||
}
|
||||
|
||||
int getReadNRows() {
|
||||
// cannot set it in old board
|
||||
if (isHardwareVersion2()) {
|
||||
return MAX_ROWS_PER_READOUT;
|
||||
}
|
||||
int enable = (bus_r(READ_N_ROWS_REG) & READ_N_ROWS_ENBL_MSK);
|
||||
int regval = ((bus_r(READ_N_ROWS_REG) & READ_N_ROWS_NUM_ROWS_MSK) >>
|
||||
READ_N_ROWS_NUM_ROWS_OFST);
|
||||
@@ -2163,6 +2173,11 @@ int getFlipRows() {
|
||||
}
|
||||
|
||||
void setFlipRows(int arg) {
|
||||
if (isHardwareVersion2()) {
|
||||
LOG(logERROR, ("Could not set flip rows. Only available for "
|
||||
"Hardware Board version 2.0.\n"));
|
||||
return;
|
||||
}
|
||||
if (arg >= 0) {
|
||||
if (arg == 0) {
|
||||
LOG(logINFO, ("Switching off bottom row flipping\n"));
|
||||
|
||||
Binary file not shown.
BIN
slsDetectorServers/moenchDetectorServer/bin/moenchDetectorServerv6.0.1
Executable file
BIN
slsDetectorServers/moenchDetectorServer/bin/moenchDetectorServerv6.0.1
Executable file
Binary file not shown.
Binary file not shown.
@@ -8,6 +8,8 @@
|
||||
#include <stdio.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
#define BLACKFIN_DEFINED
|
||||
|
||||
int defineGPIOpins(char *mess);
|
||||
int FPGAdontTouchFlash(char *mess);
|
||||
int FPGATouchFlash(char *mess);
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
#include <sys/sysinfo.h>
|
||||
#include <unistd.h> // usleep
|
||||
|
||||
#define BLACKFIN_DEFINED
|
||||
/* global variables */
|
||||
// clang-format off
|
||||
#define MAX_TIME_FPGA_TOUCH_FLASH_US (10 * 1000 * 1000) // 10s
|
||||
@@ -275,7 +274,7 @@ int allowUpdate(char *mess, char *functionType) {
|
||||
getKernelVersion(retvals);
|
||||
snprintf(mess, MAX_STR_LENGTH,
|
||||
"Could not update %s. Kernel version %s is too old to "
|
||||
"update the Amd flash\n",
|
||||
"update the Amd flash/ root directory. Most likely, blackfin needs rescue or replacement. Please contact us.\n",
|
||||
functionType, retvals);
|
||||
LOG(logERROR, (mess));
|
||||
return FAIL;
|
||||
|
||||
@@ -4143,7 +4143,7 @@ int copy_detector_server(int file_des) {
|
||||
LOG(logINFOBLUE, ("Copying server %s from host %s\n", sname, hostname));
|
||||
char cmd[MAX_STR_LENGTH] = {0};
|
||||
|
||||
#if BLACKFIN_DEFINED
|
||||
#ifdef BLACKFIN_DEFINED
|
||||
// check update is allowed (Non Amd OR AMD + current kernel)
|
||||
ret = allowUpdate(mess, "copy detector server");
|
||||
#endif
|
||||
@@ -4663,6 +4663,13 @@ int set_read_n_rows(int file_des) {
|
||||
"of %d\n",
|
||||
arg, READ_N_ROWS_MULTIPLE);
|
||||
LOG(logERROR, (mess));
|
||||
}
|
||||
// only for HW 2.0 (version = 3)
|
||||
else if (isHardwareVersion2()) {
|
||||
ret = FAIL;
|
||||
strcpy(mess, "Could not set number of rows. Only available for "
|
||||
"Hardware Board version 2.0.\n");
|
||||
LOG(logERROR, (mess));
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
@@ -4702,7 +4709,7 @@ int get_read_n_rows(int file_des) {
|
||||
retval = getReadNRows();
|
||||
if (retval == -1) {
|
||||
ret = FAIL;
|
||||
sprintf(mess, "Could not get numbr of rows. \n");
|
||||
sprintf(mess, "Could not get number of rows. \n");
|
||||
LOG(logERROR, (mess));
|
||||
} else {
|
||||
LOG(logDEBUG1, ("number of rows retval: %u\n", retval));
|
||||
@@ -9389,11 +9396,14 @@ void receive_program_via_blackfin(int file_des, enum PROGRAM_INDEX index,
|
||||
functionType);
|
||||
LOG(logERROR, (mess));
|
||||
#else
|
||||
// check update is allowed (Non Amd OR AMD + current kernel)
|
||||
ret = allowUpdate(mess, functionType);
|
||||
if (ret == FAIL) {
|
||||
Server_SendResult(file_des, INT32, NULL, 0);
|
||||
return;
|
||||
// only when writing to kernel flash or root directory
|
||||
if (index != PROGRAM_FPGA) {
|
||||
// check update is allowed (Non Amd OR AMD + current kernel)
|
||||
ret = allowUpdate(mess, functionType);
|
||||
if (ret == FAIL) {
|
||||
Server_SendResult(file_des, INT32, NULL, 0);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// open file and allocate memory for part program
|
||||
@@ -9615,9 +9625,9 @@ int set_update_mode(int file_des) {
|
||||
return printSocketReadError();
|
||||
LOG(logDEBUG1, ("Setting update mode to \n", arg));
|
||||
|
||||
#if BLACKFIN_DEFINED
|
||||
#ifdef BLACKFIN_DEFINED
|
||||
// check update is allowed (Non Amd OR AMD + current kernel)
|
||||
ret = allowUpdate(mess, "copy detector server");
|
||||
ret = allowUpdate(mess, "set/unset update mode");
|
||||
#endif
|
||||
|
||||
if (ret == OK) {
|
||||
|
||||
Reference in New Issue
Block a user