⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tvptpphw.h

📁 ti的数字电视芯片 tvp9000的源码
💻 H
字号:
/***************************************************************************** 
*    Property of Texas Instruments Incorporated, Copyright 2004
*    All rights reserved
******************************************************************************/
/*********************************************************************
*
* Description:
*  TvpTppHw.h contains private declarations related to the TPP hardware
*  
*  Contents:
*      Control structures
*      HW register and memory definitions
*   
**********************************************************************/
/*********************************************************************
*
* $Revision: $
*
* $History: TvpTppHw.h $
* 
*********************************************************************/
#ifndef TVP_TPP_HW_DOT_H_IS_DEFINED
#define TVP_TPP_HW_DOT_H_IS_DEFINED

/*****************************************************************************/
/* SCID table mask identifiers. These define the mask needed to access the   */
/* appropriate bit(s) in the appropriate SCID table attribute entry          */
/*****************************************************************************/

#define TVP_SCID_OUT_TYPE_OTHER  0x00000000     /* bit 1-0  = Memory Interface         			*/   
#define TVP_SCID_OUT_TYPE_VIDEO  0x00000001     /* bit 1-0  = Video Output buffer      			*/
#define TVP_SCID_OUT_TYPE_AUDIO  0x00000002     /* bit 1-0  = Audio Output buffer      			*/
#define TVP_SCID_OUT_TYPE_MASK   0x00000003

#define TVP_SCID_ILINK_EN        0x00000004     /* bit 2    = Enable 1394 output       			*/
#define TVP_SCID_ILINK_DESC_EN   0x00000008     /* bit 3    = Enable descrambled 1394 output	*/

#define TVP_SCID_PES_DESCR_EN    0x00000010     /* bit 4    = Descrambler enable       			*/
#define TVP_SCID_TRANS_EN_TC     0x00000020     /* bit 5    = Enable transfer          			*/
#define TVP_SCID_CC_DISABLE      0x00000040     /* bit 6    = Disable CC check         			*/

#define TVP_SCID_DESCR_CHANGE_EN 0x00000100     /* bit 8    = Enable descrambler change notification */
#define TVP_SCID_ARMBUF          0x00000200     /* bit 9    = Force ARM buffer         */
#define TVP_SCID_HPEI_BIT        0x00000400     /* bit 10   = Force ARM buffer for packet following PUS */

#define TVP_SCID_DISCARD_ODD     0x00000800     /* bit 11   = Discard packets encrypted with odd keys */
#define TVP_SCID_DISCARD_EVEN    0x00001000     /* bit 12   = Discard packets encrypted with even keys */
#define TVP_SCID_DISCARD_ALL     0x00001800     /* bit 12-11= Discard encrypted packets*/

#define TVP_SCID_PUS_DISCARD     0x00002000     /* bit 13   = Discard until first PUS  */
#define TVP_SCID_DUPL_EN         0x00004000     /* bit 14   = Accept duplicated packets*/
#define TVP_SCID_T_ERROR_EN      0x00008000     /* bit 15   = Accept packets with TE bit */

#define TVP_SCID_DTYPE_MASK      0x00070000     /* bit 18-16= Descrambler type         */
#define TVP_SCID_DTYPE_SHIFT     16
#define TVP_SCID_DTYPE_DES       0x00000000     /*                DES                  */
#define TVP_SCID_DTYPE_3DES      0x00010000     /*                DVB stream & block   */
#define TVP_SCID_DTYPE_DVB       0x00020000     /*                DVB block            */
#define TVP_SCID_DTYPE_IRDETO    0x00030000     /*                Irdeto               */
#define TVP_SCID_DTYPE_NODES     0x00040000

#define TVP_SCID_KEY_MASK        0x1F000000     /* bit 28-24= Key index                */
#define TVP_SCID_KEY_SHIFT       24


/*****************************************************************************/
/* table structure for SCID                                                  */
typedef unsigned long TvpScidTbl;

/*****************************************************************************/
/* table structure for Descrambler keys                                      */
typedef struct
{
  unsigned long  key1;
  unsigned long  key2;
}TvpKeyTbl;
                         

/*****************************************************************************/
/* mask definitions for DVB status word                                      */
#define TVP_RTB_CHANNEL_MASK       0x0000001F  // bit 4-0  = Logical channel number
#define TVP_RTB_ELEM               0x00000020  // bit 5    = Entrie packet is elementary data
#define TVP_RTB_CCHG			   0x00000040  // bit 6    = First packet after channel change
#define TVP_RTB_ORG_DESCR_MASK     0x00000300  // bit 9-8  = Orig. descrambler bits
#define TVP_RTB_ORG_DESCR_SHIFT    8
#define TVP_RTB_CCE                0x00000400  // bit 10   = CC error
#define TVP_RTB_TE                 0x00000800  // bit 11   = Tranport error           
#define TVP_RTB_DESCR_CHANGE       0x00001000  // bit 12   = Descrambler bit change   
#define TVP_RTB_DUP                0x00002000  // bit 13   = Duplicate packet
#define TVP_RTB_HPEI               0x00004000  // bit 14   = Prev pkt of this pid had PES start
#define TVP_RTB_PUS                0x00008000  // bit 15   = PUS bit
#define TVP_RTB_AF                 0x00010000  // bit 16   = Adaptation field bit
#define TVP_RTB_ORG_PESDESCR_MASK  0x00060000  // bit 18-17= Orig. PES descram bits
#define TVP_RTB_ORG_PESDESCR_SHIFT 17

#define TVP_RTB_MID_PKT_ERROR      0x04000000  // bit 26   = Mid Packet Error    
#define TVP_RTB_STC_HIGH           0x40000000  // bit 30   = STC bit 33
#define TVP_RTB_STC_HIGH_SHIFT     30
#define TVP_RTB_DERROR             0x80000000  // bit 31   = DERROR pin
		
/*****************************************************************************/
/* CAM table definitions                                                     */
#define TVP_TPP_CAM_ENABLE       0x8000

/*****************************************************************************/
/* generic definitions for RT buffer                                         */
#define TVP_RTB_SIZE             204            /* Transport packet + TPP inserted info */
#define TVP_TP_SIZE              188            /* Transport packet size                */
#define TVP_RTB_OFFSET           0x40           /* Distance between RT buffers in words */

/*****************************************************************************/
/* CRC related definitions                                                   */
#define TVP_TPP_CRC_INIT         0xFFFFFFFF

/*****************************************************************************/
/* STC Interrupt                                                    */
#define TVP_TPP_STC_FIQ_COUNTER  0x3f

/*****************************************************************************/
/* Define TPP packet structure overlay for different packet types            */
/* this union is defined to easily access any packet type in the ARM buffer  */

typedef union
{
  unsigned char data[TVP_RTB_SIZE];         /* maximum size of the ARM buffer      */
  unsigned long word_data[TVP_RTB_SIZE / 4];
  struct
  {
     unsigned long time_stamp_STC;
     unsigned long time_stamp_STCFAST;
     unsigned long rtb_status;
     unsigned long byte_count;
     unsigned long tpacket_word[TVP_TP_SIZE / 4];    
  }tp_packet;
  struct
  {
     unsigned long time_stamp_STC;
     unsigned long time_stamp_STCFAST;
     unsigned long rtb_status;
     unsigned long byte_count;
     unsigned long header;    
     unsigned char tpayload[TVP_TP_SIZE - 4];  
  }gp_packet;
  struct
  {                          
     unsigned long time_stamp_STC;
     unsigned long time_stamp_STCFAST;
     unsigned long rtb_status;
     unsigned long byte_count;
     unsigned long header;    
     unsigned char af_length;   
     unsigned char af_flags;   
     unsigned char data[TVP_TP_SIZE - 6];  
  }adapt_field;             
  struct
  {
     unsigned char unused1[TVP_RTB_SIZE - TVP_TP_SIZE];
     unsigned char txFlag;
     unsigned char matchCount;
     unsigned char offset;
     unsigned char pus_cam;
     unsigned char data[TVP_TP_SIZE - 4];
  }capture;  
}TvpDvbPacket;


typedef struct
{
  unsigned char txFlag;
  unsigned char matchCount;
  unsigned char offset;
  unsigned char pus_cam;
  unsigned char data[TVP_TP_SIZE - 4];
}TvpDvbRtslPacket;

/*****************************************************************************/
/* definitions for RT buffer DMA                                             */

#define TVP_RTB_CHAN_CTRL_SIZE_SHIFT	0x10
#define TVP_RTB_CHAN_CTRL_SOURCE_MASK   0x1fff

#define TVP_RTB_CHAN_DEST_TYPE_AUD_PES  0x80000000 
#define TVP_RTB_CHAN_DEST_TYPE_VID_PES  0x40000000 
#define TVP_RTB_CHAN_DEST_TYPE_MI_DATA  0x00000000 
#define TVP_RTB_CHAN_DEST_TYPE_MASK     0xc0000000 

#define TVP_RTB_NUM_DMA_CHANS    	0x5
#define TVP_RTB_DMA_CHANS_SHIFT     (TVP_RTB_NUM_DMA_CHANS+1)
#define TVP_RTB_DMA_FIQ_COMPL       0x20
#define TVP_RTB_DMA_SUB_A_ENABLE	0x10
#define TVP_RTB_DMA_SUB_B_ENABLE    0x8
#define TVP_RTB_DMA_SUB_C_ENABLE    0x4
#define TVP_RTB_DMA_SUB_D_ENABLE    0x2
#define TVP_RTB_DMA_SUB_E_ENABLE    0x1

typedef struct
{
   unsigned long src_size;  
   unsigned long dest;
} TvpRtbSlot;

typedef struct
{
  TvpRtbSlot		   slot[TVP_RTB_NUM_DMA_CHANS];
} TvpRtbDmaChan;


#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -