📄 tvptpphw.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 + -