Belle II Software
release-05-01-25
copper.h
1
#ifndef _COPPER_H_
2
#define _COPPER_H_
3
4
#define COPPER_DRIVER_HEADER_MAGIC 0x7FFF0008
5
#define COPPER_DRIVER_FOOTER_MAGIC 0x7FFF0009
6
7
struct
copper_header
{
8
int
magic;
9
int
event_number;
10
int
subsys;
11
int
crate;
12
int
slot;
13
unsigned
int
ttrx[2];
14
};
15
16
struct
copper_footer
{
17
int
chksum_xor;
18
int
magic;
19
};
20
21
#ifndef _LINUX_IOCTL_H
22
#include <linux/ioctl.h>
23
#endif
24
25
int
peek_next_event_size(
void
);
26
int
shift_next_event_size(
void
);
27
28
/* register positions */
29
#define COPPER_FF_STA 0x00000000 // COPPER Event FIFO Status
30
#define COPPER_CONF_WA_AE 0x00000010 // COPPER Event FIFO Ach Almost Empty
31
#define COPPER_CONF_WB_AE 0x00000014 // COPPER Event FIFO Bch Almost Empty
32
#define COPPER_CONF_WC_AE 0x00000018 // COPPER Event FIFO Cch Almost Empty
33
#define COPPER_CONF_WD_AE 0x0000001C // COPPER Event FIFO Dch Almost Empty
34
#define COPPER_CONF_WA_FF 0x00000020 // COPPER Event FIFO Ach Defined Quantity
35
#define COPPER_CONF_WB_FF 0x00000024 // COPPER Event FIFO Bch Defined Quantity
36
#define COPPER_CONF_WC_FF 0x00000028 // COPPER Event FIFO Cch Defined Quantity
37
#define COPPER_CONF_WD_FF 0x0000002C // COPPER Event FIFO Dch Defined Quantity
38
#define COPPER_CONF_WA_AF 0x00000030 // COPPER Event FIFO Ach Almost Full
39
#define COPPER_CONF_WB_AF 0x00000034 // COPPER Event FIFO Bch Almost Full
40
#define COPPER_CONF_WC_AF 0x00000038 // COPPER Event FIFO Cch Almost Full
41
#define COPPER_CONF_WD_AF 0x0000003C // COPPER Event FIFO Dch Almost Full
42
#define COPPER_FF_RST 0x00000050 // COPPER Event FIFO & FINESSE Soft Reset
43
#define COPPER_FINESSE_STA 0x00000054 // FINESSE Status
44
#define COPPER_ALMFULL_ENB 0x00000058 // COPPER Almost Full Flag Enable
45
#define COPPER_VERSION 0x0000005C // COPPER firmware version
46
#define COPPER_TRGCM 0x00000060 // COPPER Trigger Command
47
#define COPPER_TRG_LENG 0x00000064 // COPPER Trigger Interval
48
#define COPPER_LEF_READSEL 0x00000068 // Length FIFO Read Select
49
#define COPPER_LEF_TOTAL 0x0000006C // Length FIFO Total Data
50
#define COPPER_LEF_AB 0x00000080 // COPPER Length FIFO A&Bch Data
51
#define COPPER_LEF_CD 0x00000084 // COPPER Length FIFO C&Dch Data
52
#define COPPER_LEF_STA 0x00000088 // COPPER Length FIFO Status
53
#define COPPER_LEF_WA_FF 0x00000090 // COPPER Length FIFO Ach Defined Quantity
54
#define COPPER_LEF_WB_FF 0x00000094 // COPPER Length FIFO Bch Defined Quantity
55
#define COPPER_LEF_WC_FF 0x00000098 // COPPER Length FIFO Cch Defined Quantity
56
#define COPPER_LEF_WD_FF 0x0000009C // COPPER Length FIFO Dch Defined Quantity
57
#define COPPER_LEF_WA_AF 0x000000A0 // COPPER Length FIFO Ach Almost Full
58
#define COPPER_LEF_WB_AF 0x000000A4 // COPPER Length FIFO Bch Almost Full
59
#define COPPER_LEF_WC_AF 0x000000A8 // COPPER Length FIFO Cch Almost Full
60
#define COPPER_LEF_WD_AF 0x000000AC // COPPER Length FIFO Dch Almost Full
61
#define COPPER_INT_STA 0x000000B0 // COPPER Interrupt Status
62
#define COPPER_INT_MASK 0x000000B4 // COPPER Interrupt Mask
63
#define COPPER_FF_RW 0x000000B8 // COPPER Event FIFO Single Read/Write Control
64
#define COPPER_INT_FACTOR 0x000000BC // COPPER Interruption Factor Reg.
65
#define COPPER_FF_WA 0x00000100 // COPPER Event FIFO Ach Single Write
66
#define COPPER_FF_WB 0x00000104 // COPPER Event FIFO Bch Single Write
67
#define COPPER_FF_WC 0x00000108 // COPPER Event FIFO Cch Single Write
68
#define COPPER_FF_WD 0x0000010C // COPPER Event FIFO Dch Single Write
69
#define COPPER_FF_RA 0x00000110 // COPPER Event FIFO Ach Single Read
70
#define COPPER_FF_RB 0x00000114 // COPPER Event FIFO Bch Single Read
71
#define COPPER_FF_RC 0x00000118 // COPPER Event FIFO Cch Single Read
72
#define COPPER_FF_RD 0x0000011C // COPPER Event FIFO Dch Single Read
73
#define COPPER_FF_DMA 0x00400000 // Event FIFO DMA Read Reg.
74
75
// 2005/01/17 Append
76
#define COPPER_EWRP_A 0x00000140 // COPPER Event FIFO Ach Read/Write Pointer
77
#define COPPER_EWRP_B 0x00000144 // COPPER Event FIFO Bch Read/Write Pointer
78
#define COPPER_EWRP_C 0x00000148 // COPPER Event FIFO Cch Read/Write Pointer
79
#define COPPER_EWRP_D 0x0000014C // COPPER Event FIFO Dch Read/Write Pointer
80
81
#define COPPER_WEA_COUNTER 0x00000150 // FINESSE Ach WE Counter
82
#define COPPER_WEB_COUNTER 0x00000154 // FINESSE Bch WE Counter
83
#define COPPER_WEC_COUNTER 0x00000158 // FINESSE Cch WE Counter
84
#define COPPER_WED_COUNTER 0x0000015C // FINESSE Dch WE Counter
85
86
#define COPPER_LWRA_DMA 0x00000160 // COPPER Length FIFO Ach Read/Write Pointer for DMA
87
#define COPPER_LWRB_DMA 0x00000164 // COPPER Length FIFO Bch Read/Write Pointer for DMA
88
#define COPPER_LWRC_DMA 0x00000168 // COPPER Length FIFO Cch Read/Write Pointer for DMA
89
#define COPPER_LWRD_DMA 0x0000016C // COPPER Length FIFO Dch Read/Write Pointer for DMA
90
91
#define COPPER_DMA_TRANS 0x00000170 // COPPER DMA Counter
92
#define COPPER_DMA_TS_ENB 0x00000174 // COPPER DMA Counter Control
93
94
#define COPPER_RW_DEBUG 0x000000FC // Memory for Debug
95
96
/* alias */
97
98
#define COPPER_LEF_WA_THR COPPER_LEF_WA_FF
99
#define COPPER_LEF_WB_THR COPPER_LEF_WB_FF
100
#define COPPER_LEF_WC_THR COPPER_LEF_WC_FF
101
#define COPPER_LEF_WD_THR COPPER_LEF_WD_FF
102
103
/* ioctl cmds */
104
105
#define COPPER_MAGIC 0xdf
106
107
#define CPRIOGET_FF_STA _IOR(COPPER_MAGIC, COPPER_FF_STA, sizeof(unsigned int))
108
#define CPRIOGET_CONF_WA_AE _IOR(COPPER_MAGIC, COPPER_CONF_WA_AE, sizeof(unsigned int))
109
#define CPRIOGET_CONF_WB_AE _IOR(COPPER_MAGIC, COPPER_CONF_WB_AE, sizeof(unsigned int))
110
#define CPRIOGET_CONF_WC_AE _IOR(COPPER_MAGIC, COPPER_CONF_WC_AE, sizeof(unsigned int))
111
#define CPRIOGET_CONF_WD_AE _IOR(COPPER_MAGIC, COPPER_CONF_WD_AE, sizeof(unsigned int))
112
#define CPRIOGET_CONF_WA_FF _IOR(COPPER_MAGIC, COPPER_CONF_WA_FF, sizeof(unsigned int))
113
#define CPRIOGET_CONF_WB_FF _IOR(COPPER_MAGIC, COPPER_CONF_WB_FF, sizeof(unsigned int))
114
#define CPRIOGET_CONF_WC_FF _IOR(COPPER_MAGIC, COPPER_CONF_WC_FF, sizeof(unsigned int))
115
#define CPRIOGET_CONF_WD_FF _IOR(COPPER_MAGIC, COPPER_CONF_WD_FF, sizeof(unsigned int))
116
#define CPRIOGET_CONF_WA_AF _IOR(COPPER_MAGIC, COPPER_CONF_WA_AF, sizeof(unsigned int))
117
#define CPRIOGET_CONF_WB_AF _IOR(COPPER_MAGIC, COPPER_CONF_WB_AF, sizeof(unsigned int))
118
#define CPRIOGET_CONF_WC_AF _IOR(COPPER_MAGIC, COPPER_CONF_WC_AF, sizeof(unsigned int))
119
#define CPRIOGET_CONF_WD_AF _IOR(COPPER_MAGIC, COPPER_CONF_WD_AF, sizeof(unsigned int))
120
#define CPRIOGET_FF_RST _IOR(COPPER_MAGIC, COPPER_FF_RST, sizeof(unsigned int))
121
#define CPRIOGET_FINESSE_STA _IOR(COPPER_MAGIC, COPPER_FINESSE_STA, sizeof(unsigned int))
122
#define CPRIOGET_ALMFULL_ENB _IOR(COPPER_MAGIC, COPPER_ALMFULL_ENB, sizeof(unsigned int))
123
#define CPRIOGET_VERSION _IOR(COPPER_MAGIC, COPPER_VERSION, sizeof(unsigned int))
124
#define CPRIOGET_TRGCM _IOR(COPPER_MAGIC, COPPER_TRGCM, sizeof(unsigned int))
125
#define CPRIOGET_TRG_LENG _IOR(COPPER_MAGIC, COPPER_TRG_LENG, sizeof(unsigned int))
126
#define CPRIOGET_LEF_READSEL _IOR(COPPER_MAGIC, COPPER_LEF_READSEL, sizeof(unsigned int))
127
#define CPRIOGET_LEF_TOTAL _IOR(COPPER_MAGIC, COPPER_LEF_TOTAL, sizeof(unsigned int))
128
#define CPRIOGET_LEF_AB _IOR(COPPER_MAGIC, COPPER_LEF_AB, sizeof(unsigned int))
129
#define CPRIOGET_LEF_CD _IOR(COPPER_MAGIC, COPPER_LEF_CD, sizeof(unsigned int))
130
#define CPRIOGET_LEF_STA _IOR(COPPER_MAGIC, COPPER_LEF_STA, sizeof(unsigned int))
131
#define CPRIOGET_LEF_WA_FF _IOR(COPPER_MAGIC, COPPER_LEF_WA_FF, sizeof(unsigned int))
132
#define CPRIOGET_LEF_WB_FF _IOR(COPPER_MAGIC, COPPER_LEF_WB_FF, sizeof(unsigned int))
133
#define CPRIOGET_LEF_WC_FF _IOR(COPPER_MAGIC, COPPER_LEF_WC_FF, sizeof(unsigned int))
134
#define CPRIOGET_LEF_WD_FF _IOR(COPPER_MAGIC, COPPER_LEF_WD_FF, sizeof(unsigned int))
135
#define CPRIOGET_LEF_WA_AF _IOR(COPPER_MAGIC, COPPER_LEF_WA_AF, sizeof(unsigned int))
136
#define CPRIOGET_LEF_WB_AF _IOR(COPPER_MAGIC, COPPER_LEF_WB_AF, sizeof(unsigned int))
137
#define CPRIOGET_LEF_WC_AF _IOR(COPPER_MAGIC, COPPER_LEF_WC_AF, sizeof(unsigned int))
138
#define CPRIOGET_LEF_WD_AF _IOR(COPPER_MAGIC, COPPER_LEF_WD_AF, sizeof(unsigned int))
139
#define CPRIOGET_INT_STA _IOR(COPPER_MAGIC, COPPER_INT_STA, sizeof(unsigned int))
140
#define CPRIOGET_INT_MASK _IOR(COPPER_MAGIC, COPPER_INT_MASK, sizeof(unsigned int))
141
#define CPRIOGET_FF_RW _IOR(COPPER_MAGIC, COPPER_FF_RW, sizeof(unsigned int))
142
#define CPRIOGET_INT_FACTOR _IOR(COPPER_MAGIC, COPPER_INT_FACTOR, sizeof(unsigned int))
143
#define CPRIOGET_FF_WA _IOR(COPPER_MAGIC, COPPER_FF_WA, sizeof(unsigned int))
144
#define CPRIOGET_FF_WB _IOR(COPPER_MAGIC, COPPER_FF_WB, sizeof(unsigned int))
145
#define CPRIOGET_FF_WC _IOR(COPPER_MAGIC, COPPER_FF_WC, sizeof(unsigned int))
146
#define CPRIOGET_FF_WD _IOR(COPPER_MAGIC, COPPER_FF_WD, sizeof(unsigned int))
147
#define CPRIOGET_FF_RA _IOR(COPPER_MAGIC, COPPER_FF_RA, sizeof(unsigned int))
148
#define CPRIOGET_FF_RB _IOR(COPPER_MAGIC, COPPER_FF_RB, sizeof(unsigned int))
149
#define CPRIOGET_FF_RC _IOR(COPPER_MAGIC, COPPER_FF_RC, sizeof(unsigned int))
150
#define CPRIOGET_FF_RD _IOR(COPPER_MAGIC, COPPER_FF_RD, sizeof(unsigned int))
151
#define CPRIOGET_FF_DMA _IOR(COPPER_MAGIC, COPPER_FF_DMA, sizeof(unsigned int))
152
153
#define CPRIOSET_FF_STA _IOW(COPPER_MAGIC, COPPER_FF_STA, sizeof(unsigned int))
154
#define CPRIOSET_CONF_WA_AE _IOW(COPPER_MAGIC, COPPER_CONF_WA_AE, sizeof(unsigned int))
155
#define CPRIOSET_CONF_WB_AE _IOW(COPPER_MAGIC, COPPER_CONF_WB_AE, sizeof(unsigned int))
156
#define CPRIOSET_CONF_WC_AE _IOW(COPPER_MAGIC, COPPER_CONF_WC_AE, sizeof(unsigned int))
157
#define CPRIOSET_CONF_WD_AE _IOW(COPPER_MAGIC, COPPER_CONF_WD_AE, sizeof(unsigned int))
158
#define CPRIOSET_CONF_WA_FF _IOW(COPPER_MAGIC, COPPER_CONF_WA_FF, sizeof(unsigned int))
159
#define CPRIOSET_CONF_WB_FF _IOW(COPPER_MAGIC, COPPER_CONF_WB_FF, sizeof(unsigned int))
160
#define CPRIOSET_CONF_WC_FF _IOW(COPPER_MAGIC, COPPER_CONF_WC_FF, sizeof(unsigned int))
161
#define CPRIOSET_CONF_WD_FF _IOW(COPPER_MAGIC, COPPER_CONF_WD_FF, sizeof(unsigned int))
162
#define CPRIOSET_CONF_WA_AF _IOW(COPPER_MAGIC, COPPER_CONF_WA_AF, sizeof(unsigned int))
163
#define CPRIOSET_CONF_WB_AF _IOW(COPPER_MAGIC, COPPER_CONF_WB_AF, sizeof(unsigned int))
164
#define CPRIOSET_CONF_WC_AF _IOW(COPPER_MAGIC, COPPER_CONF_WC_AF, sizeof(unsigned int))
165
#define CPRIOSET_CONF_WD_AF _IOW(COPPER_MAGIC, COPPER_CONF_WD_AF, sizeof(unsigned int))
166
#define CPRIOSET_FF_RST _IOW(COPPER_MAGIC, COPPER_FF_RST, sizeof(unsigned int))
167
#define CPRIOSET_FINESSE_STA _IOW(COPPER_MAGIC, COPPER_FINESSE_STA, sizeof(unsigned int))
168
#define CPRIOSET_ALMFULL_ENB _IOW(COPPER_MAGIC, COPPER_ALMFULL_ENB, sizeof(unsigned int))
169
#define CPRIOSET_TRGCM _IOW(COPPER_MAGIC, COPPER_TRGCM, sizeof(unsigned int))
170
#define CPRIOSET_TRG_LENG _IOW(COPPER_MAGIC, COPPER_TRG_LENG, sizeof(unsigned int))
171
#define CPRIOSET_LEF_READSEL _IOW(COPPER_MAGIC, COPPER_LEF_READSEL, sizeof(unsigned int))
172
#define CPRIOSET_LEF_TOTAL _IOW(COPPER_MAGIC, COPPER_LEF_TOTAL, sizeof(unsigned int))
173
#define CPRIOSET_LEF_AB _IOW(COPPER_MAGIC, COPPER_LEF_AB, sizeof(unsigned int))
174
#define CPRIOSET_LEF_CD _IOW(COPPER_MAGIC, COPPER_LEF_CD, sizeof(unsigned int))
175
#define CPRIOSET_LEF_STA _IOW(COPPER_MAGIC, COPPER_LEF_STA, sizeof(unsigned int))
176
#define CPRIOSET_LEF_WA_FF _IOW(COPPER_MAGIC, COPPER_LEF_WA_FF, sizeof(unsigned int))
177
#define CPRIOSET_LEF_WB_FF _IOW(COPPER_MAGIC, COPPER_LEF_WB_FF, sizeof(unsigned int))
178
#define CPRIOSET_LEF_WC_FF _IOW(COPPER_MAGIC, COPPER_LEF_WC_FF, sizeof(unsigned int))
179
#define CPRIOSET_LEF_WD_FF _IOW(COPPER_MAGIC, COPPER_LEF_WD_FF, sizeof(unsigned int))
180
#define CPRIOSET_LEF_WA_AF _IOW(COPPER_MAGIC, COPPER_LEF_WA_AF, sizeof(unsigned int))
181
#define CPRIOSET_LEF_WB_AF _IOW(COPPER_MAGIC, COPPER_LEF_WB_AF, sizeof(unsigned int))
182
#define CPRIOSET_LEF_WC_AF _IOW(COPPER_MAGIC, COPPER_LEF_WC_AF, sizeof(unsigned int))
183
#define CPRIOSET_LEF_WD_AF _IOW(COPPER_MAGIC, COPPER_LEF_WD_AF, sizeof(unsigned int))
184
#define CPRIOSET_INT_STA _IOW(COPPER_MAGIC, COPPER_INT_STA, sizeof(unsigned int))
185
#define CPRIOSET_INT_MASK _IOW(COPPER_MAGIC, COPPER_INT_MASK, sizeof(unsigned int))
186
#define CPRIOSET_FF_RW _IOW(COPPER_MAGIC, COPPER_FF_RW, sizeof(unsigned int))
187
#define CPRIOSET_INT_FACTOR _IOW(COPPER_MAGIC, COPPER_INT_FACTOR, sizeof(unsigned int))
188
#define CPRIOSET_FF_WA _IOW(COPPER_MAGIC, COPPER_FF_WA, sizeof(unsigned int))
189
#define CPRIOSET_FF_WB _IOW(COPPER_MAGIC, COPPER_FF_WB, sizeof(unsigned int))
190
#define CPRIOSET_FF_WC _IOW(COPPER_MAGIC, COPPER_FF_WC, sizeof(unsigned int))
191
#define CPRIOSET_FF_WD _IOW(COPPER_MAGIC, COPPER_FF_WD, sizeof(unsigned int))
192
#define CPRIOSET_FF_RA _IOW(COPPER_MAGIC, COPPER_FF_RA, sizeof(unsigned int))
193
#define CPRIOSET_FF_RB _IOW(COPPER_MAGIC, COPPER_FF_RB, sizeof(unsigned int))
194
#define CPRIOSET_FF_RC _IOW(COPPER_MAGIC, COPPER_FF_RC, sizeof(unsigned int))
195
#define CPRIOSET_FF_RD _IOW(COPPER_MAGIC, COPPER_FF_RD, sizeof(unsigned int))
196
#define CPRIOSET_FF_DMA _IOW(COPPER_MAGIC, COPPER_FF_DMA, sizeof(unsigned int))
197
198
/* alias */
199
200
#define CPRIOSET_LEF_WA_THR CPRIOSET_LEF_WA_FF
201
#define CPRIOSET_LEF_WB_THR CPRIOSET_LEF_WB_FF
202
#define CPRIOSET_LEF_WC_THR CPRIOSET_LEF_WC_FF
203
#define CPRIOSET_LEF_WD_THR CPRIOSET_LEF_WD_FF
204
205
#define CPRIOGET_LEF_WA_THR CPRIOGET_LEF_WA_FF
206
#define CPRIOGET_LEF_WB_THR CPRIOGET_LEF_WB_FF
207
#define CPRIOGET_LEF_WC_THR CPRIOGET_LEF_WC_FF
208
#define CPRIOGET_LEF_WD_THR CPRIOGET_LEF_WD_FF
209
210
/* cmds */
211
212
#define CPRIO_RESET_FINESSE _IO(COPPER_MAGIC, 1)
213
#define CPRIO_INIT_RUN _IO(COPPER_MAGIC, 2)
214
#define CPRIO_RESET_COPPER _IO(COPPER_MAGIC, 3)
215
#define CPRIO_SET_SUBSYS _IO(COPPER_MAGIC, 4)
216
#define CPRIO_SET_CRATE _IO(COPPER_MAGIC, 5)
217
#define CPRIO_SET_SLOT _IO(COPPER_MAGIC, 6)
218
#define CPRIO_FORCE_DMA _IO(COPPER_MAGIC, 7)
219
#define CPRIO_END_RUN _IO(COPPER_MAGIC, 8)
220
221
#endif
/* _COPPER_H_ */
copper_header
Definition:
copper.h:7
copper_footer
Definition:
copper.h:16
daq
rawdata
modules
include
copper.h
Generated on Fri Nov 5 2021 03:48:55 for Belle II Software by
1.8.17