xref: /utopia/UTPA2-700.0.x/modules/dmx/hal/curry/tso/regTSO.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1*53ee8cc1Swenshuai.xi //<MStar Software>
2*53ee8cc1Swenshuai.xi //******************************************************************************
3*53ee8cc1Swenshuai.xi // MStar Software
4*53ee8cc1Swenshuai.xi // Copyright (c) 2010 - 2012 MStar Semiconductor, Inc. All rights reserved.
5*53ee8cc1Swenshuai.xi // All software, firmware and related documentation herein ("MStar Software") are
6*53ee8cc1Swenshuai.xi // intellectual property of MStar Semiconductor, Inc. ("MStar") and protected by
7*53ee8cc1Swenshuai.xi // law, including, but not limited to, copyright law and international treaties.
8*53ee8cc1Swenshuai.xi // Any use, modification, reproduction, retransmission, or republication of all
9*53ee8cc1Swenshuai.xi // or part of MStar Software is expressly prohibited, unless prior written
10*53ee8cc1Swenshuai.xi // permission has been granted by MStar.
11*53ee8cc1Swenshuai.xi //
12*53ee8cc1Swenshuai.xi // By accessing, browsing and/or using MStar Software, you acknowledge that you
13*53ee8cc1Swenshuai.xi // have read, understood, and agree, to be bound by below terms ("Terms") and to
14*53ee8cc1Swenshuai.xi // comply with all applicable laws and regulations:
15*53ee8cc1Swenshuai.xi //
16*53ee8cc1Swenshuai.xi // 1. MStar shall retain any and all right, ownership and interest to MStar
17*53ee8cc1Swenshuai.xi //    Software and any modification/derivatives thereof.
18*53ee8cc1Swenshuai.xi //    No right, ownership, or interest to MStar Software and any
19*53ee8cc1Swenshuai.xi //    modification/derivatives thereof is transferred to you under Terms.
20*53ee8cc1Swenshuai.xi //
21*53ee8cc1Swenshuai.xi // 2. You understand that MStar Software might include, incorporate or be
22*53ee8cc1Swenshuai.xi //    supplied together with third party`s software and the use of MStar
23*53ee8cc1Swenshuai.xi //    Software may require additional licenses from third parties.
24*53ee8cc1Swenshuai.xi //    Therefore, you hereby agree it is your sole responsibility to separately
25*53ee8cc1Swenshuai.xi //    obtain any and all third party right and license necessary for your use of
26*53ee8cc1Swenshuai.xi //    such third party`s software.
27*53ee8cc1Swenshuai.xi //
28*53ee8cc1Swenshuai.xi // 3. MStar Software and any modification/derivatives thereof shall be deemed as
29*53ee8cc1Swenshuai.xi //    MStar`s confidential information and you agree to keep MStar`s
30*53ee8cc1Swenshuai.xi //    confidential information in strictest confidence and not disclose to any
31*53ee8cc1Swenshuai.xi //    third party.
32*53ee8cc1Swenshuai.xi //
33*53ee8cc1Swenshuai.xi // 4. MStar Software is provided on an "AS IS" basis without warranties of any
34*53ee8cc1Swenshuai.xi //    kind. Any warranties are hereby expressly disclaimed by MStar, including
35*53ee8cc1Swenshuai.xi //    without limitation, any warranties of merchantability, non-infringement of
36*53ee8cc1Swenshuai.xi //    intellectual property rights, fitness for a particular purpose, error free
37*53ee8cc1Swenshuai.xi //    and in conformity with any international standard.  You agree to waive any
38*53ee8cc1Swenshuai.xi //    claim against MStar for any loss, damage, cost or expense that you may
39*53ee8cc1Swenshuai.xi //    incur related to your use of MStar Software.
40*53ee8cc1Swenshuai.xi //    In no event shall MStar be liable for any direct, indirect, incidental or
41*53ee8cc1Swenshuai.xi //    consequential damages, including without limitation, lost of profit or
42*53ee8cc1Swenshuai.xi //    revenues, lost or damage of data, and unauthorized system use.
43*53ee8cc1Swenshuai.xi //    You agree that this Section 4 shall still apply without being affected
44*53ee8cc1Swenshuai.xi //    even if MStar Software has been modified by MStar in accordance with your
45*53ee8cc1Swenshuai.xi //    request or instruction for your use, except otherwise agreed by both
46*53ee8cc1Swenshuai.xi //    parties in writing.
47*53ee8cc1Swenshuai.xi //
48*53ee8cc1Swenshuai.xi // 5. If requested, MStar may from time to time provide technical supports or
49*53ee8cc1Swenshuai.xi //    services in relation with MStar Software to you for your use of
50*53ee8cc1Swenshuai.xi //    MStar Software in conjunction with your or your customer`s product
51*53ee8cc1Swenshuai.xi //    ("Services").
52*53ee8cc1Swenshuai.xi //    You understand and agree that, except otherwise agreed by both parties in
53*53ee8cc1Swenshuai.xi //    writing, Services are provided on an "AS IS" basis and the warranty
54*53ee8cc1Swenshuai.xi //    disclaimer set forth in Section 4 above shall apply.
55*53ee8cc1Swenshuai.xi //
56*53ee8cc1Swenshuai.xi // 6. Nothing contained herein shall be construed as by implication, estoppels
57*53ee8cc1Swenshuai.xi //    or otherwise:
58*53ee8cc1Swenshuai.xi //    (a) conferring any license or right to use MStar name, trademark, service
59*53ee8cc1Swenshuai.xi //        mark, symbol or any other identification;
60*53ee8cc1Swenshuai.xi //    (b) obligating MStar or any of its affiliates to furnish any person,
61*53ee8cc1Swenshuai.xi //        including without limitation, you and your customers, any assistance
62*53ee8cc1Swenshuai.xi //        of any kind whatsoever, or any information; or
63*53ee8cc1Swenshuai.xi //    (c) conferring any license or right under any intellectual property right.
64*53ee8cc1Swenshuai.xi //
65*53ee8cc1Swenshuai.xi // 7. These terms shall be governed by and construed in accordance with the laws
66*53ee8cc1Swenshuai.xi //    of Taiwan, R.O.C., excluding its conflict of law rules.
67*53ee8cc1Swenshuai.xi //    Any and all dispute arising out hereof or related hereto shall be finally
68*53ee8cc1Swenshuai.xi //    settled by arbitration referred to the Chinese Arbitration Association,
69*53ee8cc1Swenshuai.xi //    Taipei in accordance with the ROC Arbitration Law and the Arbitration
70*53ee8cc1Swenshuai.xi //    Rules of the Association by three (3) arbitrators appointed in accordance
71*53ee8cc1Swenshuai.xi //    with the said Rules.
72*53ee8cc1Swenshuai.xi //    The place of arbitration shall be in Taipei, Taiwan and the language shall
73*53ee8cc1Swenshuai.xi //    be English.
74*53ee8cc1Swenshuai.xi //    The arbitration award shall be final and binding to both parties.
75*53ee8cc1Swenshuai.xi //
76*53ee8cc1Swenshuai.xi //******************************************************************************
77*53ee8cc1Swenshuai.xi //<MStar Software>
78*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
79*53ee8cc1Swenshuai.xi //
80*53ee8cc1Swenshuai.xi // Copyright (c) 2011-2013 MStar Semiconductor, Inc.
81*53ee8cc1Swenshuai.xi // All rights reserved.
82*53ee8cc1Swenshuai.xi //
83*53ee8cc1Swenshuai.xi // Unless otherwise stipulated in writing, any and all information contained
84*53ee8cc1Swenshuai.xi // herein regardless in any format shall remain the sole proprietary of
85*53ee8cc1Swenshuai.xi // MStar Semiconductor Inc. and be kept in strict confidence
86*53ee8cc1Swenshuai.xi // ("MStar Confidential Information") by the recipient.
87*53ee8cc1Swenshuai.xi // Any unauthorized act including without limitation unauthorized disclosure,
88*53ee8cc1Swenshuai.xi // copying, use, reproduction, sale, distribution, modification, disassembling,
89*53ee8cc1Swenshuai.xi // reverse engineering and compiling of the contents of MStar Confidential
90*53ee8cc1Swenshuai.xi // Information is unlawful and strictly prohibited. MStar hereby reserves the
91*53ee8cc1Swenshuai.xi // rights to any and all damages, losses, costs and expenses resulting therefrom.
92*53ee8cc1Swenshuai.xi //
93*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////
94*53ee8cc1Swenshuai.xi 
95*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////////////////////////
96*53ee8cc1Swenshuai.xi //
97*53ee8cc1Swenshuai.xi //  File name: regTSO.h
98*53ee8cc1Swenshuai.xi //  Description: TS I/O Register Definition
99*53ee8cc1Swenshuai.xi //
100*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////////////////////////
101*53ee8cc1Swenshuai.xi 
102*53ee8cc1Swenshuai.xi #ifndef _TSO_REG_H_
103*53ee8cc1Swenshuai.xi #define _TSO_REG_H_
104*53ee8cc1Swenshuai.xi 
105*53ee8cc1Swenshuai.xi //--------------------------------------------------------------------------------------------------
106*53ee8cc1Swenshuai.xi //  Abbreviation
107*53ee8cc1Swenshuai.xi //--------------------------------------------------------------------------------------------------
108*53ee8cc1Swenshuai.xi // Addr                             Address
109*53ee8cc1Swenshuai.xi // Buf                              Buffer
110*53ee8cc1Swenshuai.xi // Clr                              Clear
111*53ee8cc1Swenshuai.xi // CmdQ                             Command queue
112*53ee8cc1Swenshuai.xi // Cnt                              Count
113*53ee8cc1Swenshuai.xi // Ctrl                             Control
114*53ee8cc1Swenshuai.xi // Flt                              Filter
115*53ee8cc1Swenshuai.xi // Hw                               Hardware
116*53ee8cc1Swenshuai.xi // Int                              Interrupt
117*53ee8cc1Swenshuai.xi // Len                              Length
118*53ee8cc1Swenshuai.xi // Ovfw                             Overflow
119*53ee8cc1Swenshuai.xi // Pkt                              Packet
120*53ee8cc1Swenshuai.xi // Rec                              Record
121*53ee8cc1Swenshuai.xi // Recv                             Receive
122*53ee8cc1Swenshuai.xi // Rmn                              Remain
123*53ee8cc1Swenshuai.xi // Reg                              Register
124*53ee8cc1Swenshuai.xi // Req                              Request
125*53ee8cc1Swenshuai.xi // Rst                              Reset
126*53ee8cc1Swenshuai.xi // Scmb                             Scramble
127*53ee8cc1Swenshuai.xi // Sec                              Section
128*53ee8cc1Swenshuai.xi // Stat                             Status
129*53ee8cc1Swenshuai.xi // Sw                               Software
130*53ee8cc1Swenshuai.xi // Ts                               Transport Stream
131*53ee8cc1Swenshuai.xi // MMFI                             Multi Media File In
132*53ee8cc1Swenshuai.xi 
133*53ee8cc1Swenshuai.xi //--------------------------------------------------------------------------------------------------
134*53ee8cc1Swenshuai.xi //  Global Definition
135*53ee8cc1Swenshuai.xi //--------------------------------------------------------------------------------------------------
136*53ee8cc1Swenshuai.xi 
137*53ee8cc1Swenshuai.xi //@TODO  check ENG PIDFLT TSIF number
138*53ee8cc1Swenshuai.xi 
139*53ee8cc1Swenshuai.xi #define TSO_ENGINE_NUM                      (1)
140*53ee8cc1Swenshuai.xi #define TSO_PIDFLT_NUM                      (128)
141*53ee8cc1Swenshuai.xi #define TSO_REP_PIDFLT_NUM                  (16)
142*53ee8cc1Swenshuai.xi #define TSO_FILE_IF_NUM                     (2)
143*53ee8cc1Swenshuai.xi #define TSO_TSIF_NUM                        (6)
144*53ee8cc1Swenshuai.xi 
145*53ee8cc1Swenshuai.xi #define TSO_PIDFLT_NUM_ALL                  TSO_PIDFLT_NUM
146*53ee8cc1Swenshuai.xi 
147*53ee8cc1Swenshuai.xi #define TSO_PID_NULL                        (0x1FFF)
148*53ee8cc1Swenshuai.xi #define TSO_MIU_BUS                         (4)
149*53ee8cc1Swenshuai.xi #define TSO_SVQ_UNIT_SIZE                   (208)
150*53ee8cc1Swenshuai.xi 
151*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
152*53ee8cc1Swenshuai.xi //  Harware Capability
153*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
154*53ee8cc1Swenshuai.xi #define TSO_CLKIN_TS0                       0x00
155*53ee8cc1Swenshuai.xi #define TSO_CLKIN_TS1                       0x01
156*53ee8cc1Swenshuai.xi #define TSO_CLKIN_TS2                       0x02
157*53ee8cc1Swenshuai.xi #define TSO_CLKIN_TS3                       0x03
158*53ee8cc1Swenshuai.xi #define TSO_CLKIN_TS4                       0x04
159*53ee8cc1Swenshuai.xi #define TSO_CLKIN_TS5                       0x05
160*53ee8cc1Swenshuai.xi #define TSO_CLKIN_TS6                       0x06
161*53ee8cc1Swenshuai.xi #define TSO_CLKIN_TSO0_OUT_P                0x07
162*53ee8cc1Swenshuai.xi #define TSO_CLKIN_DMD                       0xFFFF //not supported
163*53ee8cc1Swenshuai.xi 
164*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
165*53ee8cc1Swenshuai.xi //  Type and Structure
166*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
167*53ee8cc1Swenshuai.xi #define REG_PIDFLT_BASE                     (0x210000UL)
168*53ee8cc1Swenshuai.xi #define TSO_PIDFLT_PID_MASK                 (0x1FFF)
169*53ee8cc1Swenshuai.xi #define TSO_PIDFLT_IN_MASK                  (0x7)
170*53ee8cc1Swenshuai.xi #define TSO_PIDFLT_IN_SHIFT                 (13)
171*53ee8cc1Swenshuai.xi 
172*53ee8cc1Swenshuai.xi #define REG_CTRL_BASE_TSO                   (0xE0C00UL)                            // 0x1706
173*53ee8cc1Swenshuai.xi #define REG_CTRL_BASE_TSO1                  (0xC2400UL)                            // 0x1612
174*53ee8cc1Swenshuai.xi 
175*53ee8cc1Swenshuai.xi typedef struct _REG32_TSO
176*53ee8cc1Swenshuai.xi {
177*53ee8cc1Swenshuai.xi     volatile MS_U16                L;
178*53ee8cc1Swenshuai.xi     volatile MS_U16                empty_L;
179*53ee8cc1Swenshuai.xi     volatile MS_U16                H;
180*53ee8cc1Swenshuai.xi     volatile MS_U16                empty_H;
181*53ee8cc1Swenshuai.xi } REG32_TSO;
182*53ee8cc1Swenshuai.xi 
183*53ee8cc1Swenshuai.xi typedef struct _REG16_TSO
184*53ee8cc1Swenshuai.xi {
185*53ee8cc1Swenshuai.xi     volatile MS_U16                data;
186*53ee8cc1Swenshuai.xi     volatile MS_U16                _resv;
187*53ee8cc1Swenshuai.xi } REG16_TSO;
188*53ee8cc1Swenshuai.xi 
189*53ee8cc1Swenshuai.xi //TSO0
190*53ee8cc1Swenshuai.xi typedef struct _REG_Ctrl_TSO
191*53ee8cc1Swenshuai.xi {
192*53ee8cc1Swenshuai.xi     //----------------------------------------------
193*53ee8cc1Swenshuai.xi     // 0xBF802A00 MIPS direct access
194*53ee8cc1Swenshuai.xi     //----------------------------------------------
195*53ee8cc1Swenshuai.xi                                                                     // Index(word)  CPU(byte)     MIPS(0x13A00/2+index)*4
196*53ee8cc1Swenshuai.xi     REG16_TSO                             SW_RSTZ;                  //00
197*53ee8cc1Swenshuai.xi     #define TSO_SW_RSTZ                                             0x0001
198*53ee8cc1Swenshuai.xi     #define TSO_SW_RST_CLK_STAMP                                    0x0002
199*53ee8cc1Swenshuai.xi     #define TSO_SW_RST_CMDQ1                                        0x0100
200*53ee8cc1Swenshuai.xi     #define TSO_SW_RST_WB1                                          0x0200
201*53ee8cc1Swenshuai.xi     #define TSO_SW_RST_WB_DMA1                                      0x0400
202*53ee8cc1Swenshuai.xi     #define TSO_SW_RST_TS_FIN1                                      0x0800
203*53ee8cc1Swenshuai.xi     #define TSO_SW_RST_CMDQ                                         0x1000
204*53ee8cc1Swenshuai.xi     #define TSO_SW_RST_WB                                           0x2000
205*53ee8cc1Swenshuai.xi     #define TSO_SW_RST_WB_DMA                                       0x4000
206*53ee8cc1Swenshuai.xi     #define TSO_SW_RST_FIN                                          0x8000
207*53ee8cc1Swenshuai.xi     #define TSO_SW_RST_ALL                                          0xF002
208*53ee8cc1Swenshuai.xi     #define TSO_SW_RST_ALL1                                         0x0F02
209*53ee8cc1Swenshuai.xi 
210*53ee8cc1Swenshuai.xi 
211*53ee8cc1Swenshuai.xi     REG16_TSO                             SW_RSTZ1;                 //01
212*53ee8cc1Swenshuai.xi     #define TSO_SW_RST_CHANNEL_IF1                                  0x0001
213*53ee8cc1Swenshuai.xi     #define TSO_SW_RST_CHANNEL_IF2                                  0x0002
214*53ee8cc1Swenshuai.xi     #define TSO_SW_RST_CHANNEL_IF3                                  0x0004
215*53ee8cc1Swenshuai.xi     #define TSO_SW_RST_CHANNEL_IF4                                  0x0008
216*53ee8cc1Swenshuai.xi     #define TSO_SW_RST_CHANNEL_IF5                                  0x0010
217*53ee8cc1Swenshuai.xi     #define TSO_SW_RST_CHANNEL_IF6                                  0x0020
218*53ee8cc1Swenshuai.xi 
219*53ee8cc1Swenshuai.xi     REG16_TSO                             CFG_TSO_02_03[2];
220*53ee8cc1Swenshuai.xi 
221*53ee8cc1Swenshuai.xi     REG16_TSO                             CHANNEL0_IF1_CONFIG0;     //04
222*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF1_CONFIG0_PKT_SIZE_CHK_LIVE_MASK         0x00FF //for internal sync
223*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF1_CONFIG0_PKT_SIZE_CHK_LIVE_SHIFT        0
224*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF1_CONFIG0_PIDFLT_PKT_SIZE_MASK           0xFF00
225*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF1_CONFIG0_PIDFLT_PKT_SIZE_SHIFT          8
226*53ee8cc1Swenshuai.xi 
227*53ee8cc1Swenshuai.xi     REG16_TSO                             CHANNEL0_IF1_CONFIG1;     //05
228*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF1_CONFIG1_SYNC_BYTE_MASK                 0x00FF
229*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF1_CONFIG1_SYNC_BYTE_SHIFT                0
230*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF1_CONFIG1_PKT_INPUT_MODE_MASK            0x0700
231*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF1_CONFIG1_PKT_INPUT_MODE_SHIFT           8
232*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF1_CONFIG1_PKT_HEADER_LEN_MASK            0xF800
233*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF1_CONFIG1_PKT_HEADER_LEN_SHIFT           11
234*53ee8cc1Swenshuai.xi 
235*53ee8cc1Swenshuai.xi     REG16_TSO                             CHANNEL0_IF1_CONFIG2;     //06
236*53ee8cc1Swenshuai.xi     //----- for TV comaptibility -----//
237*53ee8cc1Swenshuai.xi     #define TSO_CHCFG_P_SEL                                         0x0001
238*53ee8cc1Swenshuai.xi     #define TSO_CHCFG_EXT_SYNC_SEL                                  0x0002
239*53ee8cc1Swenshuai.xi     #define TSO_CHCFG_TS_SIN_C0                                     0x0004
240*53ee8cc1Swenshuai.xi     #define TSO_CHCFG_TS_SIN_C1                                     0x0008
241*53ee8cc1Swenshuai.xi     #define TSO_CHCFG_PIDFLT_REC_ALL                                0x0010
242*53ee8cc1Swenshuai.xi     #define TSO_CHCFG_PIDFLT_REC_NULL                               0x0020
243*53ee8cc1Swenshuai.xi     #define TSO_CHCFG_PIDFLT_OVF_INT_EN                             0x0040
244*53ee8cc1Swenshuai.xi     #define TSO_CHCFG_PIDFLT_OVF_CLR                                0x0080
245*53ee8cc1Swenshuai.xi     #define TSO_CHCFG_FORCE_SYNC_BYTE                               0x0100
246*53ee8cc1Swenshuai.xi     #define TSO_CHCFG_SKIP_TEI_PKT                                  0x0200
247*53ee8cc1Swenshuai.xi     #define TSO_CHCFG_DIS_LOCKED_PKT_CNT                            0x0400
248*53ee8cc1Swenshuai.xi     #define TSO_CHCFG_CLR_LOCKED_PKT_CNT                            0x0800
249*53ee8cc1Swenshuai.xi     #define TSO_CHCFG_TRC_CLK_LD_DIS                                0x1000
250*53ee8cc1Swenshuai.xi     #define TSO_CHCFG_TRC_CLK_CLR                                   0x2000
251*53ee8cc1Swenshuai.xi     //--------------------------------//
252*53ee8cc1Swenshuai.xi 
253*53ee8cc1Swenshuai.xi     REG16_TSO                             CHANNEL0_IF1_CONFIG3;     //07    reserved
254*53ee8cc1Swenshuai.xi 
255*53ee8cc1Swenshuai.xi     REG16_TSO                             CHANNEL0_IF2_CONFIG0;     //08
256*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF2_CONFIG0_PKT_SIZE_CHK_LIVE_MASK         0x00FF
257*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF2_CONFIG0_PKT_SIZE_CHK_LIVE_SHIFT        0
258*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF2_CONFIG0_PIDFLT_PKT_SIZE_MASK           0xFF00
259*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF2_CONFIG0_PIDFLT_PKT_SIZE_SHIFT          8
260*53ee8cc1Swenshuai.xi 
261*53ee8cc1Swenshuai.xi     REG16_TSO                             CHANNEL0_IF2_CONFIG1;     //09
262*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF2_CONFIG1_SYNC_BYTE_MASK                 0x00FF
263*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF2_CONFIG1_SYNC_BYTE_SHIFT                0
264*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF2_CONFIG1_PKT_INPUT_MODE_MASK            0x0700
265*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF2_CONFIG1_PKT_INPUT_MODE_SHIFT           8
266*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF2_CONFIG1_PKT_HEADER_LEN_MASK            0xF800
267*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF2_CONFIG1_PKT_HEADER_LEN_SHIFT           11
268*53ee8cc1Swenshuai.xi 
269*53ee8cc1Swenshuai.xi     REG16_TSO                             CHANNEL0_IF2_CONFIG2;     //0a
270*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF2_CONFIG2_P_SEL                          0x0001
271*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF2_CONFIG2_EXT_SYNC_SEL                   0x0002
272*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF2_CONFIG2_TS_SIN_C0                      0x0004
273*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF2_CONFIG2_TS_SIN_C1                      0x0008
274*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF2_CONFIG2_PIDFLT_REC_ALL                 0x0010
275*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF2_CONFIG2_PIDFLT_REC_NULL                0x0020
276*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF2_CONFIG2_PIDFLT_OVERFLOW_INT_EN         0x0040
277*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF2_CONFIG2_PIDFLT_OVERFLOW_CLR            0x0080
278*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF2_CONFIG2_FORCE_SYNC_BYTE                0x0100
279*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF2_CONFIG2_SKIP_TEI_PKT                   0x0200
280*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF2_CONFIG2_DIS_LOCKED_PKT_CNT             0x0400
281*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF2_CONFIG2_CLR_LOCKED_PKT_CNT             0x0800
282*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF2_CONFIG2_TRACING_CLOCK_LD_DIS           0x1000
283*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF2_CONFIG2_TRACING_CLOCK_CLR              0x2000
284*53ee8cc1Swenshuai.xi 
285*53ee8cc1Swenshuai.xi     REG16_TSO                             CHANNEL0_IF2_CONFIG3;     //0b    reserved
286*53ee8cc1Swenshuai.xi 
287*53ee8cc1Swenshuai.xi     REG16_TSO                             CHANNEL0_IF3_CONFIG0;     //0c
288*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF3_CONFIG0_PKT_SIZE_CHK_LIVE_MASK         0x00FF
289*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF3_CONFIG0_PKT_SIZE_CHK_LIVE_SHIFT        0
290*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF3_CONFIG0_PIDFLT_PKT_SIZE_MASK           0xFF00
291*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF3_CONFIG0_PIDFLT_PKT_SIZE_SHIFT          8
292*53ee8cc1Swenshuai.xi 
293*53ee8cc1Swenshuai.xi     REG16_TSO                             CHANNEL0_IF3_CONFIG1;     //0d
294*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF3_CONFIG1_SYNC_BYTE_MASK                 0x00FF
295*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF3_CONFIG1_SYNC_BYTE_SHIFT                0
296*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF3_CONFIG1_PKT_INPUT_MODE_MASK            0x0700
297*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF3_CONFIG1_PKT_INPUT_MODE_SHIFT           8
298*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF3_CONFIG1_PKT_HEADER_LEN_MASK            0xF800
299*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF3_CONFIG1_PKT_HEADER_LEN_SHIFT           11
300*53ee8cc1Swenshuai.xi 
301*53ee8cc1Swenshuai.xi     REG16_TSO                             CHANNEL0_IF3_CONFIG2;     //0e
302*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF3_CONFIG2_P_SEL                          0x0001
303*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF3_CONFIG2_EXT_SYNC_SEL                   0x0002
304*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF3_CONFIG2_TS_SIN_C0                      0x0004
305*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF3_CONFIG2_TS_SIN_C1                      0x0008
306*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF3_CONFIG2_PIDFLT_REC_ALL                 0x0010
307*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF3_CONFIG2_PIDFLT_REC_NULL                0x0020
308*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF3_CONFIG2_PIDFLT_OVERFLOW_INT_EN         0x0040
309*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF3_CONFIG2_PIDFLT_OVERFLOW_CLR            0x0080
310*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF3_CONFIG2_FORCE_SYNC_BYTE                0x0100
311*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF3_CONFIG2_SKIP_TEI_PKT                   0x0200
312*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF3_CONFIG2_DIS_LOCKED_PKT_CNT             0x0400
313*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF3_CONFIG2_CLR_LOCKED_PKT_CNT             0x0800
314*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF3_CONFIG2_TRACING_CLOCK_LD_DIS           0x1000
315*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF3_CONFIG2_TRACING_CLOCK_CLR              0x2000
316*53ee8cc1Swenshuai.xi 
317*53ee8cc1Swenshuai.xi     REG16_TSO                             CHANNEL0_IF3_CONFIG3;     //0f    reserved
318*53ee8cc1Swenshuai.xi 
319*53ee8cc1Swenshuai.xi     REG16_TSO                             CHANNEL0_IF4_CONFIG0;     //10
320*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF4_CONFIG0_PKT_SIZE_CHK_LIVE_MASK         0x00FF
321*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF4_CONFIG0_PKT_SIZE_CHK_LIVE_SHIFT        0
322*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF4_CONFIG0_PIDFLT_PKT_SIZE_MASK           0xFF00
323*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF4_CONFIG0_PIDFLT_PKT_SIZE_SHIFT          8
324*53ee8cc1Swenshuai.xi 
325*53ee8cc1Swenshuai.xi     REG16_TSO                             CHANNEL0_IF4_CONFIG1;     //11
326*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF4_CONFIG1_SYNC_BYTE_MASK                 0x00FF
327*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF4_CONFIG1_SYNC_BYTE_SHIFT                0
328*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF4_CONFIG1_PKT_INPUT_MODE_MASK            0x0700
329*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF4_CONFIG1_PKT_INPUT_MODE_SHIFT           8
330*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF4_CONFIG1_PKT_HEADER_LEN_MASK            0xF800
331*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF4_CONFIG1_PKT_HEADER_LEN_SHIFT           11
332*53ee8cc1Swenshuai.xi 
333*53ee8cc1Swenshuai.xi     REG16_TSO                             CHANNEL0_IF4_CONFIG2;     //12
334*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF4_CONFIG2_P_SEL                          0x0001
335*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF4_CONFIG2_EXT_SYNC_SEL                   0x0002
336*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF4_CONFIG2_TS_SIN_C0                      0x0004
337*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF4_CONFIG2_TS_SIN_C1                      0x0008
338*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF4_CONFIG2_PIDFLT_REC_ALL                 0x0010
339*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF4_CONFIG2_PIDFLT_REC_NULL                0x0020
340*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF4_CONFIG2_PIDFLT_OVERFLOW_INT_EN         0x0040
341*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF4_CONFIG2_PIDFLT_OVERFLOW_CLR            0x0080
342*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF4_CONFIG2_FORCE_SYNC_BYTE                0x0100
343*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF4_CONFIG2_SKIP_TEI_PKT                   0x0200
344*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF4_CONFIG2_DIS_LOCKED_PKT_CNT             0x0400
345*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF4_CONFIG2_CLR_LOCKED_PKT_CNT             0x0800
346*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF4_CONFIG2_TRACING_CLOCK_LD_DIS           0x1000
347*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF4_CONFIG2_TRACING_CLOCK_CLR              0x2000
348*53ee8cc1Swenshuai.xi 
349*53ee8cc1Swenshuai.xi     REG16_TSO                             CHANNEL0_IF4_CONFIG3;     //13 reserved
350*53ee8cc1Swenshuai.xi 
351*53ee8cc1Swenshuai.xi     REG16_TSO                             CHANNEL0_IF5_CONFIG0;     //14
352*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF5_CONFIG0_PKT_SIZE_CHK_LIVE_MASK         0x00FF
353*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF5_CONFIG0_PKT_SIZE_CHK_LIVE_SHIFT        0
354*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF5_CONFIG0_PIDFLT_PKT_SIZE_MASK           0xFF00
355*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF5_CONFIG0_PIDFLT_PKT_SIZE_SHIFT          8
356*53ee8cc1Swenshuai.xi 
357*53ee8cc1Swenshuai.xi     REG16_TSO                             CHANNEL0_IF5_CONFIG1;     //15
358*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF5_CONFIG1_SYNC_BYTE_MASK                 0x00FF
359*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF5_CONFIG1_SYNC_BYTE_SHIFT                0
360*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF5_CONFIG1_PKT_INPUT_MODE_MASK            0x0700
361*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF5_CONFIG1_PKT_INPUT_MODE_SHIFT           8
362*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF5_CONFIG1_PKT_HEADER_LEN_MASK            0xF800
363*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF5_CONFIG1_PKT_HEADER_LEN_SHIFT           11
364*53ee8cc1Swenshuai.xi 
365*53ee8cc1Swenshuai.xi     REG16_TSO                             CHANNEL0_IF5_CONFIG2;     //16
366*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF5_CONFIG2_P_SEL                          0x0001
367*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF5_CONFIG2_EXT_SYNC_SEL                   0x0002
368*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF5_CONFIG2_TS_SIN_C0                      0x0004
369*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF5_CONFIG2_TS_SIN_C1                      0x0008
370*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF5_CONFIG2_PIDFLT_REC_ALL                 0x0010
371*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF5_CONFIG2_PIDFLT_REC_NULL                0x0020
372*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF5_CONFIG2_PIDFLT_OVERFLOW_INT_EN         0x0040
373*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF5_CONFIG2_PIDFLT_OVERFLOW_CLR            0x0080
374*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF5_CONFIG2_FORCE_SYNC_BYTE                0x0100
375*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF5_CONFIG2_SKIP_TEI_PKT                   0x0200
376*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF5_CONFIG2_DIS_LOCKED_PKT_CNT             0x0400
377*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF5_CONFIG2_CLR_LOCKED_PKT_CNT             0x0800
378*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF5_CONFIG2_TRACING_CLOCK_LD_DIS           0x1000
379*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF5_CONFIG2_TRACING_CLOCK_CLR              0x2000
380*53ee8cc1Swenshuai.xi 
381*53ee8cc1Swenshuai.xi     REG16_TSO                             CHANNEL0_IF5_CONFIG3;     //17 reserved
382*53ee8cc1Swenshuai.xi 
383*53ee8cc1Swenshuai.xi     REG16_TSO                             CHANNEL0_IF6_CONFIG0;     //18
384*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF6_CONFIG0_PKT_SIZE_CHK_LIVE_MASK         0x00FF
385*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF6_CONFIG0_PKT_SIZE_CHK_LIVE_SHIFT        0
386*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF6_CONFIG0_PIDFLT_PKT_SIZE_MASK           0xFF00
387*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF6_CONFIG0_PIDFLT_PKT_SIZE_SHIFT          8
388*53ee8cc1Swenshuai.xi 
389*53ee8cc1Swenshuai.xi     REG16_TSO                             CHANNEL0_IF6_CONFIG1;     //19
390*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF6_CONFIG1_SYNC_BYTE_MASK                 0x00FF
391*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF6_CONFIG1_SYNC_BYTE_SHIFT                0
392*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF6_CONFIG1_PKT_INPUT_MODE_MASK            0x0700
393*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF6_CONFIG1_PKT_INPUT_MODE_SHIFT           8
394*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF6_CONFIG1_PKT_HEADER_LEN_MASK            0xF800
395*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF6_CONFIG1_PKT_HEADER_LEN_SHIFT           11
396*53ee8cc1Swenshuai.xi 
397*53ee8cc1Swenshuai.xi     REG16_TSO                             CHANNEL0_IF6_CONFIG2;     //1a
398*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF6_CONFIG2_P_SEL                          0x0001
399*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF6_CONFIG2_EXT_SYNC_SEL                   0x0002
400*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF6_CONFIG2_TS_SIN_C0                      0x0004
401*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF6_CONFIG2_TS_SIN_C1                      0x0008
402*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF6_CONFIG2_PIDFLT_REC_ALL                 0x0010
403*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF6_CONFIG2_PIDFLT_REC_NULL                0x0020
404*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF6_CONFIG2_PIDFLT_OVERFLOW_INT_EN         0x0040
405*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF6_CONFIG2_PIDFLT_OVERFLOW_CLR            0x0080
406*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF6_CONFIG2_FORCE_SYNC_BYTE                0x0100
407*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF6_CONFIG2_SKIP_TEI_PKT                   0x0200
408*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF6_CONFIG2_DIS_LOCKED_PKT_CNT             0x0400
409*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF6_CONFIG2_CLR_LOCKED_PKT_CNT             0x0800
410*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF6_CONFIG2_TRACING_CLOCK_LD_DIS           0x1000
411*53ee8cc1Swenshuai.xi     #define TSO_CHANNEL0_IF6_CONFIG2_TRACING_CLOCK_CLR              0x2000
412*53ee8cc1Swenshuai.xi 
413*53ee8cc1Swenshuai.xi     REG16_TSO                             CHANNEL0_IF6_CONFIG3;     //1b reserved
414*53ee8cc1Swenshuai.xi 
415*53ee8cc1Swenshuai.xi     REG16_TSO                             TSO_CONFIG0;              //1c
416*53ee8cc1Swenshuai.xi     #define TSO_CONFIG0_S2P_EN                                      0x0001
417*53ee8cc1Swenshuai.xi     #define TSO_CONFIG0_S2P_TS_SIN_C0                               0x0002
418*53ee8cc1Swenshuai.xi     #define TSO_CONFIG0_S2P_TS_SIN_C1                               0x0004
419*53ee8cc1Swenshuai.xi     #define TSO_CONFIG0_S2P_3WIRE_MODE                              0x0008
420*53ee8cc1Swenshuai.xi     #define TSO_CONFIG0_BYPASS_S2P                                  0x0010
421*53ee8cc1Swenshuai.xi     #define TSO_CONFIG0_S2P1_EN                                     0x0100
422*53ee8cc1Swenshuai.xi     #define TSO_CONFIG0_S2P1_TS_SIN_C0                              0x0200
423*53ee8cc1Swenshuai.xi     #define TSO_CONFIG0_S2P1_TS_SIN_C1                              0x0400
424*53ee8cc1Swenshuai.xi     #define TSO_CONFIG0_S2P1_3WIRE_MODE                             0x0800
425*53ee8cc1Swenshuai.xi     #define TSO_CONFIG0_BYPASS_S2P1                                 0x1000
426*53ee8cc1Swenshuai.xi 
427*53ee8cc1Swenshuai.xi     REG16_TSO                             TSO_CONFIG1;              //1d
428*53ee8cc1Swenshuai.xi     //----- for TV comaptibility -----//
429*53ee8cc1Swenshuai.xi     #define TSO_CFG1_TSO_OUT_EN                                     0x0001
430*53ee8cc1Swenshuai.xi     #define TSO_CFG1_TSO_TSIF1_EN                                   0x0002
431*53ee8cc1Swenshuai.xi     #define TSO_CFG1_TSO_TSIF2_EN                                   0x0004
432*53ee8cc1Swenshuai.xi     #define TSO_CFG1_TSO_TSIF3_EN                                   0x0008
433*53ee8cc1Swenshuai.xi     #define TSO_CFG1_TSO_TSIF4_EN                                   0x0010
434*53ee8cc1Swenshuai.xi     #define TSO_CFG1_TSO_TSIF5_EN                                   0x0020
435*53ee8cc1Swenshuai.xi     #define TSO_CFG1_TSO_TSIF6_EN                                   0x0040
436*53ee8cc1Swenshuai.xi     //--------------------------------//
437*53ee8cc1Swenshuai.xi     #define TSO_CONFIG1_PAUSE_OPIF                                  0x0080
438*53ee8cc1Swenshuai.xi     #define TSO_CONFIG1_TURN_OFF_MCM                                0x0100
439*53ee8cc1Swenshuai.xi     #define TSO_CONFIG1_CLOCK_TRACING_SEL_MASK                      0x0E00
440*53ee8cc1Swenshuai.xi     #define TSO_CONFIG1_CLOCK_TRACING_SEL_SHIFT                     9
441*53ee8cc1Swenshuai.xi     #define TSO_CONFIG1_SERIAL_OUT_EN                               0x1000
442*53ee8cc1Swenshuai.xi     #define TSO_CONFIG1_PKT_LOCK_CLR                                0x2000
443*53ee8cc1Swenshuai.xi     #define TSO_CONFIG1_PKT_NULL_EN                                 0x4000
444*53ee8cc1Swenshuai.xi     //----- for TV comaptibility -----//
445*53ee8cc1Swenshuai.xi     #define TSO_CFG1_PKT_PARAM_LD                                   0x8000
446*53ee8cc1Swenshuai.xi     //--------------------------------//
447*53ee8cc1Swenshuai.xi 
448*53ee8cc1Swenshuai.xi     REG16_TSO                             TSO_CONFIG2;              //1e
449*53ee8cc1Swenshuai.xi     #define TSO_CONFIG2_VALID_BYTE_CNT_MASK                         0x00FF
450*53ee8cc1Swenshuai.xi     #define TSO_CONFIG2_VALID_BYTE_CNT_SHIFT                        0
451*53ee8cc1Swenshuai.xi     #define TSO_CONFIG2_INVALID_BYTE_CNT_MASK                       0xFF00
452*53ee8cc1Swenshuai.xi     #define TSO_CONFIG2_INVALID_BYTE_CNT_SHIFT                      8
453*53ee8cc1Swenshuai.xi 
454*53ee8cc1Swenshuai.xi     REG16_TSO                             TSO_CONFIG3;              //1f
455*53ee8cc1Swenshuai.xi     #define TSO_CONFIG3_OPIF_PKT_SIZE_MASK                          0xFFFF
456*53ee8cc1Swenshuai.xi 
457*53ee8cc1Swenshuai.xi     REG32_TSO                             PIDFLTS[16];              //20~3e  PID00~0F
458*53ee8cc1Swenshuai.xi     //FOR ALL PID
459*53ee8cc1Swenshuai.xi     #define TSO_PID_ORIGINAL_PID_MASK                               0x00001FFF
460*53ee8cc1Swenshuai.xi     #define TSO_PID_ORIGINAL_PID_SHIFT                              0
461*53ee8cc1Swenshuai.xi     #define TSO_PID_SOURCE_SEL_MASK                                 0x0000E000
462*53ee8cc1Swenshuai.xi     #define TSO_PID_SOURCE_SEL_SHIFT                                13
463*53ee8cc1Swenshuai.xi     #define TSO_PID_NEW_PID_MASK                                    0x1FFF0000
464*53ee8cc1Swenshuai.xi     #define TSO_PID_NEW_PID_SHIFT                                   16
465*53ee8cc1Swenshuai.xi     #define TSO_PID_REPLACE_EN                                      0x80000000
466*53ee8cc1Swenshuai.xi 
467*53ee8cc1Swenshuai.xi     REG16_TSO                             CLR_BYTE_CNT;             //40
468*53ee8cc1Swenshuai.xi     #define TSO_CLR_BYTE_CNT_1                                      0x0001
469*53ee8cc1Swenshuai.xi     #define TSO_CLR_BYTE_CNT_2                                      0x0002
470*53ee8cc1Swenshuai.xi     #define TSO_CLR_BYTE_CNT_3                                      0x0004
471*53ee8cc1Swenshuai.xi     #define TSO_CLR_BYTE_CNT_4                                      0x0008
472*53ee8cc1Swenshuai.xi     #define TSO_CLR_BYTE_CNT_5                                      0x0010
473*53ee8cc1Swenshuai.xi     #define TSO_CLR_BYTE_CNT_6                                      0x0020
474*53ee8cc1Swenshuai.xi 
475*53ee8cc1Swenshuai.xi     REG16_TSO                             CFG_TSO_41_42[2];         //41~42
476*53ee8cc1Swenshuai.xi 
477*53ee8cc1Swenshuai.xi     REG16_TSO                             TSO_CONFIG4;              //43
478*53ee8cc1Swenshuai.xi     #define TSO_CFG4_LOCK_RETURN_SYSTEM_TIMESTAMP                   0x0001
479*53ee8cc1Swenshuai.xi     #define TSO_CFG4_ENABLE_SYS_TIMESTAMP                           0x0002
480*53ee8cc1Swenshuai.xi     #define TSO_CFG4_SET_SYS_TIMESTAMP_TO_HW                        0x0004
481*53ee8cc1Swenshuai.xi     #define TSO_CFG4_TIMESTAMP_BASE                                 0x0008//0:90k 1:27m
482*53ee8cc1Swenshuai.xi     #define TSO_CFG4_PDTABLE_SRAM_SD_EN                             0x0010
483*53ee8cc1Swenshuai.xi     #define TSO_CFG4_NULL_PKT_ID_MASK                               0xFF00
484*53ee8cc1Swenshuai.xi     #define TSO_CFG4_NULL_PKT_ID_SHIFT                              8
485*53ee8cc1Swenshuai.xi 
486*53ee8cc1Swenshuai.xi     REG16_TSO                             TSO_CONFIG5;              //44
487*53ee8cc1Swenshuai.xi     #define TSO_CONFIG5_3_WIRE_EN_1                                 0x0001
488*53ee8cc1Swenshuai.xi     #define TSO_CONFIG5_3_WIRE_EN_2                                 0x0002
489*53ee8cc1Swenshuai.xi     #define TSO_CONFIG5_3_WIRE_EN_3                                 0x0004
490*53ee8cc1Swenshuai.xi     #define TSO_CONFIG5_3_WIRE_EN_4                                 0x0008
491*53ee8cc1Swenshuai.xi     #define TSO_CONFIG5_3_WIRE_EN_5                                 0x0010
492*53ee8cc1Swenshuai.xi     #define TSO_CONFIG5_3_WIRE_EN_6                                 0x0020
493*53ee8cc1Swenshuai.xi     #define TSO_CONFIG5_FIXED_MIU_REG_FLUSH                         0x0080
494*53ee8cc1Swenshuai.xi     #define TSO_CONFIG5_DIS_MIU_RQ                                  0x0400
495*53ee8cc1Swenshuai.xi 
496*53ee8cc1Swenshuai.xi     REG16_TSO                             PDTABLE_ADDR_L;           //45 ind R/W of L addr to pdtable
497*53ee8cc1Swenshuai.xi     REG16_TSO                             PDTABLE_ADDR_H;           //46 ind R/W of H addr to pdtable
498*53ee8cc1Swenshuai.xi 
499*53ee8cc1Swenshuai.xi     REG16_TSO                             PDTABLE_WDATA_L;          //47 ind R/W of L addr to pdtable
500*53ee8cc1Swenshuai.xi     REG16_TSO                             PDTABLE_WDATA_H;          //48 ind R/W of L addr to pdtable
501*53ee8cc1Swenshuai.xi 
502*53ee8cc1Swenshuai.xi     REG16_TSO                             PDTABLE_RDATA;            //49 ind of Rdata from pdtable
503*53ee8cc1Swenshuai.xi 
504*53ee8cc1Swenshuai.xi     REG16_TSO                             PDTABLE_EN;               //4a
505*53ee8cc1Swenshuai.xi     #define TSO_PDTABLE_W_EN                                        0x0001//Ind W flag to pdtable
506*53ee8cc1Swenshuai.xi     #define TSO_PDTABLE_R_EN                                        0x0002//Ind R flag to pdtable
507*53ee8cc1Swenshuai.xi 
508*53ee8cc1Swenshuai.xi     REG16_TSO                             TSO_STATUS;               //4b
509*53ee8cc1Swenshuai.xi     #define TSO_STATUS_SVQ_MASK                                     0x7F00
510*53ee8cc1Swenshuai.xi     #define TSO_STATUS_SVQ_SHIFT                                    8
511*53ee8cc1Swenshuai.xi     #define TSO_STATUS_PDFLT                                        0x8000
512*53ee8cc1Swenshuai.xi 
513*53ee8cc1Swenshuai.xi     REG16_TSO                             FILE_TIMER[2];            //4c ~ 4d
514*53ee8cc1Swenshuai.xi 
515*53ee8cc1Swenshuai.xi     REG16_TSO                             TSO_STATUS1;              //4e
516*53ee8cc1Swenshuai.xi     #define TSO_STATUS1_EVEROVERFLOW_TSIF_1                         0x0001
517*53ee8cc1Swenshuai.xi     #define TSO_STATUS1_EVEROVERFLOW_TSIF_2                         0x0002
518*53ee8cc1Swenshuai.xi     #define TSO_STATUS1_EVEROVERFLOW_TSIF_3                         0x0004
519*53ee8cc1Swenshuai.xi     #define TSO_STATUS1_EVEROVERFLOW_TSIF_4                         0x0008
520*53ee8cc1Swenshuai.xi     #define TSO_STATUS1_EVEROVERFLOW_TSIF_5                         0x0010
521*53ee8cc1Swenshuai.xi     #define TSO_STATUS1_EVEROVERFLOW_TSIF_6                         0x0020
522*53ee8cc1Swenshuai.xi 
523*53ee8cc1Swenshuai.xi     REG16_TSO                             CFG_TSO_4F_5A[12];        //4f~5a
524*53ee8cc1Swenshuai.xi 
525*53ee8cc1Swenshuai.xi     REG16_TSO                             TSO_TRACING_HIGH;         //5b
526*53ee8cc1Swenshuai.xi     REG16_TSO                             TSO_TRACING_LOW;          //5c
527*53ee8cc1Swenshuai.xi     REG16_TSO                             TSO_TRACING_1T;           //5d
528*53ee8cc1Swenshuai.xi     REG16_TSO                             TSO_BLOCK_SIZE_DB;        //5e
529*53ee8cc1Swenshuai.xi     REG16_TSO                             TSO_OPT_SZIE_DB;          //5f
530*53ee8cc1Swenshuai.xi 
531*53ee8cc1Swenshuai.xi     REG32_TSO                             CFG_TSO_60_63[2];         //60~63
532*53ee8cc1Swenshuai.xi     REG16_TSO                             TSO_Filein_Ctrl;          //64
533*53ee8cc1Swenshuai.xi     REG32_TSO                             CFG_TSO_65_68[2];         //65~68
534*53ee8cc1Swenshuai.xi     REG16_TSO                             TSO_Filein_Ctrl1;         //69
535*53ee8cc1Swenshuai.xi     #define TSO_FILEIN_CTRL_MASK                                    0x0003
536*53ee8cc1Swenshuai.xi     #define TSO_FILEIN_RSTART                                       0x0001
537*53ee8cc1Swenshuai.xi     #define TSO_FILEIN_ABORT                                        0x0002
538*53ee8cc1Swenshuai.xi 
539*53ee8cc1Swenshuai.xi     REG16_TSO                             PKT_CNT_SEL;              //6a
540*53ee8cc1Swenshuai.xi     #define TSO_PKT_CNT_RETURN_SEL_MASK                             0x000F
541*53ee8cc1Swenshuai.xi     #define TSO_PKT_CNT_RETURN_SEL_SHIFT                            0
542*53ee8cc1Swenshuai.xi     #define TSO_PKT_CNT_DBG_LOCKED_PKT_CNT_MASK                     0x00F0
543*53ee8cc1Swenshuai.xi     #define TSO_PKT_CNT_DBG_LOCKED_PKT_CNT_SHIFT                    4
544*53ee8cc1Swenshuai.xi     #define TSO_PKT_CNT_DBG_PKT_CNTT_DBG_MASK                       0xFF00
545*53ee8cc1Swenshuai.xi     #define TSO_PKT_CNT_DBG_PKT_CNTT_DBG_SHIFT                      8
546*53ee8cc1Swenshuai.xi 
547*53ee8cc1Swenshuai.xi     REG16_TSO                             PKT_CHK_SIZE_FIN;         //6b
548*53ee8cc1Swenshuai.xi     #define TSO_PKT_CHK_SIZE_FIN_MASK                               0x00FF
549*53ee8cc1Swenshuai.xi     #define TSO_PKT_CHK_SIZE_FIN_SHIFT                              0
550*53ee8cc1Swenshuai.xi     #define TSO_PKT_CHK_SIZE_FIN1_MASK                              0xFF00
551*53ee8cc1Swenshuai.xi     #define TSO_PKT_CHK_SIZE_FIN1_SHIFT                             8
552*53ee8cc1Swenshuai.xi 
553*53ee8cc1Swenshuai.xi     REG32_TSO                             LPCR2_BUF;                //6c~6d
554*53ee8cc1Swenshuai.xi     REG32_TSO                             LPCR2_BUF1;               //6e~6f
555*53ee8cc1Swenshuai.xi 
556*53ee8cc1Swenshuai.xi     REG32_TSO                             TIMESTAMP;                //70~71
557*53ee8cc1Swenshuai.xi     REG32_TSO                             TIMESTAMP1;               //72~73
558*53ee8cc1Swenshuai.xi 
559*53ee8cc1Swenshuai.xi     REG32_TSO                             TSO2MI_RADDR;             //74~75
560*53ee8cc1Swenshuai.xi     REG32_TSO                             TSO2MI_RADDR1;            //76~77
561*53ee8cc1Swenshuai.xi 
562*53ee8cc1Swenshuai.xi     REG16_TSO                             CMD_QUEUE_STATUS;         //78
563*53ee8cc1Swenshuai.xi     #define TSO_CMDQ_SIZE                                           16
564*53ee8cc1Swenshuai.xi     #define TSO_CMD_QUEUE_STATUS_CMD_WR_COUNT_MASK                  0x000F
565*53ee8cc1Swenshuai.xi     #define TSO_CMD_QUEUE_STATUS_CMD_WR_COUNT_SHIFT                 0
566*53ee8cc1Swenshuai.xi     #define TSO_CMD_QUEUE_STATUS_CMD_WR_LEVEL_MASK                  0x0030
567*53ee8cc1Swenshuai.xi     #define TSO_CMD_QUEUE_STATUS_CMD_WR_LEVEL_SHIFT                 4
568*53ee8cc1Swenshuai.xi     #define TSO_CMD_QUEUE_STATUS_CMD_FIFO_FULL                      0x0040
569*53ee8cc1Swenshuai.xi     #define TSO_CMD_QUEUE_STATUS_CMD_FIFO_EMPTY                     0x0080
570*53ee8cc1Swenshuai.xi     #define TSO_CMD_QUEUE_STATUS1_CMD_WR_COUNT_MASK                 0x0F00
571*53ee8cc1Swenshuai.xi     #define TSO_CMD_QUEUE_STATUS1_CMD_WR_COUNT_SHIFT                8
572*53ee8cc1Swenshuai.xi     #define TSO_CMD_QUEUE_STATUS1_CMD_WR_LEVEL_MASK                 0x3000
573*53ee8cc1Swenshuai.xi     #define TSO_CMD_QUEUE_STATUS1_CMD_WR_LEVEL_SHIFT                12
574*53ee8cc1Swenshuai.xi     #define TSO_CMD_QUEUE_STATUS1_CMD_FIFO_FULL                     0x4000
575*53ee8cc1Swenshuai.xi     #define TSO_CMD_QUEUE_STATUS1_CMD_FIFO_EMPTY                    0x8000
576*53ee8cc1Swenshuai.xi 
577*53ee8cc1Swenshuai.xi     REG16_TSO                             TSO_FILE_CONFIG;          //79
578*53ee8cc1Swenshuai.xi     #define TSO_FILE_CONFIG_TSO2MI_RPRIORITY                        0x0001
579*53ee8cc1Swenshuai.xi     #define TSO_FILE_CONFIG_MEM_TS_DATA_ENDIAN                      0x0002
580*53ee8cc1Swenshuai.xi     #define TSO_FILE_CONFIG_MEM_TS_W_ORDER                          0x0004
581*53ee8cc1Swenshuai.xi     #define TSO_FILE_CONFIG_LPCR2_WLD                               0x0008
582*53ee8cc1Swenshuai.xi     #define TSO_FILE_CONFIG_LPCR2_LOAD                              0x0010
583*53ee8cc1Swenshuai.xi     #define TSO_FILE_CONFIG_DIS_MIU_RQ                              0x0020
584*53ee8cc1Swenshuai.xi     #define TSO_FILE_CONFIG_TSO_RADDR_READ                          0x0040
585*53ee8cc1Swenshuai.xi     #define TSO_FILE_CONFIG_TS_DATA_PORT_SEL                        0x0080
586*53ee8cc1Swenshuai.xi     #define TSO_FILE_CONFIG_TSO_FILE_IN                             0x0100
587*53ee8cc1Swenshuai.xi     #define TSO_FILE_CONFIG_TIMER_EN                                0x0200
588*53ee8cc1Swenshuai.xi     #define TSO_FILE_CONFIG_PKT_192_BLK_DISABLE                     0x0400
589*53ee8cc1Swenshuai.xi     #define TSO_FILE_CONFIG_PKT_192_EN                              0x0800
590*53ee8cc1Swenshuai.xi     #define TSO_FILE_CONFIG_TSP_FILE_SEGMENT                        0x1000
591*53ee8cc1Swenshuai.xi     #define TSO_FILE_CONFIG_CLK_STAMP_27_EN                         0x2000
592*53ee8cc1Swenshuai.xi 
593*53ee8cc1Swenshuai.xi     REG16_TSO                             TSO_FILE_CONFIG1;         //7a
594*53ee8cc1Swenshuai.xi     #define TSO_FILE_CONFIG1_TSO2MI_RPRIORITY                       0x0001
595*53ee8cc1Swenshuai.xi     #define TSO_FILE_CONFIG1_MEM_TS_DATA_ENDIAN                     0x0002
596*53ee8cc1Swenshuai.xi     #define TSO_FILE_CONFIG1_MEM_TS_W_ORDER                         0x0004
597*53ee8cc1Swenshuai.xi     #define TSO_FILE_CONFIG1_LPCR2_WLD                              0x0008
598*53ee8cc1Swenshuai.xi     #define TSO_FILE_CONFIG1_LPCR2_LOAD                             0x0010
599*53ee8cc1Swenshuai.xi     #define TSO_FILE_CONFIG1_DIS_MIU_RQ                             0x0020
600*53ee8cc1Swenshuai.xi     #define TSO_FILE_CONFIG1_TSO_RADDR_READ                         0x0040
601*53ee8cc1Swenshuai.xi     #define TSO_FILE_CONFIG1_TS_DATA_PORT_SEL                       0x0080
602*53ee8cc1Swenshuai.xi     #define TSO_FILE_CONFIG1_TSO_FILE_IN                            0x0100
603*53ee8cc1Swenshuai.xi     #define TSO_FILE_CONFIG1_TIMER_EN                               0x0200
604*53ee8cc1Swenshuai.xi     #define TSO_FILE_CONFIG1_PKT_192_BLK_DISABLE                    0x0400
605*53ee8cc1Swenshuai.xi     #define TSO_FILE_CONFIG1_PKT_192_EN                             0x0800
606*53ee8cc1Swenshuai.xi     #define TSO_FILE_CONFIG1_TSP_FILE_SEGMENT                       0x1000
607*53ee8cc1Swenshuai.xi     #define TSO_FILE_CONFIG1_CLK_STAMP_27_EN                        0x2000
608*53ee8cc1Swenshuai.xi 
609*53ee8cc1Swenshuai.xi     REG16_TSO                             INTERRUPT;                //7b
610*53ee8cc1Swenshuai.xi     #define TSO_INT_SRC_MASK                                        0x00FF
611*53ee8cc1Swenshuai.xi     #define TSO_INT_STS_MASK                                        0xFF00
612*53ee8cc1Swenshuai.xi     //----- for TV comaptibility -----//
613*53ee8cc1Swenshuai.xi     #define TSO_INT_DMA_DONE                                        0x0001
614*53ee8cc1Swenshuai.xi     #define TSO_INT_DMA_DONE1                                       0x0002
615*53ee8cc1Swenshuai.xi     //--------------------------------//
616*53ee8cc1Swenshuai.xi     #define TSO_INT_SRC_TRAC_CLK_UPDATE                             0x0004
617*53ee8cc1Swenshuai.xi     #define TSO_INT_STS_DMA_DONE                                    0x0100
618*53ee8cc1Swenshuai.xi     #define TSO_INT_STS_DMA_DONE1                                   0x0200
619*53ee8cc1Swenshuai.xi     #define TSO_INT_STS_TRAC_CLK_UPDATE                             0x0400
620*53ee8cc1Swenshuai.xi 
621*53ee8cc1Swenshuai.xi     REG16_TSO                             INTERRUPT1;               //7c
622*53ee8cc1Swenshuai.xi     #define TSO_INT_SRC_PIDFLT1_OVERFLOW                            0x0001
623*53ee8cc1Swenshuai.xi     #define TSO_INT_SRC_PIDFLT2_OVERFLOW                            0x0002
624*53ee8cc1Swenshuai.xi     #define TSO_INT_SRC_PIDFLT3_OVERFLOW                            0x0004
625*53ee8cc1Swenshuai.xi     #define TSO_INT_SRC_PIDFLT4_OVERFLOW                            0x0008
626*53ee8cc1Swenshuai.xi     #define TSO_INT_SRC_PIDFLT5_OVERFLOW                            0x0010
627*53ee8cc1Swenshuai.xi     #define TSO_INT_SRC_PIDFLT6_OVERFLOW                            0x0020
628*53ee8cc1Swenshuai.xi 
629*53ee8cc1Swenshuai.xi     #define TSO_INT_STS_PIDFLT1_OVERFLOW                            0x0100
630*53ee8cc1Swenshuai.xi     #define TSO_INT_STS_PIDFLT2_OVERFLOW                            0x0200
631*53ee8cc1Swenshuai.xi     #define TSO_INT_STS_PIDFLT3_OVERFLOW                            0x0400
632*53ee8cc1Swenshuai.xi     #define TSO_INT_STS_PIDFLT4_OVERFLOW                            0x0800
633*53ee8cc1Swenshuai.xi     #define TSO_INT_STS_PIDFLT5_OVERFLOW                            0x1000
634*53ee8cc1Swenshuai.xi     #define TSO_INT_STS_PIDFLT6_OVERFLOW                            0x2000
635*53ee8cc1Swenshuai.xi 
636*53ee8cc1Swenshuai.xi     REG32_TSO                             TSO_DEBUG;                //7d~7e
637*53ee8cc1Swenshuai.xi 
638*53ee8cc1Swenshuai.xi     REG16_TSO                             DBG_SEL;                  //7f
639*53ee8cc1Swenshuai.xi 
640*53ee8cc1Swenshuai.xi } REG_Ctrl_TSO;
641*53ee8cc1Swenshuai.xi 
642*53ee8cc1Swenshuai.xi 
643*53ee8cc1Swenshuai.xi //TSO1
644*53ee8cc1Swenshuai.xi typedef struct _REG_Ctrl_TSO1
645*53ee8cc1Swenshuai.xi {
646*53ee8cc1Swenshuai.xi     //----------------------------------------------
647*53ee8cc1Swenshuai.xi     // 0xBF802C00 MIPS direct access
648*53ee8cc1Swenshuai.xi     //----------------------------------------------
649*53ee8cc1Swenshuai.xi 
650*53ee8cc1Swenshuai.xi     REG16_TSO                             REG_PRE_HEADER_1_CONFIG_0;    //00
651*53ee8cc1Swenshuai.xi     #define TSO1_REG_PRE_HEADER_1_CONFIG_0_LOCAL_STREAMID_MASK      0x00FF
652*53ee8cc1Swenshuai.xi     #define TSO1_REG_PRE_HEADER_1_CONFIG_0_LOCAL_STREAMID_SHIFT     0
653*53ee8cc1Swenshuai.xi 
654*53ee8cc1Swenshuai.xi     REG16_TSO                             REG_PRE_HEADER_1_CONFIG_1;    //01
655*53ee8cc1Swenshuai.xi     REG16_TSO                             REG_PRE_HEADER_1_CONFIG_2;    //02
656*53ee8cc1Swenshuai.xi     REG16_TSO                             REG_PRE_HEADER_1_CONFIG_3;    //03
657*53ee8cc1Swenshuai.xi 
658*53ee8cc1Swenshuai.xi     REG16_TSO                             REG_PRE_HEADER_2_CONFIG_0;    //04
659*53ee8cc1Swenshuai.xi     #define TSO1_REG_PRE_HEADER_2_CONFIG_0_LOCAL_STREAMID_MASK      0x00FF
660*53ee8cc1Swenshuai.xi     #define TSO1_REG_PRE_HEADER_2_CONFIG_0_LOCAL_STREAMID_SHIFT     0
661*53ee8cc1Swenshuai.xi 
662*53ee8cc1Swenshuai.xi     REG16_TSO                             REG_PRE_HEADER_2_CONFIG_1;    //05
663*53ee8cc1Swenshuai.xi     REG16_TSO                             REG_PRE_HEADER_2_CONFIG_2;    //06
664*53ee8cc1Swenshuai.xi     REG16_TSO                             REG_PRE_HEADER_2_CONFIG_3;    //07
665*53ee8cc1Swenshuai.xi 
666*53ee8cc1Swenshuai.xi     REG16_TSO                             REG_PRE_HEADER_3_CONFIG_0;    //08
667*53ee8cc1Swenshuai.xi     #define TSO1_REG_PRE_HEADER_3_CONFIG_0_LOCAL_STREAMID_MASK      0x00FF
668*53ee8cc1Swenshuai.xi     #define TSO1_REG_PRE_HEADER_3_CONFIG_0_LOCAL_STREAMID_SHIFT     0
669*53ee8cc1Swenshuai.xi 
670*53ee8cc1Swenshuai.xi     REG16_TSO                             REG_PRE_HEADER_3_CONFIG_1;    //09
671*53ee8cc1Swenshuai.xi     REG16_TSO                             REG_PRE_HEADER_3_CONFIG_2;    //0a
672*53ee8cc1Swenshuai.xi     REG16_TSO                             REG_PRE_HEADER_3_CONFIG_3;    //0b
673*53ee8cc1Swenshuai.xi 
674*53ee8cc1Swenshuai.xi     REG16_TSO                             REG_PRE_HEADER_4_CONFIG_0;    //0c
675*53ee8cc1Swenshuai.xi     #define TSO1_REG_PRE_HEADER_4_CONFIG_0_LOCAL_STREAMID_MASK      0x00FF
676*53ee8cc1Swenshuai.xi     #define TSO1_REG_PRE_HEADER_4_CONFIG_0_LOCAL_STREAMID_SHIFT     0
677*53ee8cc1Swenshuai.xi 
678*53ee8cc1Swenshuai.xi     REG16_TSO                             REG_PRE_HEADER_4_CONFIG_1;    //0d
679*53ee8cc1Swenshuai.xi     REG16_TSO                             REG_PRE_HEADER_4_CONFIG_2;    //0e
680*53ee8cc1Swenshuai.xi     REG16_TSO                             REG_PRE_HEADER_4_CONFIG_3;    //0f
681*53ee8cc1Swenshuai.xi 
682*53ee8cc1Swenshuai.xi     REG16_TSO                             REG_PRE_HEADER_5_CONFIG_0;    //10
683*53ee8cc1Swenshuai.xi     #define TSO1_REG_PRE_HEADER_5_CONFIG_0_LOCAL_STREAMID_MASK      0x00FF
684*53ee8cc1Swenshuai.xi     #define TSO1_REG_PRE_HEADER_5_CONFIG_0_LOCAL_STREAMID_SHIFT     0
685*53ee8cc1Swenshuai.xi 
686*53ee8cc1Swenshuai.xi     REG16_TSO                             REG_PRE_HEADER_5_CONFIG_1;    //11
687*53ee8cc1Swenshuai.xi     REG16_TSO                             REG_PRE_HEADER_5_CONFIG_2;    //12
688*53ee8cc1Swenshuai.xi     REG16_TSO                             REG_PRE_HEADER_5_CONFIG_3;    //13
689*53ee8cc1Swenshuai.xi 
690*53ee8cc1Swenshuai.xi     REG16_TSO                             REG_PRE_HEADER_6_CONFIG_0;    //14
691*53ee8cc1Swenshuai.xi     #define TSO1_REG_PRE_HEADER_6_CONFIG_0_LOCAL_STREAMID_MASK      0x00FF
692*53ee8cc1Swenshuai.xi     #define TSO1_REG_PRE_HEADER_6_CONFIG_0_LOCAL_STREAMID_SHIFT     0
693*53ee8cc1Swenshuai.xi 
694*53ee8cc1Swenshuai.xi     REG16_TSO                             REG_PRE_HEADER_6_CONFIG_1;    //15
695*53ee8cc1Swenshuai.xi     REG16_TSO                             REG_PRE_HEADER_6_CONFIG_2;    //16
696*53ee8cc1Swenshuai.xi     REG16_TSO                             REG_PRE_HEADER_6_CONFIG_3;    //17
697*53ee8cc1Swenshuai.xi 
698*53ee8cc1Swenshuai.xi     REG32_TSO                             SVQ1_BASE;                    //18~19
699*53ee8cc1Swenshuai.xi     #define TSO1_SVQ1_BASE_MASK                                     0x0FFFFFFF
700*53ee8cc1Swenshuai.xi     #define TSO1_SVQ1_BASE_SHIFT                                    0
701*53ee8cc1Swenshuai.xi 
702*53ee8cc1Swenshuai.xi     REG16_TSO                             SVQ1_SIZE_200BYTE;            //1a
703*53ee8cc1Swenshuai.xi     #define TSO1_SVQ1_SIZE_200BYTE_SVQ_SIZE_MASK                    0xFFFF
704*53ee8cc1Swenshuai.xi     #define TSO1_SVQ1_SIZE_200BYTE_SVQ_SIZE_SHIFT                   0
705*53ee8cc1Swenshuai.xi 
706*53ee8cc1Swenshuai.xi     REG16_TSO                             SVQ1_TX_CONFIG;               //1b
707*53ee8cc1Swenshuai.xi     #define TSO1_SVQ1_TX_CONFIG_WR_THRESHOLD_MASK                   0x000F
708*53ee8cc1Swenshuai.xi     #define TSO1_SVQ1_TX_CONFIG_WR_THRESHOLD_SHIFT                  0
709*53ee8cc1Swenshuai.xi     #define TSO1_SVQ1_TX_CONFIG_PRIORITY_THRESHOLD_MASK             0x00F0
710*53ee8cc1Swenshuai.xi     #define TSO1_SVQ1_TX_CONFIG_PRIORITY_THRESHOLD_SHIFT            4
711*53ee8cc1Swenshuai.xi     #define TSO1_SVQ1_TX_CONFIG_FORCEFIRE_CNT_MASK                  0x0F00
712*53ee8cc1Swenshuai.xi     #define TSO1_SVQ1_TX_CONFIG_FORCEFIRE_CNT_SHIFT                 8
713*53ee8cc1Swenshuai.xi     #define TSO1_SVQ1_TX_CONFIG_TX_RESET                            0x1000
714*53ee8cc1Swenshuai.xi     #define TSO1_SVQ1_TX_CONFIG_OVERFLOW_INT_EN                     0x2000
715*53ee8cc1Swenshuai.xi     #define TSO1_SVQ1_TX_CONFIG_OVERFLOW_CLR                        0x4000
716*53ee8cc1Swenshuai.xi     #define TSO1_SVQ1_TX_CONFIG_SVQ_TX_ENABLE                       0x8000
717*53ee8cc1Swenshuai.xi     REG32_TSO                             SVQ2_BASE;                    //1C~1D
718*53ee8cc1Swenshuai.xi     REG16_TSO                             SVQ2_SIZE_200BYTE;            //1E
719*53ee8cc1Swenshuai.xi     REG16_TSO                             SVQ2_TX_CONFIG;               //1F
720*53ee8cc1Swenshuai.xi     REG32_TSO                             SVQ3_BASE;                    //20~21
721*53ee8cc1Swenshuai.xi     REG16_TSO                             SVQ3_SIZE_200BYTE;            //22
722*53ee8cc1Swenshuai.xi     REG16_TSO                             SVQ3_TX_CONFIG;               //23
723*53ee8cc1Swenshuai.xi     REG32_TSO                             SVQ4_BASE;                    //24~25
724*53ee8cc1Swenshuai.xi     REG16_TSO                             SVQ4_SIZE_200BYTE;            //26
725*53ee8cc1Swenshuai.xi     REG16_TSO                             SVQ4_TX_CONFIG;               //27
726*53ee8cc1Swenshuai.xi     REG32_TSO                             SVQ5_BASE;                    //28~29
727*53ee8cc1Swenshuai.xi     REG16_TSO                             SVQ5_SIZE_200BYTE;            //2a
728*53ee8cc1Swenshuai.xi     REG16_TSO                             SVQ5_TX_CONFIG;               //2b
729*53ee8cc1Swenshuai.xi     REG32_TSO                             SVQ6_BASE;                    //2C~2D
730*53ee8cc1Swenshuai.xi     REG16_TSO                             SVQ6_SIZE_200BYTE;            //2E
731*53ee8cc1Swenshuai.xi     REG16_TSO                             SVQ6_TX_CONFIG;               //2F
732*53ee8cc1Swenshuai.xi 
733*53ee8cc1Swenshuai.xi     REG16_TSO                             SVQ_RX_CONFIG;                //30
734*53ee8cc1Swenshuai.xi     #define TSO1_SVQ_RX_CONFIG_MODE_MASK                            0x0003 //00=open cable 01=CI+ 10=192 mode
735*53ee8cc1Swenshuai.xi     #define TSO1_SVQ_RX_CONFIG_MODE_SHIT                            0
736*53ee8cc1Swenshuai.xi     //----- for TV comaptibility -----//
737*53ee8cc1Swenshuai.xi     #define TSO_SVQ_RX_CFG_MODE_OPENCBL                             0x0000
738*53ee8cc1Swenshuai.xi     #define TSO_SVQ_RX_CFG_MODE_CIPL                                0x0001
739*53ee8cc1Swenshuai.xi     #define TSO_SVQ_RX_CFG_MODE_192PKT                              0x0002
740*53ee8cc1Swenshuai.xi     //--------------------------------//
741*53ee8cc1Swenshuai.xi     #define TSO1_SVQ_RX_CONFIG_RD_THRESHOLD_MASK                    0x001C //000=1/6 empty 001=1/8 empty 010=1/4 empty 011=1/2 empty  else empty
742*53ee8cc1Swenshuai.xi     #define TSO1_SVQ_RX_CONFIG_RD_THRESHOLD_SHIT                    2
743*53ee8cc1Swenshuai.xi     #define TSO1_SVQ_RX_CONFIG_ARBITOR_MODE_MASK                    0x0060 //00=Run-Robin. 01=fix priority by REG 0x31~33 mode 10=dynamic priority
744*53ee8cc1Swenshuai.xi     #define TSO1_SVQ_RX_CONFIG_ARBITOR_MODE_SHIT                    5
745*53ee8cc1Swenshuai.xi     //----- for TV comaptibility -----//
746*53ee8cc1Swenshuai.xi     #define TSO_SVQ_RX_CFG_ARBMODE_RUNROBIN                         0x0000
747*53ee8cc1Swenshuai.xi     #define TSO_SVQ_RX_CFG_ARBMODE_FIXPRI                           0x0001
748*53ee8cc1Swenshuai.xi     #define TSO_SVQ_RX_CFG_ARBMODE_DYMPRI                           0x0002
749*53ee8cc1Swenshuai.xi     //--------------------------------//
750*53ee8cc1Swenshuai.xi     #define TSO1_SVQ_RX_CONFIG_SRAM_SD_EN                           0x0080
751*53ee8cc1Swenshuai.xi     #define TSO1_SVQ_RX_CONFIG_SVQ_FORCE_RESET                      0x0100
752*53ee8cc1Swenshuai.xi     #define TSO1_SVQ_RX_CONFIG_SVQ_MIU_NS                           0x0200
753*53ee8cc1Swenshuai.xi     #define TSO1_SVQ_RX_CONFIG_SVQ_MOBF_INDEX_MASK                  0x7C00
754*53ee8cc1Swenshuai.xi     #define TSO1_SVQ_RX_CONFIG_SVQ_MOBF_INDEX_SHIFT                 10
755*53ee8cc1Swenshuai.xi     #define TSO1_SVQ_RX_CONFIG_SVQ_DYNAMIC_PRI                      0x8000
756*53ee8cc1Swenshuai.xi 
757*53ee8cc1Swenshuai.xi     REG16_TSO                             SVQ_RX_1_2_PRIORITY;          //31
758*53ee8cc1Swenshuai.xi     #define TSO1_SVQ_RX1_PRIORITY_MASK                              0x003F
759*53ee8cc1Swenshuai.xi     #define TSO1_SVQ_RX1_PRIORITY_SHIFT                             0
760*53ee8cc1Swenshuai.xi     #define TSO1_SVQ_RX2_PRIORITY_MASK                              0x3F00
761*53ee8cc1Swenshuai.xi     #define TSO1_SVQ_RX2_PRIORITY_SHIFT                             8
762*53ee8cc1Swenshuai.xi 
763*53ee8cc1Swenshuai.xi     REG16_TSO                             SVQ_RX_3_4_PRIORITY;          //32
764*53ee8cc1Swenshuai.xi     #define TSO1_SVQ_RX3_PRIORITY_MASK                              0x003F
765*53ee8cc1Swenshuai.xi     #define TSO1_SVQ_RX3_PRIORITY_SHIFT                             0
766*53ee8cc1Swenshuai.xi     #define TSO1_SVQ_RX4_PRIORITY_MASK                              0x3F00
767*53ee8cc1Swenshuai.xi     #define TSO1_SVQ_RX4_PRIORITY_SHIFT                             8
768*53ee8cc1Swenshuai.xi 
769*53ee8cc1Swenshuai.xi     REG16_TSO                             SVQ_RX_5_6_PRIORITY;          //33
770*53ee8cc1Swenshuai.xi     #define TSO1_SVQ_RX5_PRIORITY_MASK                              0x003F
771*53ee8cc1Swenshuai.xi     #define TSO1_SVQ_RX5_PRIORITY_SHIFT                             0
772*53ee8cc1Swenshuai.xi     #define TSO1_SVQ_RX6_PRIORITY_MASK                              0x3F00
773*53ee8cc1Swenshuai.xi     #define TSO1_SVQ_RX6_PRIORITY_SHIFT                             8
774*53ee8cc1Swenshuai.xi 
775*53ee8cc1Swenshuai.xi     REG32_TSO                             SVQ_STATUS;                   //34~35
776*53ee8cc1Swenshuai.xi     //----- for TV comaptibility -----//
777*53ee8cc1Swenshuai.xi     #define TSO_SVQ_STS_MASK                                        0x000F
778*53ee8cc1Swenshuai.xi     #define TSO_SVQ1_STS_SHIFT                                      0
779*53ee8cc1Swenshuai.xi     #define TSO_SVQ2_STS_SHIFT                                      4
780*53ee8cc1Swenshuai.xi     #define TSO_SVQ3_STS_SHIFT                                      8
781*53ee8cc1Swenshuai.xi     #define TSO_SVQ4_STS_SHIFT                                      12
782*53ee8cc1Swenshuai.xi     #define TSO_SVQ5_STS_SHIFT                                      16
783*53ee8cc1Swenshuai.xi     #define TSO_SVQ6_STS_SHIFT                                      20
784*53ee8cc1Swenshuai.xi     #define TSO_SVQ_STS_EVER_FULL                                   0x0001
785*53ee8cc1Swenshuai.xi     #define TSO_SVQ_STS_EVER_OVF                                    0x0002
786*53ee8cc1Swenshuai.xi     #define TSO_SVQ_STS_EMPTY                                       0x0004
787*53ee8cc1Swenshuai.xi     #define TSO_SVQ_STS_BUSY                                        0x0008
788*53ee8cc1Swenshuai.xi     //--------------------------------//
789*53ee8cc1Swenshuai.xi     #define TSO1_SVQ1_OVERFLOW_INT                                  0x01000000
790*53ee8cc1Swenshuai.xi     #define TSO1_SVQ2_OVERFLOW_INT                                  0x02000000
791*53ee8cc1Swenshuai.xi     #define TSO1_SVQ3_OVERFLOW_INT                                  0x04000000
792*53ee8cc1Swenshuai.xi     #define TSO1_SVQ4_OVERFLOW_INT                                  0x08000000
793*53ee8cc1Swenshuai.xi     #define TSO1_SVQ5_OVERFLOW_INT                                  0x10000000
794*53ee8cc1Swenshuai.xi     #define TSO1_SVQ6_OVERFLOW_INT                                  0x20000000
795*53ee8cc1Swenshuai.xi 
796*53ee8cc1Swenshuai.xi     REG32_TSO                             SVQ_STATUS2;                  //36~37
797*53ee8cc1Swenshuai.xi     #define TSO1_SVQ1_TX_WATER_LEVEL_MASK                           0x00000003
798*53ee8cc1Swenshuai.xi     #define TSO1_SVQ1_TX_WATER_LEVEL_SHIFT                          0
799*53ee8cc1Swenshuai.xi     #define TSO1_SVQ1_TX_FULL_MASK                                  0x00000004
800*53ee8cc1Swenshuai.xi     #define TSO1_SVQ1_TX_FULL_SHIFT                                 2
801*53ee8cc1Swenshuai.xi     #define TSO1_SVQ1_TX_EMPTY_MASK                                 0x00000008
802*53ee8cc1Swenshuai.xi     #define TSO1_SVQ1_TX_EMPTY_SHIFT                                3
803*53ee8cc1Swenshuai.xi     #define TSO1_SVQ2_TX_WATER_LEVEL_MASK                           0x00000030
804*53ee8cc1Swenshuai.xi     #define TSO1_SVQ2_TX_WATER_LEVEL_SHIFT                          4
805*53ee8cc1Swenshuai.xi     #define TSO1_SVQ2_TX_FULL_MASK                                  0x00000040
806*53ee8cc1Swenshuai.xi     #define TSO1_SVQ2_TX_FULL_SHIFT                                 6
807*53ee8cc1Swenshuai.xi     #define TSO1_SVQ2_TX_EMPTY_MASK                                 0x00000080
808*53ee8cc1Swenshuai.xi     #define TSO1_SVQ2_TX_EMPTY_SHIFT                                7
809*53ee8cc1Swenshuai.xi     #define TSO1_SVQ3_TX_WATER_LEVEL_MASK                           0x00000300
810*53ee8cc1Swenshuai.xi     #define TSO1_SVQ3_TX_WATER_LEVEL_SHIFT                          8
811*53ee8cc1Swenshuai.xi     #define TSO1_SVQ3_TX_FULL_MASK                                  0x00000400
812*53ee8cc1Swenshuai.xi     #define TSO1_SVQ3_TX_FULL_SHIFT                                 10
813*53ee8cc1Swenshuai.xi     #define TSO1_SVQ3_TX_EMPTY_MASK                                 0x00000800
814*53ee8cc1Swenshuai.xi     #define TSO1_SVQ3_TX_EMPTY_SHIFT                                11
815*53ee8cc1Swenshuai.xi     #define TSO1_SVQ4_TX_WATER_LEVEL_MASK                           0x00003000
816*53ee8cc1Swenshuai.xi     #define TSO1_SVQ4_TX_WATER_LEVEL_SHIFT                          12
817*53ee8cc1Swenshuai.xi     #define TSO1_SVQ4_TX_FULL_MASK                                  0x00004000
818*53ee8cc1Swenshuai.xi     #define TSO1_SVQ4_TX_FULL_SHIFT                                 14
819*53ee8cc1Swenshuai.xi     #define TSO1_SVQ4_TX_EMPTY_MASK                                 0x00008000
820*53ee8cc1Swenshuai.xi     #define TSO1_SVQ4_TX_EMPTY_SHIFT                                15
821*53ee8cc1Swenshuai.xi     #define TSO1_SVQ5_TX_WATER_LEVEL_MASK                           0x00030000
822*53ee8cc1Swenshuai.xi     #define TSO1_SVQ5_TX_WATER_LEVEL_SHIFT                          16
823*53ee8cc1Swenshuai.xi     #define TSO1_SVQ5_TX_FULL_MASK                                  0x00040000
824*53ee8cc1Swenshuai.xi     #define TSO1_SVQ5_TX_FULL_SHIFT                                 18
825*53ee8cc1Swenshuai.xi     #define TSO1_SVQ5_TX_EMPTY_MASK                                 0x00080000
826*53ee8cc1Swenshuai.xi     #define TSO1_SVQ5_TX_EMPTY_SHIFT                                19
827*53ee8cc1Swenshuai.xi     #define TSO1_SVQ6_TX_WATER_LEVEL_MASK                           0x00300000
828*53ee8cc1Swenshuai.xi     #define TSO1_SVQ6_TX_WATER_LEVEL_SHIFT                          20
829*53ee8cc1Swenshuai.xi     #define TSO1_SVQ6_TX_FULL_MASK                                  0x00400000
830*53ee8cc1Swenshuai.xi     #define TSO1_SVQ6_TX_FULL_SHIFT                                 22
831*53ee8cc1Swenshuai.xi     #define TSO1_SVQ6_TX_EMPTY_MASK                                 0x00800000
832*53ee8cc1Swenshuai.xi     #define TSO1_SVQ6_TX_EMPTY_SHIFT                                23
833*53ee8cc1Swenshuai.xi 
834*53ee8cc1Swenshuai.xi     REG32_TSO                             DELTA;                        //38~39
835*53ee8cc1Swenshuai.xi 
836*53ee8cc1Swenshuai.xi     REG16_TSO                             DELTA_CONFIG;                 //3a
837*53ee8cc1Swenshuai.xi     #define TSO1_DELTA_CONFIG_SEL_CHANNEL_MASK                      0x0007
838*53ee8cc1Swenshuai.xi     #define TSO1_DELTA_CONFIG_SEL_CHANNEL_SHIFT                     0
839*53ee8cc1Swenshuai.xi     #define TSO1_DELTA_CONFIG_SEL_CHANNEL_1                         1
840*53ee8cc1Swenshuai.xi     #define TSO1_DELTA_CONFIG_SEL_CHANNEL_2                         2
841*53ee8cc1Swenshuai.xi     #define TSO1_DELTA_CONFIG_SEL_CHANNEL_3                         3
842*53ee8cc1Swenshuai.xi     #define TSO1_DELTA_CONFIG_SEL_CHANNEL_4                         4
843*53ee8cc1Swenshuai.xi     #define TSO1_DELTA_CONFIG_SEL_CHANNEL_5                         5
844*53ee8cc1Swenshuai.xi     #define TSO1_DELTA_CONFIG_SEL_CHANNEL_6                         6
845*53ee8cc1Swenshuai.xi     #define TSO1_DELTA_CONFIG_DELTA_CLR                             0x0008
846*53ee8cc1Swenshuai.xi     #define TSO1_DELTA_CONFIG_MAX_ID_MASK                           0x0070
847*53ee8cc1Swenshuai.xi     #define TSO1_DELTA_CONFIG_MAX_ID_SHIFT                          8
848*53ee8cc1Swenshuai.xi 
849*53ee8cc1Swenshuai.xi } REG_Ctrl_TSO1;
850*53ee8cc1Swenshuai.xi 
851*53ee8cc1Swenshuai.xi #endif // _TSO_REG_H_
852