
   DUAL CPU Library and Support routines
   -------------------------------------

   The dcpuLibrary is a set of functions to facilitate the use
of the CODA ROC with a second PRPMC CPU card with a VME Based 
single board computer.

    In general since there are two CPUs the "Source" CPU is defined
as the VME Board (MV5100, MV5500, or MV6100), and the Destination CPU
is the PRPMC 800 or 880. 

    The CODA ROC runs on the Destination Board and an example boot script for
this board is "roc1_dcpu.boot".

    The SFI interrupt Library and associated routines can be found in the
sfiDmaLib2 directory. There is also an example bootscript for the VME Source
board there "mv5500_sfiIntLib.boot".

    Example primary readout list "gen_list.crl" can be used to communicate with and
read data from the Source board.


version 1:
  The current code in this distribution has been tested with a MV5500 and PRPMC800
board. If the hardware is changed then the "dcpu.h" may need to be modified and
the dcpuLib.o rebuilt.


version 2;
  Fixes for proper bootup of dcpu Library and addional Init checking
 
  Add user Control variables in dcpu library

  Pass event type and sync info to Destination CPU (first word of event)

  Update to work with both mv6100 and mv5500 with prpmc 880 

  Added timeout for buffer flushing (default 2 sec).

  Addes Number of Events limit for buffer flushing ( default 0.5*(# rol1 buffers))

  Fixed bug in SFI Int library to calculate DMA offset address properly (sfiCpuMemOffset)


  Known Issues:
       The primary readout list (gen_list.crl) must HAVE enough buffers to hold all the
       remaining events in the dcpu Memory buffer. Otherwise at End the ROC will not flush all
       the data properly and some events could get dropped.
       Fix 1 :  Allocate many buffers for gen_list.crl
       Fix 2 :  Specify a smaller buffer overflow when spawning dcpuUserPoll on the Source CPU
                
       dcpuLib must be compiled with the PCI offsets for the remote CPU's memory set in
       define statements. hence a seperate dcluLib.o for each board combination must be
       made:       mv5500-pmc880  mv5500-pmc800
                   mv6100-pmc880  mv6100-pmc800
                   mv5100-pmc880  mv5100-pmc800

 

    Questions
       David Abbott  x7190


