63 lines
1.7 KiB
C
63 lines
1.7 KiB
C
/**
|
|
* This file contaisn some data structure definitions and constants
|
|
* for the VME-MAGII program. For more information see vmemaggi.c
|
|
*
|
|
* copyright: GPL
|
|
*
|
|
* Mark Koennecke, March 2008
|
|
*/
|
|
#ifndef VMEMAGGI
|
|
#define VMEMAGGI
|
|
|
|
#define SLOTBASE 0x1000 /* change when Hitec in different VME slot */
|
|
#define MAPREG 0x424
|
|
/**
|
|
* VME has several completely different address ranges:
|
|
* one 16 bit wide accessed through device node vme4l_a16d16
|
|
* one 24 bit wide accessed through device node vme4l_a24d16
|
|
* The sharc lives in the address range of the 24 bit bus.
|
|
*/
|
|
#define VMEDEV "/dev/vme4l_a16d16"
|
|
#define MODSIZE 0x100
|
|
|
|
typedef volatile unsigned char REG8BIT;
|
|
typedef volatile unsigned short REG16BIT;
|
|
|
|
struct PSCreg {
|
|
REG16BIT stat_and_addr;
|
|
REG16BIT data_hi;
|
|
REG16BIT data_lo;
|
|
REG16BIT not_used;
|
|
};
|
|
|
|
/* Bits of return status of the stat_and_addr word */
|
|
#define PSC_REPLY_ERROR 0x20000
|
|
#define PSC_STATUS_REPLY_READFLAG 0x8000
|
|
#define PSC_STATUS_REPLY_FLAG_MISMATCH 0x4000
|
|
#define PSC_STATUS_REPLY_BUFFERFULL 0x2000
|
|
#define PSC_STATUS_REPLY_DSP_STOPPED 0x1000 /* disabled */
|
|
#define PSC_STATUS_REPLY_PS_LOCAL 0x0800
|
|
#define PSC_STATUS_REPLY_LINK_DOWN 0x0400
|
|
#define PSC_STATUS_REPLY_ADDR_MISMATCH 0x0080
|
|
#define PSC_STATUS_REPLY_DATA_MISMATCH 0x0040
|
|
#define PSC_STATUS_REPLY_SOFTTIMEOUT 0x0020
|
|
#define PSC_STATUS_REPLY_FPGATIMEOUT 0x0010
|
|
#define PSC_STATUS_REPLY_STRLEN 256
|
|
|
|
/* error codes */
|
|
#define BADSLOT 70
|
|
#define BADMAP 71
|
|
#define DSPSTOP 72
|
|
#define LINKDWN 73
|
|
#define SOFTTIM 74
|
|
#define FPGATIM 75
|
|
#define ADDRMIS 76
|
|
#define MISPS 77
|
|
#define PSRNG 78
|
|
#define NOPAR 79
|
|
#define NOVAL 80
|
|
#define BADPAR 81
|
|
#define SETRNG 82
|
|
|
|
#endif
|