My Project
mrfcsr.h
1 /*************************************************************************\
2 * Copyright (c) 2010 Brookhaven Science Associates, as Operator of
3 * Brookhaven National Laboratory.
4 * mrfioc2 is distributed subject to a Software License Agreement found
5 * in file LICENSE that is included with this distribution.
6 \*************************************************************************/
7 /*
8  * Author: Michael Davidsaver <mdavidsaver@gmail.com>
9  */
10 
11 #ifndef MRFCSR_H
12 #define MRFCSR_H
13 
14 
15 #define MRF_VME_IEEE_OUI 0x000EB2 /* VME Organizationally Unique Identifier (OUI) for MRF */
16 
17 #define MRF_VME_EVG_BID 0x45470000 /* VME Event Generator */
18 #define MRF_VME_EVR_BID 0x45520000 /* VME Event Receiver */
19 #define MRF_VME_EVR_RF_BID 0x45524600 /* VME Event Receiver with RF Recovery */
20 #define MRF_VME_EVM_DC_BID 0x45470100 /* VME Event Master with Delay Compensation*/
21 #define MRF_VME_EVR_DC_BID 0x45520100 /* VME Event Receiver with Delay Compensation*/
22 
23 #define MRF_SERIES_200 0x000000C8 /* Series 200 Code */
24 #define MRF_SERIES_220 0x000000DC /* Series 220 Code */
25 #define MRF_SERIES_230 0x000000E6 /* Series 230 Code */
26 #define MRF_SERIES_300 0x0000002C /* Series 300 Code */
27 
28 /**************************************************************************************************/
29 /* Board ID Field Masks */
30 /**************************************************************************************************/
31 
32 #define MRF_BID_TYPE_MASK 0xFFFFFF00 /* Mask for Board ID Field */
33 #define MRF_BID_SERIES_MASK 0x000000FF /* Mask for Board Series Field */
34 
35 /**************************************************************************************************/
36 /* Series 200 Board ID Codes */
37 /**************************************************************************************************/
38 
39 #define MRF_VME_EVG200_BID (MRF_VME_EVG_BID | MRF_SERIES_200) /* VME Event Generator 200 */
40 #define MRF_VME_EVR200_BID (MRF_VME_EVR_BID | MRF_SERIES_200) /* VME Event Receiver 200 */
41 #define MRF_VME_EVR200RF_BID (MRF_VME_EVR_RF_BID | MRF_SERIES_200) /* VME EVR 200 w/ RF Recovery */
42 
43 #define MRF_VME_GTX200_BID (MRF_VME_GTX_BID | MRF_SERIES_200) /* VME Electron Gun Trigger */
44 #define MRF_VME_4CT200_BID (MRF_VME_4CT_BID | MRF_SERIES_200) /* VME Four Channel Trigger */
45 
46 
47 /**************************************************************************************************/
48 /* Series 230 Board ID Codes */
49 /**************************************************************************************************/
50 
51 #define MRF_VME_EVG230_BID (MRF_VME_EVG_BID | MRF_SERIES_230) /* VME Event Generator 230 */
52 #define MRF_VME_EVR230_BID (MRF_VME_EVR_BID | MRF_SERIES_230) /* VME Event Receiver 230 */
53 #define MRF_VME_EVR230RF_BID (MRF_VME_EVR_RF_BID | MRF_SERIES_230) /* VME EVR 230 w/ RF Recovery */
54 
55 /**************************************************************************************************/
56 /* Series 300 Board ID Codes */
57 /**************************************************************************************************/
58 
59 #define MRF_VME_EVM300_BID (MRF_VME_EVM_DC_BID | MRF_SERIES_300) /* VME Event Generator 300 */
60 #define MRF_VME_EVR300_BID (MRF_VME_EVR_DC_BID | MRF_SERIES_300) /* VME Event Receiver 300 */
61 
62 /**************************************************************************************************/
63 /* CR/CSR User-CSR Space Offsets (MRF Specific) */
64 /* */
65 /* Register address is slot base address + read(base + CR_BEG_UCSR) + UCSR_* */
66 /**************************************************************************************************/
67 
68 #define UCSR_IRQ_LEVEL 0x0000 /* Interrupt request level */
69 #define UCSR_IRQ_VECTOR 0x0004 /* Interrupt request vector */
70 #define UCSR_SERIAL_NUMBER 0x0010 /* Board serial number (MAC Address) */
71 
72 #define UCSR_SN_BYTES 6
73 
74 #endif /* MRFCSR_H */