vt2.c File Reference

Go to the source code of this file.

Functions

int udelay (int usec)
int vt2_FifoRead (MVME_INTERFACE *mvme, DWORD base, DWORD *pdest, int nentry)
int vt2_FifoLevelRead (MVME_INTERFACE *mvme, DWORD base)
int vt2_CycleNumberRead (MVME_INTERFACE *mvme, DWORD base)
int vt2_CSRRead (MVME_INTERFACE *mvme, DWORD base)
void vt2_ManReset (MVME_INTERFACE *mvme, DWORD base)
void vt2_IntEnable (MVME_INTERFACE *mvme, DWORD base, int flag)
void vt2_KeepAlive (MVME_INTERFACE *mvme, DWORD base, int fset)
void vt2_CycleReset (MVME_INTERFACE *mvme, DWORD base, int fset)


Function Documentation

int udelay ( int  usec  ) 

Definition at line 18 of file vt2.c.

00019 {
00020   int i, j, k = 0;
00021   for (i=0; i<133; i++)
00022     for (j=0; j<usec; j++)
00023       k += (k+1)*j*k*(j+1);
00024   return k;
00025 }

int vt2_CSRRead ( MVME_INTERFACE mvme,
DWORD  base 
)

Definition at line 86 of file vt2.c.

00087 {
00088   int  status, cmode;
00089 
00090   mvme_get_dmode(mvme, &cmode);
00091   mvme_set_dmode(mvme, MVME_DMODE_D32);
00092   status = mvme_read_value(mvme, base+VT2_CSR_RO);
00093   mvme_set_dmode(mvme, cmode);
00094   return status;
00095 }

int vt2_CycleNumberRead ( MVME_INTERFACE mvme,
DWORD  base 
)

return the cycle number (10 bit)

Definition at line 73 of file vt2.c.

00074 {
00075   int  status, cmode;
00076 
00077   mvme_get_dmode(mvme, &cmode);
00078   mvme_set_dmode(mvme, MVME_DMODE_D32);
00079   status = mvme_read_value(mvme, base+VT2_CYCLENUMBER_RO);
00080   status &= 0x3FF;
00081   mvme_set_dmode(mvme, cmode);
00082   return status;
00083 }

void vt2_CycleReset ( MVME_INTERFACE mvme,
DWORD  base,
int  fset 
)

Definition at line 136 of file vt2.c.

00137 {
00138   int flag, cmode;
00139   mvme_get_dmode(mvme, &cmode);
00140   mvme_set_dmode(mvme, MVME_DMODE_D32);
00141   if (fset == 0)
00142     flag = (VT2_CYCLERESET<<16);
00143   else
00144     flag = VT2_CYCLERESET;
00145   printf("0x%x  flag:0x%x\n", base+VT2_CTL_WO, flag);
00146   mvme_write_value(mvme, base+VT2_CTL_WO, flag);
00147   mvme_set_dmode(mvme, cmode);
00148 }

int vt2_FifoLevelRead ( MVME_INTERFACE mvme,
DWORD  base 
)

return the Fifo level which is 64bits x 2048 with Almost full at 2000. the returned value is on 11 bits. It should be used as 2*level during read as the data is 64 bit wide. Data field 20bits : [0eaf][0000 0] 7FF fEmpty, fAlmostFull, Full, level

Definition at line 54 of file vt2.c.

00055 {
00056   int  status, cmode;
00057 
00058   mvme_get_dmode(mvme, &cmode);
00059   mvme_set_dmode(mvme, MVME_DMODE_D32);
00060   status = mvme_read_value(mvme, base+VT2_FIFOSTATUS_RO);
00061   if (status & VT2_FULL_FLAG)
00062     status = -1;
00063   else
00064     status &= 0x7FF;
00065   mvme_set_dmode(mvme, cmode);
00066   return 2*status;
00067 }

int vt2_FifoRead ( MVME_INTERFACE mvme,
DWORD  base,
DWORD pdest,
int  nentry 
)

Definition at line 33 of file vt2.c.

00034 {
00035   int cmode, i;
00036 
00037   mvme_get_dmode(mvme, &cmode);
00038   mvme_set_dmode(mvme, MVME_DMODE_D32);
00039   for (i=0 ; i<nentry ; i++) {
00040     pdest[i] = mvme_read_value(mvme, base+VT2_FIFO_RO);
00041     //    printf("pdest[%i] = %lx\n", i, pdest[i]);
00042   }
00043   mvme_set_dmode(mvme, cmode);
00044   return nentry;
00045 }

void vt2_IntEnable ( MVME_INTERFACE mvme,
DWORD  base,
int  flag 
)

Definition at line 108 of file vt2.c.

00109 {
00110   int cmode;
00111   mvme_get_dmode(mvme, &cmode);
00112   mvme_set_dmode(mvme, MVME_DMODE_D32);
00113   if (flag == 1)
00114     mvme_write_value(mvme, base+VT2_CTL_WO, VT2_INTENABLE);
00115   else
00116     mvme_write_value(mvme, base+VT2_CTL_WO, VT2_INTENABLE<<16);
00117 
00118   mvme_set_dmode(mvme, cmode);
00119 }

void vt2_KeepAlive ( MVME_INTERFACE mvme,
DWORD  base,
int  fset 
)

Definition at line 122 of file vt2.c.

00123 {
00124   int flag, cmode;
00125   mvme_get_dmode(mvme, &cmode);
00126   mvme_set_dmode(mvme, MVME_DMODE_D32);
00127   if (fset == 0)
00128     flag = (VT2_KEEPALIVE<<16);
00129   else
00130     flag = (VT2_KEEPALIVE);
00131   mvme_write_value(mvme, base+VT2_CTL_WO, flag);
00132   mvme_set_dmode(mvme, cmode);
00133 }

void vt2_ManReset ( MVME_INTERFACE mvme,
DWORD  base 
)

Definition at line 98 of file vt2.c.

00099 {
00100   int cmode;
00101   mvme_get_dmode(mvme, &cmode);
00102   mvme_set_dmode(mvme, MVME_DMODE_D32);
00103   mvme_write_value(mvme, base+VT2_CTL_WO, VT2_MANRESET);
00104   mvme_set_dmode(mvme, cmode);
00105 }


Midas DOC Version 3.0.0 ---- PSI Stefan Ritt ----
Contributions: Pierre-Andre Amaudruz - Sergio Ballestrero - Suzannah Daviel - Doxygen - Peter Green - Qing Gu - Greg Hackman - Gertjan Hofman - Paul Knowles - Exaos Lee - Rudi Meier - Glenn Moloney - Dave Morris - John M O'Donnell - Konstantin Olchanski - Renee Poutissou - Tamsen Schurman - Andreas Suter - Jan M.Wouters - Piotr Adam Zolnierczuk