Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages

rodMemoryMap.h

00001 /************************************************************************************
00002  *   rodMemoryMap.h:   stores pointers to all the important structures
00003  *                     on the DSP.
00004  ************************************************************************************/
00005 #ifndef DSP_PTR_STRUCT_H
00006 #define DSP_PTR_STRUCT_H
00007 
00008 #include "primList.h"
00009 #include "txtBuffer.h"
00010 #include "comRegDfns.h"
00011 
00012 #define MEM_STRUCT_REVISION  101
00013 
00014 typedef struct SdspInternal {
00015     UINT32  structureSize; 
00016 
00017     UINT32  rodCfg,     rodMode;
00018     UINT32  rodCfgSize, rodModeSize;
00019 
00020     UINT32  histoCtrl,     evtMgrCtrl,     eventQueue,     evtMgrRes;
00021     UINT32  histoCtrlSize, evtMgrCtrlSize, eventQueueSize, evtMgrResSize;
00022 
00023     UINT32  histoDefaultBase;
00024 
00025     UINT32 *primListBase[N_PRIM_BFRS][2];
00026 } SdspInternal;
00027 
00028 typedef struct SdspMemoryStruct {
00029     /* 1st member is the structure size, so that the MDSP can read the pointer
00030        to the structure (MEMORY_MAP_REG), make a 1 word access to that address to
00031        determine its size, and then read out the entire structure. */
00032     UINT32  structureSize; 
00033     UINT32  revision;
00034     UINT32  dspVersion, unused;
00035 
00036     /* Memory sizes of the major code/data blocks on the DSP. These values (ipram,
00037        idram, xcode) correspond to the actual addresses & block sizes which should
00038        be used when loading the SDSP code. The SDRAM pointers and sizes show the
00039        amount and location of external memory attached to the DSP. IDRAM is broken
00040        up into several different blocks: communication registers, idata (which stores
00041        critical program global variables), "idramSec" (storing the bulk of the
00042        programs' initialized data) and the "burst buffer" which stores event data */
00043     UINT32  ipram,     idram,     commRegs,     idata,     idramSec,     xcode;
00044     UINT32  ipramSize, idramSize, commRegsSize, idataSize, idramSecSize, xcodeSize;
00045 
00046     UINT32  sdram[2], sdramSize[2];
00047     UINT32  burst,    burstSize;
00048 
00049     /* The primitive & reply buffers' bases and sizes, and the address of the DSP's
00050        text buffer structures. The txtBuff structures are for the new buffers. */
00051     UINT32 primBuffer, replyBuffer, primBufferSize, replyBufferSize;
00052     UINT32 txtBuffer[N_SDSP_TXT_BUFFS]; 
00053     UINT32 txtBuff[N_SDSP_TXT_BUFFS];   
00054 
00055     /* The location of the primParams structure array and the number of primitives
00056        defined for this DSP: */
00057     UINT32 primParams, nPrimitives;
00058 
00059     SdspInternal *internal;
00060 
00061 } SdspMemoryStruct;
00062 
00063 #if ((defined(I_AM_HOST))||(defined(I_AM_MASTER_DSP)))
00064 
00065 typedef struct MdspInternal {
00066     UINT32  structureSize; 
00067 
00068     UINT32  rodCfg,     rodMode;
00069     UINT32  rodCfgSize, rodModeSize;
00070 
00071     UINT32  spStruct[2];
00072 
00073     UINT32  histoCtrl,     moduleMaskData,      maskCfg;
00074     UINT32  histoCtrlSize, moduleMaskDataSize,  maskCfgSize;
00075 
00076     UINT32 *primListBase[N_PRIM_BFRS][2];
00077 } MdspInternal;
00078 
00079 typedef struct MdspMemoryStruct {
00080     /* 1st member is the structure size, so that the host can read the pointer
00081        to the structure (MEMORY_MAP_REG), make a 1 word access to that address to
00082        determine its size, and then read out the entire structure. */
00083     UINT32  structureSize; 
00084     UINT32  revision;
00085     UINT32  rodRevision;
00086     UINT32  dspVersion, fmtVersion, efbVersion, rtrVersion, rcfVersion;
00087 
00088     /* Memory sizes of the major code/data blocks on the DSP. These values
00089        correspond to the actual addresses & block sizes which were used when the
00090        MDSP code was loaded from the flash memory. The SDRAM pointers and sizes
00091        show the amount and location of external memory attached to the DSP. IDRAM
00092        is broken up into several different blocks: communication registers, idata
00093        (which stores critical program global variables), and "idramSec" (storing
00094        the bulk of the programs' initialized data). */
00095     UINT32 ipram,     idram,     commRegs,     idata,     idramSec,     xcode;
00096     UINT32 ipramSize, idramSize, commRegsSize, idataSize, idramSecSize, xcodeSize;
00097 
00098     UINT32  flash,    flashSize;
00099     UINT32  rodRegisterBase;
00100     UINT32  sdram[2], sdramSize[2];
00101 
00102     /* Location and sizes of the serial port buffers and the module configuration
00103        data arrays: */
00104     UINT32  moduleCfgArray[3],   spBuff[2],  inmemCtrlStruct; 
00105     UINT32  moduleCfgSize,   moduleCfgArraySize,  spBuffSize; 
00106 
00107     /* The primitive & reply buffers' bases and sizes, and the address of the DSP's
00108        text buffer structures. The txtBuff structures are for the new buffers. */
00109     UINT32 primBuffer, replyBuffer, primBufferSize, replyBufferSize;
00110     UINT32 txtBuffer[N_TXT_BUFFS];  
00111     UINT32 txtBuff[N_TXT_BUFFS];    
00112 
00113     /* The location of the primParams structure array and the number of primitives
00114        defined for this DSP: */
00115     UINT32 primParams, nPrimitives;
00116 
00117     /* Internal DSP structures and a structure defining SDSP memory: */
00118     MdspInternal *internal;
00119     SdspMemoryStruct sdspMem;
00120 
00121     UINT32 unused[4];
00122 
00123 } MdspMemoryStruct;
00124 
00125 #endif /* MDSP */
00126 
00127 #endif /* Multiple inclusion protection */

Generated on Fri Dec 16 19:38:16 2005 for SCT DAQ/DCS Software - C++ by doxygen 1.3.5