ires_vicp2.h

Go to the documentation of this file.
00001 /* 
00002  * Copyright (c) 2012, Texas Instruments Incorporated
00003  * All rights reserved.
00004  *
00005  * Redistribution and use in source and binary forms, with or without
00006  * modification, are permitted provided that the following conditions
00007  * are met:
00008  *
00009  * *  Redistributions of source code must retain the above copyright
00010  *    notice, this list of conditions and the following disclaimer.
00011  *
00012  * *  Redistributions in binary form must reproduce the above copyright
00013  *    notice, this list of conditions and the following disclaimer in the
00014  *    documentation and/or other materials provided with the distribution.
00015  *
00016  * *  Neither the name of Texas Instruments Incorporated nor the names of
00017  *    its contributors may be used to endorse or promote products derived
00018  *    from this software without specific prior written permission.
00019  *
00020  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00021  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00022  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00023  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00024  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00025  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00026  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00027  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00028  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00029  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00030  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00031  * 
00032  */
00048 #ifndef ti_sdo_fc_ires_vicp_IRES_VICP2_
00049 #define ti_sdo_fc_ires_vicp_IRES_VICP2_
00050 
00053 
00054 
00055 #ifdef __cplusplus
00056 extern "C" {
00057 #endif
00058 
00059 #include <ti/xdais/ires.h>
00060 
00064 #define IRES_VICP2_MAXRESOURCES  1
00065 
00066 
00070 #define IRES_VICP2_PROTOCOLNAME     "ti.sdo.fc.ires.vicp2"
00071 
00080 #define VICP2_MODNAME  "ti.sdo.fc.ires.vicp2"
00081 
00085 #define IRES_VICP2_NUMBUFFERS      16
00086 
00090 #define IRES_VICP2_BADRESOURCE     0xFFFFFFFF
00091 
00096 #define IMCOP_BUFFER_IMGBUF_A           0x0
00097 #define IMCOP_BUFFER_IMGBUF_B           0x1
00098 #define IMCOP_BUFFER_IMGBUF_C           0x2
00099 #define IMCOP_BUFFER_IMGBUF_D           0x3     
00100 #define IMCOP_BUFFER_IMGBUF_E           0x4     
00101 #define IMCOP_BUFFER_IMX0COEFFBUF       0x5
00102 #define IMCOP_BUFFER_IMX0CMDBUF         0x6
00103 #define IMCOP_BUFFER_IMX1COEFFBUF       0x7     
00104 #define IMCOP_BUFFER_IMX1CMDBUF         0x8     
00106 #define IMCOP_BUFFER_BABYIMXCMDBUFFER   0x9
00107 #define IMCOP_BUFFER_BABYIMXORIGBUFFER  0xA
00108 
00109 #define IMCOP_BUFFER_BABYIMXREFBUFFER   0xB     
00110 #define IMCOP_BUFFER_SEQUENCERPMEM      0xC     
00112 #define IMCOP_BUFFER_QIQMEM             0xD
00113 #define IMCOP_BUFFER_HUFFMEM            0xE
00114 #define IMCOP_BUFFER_SEQBUF4            0xF
00115 
00116 /*
00117  * Note, we wrap the PROTOCOLVERSION in an ifdef so the
00118  * resource managers and algs get this version data placed in their object
00119  * files.  Apps, which include rman.h, will have this 'NOPROTOCOLREV' defined.
00120  */
00121 #ifndef ti_sdo_fc_ires_NOPROTOCOLREV
00122 
00126 static IRES_ProtocolRevision IRES_VICP2_PROTOCOLREVISION = {1, 0, 0};
00127 
00128 #endif
00129 
00133 typedef struct IRES_VICP2_Obj *IRES_VICP2_Handle;
00134 
00138 typedef struct IRES_VICP2_ProtocolArgs {
00139 
00140     int                 size;           
00141     IRES_RequestMode    mode;           
00145     short               requestIMX0;
00146     short               requestIMX1;    
00148     short               requestMJCP;    
00149     short               requestNSF;     
00151     unsigned int        requestIMCOPBuffers;
00158     unsigned int        numMemoryRequests;
00161     unsigned int        memRequestSizes[IRES_VICP2_NUMBUFFERS];
00164 } IRES_VICP2_ProtocolArgs;
00165 
00171 typedef struct  IRES_VICP2_Obj {
00172 
00173     IRES_Obj            ires;
00174     short               assignedIMX0;
00175     short               assignedIMX1;     
00177     short               assignedMJCP;
00178     short               assignedNSF;
00179 
00180     unsigned int        assignedIMCOPBuffers[IRES_VICP2_NUMBUFFERS];
00184     short               numMemBufs;       
00186     unsigned int        assignedMemAddrs[IRES_VICP2_NUMBUFFERS];
00190     unsigned int        assignedMemSizes[IRES_VICP2_NUMBUFFERS];
00191 
00192     unsigned int        configBaseAddress;
00194     unsigned int        dmaViewConfigBaseAddr;
00198     unsigned  int           pscRegisterSpace; 
00201 } IRES_VICP2_Obj;
00202 
00203 /*
00204  * @brief           VICP Buffer Layout
00205  */
00206 typedef struct IRES_VICP2_Buffers {
00207 
00208     int size;   
00210     unsigned char *vicp_cfg_base;
00211 
00212     unsigned char *imgBufA_base;
00213     unsigned char *imgBufB_base;
00214     unsigned char *imgBufC_base;
00215     unsigned char *imgBufD_base;
00216     unsigned char *imgBufE_base;
00217     unsigned char *imx0CoeffBuff_base;
00218     unsigned char *imx0CmdBuf_base;
00219     unsigned char *imx1CoeffBuff_base;
00220     unsigned char *imx1CmdBuf_base;
00221 
00222 
00223     unsigned char *babyImxCmdBuf_base;  
00224     unsigned char *babyImxOrigBuf_base; 
00225     unsigned char *babyImxRefBuf_base;  
00226     unsigned char *sequencerPmem_base;
00227     unsigned int  *qiqmem_base;         
00228     unsigned int  *predmem_base;        
00229     unsigned int  *mvmem;               
00230     unsigned int  *huffmem;             
00231     unsigned int  *seqBuf1;             
00232     unsigned int  *seqBuf2;             
00233     unsigned int  *seqBuf3;             
00234     unsigned int  *seqBuf4;             
00235     unsigned int  *sequencerDmem;       
00236     /* . . . */
00237 
00238 } IRES_VICP2_Buffers;
00239 
00240 
00241 /*
00242  * @brief       Static Resource Properties
00243  */
00244 typedef struct IRES_VICP2_Properties {
00245 
00246     int size;
00247 
00248     IRES_VICP2_Buffers buffers;
00249 
00250 } IRES_VICP2_Properties;
00251 
00252 
00253 #ifdef __cplusplus
00254 }
00255 #endif /* extern "C" */
00256 
00257 
00260 #endif
00261 /*
00262  *  @(#) ti.sdo.fc.ires.vicp; 1, 0, 1,3; 4-16-2012 00:01:47; /db/atree/library/trees/fc/fc-q08/src/ xlibrary
00263 
00264  */
00265 
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines

Copyright 2012, Texas Instruments Incorporated