#ifndef __RCU_ISSUE_H #define __RCU_ISSUE_H /** * @defgroup rcu_issue Command interpretation for the RCU FeeServer * This group describes the command interface to the RCU-like FeeServer ControlEngine. * * The issue method of the CE API expects the input either as encoded in * message buffer format or as a ControlEngine command. * The FEE API supports currently one DIM command channel of type char array. The RCU CE * treats the first 4 byte as a 32bit header word. * Note: The architecture of the ARM linux is little endian, which means that * the least significant byte comes first. * All feeserver commands start with 0xf in there most significant bits, anything else * will be treated as a BLOB encoded in the message buffer format. * @see dcscMsgBufferInterface/dcscMsgBufferInterface.h for detailed * description of the message buffer interface to the RCU motherboard. * FEESERVER_CMD is predefined as 0xf0000000 (dcscMsgBufferInterface/dcscMsgBufferInterface.h) * * @author Matthias Richter * @ingroup feesrv_ce */ /** * @name Layout of FeeServer command * The header of a FeeServer command has the following format:
 * Bit 32 - 28 | 27 - 24 | 23 - 16 | 15 -0 
 *     1 1 1 1   cmd id    sub id    parameter 
 *                                      ^------- 16 bit user parameter passed to the handler function 
 *                            ^-----------------  8 bit command sub id passed to the handler function 
 *                   ^--------------------------  4 bit command id switches to the handler function 
 *        ^-------------------------------------  4 bit code for FeeServer command 
 * 
* * A data block is following, its content depends on the specific command.
* The whole command is terminated by an end-marker, which also contains the version encoded in the * lower 16 bits. The CE issue handler always treats the last 4 bytes of the incoming command block as * the 32 bit trailer. The command @ref CE_RELAX_CMD_VERS_CHECK can be used to disable the check. * @ingroup rcu_issue */ /** * CE command ctrl sequence mask * @ingroup rcu_issue */ #define FEESERVER_CMD_MASK 0xf0000000 /** * the command id mask * @ingroup rcu_issue */ #define FEESERVER_CMD_ID_MASK 0x0f000000 /** * the command sub id mask * @ingroup rcu_issue */ #define FEESERVER_CMD_SUB_MASK 0x00ff0000 /** * the command parameter mask * @ingroup rcu_issue */ #define FEESERVER_CMD_PARAM_MASK 0x0000ffff /** * bit shift of general CE command ctrl sequence * @ingroup rcu_issue */ #define FEESERVER_CMD_BITSHIFT 28 /** * bit shift of the command id * @ingroup rcu_issue */ #define FEESERVER_CMD_ID_BITSHIFT 24 /** * bit shift of the command sub id * @ingroup rcu_issue */ #define FEESERVER_CMD_SUB_BITSHIFT 16 /** * bit shift of the parameter * @ingroup rcu_issue */ #define FEESERVER_CMD_PARAM_BTSHFT 0 /** * end marker mask * @ingroup rcu_issue */ #define CE_CMD_EM_MASK 0xffff0000 /** * end version mask * @ingroup rcu_issue */ #define CE_CMD_VS_MASK 0x0000ffff /** * version of this command set. * - 1: initial version * - 2: command set extension for configuration and RCU register access * - 3: further RCU memory access: AFL, ACL, Data Mem, Reset. Trigger * - 4: from CE 0.9 CE_GET_STATE and CE_GET_STATENAME added * - 5: RCU configuration and ACTEL commands re-worked. * RCU_READ_FW_VERSION added. * - 6: RCU_SYNC_SCLK_L1TTC added, flash commands corrected * - 7: Added commands to support RCU FW2 * @ingroup rcu_issue */ #define CE_CMD_VERSION 0x0007 /** * the end marker * @ingroup rcu_issue */ #define CE_CMD_ENDMARKER 0xdd330000 /** * the trailer composed out of end marker and version id * @ingroup rcu_issue */ #define CE_CMD_TAILER (CE_CMD_ENDMARKER | CE_CMD_VERSION) // FEESERVER_CMD is defined in dcscMsgBufferInterface.h if the file is part of a project // including the message buffer interface. If the latter header file is not available, // take the default value #ifndef FEESERVER_CMD #define FEESERVER_CMD 0xf0000000 #endif //FEESERVER_CMD /* command defines * the number of additional 32 bit data words is given in {} */ /****************************************************************************************/ /** * commandset UNUSED 0. * @ingroup rcu_issue */ #define FEESVR_CMD_UNUSED0 (0x00000000 | FEESERVER_CMD) /****************************************************************************************/ /** * @name Group 1: Commands for the ControlEngine. * @ingroup rcu_issue */ /** * ID of group 1. * 0xf1xxxxxx * @ingroup rcu_issue */ #define FEESERVER_CE_CMD (0x01000000 | FEESERVER_CMD) /** * set the maximum size for the command buffer debug print, by default set to 0. * payload: 1 32bit word * @ingroup rcu_issue */ #define CEDBG_SET_BUF_PRINT_SIZE (0x010000 | FEESERVER_CE_CMD) /** * turn on/off the update of the services. * parameter: 0x0 off, otherwise on * payload: 0 * @ingroup rcu_issue */ #define CEDBG_EN_SERVICE_UPDATE (0x030000 | FEESERVER_CE_CMD) /** * Force update of channels * parameter: name of channel * payload: 0 * @ingroup rcu_issue */ #define CE_FORCE_CH_UPDATE (0x040000 | FEESERVER_CE_CMD) /** * set the logging level (@ref rcu_ce_base_logging). * parameter: log level
* payload: 0 * @ingroup rcu_issue */ #define CE_SET_LOGGING_LEVEL (0x080000 | FEESERVER_CE_CMD) /** * Trigger transition for one of the state machines. * parameter: number of bytes in the payload
* payload: char buffer containing service name belonging to the state * machine followed by the action separated by a blank.
* return: none
* Note: defined in command set version 2
* @ingroup rcu_issue */ #define CE_TRIGGER_TRANSITION (0x0b0000 | FEESERVER_CE_CMD) /** * Terminating the FeeServer * parameter: none
* payload: 0 * @ingroup rcu_issue */ #define CE_TERMINATE (0x0c0000 | FEESERVER_CE_CMD) /** * Rebooting the computer * parameter: none
* payload: 0 * @ingroup rcu_issue */ #define CE_REBOOT (0x0d0000 | FEESVR_CMD_SHELL) /** * Set the sleep time between update cycles. * parameter: sleep time
* payload: 0 * @ingroup rcu_issue */ #define CE_UPDATE_SLEEP (0x0e0000 | FEESVR_CMD_SHELL) /** * A configure command for the FEE. * The command encapsulates and arbitrary sequence of other commands. The * 'Hardware address' (HW address) is a unique ID specifying the target * device/partition to receive the configuration command.
* The layout of registers, the memory sizes aso might be different between RCU * firmware versions. In order to adapt the CE to a firmware * version, different code books are used to define the memory and register * layout. Currently, there is no version number available in the RCU firmware * and the CE is therefor "hard-wired" to a certain firmware version.
* * parameter: number of words inside the block after the checksum, i.e. the * the total number of (including @ref FEE_VERIFICATION * and @ref FEE_CONFIGURE_END)
* payload:
* - 32 bit HW address, related to the ALTRO addressing
* bit 11-0 ALTRO address
* bit 15-12 Device: 0 - CE, 1 - RCU, 2 - FEC, 3 - Altro, 4 - Channel
* bit 31-16 configuration id to distinguish blocks to the same device/partition
* - 32 bit checksum for this configuration command * - first command of the block * - ... * - last configuration command of the block * - @ref FEE_VERIFICATION command * - @ref FEE_CONFIGURE_END command * * The @ref FEE_VERIFICATION command can be empty but is mandatory. If not empty * it is added to the list for the verification daemon.
* The @ref FEE_CONFIGURE_END command signals the end of the configuration for * a device/partition.
* return: the output of all the sub-commands
* Note: defined in command set version 2
* @ingroup rcu_issue */ #define FEE_CONFIGURE (0x200000 | FEESERVER_CE_CMD) /** * Device mask for @ref FEE_CONFIGURE command. * This is the mask for the device bits of the hardware address of the * @ref FEE_CONFIGURE command. * @ingroup rcu_issue */ #define FEE_CONFIGURE_HW_DEVICE 0xf000 /** * Altro address mask for @ref FEE_CONFIGURE command. * Mask for the ALTRO address branch part of the of the hardware address of the * @ref FEE_CONFIGURE command. * @ingroup rcu_issue */ #define FEE_CONFIGURE_HW_ALTRO_BRANCH 0x0800 /** * Altro address mask for @ref FEE_CONFIGURE command. * Mask for the ALTRO address FEC part of the of the hardware address of the * @ref FEE_CONFIGURE command. * @ingroup rcu_issue */ #define FEE_CONFIGURE_HW_ALTRO_FEC 0x0780 /** * Altro address mask for @ref FEE_CONFIGURE command. * Mask for the ALTRO address number part of the of the hardware address of the * @ref FEE_CONFIGURE command. * @ingroup rcu_issue */ #define FEE_CONFIGURE_HW_ALTRO_NO 0x0070 /** * Altro address mask for @ref FEE_CONFIGURE command. * Mask for the ALTRO address channel part of the of the hardware address of the * @ref FEE_CONFIGURE command. * @ingroup rcu_issue */ #define FEE_CONFIGURE_HW_ALTRO_CHANNEL 0x000f /** * Signal the end of the configuration for a device specified by the HW address. * The end of a configuration for a device/partition will cause it to change its state.
* parameter: ignored
* payload: 32 bit HW address as for the @ref FEE_CONFIGURE command
* result: none
* * Note: defined in command set version 2
* @ingroup rcu_issue */ #define FEE_CONFIGURE_END (0x210000 | FEESERVER_CE_CMD) /** * Specify a verification sequence. * The command can only occur inside a @ref FEE_CONFIGURE command and will be connected to * this. The verification daemon periodically checks the configuration with the help of * verification sequences. The daemon doesn't know about the operations of the verification * and neither the result. * It treats the sub-commands as normal CE commands and calculates the checksum from the * result.
* Note: This implies a modulation of the hardware when preparing the * verification command block.
*
* parameter: number of payload words excluding the 2 checksum words. If 0, no checksum words * are expected
* payload:
* - 32 bit checksum for this verification command block * - 32 bit checksum for the result of the verification sequence * - first command of the block * - ... * - last command of the block * * Note: An empty verification command (parameter zero) does not have any payload, not even * the checksums.
*
* return: the output of all the sub-commands
* * Note: defined in command set version 2
* @ingroup rcu_issue */ #define FEE_VERIFICATION (0x220000 | FEESERVER_CE_CMD) /** * Signal the need for external configuration data. * The command can only occur inside a @ref FEE_CONFIGURE command and will abort the interpretation * of the configuration sequence. The device will go into state @ref CONF_EXTERNAL and wait for a * closeConfExternal action. After this action the device is considered to be completely * configured and it wil go to state @ref STBY_CONFIGURED.
*
* parameter: lower 16 bit of the device HW address described in @ref FEE_CONFIGURE
* payload: none
* return: none
* * Note: defined in command set version 2
* @ingroup rcu_issue */ #define FEE_EXTERNAL_CONFIGURATION (0x230000 | FEESERVER_CE_CMD) /** * Same as the @ref FEE_CONFIGURE command, but size of block is stored in first * word of data block rather than in parameter. To be used if more than 16 bit * payload size is needed. * @ingroup rcu_issue */ #define FEE_CONFIGURE_32 (0x240000 | FEESERVER_CE_CMD) /** * Same as the @ref FEE_CONFIGURE command, but will not trigger any change of state. * @ingroup rcu_issue */ #define FEE_CONFIGURE_NOSTATE (0x250000 | FEESERVER_CE_CMD) /** * Same as the @ref FEE_CONFIGURE_END command, but will not trigger any change of state. * @ingroup rcu_issue */ #define FEE_CONFIGURE_END_NOSTATE (0x260000 | FEESERVER_CE_CMD) /** * Same as the @ref FEE_CONFIGURE_32 command, but will not trigger any change of state. * @ingroup rcu_issue */ #define FEE_CONFIGURE_32_NOSTATE (0x270000 | FEESERVER_CE_CMD) /****************************************************************************************/ /** * commandset UNUSED 2. * @ingroup rcu_issue */ #define FEESVR_CMD_UNUSED2 (0x02000000 | FEESERVER_CMD) /****************************************************************************************/ /** * @name Group 3: command set for the RCU * @ingroup rcu_issue */ /** * ID of group 3 * 0xf3xxxxxx * @ingroup rcu_issue */ #define FEESVR_CMD_RCU (0x03000000 | FEESERVER_CMD) /** * send the execution command to run the sequence written to rcu instruction memory. * parameter: 8 bit start address in the instruction memory
* payload: 0 * Note: The start address is available from command set version 2, in version 1 the parameter is just ignored
* @ingroup rcu_issue */ #define RCU_EXEC (0x010000 | FEESVR_CMD_RCU) /** * stop the execution of the RCU sequencer. * parameter: ignored
* payload: 0 * @ingroup rcu_issue */ #define RCU_STOP_EXEC (0x020000 | FEESVR_CMD_RCU) // the following commands allow to write a block of data to rcu instruction or pattern memory // the number of 32 bit words is given by the command parameter /** * write to rcu instruction memory. * parameter: number of 32 bit words in the payload
* payload: 32 bit data words * @ingroup rcu_issue */ #define RCU_WRITE_INSTRUCTION (0x030000 | FEESVR_CMD_RCU) /** * write to rcu instruction memory and send the execution command. * parameter: number of 32 bit words in the payload
* payload: 32 bit data words * @ingroup rcu_issue */ #define RCU_EXEC_INSTRUCTION (0x040000 | FEESVR_CMD_RCU) //No longer supported //#define RCU_WRITE_PATTERN8 (0x050000 | FEESVR_CMD_RCU) //#define RCU_WRITE_PATTERN16 (0x060000 | FEESVR_CMD_RCU) //#define RCU_WRITE_PATTERN32 (0x070000 | FEESVR_CMD_RCU) //#define RCU_WRITE_PATTERN10 (0x080000 | FEESVR_CMD_RCU) /** * read from rcu instruction memory. * parameter: number of 32 bit words to read
* payload: 0 * @ingroup rcu_issue */ #define RCU_READ_INSTRUCTION (0x090000 | FEESVR_CMD_RCU) //No longer supported //#define RCU_READ_PATTERN (0x0a0000 | FEESVR_CMD_RCU) // the following commands allow to read and write from/to an rcu memory location // parameter is a 16 bit address /** * read from rcu memory location. * parameter: 16 bit address
* payload: 0 * @ingroup rcu_issue */ #define RCU_READ_MEMORY (0x0b0000 | FEESVR_CMD_RCU) /** * write to rcu memory location. * parameter: 16 bit address
* payload: 1 32 bit word * @ingroup rcu_issue */ #define RCU_WRITE_MEMORY (0x0c0000 | FEESVR_CMD_RCU) /** * write to rcu result memory. * parameter: number of 32 bit words in the payload
* payload: 32 bit data words * @ingroup rcu_issue */ #define RCU_WRITE_RESULT (0x0d0000 | FEESVR_CMD_RCU) /** * read from rcu result memory. * parameter: number of 32 bit words to read
* payload: 0 * @ingroup rcu_issue */ #define RCU_READ_RESULT (0x0e0000 | FEESVR_CMD_RCU) /** * write block to rcu memory. * parameter: number of 32 bit words to write
* payload: the first 32 bit word of the payload is the address to write to, the 32 bit data follows * @ingroup rcu_issue */ #define RCU_WRITE_MEMBLOCK (0x100000 | FEESVR_CMD_RCU) /** * read block from rcu memory. * parameter: number of 32 bit words to read
* payload: address * @ingroup rcu_issue */ #define RCU_READ_MEMBLOCK (0x110000 | FEESVR_CMD_RCU) //No longer supported //#define RCU_READ_ERRST (0x120000 | FEESVR_CMD_RCU) /** * write the TRGCFG register of the RCU. * parameter: ignored
* payload: 32bit data (only bit 0 to 28 valid)
* result: none
* Note: defined in command set version 2
* @ingroup rcu_issue */ #define RCU_WRITE_TRGCFG (0x130000 | FEESVR_CMD_RCU) /** * read the TRGCFG register of the RCU. * parameter: ignored
* payload: none
* result: 32 bit register content
* Note: defined in command set version 2
* @ingroup rcu_issue */ #define RCU_READ_TRGCFG (0x140000 | FEESVR_CMD_RCU) /** * write the PMCFG register of the RCU. * Note:The PMCFG register is 20 bit wide. * parameter: ignored
* payload: 32bit data
* result: none
* Note: defined in command set version 2
* @ingroup rcu_issue */ #define RCU_WRITE_PMCFG (0x150000 | FEESVR_CMD_RCU) /** * read the PMCFG register of the RCU. * Note:The PMCFG register is 20 bit wide. * parameter: ignored
* payload: none
* result: 32 bit register content
* Note: defined in command set version 2
* @ingroup rcu_issue */ #define RCU_READ_PMCFG (0x160000 | FEESVR_CMD_RCU) /** * read the TRCNT register of the RCU. * parameter: ignored
* payload: none
* result: 32 bit register content
* Note: defined in command set version 3
* @ingroup rcu_issue */ #define RCU_READ_TRCNT (0x170000 | FEESVR_CMD_RCU) /** * write the AFL register of the RCU. * parameter: ignored
* payload: 32bit data
* result: none
* Note: defined in command set version 3
* @ingroup rcu_issue */ #define RCU_WRITE_AFL (0x180000 | FEESVR_CMD_RCU) /** * read the AFL register of the RCU. * parameter: ignored
* payload: none
* result: 32 bit register content
* Note: defined in command set version 3
* @ingroup rcu_issue */ #define RCU_READ_AFL (0x190000 | FEESVR_CMD_RCU) /** * write to rcu ACL memory. * parameter: number of 32 bit words in the payload
* payload: 32 bit data words
* Note: defined in command set version 3
* @ingroup rcu_issue */ #define RCU_WRITE_ACL (0x1a0000 | FEESVR_CMD_RCU) /** * read from rcu ACL memory. * parameter: number of 32 bit words to read
* payload: 0
* Note: defined in command set version 3
* @ingroup rcu_issue */ #define RCU_READ_ACL (0x1b0000 | FEESVR_CMD_RCU) /** * write to rcu HEADER memory. * parameter: number of 32 bit words in the payload
* payload: 32 bit data words
* Note: defined in command set version 3
* @ingroup rcu_issue */ #define RCU_WRITE_HEADER (0x1c0000 | FEESVR_CMD_RCU) /** * read from rcu HEADER memory. * parameter: number of 32 bit words to read
* payload: 0
* Note: defined in command set version 3
* @ingroup rcu_issue */ #define RCU_READ_HEADER (0x1d0000 | FEESVR_CMD_RCU) //No longer supported //#define RCU_CHECK_ERROR (0x200000 | FEESVR_CMD_RCU) //#define RCU_EN_AUTO_CHECK (0x210000 | FEESVR_CMD_RCU) //#define RCU_SET_ABM (0x220000 | FEESVR_CMD_RCU) //#define RCU_CHECK_VERSION (0x230000 | FEESVR_CMD_RCU) /** * Reset the FEE * parameter: 1 = only FECs, 2 = only RCU, global otherwise
* payload: 0
* result: none
* Note: defined in command set version 3
* Note 2: this command serves the GLB_RESET, FEC_RESET and * RCU_RESET operations of the RCU firmware
* @ingroup rcu_issue */ #define RCU_RESET (0x240000 | FEESVR_CMD_RCU) /** * Enable trigger source * parameter: 1 = L1_TTC, 2 = L1_I2C, L1_CMD otherwise
* payload: 0
* result: none
* Note: defined in command set version 3
* Note 2: this command serves the L1_CMD, L1_TTC and * L1_I2C operations of the RCU firmware
* @ingroup rcu_issue */ #define RCU_L1TRG_SELECT (0x250000 | FEESVR_CMD_RCU) /** * Send an L1 trigger (L1 operation of RCU firmware) * parameter: ignored
* payload: 0
* result: none
* Note: defined in command set version 3
* @ingroup rcu_issue */ #define RCU_SEND_L1_TRIGGER (0x260000 | FEESVR_CMD_RCU) /** * Read the RCU firmware version. * parameter: ignored
* payload: 0
* result: version id, 0 if no version info available
* Note: defined in command set version 4
* @ingroup rcu_issue */ #define RCU_READ_FW_VERSION (0x270000 | FEESVR_CMD_RCU) /** * Re-synchronize the SCLK with the next L1TTC trigger. * parameter: ignored
* payload: 0
* result: none
* Note: defined in command set version 4
* @ingroup rcu_issue */ #define RCU_SYNC_SCLK_L1TTC (0x280000 | FEESVR_CMD_RCU) //new in rcufw2 /** * write the TTC L1 Latency register. * Note:The register is 16 bit wide. * parameter: ignored
* payload: 32bit data
* result: none
* Note: defined in command set version 2
* @ingroup rcu_issue */ #define WRITE_TTC_L1_LATENCY (0x290000 | FEESVR_CMD_RCU) /** * write the TTC L1 message latency register. * Note:The register is 32 bit wide. * parameter: ignored
* payload: 32bit data
* result: none
* Note: defined in command set version 2
* @ingroup rcu_issue */ #define WRITE_TTC_L1_MSG_LATENCY (0x2A0000 | FEESVR_CMD_RCU) /** * write the ALTRO IF register. * Note:The register is 16 bit wide. * parameter: ignored
* payload: 32bit data
* result: none
* Note: defined in command set version 2
* @ingroup rcu_issue */ #define WRITE_ALTROIF (0x2B0000 | FEESVR_CMD_RCU) /** * write the RCU Readout mode register. * Note:The register is 4 bit wide. * parameter: ignored
* payload: 32bit data
* result: none
* Note: defined in command set version 2
* @ingroup rcu_issue */ #define WRITE_RDO_MOD (0x2C0000 | FEESVR_CMD_RCU) /** * read the TTC L1 Latency register. * parameter: ignored
* payload: none
* result: 32 bit register content
* Note: defined in command set version 7
* @ingroup rcu_issue */ #define READ_TTC_L1_LATENCY (0x2D0000 | FEESVR_CMD_RCU) /** * read the TTC L1 Message Latency register. * parameter: ignored
* payload: none
* result: 32 bit register content
* Note: defined in command set version 7
* @ingroup rcu_issue */ #define READ_TTC_L1_MSG_LATENCY (0x2E0000 | FEESVR_CMD_RCU) /** * read the ALTRO IF register. * parameter: ignored
* payload: none
* result: 32 bit register content
* Note: defined in command set version 7
* @ingroup rcu_issue */ #define READ_ALTROIF (0x2F0000 | FEESVR_CMD_RCU) /** * read the RCU Readout Module register. * parameter: ignored
* payload: none
* result: 32 bit register content
* Note: defined in command set version 7
* @ingroup rcu_issue */ #define READ_RDO_MOD (0x300000 | FEESVR_CMD_RCU) /** * write the TTC Control register. * Note:The ID register is 24 bit wide. * parameter: ignored
* payload: 32bit data
* result: none
* Note: defined in command set version 2
* @ingroup rcu_issue */ #define WRITE_TTCCONTROL (0x310000 | FEESVR_CMD_RCU) /** * read the TTC Control register. * parameter: ignored
* payload: none
* result: 32 bit register content
* Note: defined in command set version 7
* @ingroup rcu_issue */ #define READ_TTCCONTROL (0x320000 | FEESVR_CMD_RCU) /** * write the TTC ROI Config1 register. * Note:The ID register is 18 bit wide. * parameter: ignored
* payload: 32bit data
* result: none
* Note: defined in command set version 2
* @ingroup rcu_issue */ #define WRITE_TTC_ROICONFIG1 (0x330000 | FEESVR_CMD_RCU) /** * read the TTC ROI Config1 register. * parameter: ignored
* payload: none
* result: 32 bit register content
* Note: defined in command set version 7
* @ingroup rcu_issue */ #define READ_TTC_ROICONFIG1 (0x340000 | FEESVR_CMD_RCU) /** * write the TTC ROI Config2 register. * Note:The ID register is 18 bit wide. * parameter: ignored
* payload: 32bit data
* result: none
* Note: defined in command set version 2
* @ingroup rcu_issue */ #define WRITE_TTC_ROICONFIG2 (0x350000 | FEESVR_CMD_RCU) /** * read the TTC ROI Config2 register. * parameter: ignored
* payload: none
* result: 32 bit register content
* Note: defined in command set version 7
* @ingroup rcu_issue */ #define READ_TTC_ROICONFIG2 (0x360000 | FEESVR_CMD_RCU) /** * write the TTC L2 Latency register. * Note:The ID register is 32 bit wide. * parameter: ignored
* payload: 32bit data
* result: none
* Note: defined in command set version 2
* @ingroup rcu_issue */ #define WRITE_TTC_L2_LATENCY (0x370000 | FEESVR_CMD_RCU) /** * read the TTC L2 Latency register. * parameter: ignored
* payload: none
* result: 32 bit register content
* Note: defined in command set version 7
* @ingroup rcu_issue */ #define READ_TTC_L2_LATENCY (0x380000 | FEESVR_CMD_RCU) /** * write the TTC ROI Latency register. * Note:The ID register is 32 bit wide. * parameter: ignored
* payload: 32bit data
* result: none
* Note: defined in command set version 2
* @ingroup rcu_issue */ #define WRITE_TTC_ROILATENCY (0x390000 | FEESVR_CMD_RCU) /** * read the TTC ROI Latency register. * parameter: ignored
* payload: none
* result: 32 bit register content
* Note: defined in command set version 7
* @ingroup rcu_issue */ #define READ_TTC_ROILATENCY (0x400000 | FEESVR_CMD_RCU) /** * read the TTC PrePulseCounter register. * parameter: ignored
* payload: none
* result: 32 bit register content
* Note: defined in command set version 7
* @ingroup rcu_issue */ #define READ_TTC_PREPULSECOUNTER (0x410000 | FEESVR_CMD_RCU) /** * read the TTC BCID register. * parameter: ignored
* payload: none
* result: 32 bit register content
* Note: defined in command set version 7
* @ingroup rcu_issue */ #define READ_TTC_BCIDLOCAL (0x420000 | FEESVR_CMD_RCU) /** * read the TTC L0 Counter register. * parameter: ignored
* payload: none
* result: 32 bit register content
* Note: defined in command set version 7
* @ingroup rcu_issue */ #define READ_TTC_L0COUNTER (0x430000 | FEESVR_CMD_RCU) /** * read the TTC L1 Counter register. * parameter: ignored
* payload: none
* result: 32 bit register content
* Note: defined in command set version 7
* @ingroup rcu_issue */ #define READ_TTC_L1COUNTER (0x440000 | FEESVR_CMD_RCU) /** * read the TTC L1 MsgCounter register. * parameter: ignored
* payload: none
* result: 32 bit register content
* Note: defined in command set version 7
* @ingroup rcu_issue */ #define READ_TTC_L1MSGCOUNTER (0x450000 | FEESVR_CMD_RCU) /** * read the TTC L2 accept register. * parameter: ignored
* payload: none
* result: 32 bit register content
* Note: defined in command set version 7
* @ingroup rcu_issue */ #define READ_TTC_L2ACOUNTER (0x460000 | FEESVR_CMD_RCU) /** * read the TTC L2 reject register. * parameter: ignored
* payload: none
* result: 32 bit register content
* Note: defined in command set version 7
* @ingroup rcu_issue */ #define READ_TTC_L2RCOUNTER (0x470000 | FEESVR_CMD_RCU) /** * read the TTC module ROI register. * parameter: ignored
* payload: none
* result: 32 bit register content
* Note: defined in command set version 7
* @ingroup rcu_issue */ #define READ_TTC_ROICOUNTER (0x480000 | FEESVR_CMD_RCU) /** * read the ALTRO CFG1 register. * parameter: ignored
* payload: none
* result: 32 bit register content
* Note: defined in command set version 7
* @ingroup rcu_issue */ #define READ_ALTROCFG1 (0x490000 | FEESVR_CMD_RCU) /** * write the ALTRO CFG1 register of the RCU. * Note:The ID register is 16 bit wide. * parameter: ignored
* payload: 32bit data
* result: none
* Note: defined in command set version 2
* @ingroup rcu_issue */ #define WRITE_ALTROCFG1 (0x4A0000 | FEESVR_CMD_RCU) /** * read the ALTRO CFG2 register. * parameter: ignored
* payload: none
* result: 32 bit register content
* Note: defined in command set version 7
* @ingroup rcu_issue */ #define READ_ALTROCFG2 (0x4B0000 | FEESVR_CMD_RCU) /** * write the ALTRO CFG2 register of the RCU. * Note:The ID register is 16 bit wide. * parameter: ignored
* payload: 32bit data
* result: none
* Note: defined in command set version 2
* @ingroup rcu_issue */ #define WRITE_ALTROCFG2 (0x4C0000 | FEESVR_CMD_RCU) /** * read the RCU ID register. * parameter: ignored
* payload: none
* result: 32 bit register content
* Note: defined in command set version 7
* @ingroup rcu_issue */ #define READ_RCUID (0x4D0000 | FEESVR_CMD_RCU) /** * write the ID register of the RCU. * Note:The ID register is 9 bit wide. * parameter: ignored
* payload: 32bit data
* result: none
* Note: defined in command set version 2
* @ingroup rcu_issue */ #define WRITE_RCUID (0x4E0000 | FEESVR_CMD_RCU) /** * read from ALTRO Hitlist memory. * parameter: number of 32 bit words to read
* payload: 0
* Note: defined in command set version 7
* @ingroup rcu_issue */ #define READ_ALTRO_HLMEM (0x4F0000 | FEESVR_CMD_RCU) /** * write to ALTRO Hitlist memory. * parameter: number of 32 bit words in the payload
* payload: 32 bit data words
* Note: defined in command set version 7
* @ingroup rcu_issue */ #define WRITE_ALTRO_HLMEM (0x500000 | FEESVR_CMD_RCU) /** * write to ALTRO pedestal memory. * parameter: channel address (as in ALTRO manual)
* payload: 1024 10-bit values truncated into 342 32-bit word) (3 in each word)
* @ingroup rcu_issue */ #define RCU_WRITE_ALTRO_PEDMEM (0x510000 | FEESVR_CMD_RCU) //No longer supported //#define INIT_BUSY_BOX (0xF00000 | FEESVR_CMD_RCU) /** * Store Altro instructions in FeeServer memory. Use RCU_ALTRO_INSTRUCTION_EXECUTE * to actually write to Altros. Command assume payload is in pairs of 32-bit words, * where first word is
and second is . * parameter: number of 32 bit words in the payload (should be even number!)
* payload: 32 bit word address/data pairs
* @ingroup rcu_issue */ #define RCU_ALTRO_INSTRUCTION_STORE (0x520000 | FEESVR_CMD_RCU) /** * Write Altro instructions stored by RCU_ALTRO_INSTRUCTION_STORE to Altros. * parameter: none
* payload: none
* @ingroup rcu_issue */ #define RCU_ALTRO_INSTRUCTION_EXECUTE (0x530000 | FEESVR_CMD_RCU) /** * Clear Altro instructions stored by RCU_ALTRO_INSTRUCTION_STORE. * parameter: none
* payload: none
* @ingroup rcu_issue */ #define RCU_ALTRO_INSTRUCTION_CLEAR (0x540000 | FEESVR_CMD_RCU) /** * Copy Altro instructions stored by RCU_ALTRO_INSTRUCTION_STORE to file. * parameter: none
* payload: none
* @ingroup rcu_issue */ #define RCU_ALTRO_INSTRUCTION_WRITE_FILE (0x550000 | FEESVR_CMD_RCU) /** * Copy Altro instructions stored in file by RCU_ALTRO_INSTRUCTION_WRITE_FILE back to map. * parameter: none
* payload: none
* @ingroup rcu_issue */ #define RCU_ALTRO_INSTRUCTION_READ_FILE (0x560000 | FEESVR_CMD_RCU) /** * Turns off the front end cards for 4.0uSec. After the 4.0uSec the front end cards will be turned on same as the original configuration of active front end card list. * parameter: none
* payload: none
* @ingroup rcu_issue */ #define RCU_CONFGFEC (0x570000 | FEESVR_CMD_RCU) /** * Enables the RCU to switch off the FEC branch in case the interrupt signals * parameter: ignored
* payload: value to be written to register, i.e. 0, 1, 2 or 3
* @ingroup rcu_issue */ #define RCU_WRITE_EN_INT_BA (0x580000 | FEESVR_CMD_RCU) /** * Reads the register that configures the RCU to switch off the FEC branch in case the interrupt signals * parameter: ignored
* payload: none
* @ingroup rcu_issue */ #define RCU_READ_EN_INT_BA (0x590000 | FEESVR_CMD_RCU) /** * Store register configuration in FeeServer memory. Use REG_CFG_EXECUTE * to actually write to hardware. Command assume payload is in pairs of 32-bit words, * where first word is
and second is . * parameter: number of 32 bit words in the payload (should be even number!)
* payload: 32 bit word address/data pairs
* @ingroup rcu_issue */ #define REG_CFG_STORE (0x5A0000 | FEESVR_CMD_RCU) /** * Write register configuration stored by REG_CFG_STORE to hardware. * parameter: none
* payload: none
* @ingroup rcu_issue */ #define REG_CFG_EXECUTE (0x5B0000 | FEESVR_CMD_RCU) /** * Write register configuration stored by REG_CFG_STORE to hardware for single register. * parameter: none
* payload: 32 bit word register address to execute
* @ingroup rcu_issue */ #define REG_CFG_EXECUTE_SINGLE (0x5C0000 | FEESVR_CMD_RCU) /** * Clear register configuration stored by REG_CFG_STORE. * parameter: none
* payload: none
* @ingroup rcu_issue */ #define REG_CFG_CLEAR (0x5D0000 | FEESVR_CMD_RCU) /** * Copy register confiuration stored by REG_CFG_STORE to file. * parameter: none
* payload: none
* @ingroup rcu_issue */ #define REG_CFG_WRITE_FILE (0x5E0000 | FEESVR_CMD_RCU) /** * Copy register configuration stored in file by REG_CFG_WRITE_FILE back to map. * parameter: none
* payload: none
* @ingroup rcu_issue */ #define REG_CFG_READ_FILE (0x5F0000 | FEESVR_CMD_RCU) /** * Set the file name to be used for storing IMEM instructions. * parameter: number of 32-bit words.
* payload: 0-terminated string, has to be 32-bit words.
* @ingroup rcu_issue */ #define RCU_ALTRO_INSTRUCTION_FILE_NAME (0x600000 | FEESVR_CMD_RCU) /** * Set the file name to be used for storing REG_CFG instructions. * parameter: number of 32-bit words.
* payload: 0-terminated string, has to be 32-bit words.
* @ingroup rcu_issue */ #define REG_CFG_FILE_NAME (0x610000 | FEESVR_CMD_RCU) /****************************************************************************************/ /** * @name Group 4: command set for the RCU configuration. * The command group is implemented by DEV_ACTEL. * @ingroup rcu_issue */ /** * ID of group 4. * 0xf4xxxxxx * @ingroup rcu_issue */ #define FEESVR_CMD_RCUCONF (0x04000000 | FEESERVER_CMD) /** * write a configuration to the RCU FPGA * @ingroup rcu_issue */ #define RCU_WRITE_FPGA_CONF (0x010000 | FEESVR_CMD_RCUCONF) /** * read the configuration of the RCU FPGA * @ingroup rcu_issue */ #define RCU_READ_FPGA_CONF (0x020000 | FEESVR_CMD_RCUCONF) /** * write the configuration data to the Flash * @ingroup rcu_issue */ #define RCU_WRITE_FLASH (0x030000 | FEESVR_CMD_RCUCONF) /** * Let the Actel program the Xilinx FPGA from the Flash memory. * @ingroup rcu_issue */ #define RCU_INIT_CONF (0x040000 | FEESVR_CMD_RCUCONF) /** * erase the Flash memory * @ingroup rcu_issue */ #define RCU_ERASE_FLASH (0x050000 | FEESVR_CMD_RCUCONF) /** * Do an initial configuration with the given data * @ingroup rcu_issue */ #define RCU_WRITE_INITCONF (0x060000 | FEESVR_CMD_RCUCONF) /** * Do a scrubbing with the provided scrubbing data * @ingroup rcu_issue */ #define RCU_WRITE_SCRUBBING (0x070000 | FEESVR_CMD_RCUCONF) /** * Enable Scrubing * @ingroup rcu_issue */ #define RCU_WRITE_FRAMES (0x080000 | FEESVR_CMD_RCUCONF) /** * Enable the ACTEL automatic reconfiguration feature * parameter: The value to enable/disable automatic power up configuration (0x0 to set or 0x1to remove ) * @ingroup rcu_issue */ #define RCU_SET_AUTOCONF (0x0A0000 | FEESVR_CMD_RCUCONF) /** * Erase the Xilinx FPGA, if an old RCU FW is used (xxxx06), * this is necessary to access the Flash. * Sending this command also stops the automatic power up configuration. * @ingroup rcu_issue */ #define RCU_DELETE_XILINX (0x0B0000 | FEESVR_CMD_RCUCONF) /** * Set the OldMode register (0xBF02) to "0x01D" if the parameter 0x1 is given, * 0x0 as parameter removes the OldMode. * Has to be done when an old RCU firmware is used (xxxx06). * @ingroup rcu_issue */ #define RCU_SET_OLDMODE (0x0C0000 | FEESVR_CMD_RCUCONF) /** * Clear the Actel Errorregister 0xb101 * @ingroup rcu_issue */ #define ACTEL_CLEAR_ERRORREG (0x0D0000 | FEESVR_CMD_RCUCONF) /** * Clear the Actel Statusregisters * Registers cleared are: Status (0xb100), ErrorCount (0xb104), ErrorFrameNr (0xb105), FrameNr (0xb106), Cycles (0xb107) * @ingroup rcu_issue */ #define ACTEL_CLEAR_STATUSREGS (0x0E0000 | FEESVR_CMD_RCUCONF) #define ACTEL_RESET (0x0F0000 | FEESVR_CMD_RCUCONF) /****************************************************************************************/ /** * commandset UNUSED 5. * @ingroup rcu_issue */ #define FEESVR_CMD_UNUSED5 (0x05000000 | FEESERVER_CMD) /****************************************************************************************/ /** * commandset UNUSED 6. * @ingroup rcu_issue */ #define FEESVR_CMD_UNUSED6 (0x06000000 | FEESERVER_CMD) /****************************************************************************************/ /** * @name Group 7: shell execution. * * @ingroup rcu_issue */ /** * ID of group 7. * 0xf7xxxxxx * @ingroup rcu_issue */ #define FEESVR_CMD_SHELL (0x07000000 | FEESERVER_CMD) /** * execute a script/program on the DCS board. * parameter: length of the string in the payload
* payload: char buffer containing shell command and arguments
*
* @ingroup rcu_issue */ #define FEESRV_EXECUTE_PGM (0x010000 | FEESVR_CMD_SHELL) /** * Send a shell script down and execute it. * The char buffer will be treated as a script and executed with sh (Note: not * bash which might be unavailable on the embedded system). * An additional zero terminated string containing the command line arguments can preceed * the script. The length is specified as parameter.
* parameter: length of the command line arguments in byte including a terminating 0
* Note: without additional command line arguments, the parameter has to be zero.
* payload: char buffer containing the command line arguments and the shell script
* Note: This command can not be part of a sequence, i.e. can only be sent as a single * command.
* *
* @ingroup rcu_issue */ #define FEESRV_EXECUTE_SCRIPT (0x020000 | FEESVR_CMD_SHELL) /** * Send a binary program to the DCS board and execute it. * An additional zero terminated string containing the command line arguments can preceed * the program. The length is specified as parameter.
* parameter: length of the command line arguments in byte including a terminating 0
* payload: char buffer containing the command line arguments and the binary program
* Note: This command can not be part of a sequence, i.e. can only be sent as a single * command.
*
* @ingroup rcu_issue */ #define FEESRV_BINARY_PGM (0x030000 | FEESVR_CMD_SHELL) /** * Send an rcu-sh script down and execute it through rcu-sh interpreter. * An additional zero terminated string containing the command line arguments can preceed * the script. The length is specified as parameter.
* parameter: length of the command line arguments in byte including a terminating 0
* Note: without additional command line arguments, the parameter has to be zero.
* payload: char buffer containing the command line arguments and the rcu-sh script
* Note: This command can not be part of a sequence, i.e. can only be sent as a single * command.
* * @ingroup rcu_issue */ #define FEESRV_RCUSH_SCRIPT (0x040000 | FEESVR_CMD_SHELL) /****************************************************************************************/ /** * commandset UNUSED 8. * @ingroup rcu_issue */ #define FEESVR_CMD_UNUSED8 (0x08000000 | FEESERVER_CMD) /****************************************************************************************/ /** * command set for the CALIBRATION PULSER CE. * @ingroup rcu_issue */ #define FEESVR_CMD_CPULSER (0x09000000 | FEESERVER_CMD) #define CPULSER_WRITE_TTC_CONTROL (0x010000 | FEESVR_CMD_CPULSER) #define CPULSER_TOGGLE_TTC_RESET (0x020000 | FEESVR_CMD_CPULSER) #define CPULSER_WRITE_TTC_ROICONFIG1 (0x030000 | FEESVR_CMD_CPULSER) #define CPULSER_WRITE_TTC_ROICONFIG2 (0x040000 | FEESVR_CMD_CPULSER) #define CPULSER_TOGGLE_TTC_RESETCOUNTER (0x050000 | FEESVR_CMD_CPULSER) #define CPULSER_TOGGLE_TTC_ISSUETESTMODE (0x060000 | FEESVR_CMD_CPULSER) #define CPULSER_WRITE_TTC_L1LATENCY (0x070000 | FEESVR_CMD_CPULSER) #define CPULSER_WRITE_TTC_L2LATENCY (0x080000 | FEESVR_CMD_CPULSER) #define CPULSER_WRITE_TTC_ROILATENCY (0x090000 | FEESVR_CMD_CPULSER) #define CPULSER_WRITE_TTC_L1MSGLATENCY (0x0A0000 | FEESVR_CMD_CPULSER) #define CPULSER_WRITE_CONTROL (0x0B0000 | FEESVR_CMD_CPULSER) #define CPULSER_WRITE_FINEDELAY (0x0C0000 | FEESVR_CMD_CPULSER) #define CPULSER_WRITE_COARSEDELAY (0x0D0000 | FEESVR_CMD_CPULSER) #define CPULSER_WRITE_CHANNEL0 (0x0E0000 | FEESVR_CMD_CPULSER) #define CPULSER_WRITE_CHANNEL1 (0x0F0000 | FEESVR_CMD_CPULSER) #define CPULSER_WRITE_AMPLITUDE (0x100000 | FEESVR_CMD_CPULSER) #define CPULSER_WRITE_PULSESHAPE (0x110000 | FEESVR_CMD_CPULSER) #define CPULSER_WRITE_PULSERCONF (0x120000 | FEESVR_CMD_CPULSER) #define CPULSER_WRITE_INSTRUCTIONREG (0x130000 | FEESVR_CMD_CPULSER) #define CPULSER_TOGGLE_REMOTERESET (0x140000 | FEESVR_CMD_CPULSER) #define CPULSER_TOGGLE_ALLCHANNELSON (0x150000 | FEESVR_CMD_CPULSER) #define CPULSER_TOGGLE_ALLCHANNELSOFF (0x160000 | FEESVR_CMD_CPULSER) #define CPULSER_TOGGLE_REMOTE (0x170000 | FEESVR_CMD_CPULSER) #define CPULSER_TOGGLE_LOCAL (0x180000 | FEESVR_CMD_CPULSER) #define CPULSER_TOGGLE_GLOBALRESET (0x190000 | FEESVR_CMD_CPULSER) #define CPULSER_TOGGLE_TESTTRIGGER (0x1A0000 | FEESVR_CMD_CPULSER) #define CPULSER_ARM_SYNC (0x1B0000 | FEESVR_CMD_CPULSER) /****************************************************************************************/ /** * commandset UNUSED A. * @ingroup rcu_issue */ #define FEESVR_CMD_UNUSEDA (0x0a000000 | FEESERVER_CMD) /****************************************************************************************/ /** * command set for the PHOS CE. * @ingroup rcu_issue */ #define FEESVR_CMD_PHOS (0x0b000000 | FEESERVER_CMD) /** * Set APD values for FEC. * parameter: FEC number 0-31
* payload: 32 __32 values contning APD values. * Note: Values must be encoded with Hamming code.
*
* @ingroup rcu_issue */ #define PHOS_APD_INIT (0x010000 | FEESVR_CMD_PHOS) /****************************************************************************************/ /** * command set for the BUSYBOX CE. * @ingroup rcu_issue */ #define FEESVR_CMD_BB (0x0c000000 | FEESERVER_CMD) #define BB_INIT (0x010000 | FEESVR_CMD_BB) #define INIT_BUSY_BOX (0x010000 | FEESVR_CMD_BB) //Depricated #define BB_WRITE_STATUS (0x020000 | FEESVR_CMD_BB) #define BB_WRITE_RXMF (0x030000 | FEESVR_CMD_BB) #define BB_WRITE_RRTO (0x040000 | FEESVR_CMD_BB) #define BB_WRITE_FM (0x050000 | FEESVR_CMD_BB) #define BB_WRITE_FSMH (0x060000 | FEESVR_CMD_BB) #define BB_WRITE_FEEBA (0x070000 | FEESVR_CMD_BB) #define BB_WRITE_L0TTO (0x080000 | FEESVR_CMD_BB) #define BB_WRITE_L0_TIMEOUT (0x080000 | FEESVR_CMD_BB) //Depricated #define BB_WRITE_TX (0x090000 | FEESVR_CMD_BB) #define BB_WRITE_TTC_CONTROL0 (0x0a0000 | FEESVR_CMD_BB) #define BB_WRITE_TTC_CONTROL1 (0x0b0000 | FEESVR_CMD_BB) #define BB_WRITE_TTC_TMR (0x0c0000 | FEESVR_CMD_BB) #define BB_WRITE_TTC_L0L (0x0d0000 | FEESVR_CMD_BB) #define BB_WRITE_TTC_BCIDO (0x0e0000 | FEESVR_CMD_BB) #define BB_FIRMWARE_RESET (0x0f0000 | FEESVR_CMD_BB) #define BB_WRITE_TTC_L1L (0x100000 | FEESVR_CMD_BB) #define BB_WRITE_TRIGMODE (0x110000 | FEESVR_CMD_BB) /****************************************************************************************/ /** * command set for the LASER CE. * @ingroup rcu_issue */ #define FEESVR_CMD_LASER (0x0D000000 | FEESERVER_CMD) #define LASER_WRITE_MODEFREQVAL (0x010000 | FEESVR_CMD_LASER) #define LASER_WRITE_A_FLASHSTARTTIME (0x020000 | FEESVR_CMD_LASER) #define LASER_WRITE_A_FLASHENDTIME (0x030000 | FEESVR_CMD_LASER) #define LASER_WRITE_C_FLASHSTARTTIME (0x040000 | FEESVR_CMD_LASER) #define LASER_WRITE_C_FLASHENDTIME (0x050000 | FEESVR_CMD_LASER) #define LASER_WRITE_L0REQUESTTIME (0x070000 | FEESVR_CMD_LASER) #define LASER_WRITE_L0RETURNWINDOWSTART (0x080000 | FEESVR_CMD_LASER) #define LASER_WRITE_L0RETURNWINDOWSTOP (0x090000 | FEESVR_CMD_LASER) #define LASER_WRITE_A_QSWITCHSTART (0x0A0000 | FEESVR_CMD_LASER) #define LASER_WRITE_A_QSWITCHSTOP (0x0B0000 | FEESVR_CMD_LASER) #define LASER_WRITE_C_QSWITCHSTART (0x330000 | FEESVR_CMD_LASER) #define LASER_WRITE_C_QSWITCHSTOP (0x340000 | FEESVR_CMD_LASER) #define LASER_WRITE_RUNMODE (0x0C0000 | FEESVR_CMD_LASER) #define LASER_WRITE_SAMPLECLOCKDIVIDER (0x0D0000 | FEESVR_CMD_LASER) #define LASER_WRITE_TRIGGERCONFIGURATION1 (0x0E0000 | FEESVR_CMD_LASER) #define LASER_WRITE_TRIGGERCONFIGURATION2 (0x0F0000 | FEESVR_CMD_LASER) #define LASER_WRITE_TTC_CONTROL (0x110000 | FEESVR_CMD_LASER) #define LASER_TOGGLE_TTC_RESET (0x120000 | FEESVR_CMD_LASER) #define LASER_WRITE_TTC_ROICONFIG1 (0x130000 | FEESVR_CMD_LASER) #define LASER_WRITE_TTC_ROICONFIG2 (0x140000 | FEESVR_CMD_LASER) #define LASER_TOGGLE_TTC_RESETCOUNTER (0x150000 | FEESVR_CMD_LASER) #define LASER_TOGGLE_TTC_ISSUETESTMODE (0x160000 | FEESVR_CMD_LASER) #define LASER_WRITE_TTC_L1LATENCY (0x170000 | FEESVR_CMD_LASER) #define LASER_WRITE_TTC_L2LATENCY (0x180000 | FEESVR_CMD_LASER) #define LASER_WRITE_TTC_ROILATENCY (0x190000 | FEESVR_CMD_LASER) #define LASER_WRITE_TTC_L1MSGLATENCY (0x1A0000 | FEESVR_CMD_LASER) #define LASER_SET_A_FLASHSTARTTIME (0x1B0000 | FEESVR_CMD_LASER) #define LASER_SET_A_FLASHENDTIME (0x1C0000 | FEESVR_CMD_LASER) #define LASER_SET_C_FLASHSTARTTIME (0x1D0000 | FEESVR_CMD_LASER) #define LASER_SET_C_FLASHENDTIME (0x1E0000 | FEESVR_CMD_LASER) #define LASER_SET_L0REQUESTTIME (0x200000 | FEESVR_CMD_LASER) #define LASER_SET_L0RETURNWINDOWSTART (0x210000 | FEESVR_CMD_LASER) #define LASER_SET_L0RETURNWINDOWEND (0x220000 | FEESVR_CMD_LASER) #define LASER_SET_A_QSWITCHSTART (0x230000 | FEESVR_CMD_LASER) #define LASER_SET_A_QSWITCHEND (0x240000 | FEESVR_CMD_LASER) #define LASER_SET_C_QSWITCHSTART (0x350000 | FEESVR_CMD_LASER) #define LASER_SET_C_QSWITCHEND (0x360000 | FEESVR_CMD_LASER) #define LASER_CLEAR_COUNTERS (0x250000 | FEESVR_CMD_LASER) #define LASER_ENABLE_WARMUP (0x260000 | FEESVR_CMD_LASER) #define LASER_DISABLE_WARMUP (0x270000 | FEESVR_CMD_LASER) #define LASER_ENABLE_C (0x280000 | FEESVR_CMD_LASER) #define LASER_DISABLE_C (0x290000 | FEESVR_CMD_LASER) #define LASER_ENABLE_A (0x2A0000 | FEESVR_CMD_LASER) #define LASER_DISABLE_A (0x2B0000 | FEESVR_CMD_LASER) #define LASER_CLEAR_SOD (0x2C0000 | FEESVR_CMD_LASER) #define LASER_ARM_SYNC (0x2D0000 | FEESVR_CMD_LASER) #define LASER_WRITE_MAXNUMBEROFFLASHEVENTS (0x300000 | FEESVR_CMD_LASER) #define LASER_WRITE_NUMBEROFEVENTSINBURST (0x310000 | FEESVR_CMD_LASER) #define LASER_WRITE_ENABLES (0x320000 | FEESVR_CMD_LASER) /****************************************************************************************/ /** * command set for the TOR CE. * @ingroup rcu_issue */ #define FEESVR_CMD_TOR (0x0e000000 | FEESERVER_CMD) #define WRITE_TRIG0_PROGDELAY (0x010000 | FEESVR_CMD_TOR) #define WRITE_TRIG0_PROGRATEHIGH (0x020000 | FEESVR_CMD_TOR) #define WRITE_TRIG0_PROGRATELOW (0x030000 | FEESVR_CMD_TOR) #define WRITE_TRIG0_SIGNATURE (0x040000 | FEESVR_CMD_TOR) #define WRITE_TRIG0_OPTIONCODE (0x050000 | FEESVR_CMD_TOR) #define WRITE_TRIG0_MESSAGEHEADER (0x060000 | FEESVR_CMD_TOR) #define WRITE_TRIG1_PROGDELAY (0x070000 | FEESVR_CMD_TOR) #define WRITE_TRIG1_PROGRATEHIGH (0x080000 | FEESVR_CMD_TOR) #define WRITE_TRIG1_PROGRATELOW (0x090000 | FEESVR_CMD_TOR) #define WRITE_TRIG1_SIGNATURE (0x0A0000 | FEESVR_CMD_TOR) #define WRITE_TRIG1_OPTIONCODE (0x0B0000 | FEESVR_CMD_TOR) #define WRITE_TRIG1_MESSAGEHEADER (0x0C0000 | FEESVR_CMD_TOR) #define WRITE_TRIG1M_PROGDELAY (0x0D0000 | FEESVR_CMD_TOR) #define WRITE_TRIG1M_PROGRATEHIGH (0x0E0000 | FEESVR_CMD_TOR) #define WRITE_TRIG1M_PROGRATELOW (0x0F0000 | FEESVR_CMD_TOR) #define WRITE_TRIG1M_SIGNATURE (0x100000 | FEESVR_CMD_TOR) #define WRITE_TRIG1M_OPTIONCODE (0x110000 | FEESVR_CMD_TOR) #define WRITE_TRIG1M_MESSAGEHEADER (0x120000 | FEESVR_CMD_TOR) #define WRITE_TRIG1H_PROGDELAY (0x130000 | FEESVR_CMD_TOR) #define WRITE_TRIG1H_PROGRATEHIGH (0x140000 | FEESVR_CMD_TOR) #define WRITE_TRIG1H_PROGRATELOW (0x150000 | FEESVR_CMD_TOR) #define WRITE_TRIG1H_SIGNATURE (0x160000 | FEESVR_CMD_TOR) #define WRITE_TRIG1H_OPTIONCODE (0x170000 | FEESVR_CMD_TOR) #define WRITE_TRIG1H_MESSAGEHEADER (0x180000 | FEESVR_CMD_TOR) #define WRITE_L1L_THRESHOLD (0x190000 | FEESVR_CMD_TOR) #define WRITE_L1M_THRESHOLD (0x1A0000 | FEESVR_CMD_TOR) #define WRITE_L1H_THRESHOLD (0x1B0000 | FEESVR_CMD_TOR) #define WRITE_L0TRIGGERMASK_12 (0x1C0000 | FEESVR_CMD_TOR) #define WRITE_L0TRIGGERMASK_34 (0x1D0000 | FEESVR_CMD_TOR) #define WRITE_L0TRIGGERMASK_5 (0x1E0000 | FEESVR_CMD_TOR) #define WRITE_CTRL_RESERVE_R (0x1F0000 | FEESVR_CMD_TOR) /****************************************************************************************/ /** * command set for the GATE PULSER CE. * @ingroup rcu_issue */ #define FEESVR_CMD_GPULSER (0x0f000000 | FEESERVER_CMD) #define GPULSER_WRITE_TTC_CONTROL (0x010000 | FEESVR_CMD_GPULSER) #define GPULSER_TOGGLE_TTC_RESET (0x020000 | FEESVR_CMD_GPULSER) #define GPULSER_WRITE_TTC_ROICONFIG1 (0x030000 | FEESVR_CMD_GPULSER) #define GPULSER_WRITE_TTC_ROICONFIG2 (0x040000 | FEESVR_CMD_GPULSER) #define GPULSER_TOGGLE_TTC_RESETCOUNTER (0x050000 | FEESVR_CMD_GPULSER) #define GPULSER_TOGGLE_TTC_ISSUETESTMODE (0x060000 | FEESVR_CMD_GPULSER) #define GPULSER_WRITE_TTC_L1LATENCY (0x070000 | FEESVR_CMD_GPULSER) #define GPULSER_WRITE_TTC_L2LATENCY (0x080000 | FEESVR_CMD_GPULSER) #define GPULSER_WRITE_TTC_ROILATENCY (0x090000 | FEESVR_CMD_GPULSER) #define GPULSER_WRITE_TTC_L1MSGLATENCY (0x0A0000 | FEESVR_CMD_GPULSER) #define GPULSER_TOGGLE_RESET (0x0B0000 | FEESVR_CMD_GPULSER) #define GPULSER_TOGGLE_GLOBAL_RESET (0x0C0000 | FEESVR_CMD_GPULSER) #define GPULSER_WRITE_CONFREG (0x0D0000 | FEESVR_CMD_GPULSER) #define GPULSER_ARM_SYNC (0x0E0000 | FEESVR_CMD_GPULSER) #define GPULSER_WRITE_DIVRATIO (0x0F0000 | FEESVR_CMD_GPULSER) #define GPULSER_WRITE_MODE (0x100000 | FEESVR_CMD_GPULSER) #define GPULSER_WRITE_PULSEWIDTH (0x110000 | FEESVR_CMD_GPULSER) #define GPULSER_WRITE_MASKCRATE1 (0x120000 | FEESVR_CMD_GPULSER) #define GPULSER_WRITE_MASKCRATE2 (0x130000 | FEESVR_CMD_GPULSER) #define GPULSER_WRITE_MASKCRATE3 (0x140000 | FEESVR_CMD_GPULSER) #define GPULSER_WRITE_MASKCRATE4 (0x150000 | FEESVR_CMD_GPULSER) #define GPULSER_WRITE_MASKCRATE5 (0x160000 | FEESVR_CMD_GPULSER) #define GPULSER_WRITE_MASKCRATE6 (0x170000 | FEESVR_CMD_GPULSER) /*******************************************************************************************/ #endif //__RCU_ISSUE_H'