xref: /utopia/UTPA2-700.0.x/modules/dmx/hal/maldives/tsp/regTSP.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: regTSP.h
98*53ee8cc1Swenshuai.xi //  Description: Transport Stream Processor (TSP) Register Definition
99*53ee8cc1Swenshuai.xi //
100*53ee8cc1Swenshuai.xi ////////////////////////////////////////////////////////////////////////////////////////////////////
101*53ee8cc1Swenshuai.xi 
102*53ee8cc1Swenshuai.xi #ifndef _TSP_REG_H_
103*53ee8cc1Swenshuai.xi #define _TSP_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 
132*53ee8cc1Swenshuai.xi 
133*53ee8cc1Swenshuai.xi //--------------------------------------------------------------------------------------------------
134*53ee8cc1Swenshuai.xi //  Global Definition
135*53ee8cc1Swenshuai.xi //--------------------------------------------------------------------------------------------------
136*53ee8cc1Swenshuai.xi #define TS_PACKET_SIZE              188
137*53ee8cc1Swenshuai.xi 
138*53ee8cc1Swenshuai.xi 
139*53ee8cc1Swenshuai.xi //--------------------------------------------------------------------------------------------------
140*53ee8cc1Swenshuai.xi //  Compliation Option
141*53ee8cc1Swenshuai.xi //--------------------------------------------------------------------------------------------------
142*53ee8cc1Swenshuai.xi 
143*53ee8cc1Swenshuai.xi //[CMODEL][FWTSP]
144*53ee8cc1Swenshuai.xi // When enable, interrupt will not lost, CModel will block next packet
145*53ee8cc1Swenshuai.xi // and FwTSP will block until interrupt status is clear by MIPS.
146*53ee8cc1Swenshuai.xi // (For firmware and cmodel only)
147*53ee8cc1Swenshuai.xi #define TSP_DBG_SAFE_MODE_ENABLE    0
148*53ee8cc1Swenshuai.xi 
149*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
150*53ee8cc1Swenshuai.xi //  Harware Capability
151*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
152*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_NUM                  64
153*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_EXT_NUM              8
154*53ee8cc1Swenshuai.xi 
155*53ee8cc1Swenshuai.xi #define TSP_PVR_IF_NUM                  2
156*53ee8cc1Swenshuai.xi #define TSP_MMFI0_FILTER_NUM            4
157*53ee8cc1Swenshuai.xi #define TSP_MMFI1_FILTER_NUM            4
158*53ee8cc1Swenshuai.xi #define TSP_IF_NUM                      3
159*53ee8cc1Swenshuai.xi #define TSP_DEMOD_NUM                   2
160*53ee8cc1Swenshuai.xi #define TSP_VFIFO_NUM                   2
161*53ee8cc1Swenshuai.xi #define TSP_AFIFO_NUM                   2
162*53ee8cc1Swenshuai.xi #define TSP_TS_PAD_NUM                  3  // 3p
163*53ee8cc1Swenshuai.xi #define TSP_VQ_NUM                      3  // VQ0, VQ_file, VQ1
164*53ee8cc1Swenshuai.xi #define TSP_VQ_PITCH                    208
165*53ee8cc1Swenshuai.xi #define TSP_CA_ENGINE_NUM               2
166*53ee8cc1Swenshuai.xi #define TSP_CA_KEY_NUM                  8
167*53ee8cc1Swenshuai.xi #define TSP_CA0_FLT_NUM                 72
168*53ee8cc1Swenshuai.xi #define TSP_CA_FLT_NUM                  72
169*53ee8cc1Swenshuai.xi #define TSP_MERGESTR_MUM                8
170*53ee8cc1Swenshuai.xi #define TSP_ENGINE_NUM                  1
171*53ee8cc1Swenshuai.xi #define TSP_SECFLT_NUM                  64
172*53ee8cc1Swenshuai.xi #define TSP_PCRFLT_NUM                  1
173*53ee8cc1Swenshuai.xi #define TSP_STC_NUM                     1
174*53ee8cc1Swenshuai.xi 
175*53ee8cc1Swenshuai.xi #ifdef HWPCR_ENABLE
176*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_NUM_ALL              (TSP_PIDFLT_NUM+TSP_PIDFLT_EXT_NUM+TSP_PCRFLT_NUM)
177*53ee8cc1Swenshuai.xi #else
178*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_NUM_ALL              (TSP_PIDFLT_NUM+TSP_PIDFLT_EXT_NUM)
179*53ee8cc1Swenshuai.xi #endif
180*53ee8cc1Swenshuai.xi 
181*53ee8cc1Swenshuai.xi #define TSP_SECBUF_NUM                  TSP_SECFLT_NUM
182*53ee8cc1Swenshuai.xi #define TSP_FILTER_DEPTH                16
183*53ee8cc1Swenshuai.xi 
184*53ee8cc1Swenshuai.xi #define TSP_WP_SET_NUM                  4
185*53ee8cc1Swenshuai.xi 
186*53ee8cc1Swenshuai.xi #define DSCMB_FLT_START_ID              16
187*53ee8cc1Swenshuai.xi #define DSCMB_FLT_END_ID                31
188*53ee8cc1Swenshuai.xi #define DSCMB_FLT_NUM                   16
189*53ee8cc1Swenshuai.xi 
190*53ee8cc1Swenshuai.xi #define DSCMB1_FLT_START_ID             32
191*53ee8cc1Swenshuai.xi #define DSCMB1_FLT_END_ID               47
192*53ee8cc1Swenshuai.xi #define DSCMB1_FLT_NUM                  16
193*53ee8cc1Swenshuai.xi 
194*53ee8cc1Swenshuai.xi 
195*53ee8cc1Swenshuai.xi #define DSCMB_FLT_SHAREKEY_START_ID     48
196*53ee8cc1Swenshuai.xi #define DSCMB_FLT_SHAREKEY_END_ID       64
197*53ee8cc1Swenshuai.xi #define DSCMB_FLT_SHAREKEY_NUM          16
198*53ee8cc1Swenshuai.xi 
199*53ee8cc1Swenshuai.xi #define DSCMB_FLT_SHAREKEY1_START_ID    48
200*53ee8cc1Swenshuai.xi #define DSCMB_FLT_SHAREKEY1_END_ID      64
201*53ee8cc1Swenshuai.xi #define DSCMB_FLT_SHAREKEY1_NUM         16
202*53ee8cc1Swenshuai.xi 
203*53ee8cc1Swenshuai.xi 
204*53ee8cc1Swenshuai.xi #define TSP_NMATCH_FLTID                17
205*53ee8cc1Swenshuai.xi 
206*53ee8cc1Swenshuai.xi //PAD MUX definition
207*53ee8cc1Swenshuai.xi #define TSP_MUX_TS0                     0
208*53ee8cc1Swenshuai.xi #define TSP_MUX_TS1                     1
209*53ee8cc1Swenshuai.xi #define TSP_MUX_TS2                     2
210*53ee8cc1Swenshuai.xi #define TSP_MUX_TSO                     6
211*53ee8cc1Swenshuai.xi #define TSP_MUX_INDEMOD                 7
212*53ee8cc1Swenshuai.xi #define TSP_MUX_TSCB                    0xFF //not support
213*53ee8cc1Swenshuai.xi #define TSP_MUX_NONE                    0xFF
214*53ee8cc1Swenshuai.xi 
215*53ee8cc1Swenshuai.xi //Clk source definition
216*53ee8cc1Swenshuai.xi #define TSP_CLK_DISABLE                 0x01
217*53ee8cc1Swenshuai.xi #define TSP_CLK_INVERSE                 0x02
218*53ee8cc1Swenshuai.xi #define TSP_CLK_TS0                     0x00
219*53ee8cc1Swenshuai.xi #define TSP_CLK_TS1                     0x04
220*53ee8cc1Swenshuai.xi #define TSP_CLK_TS2                     0x08
221*53ee8cc1Swenshuai.xi #define TSP_CLK_TSOOUT                  0x18
222*53ee8cc1Swenshuai.xi #define TSP_CLK_INDEMOD                 0x1C
223*53ee8cc1Swenshuai.xi #define CLKGEN0_TSP_CLK_MASK            0x1C
224*53ee8cc1Swenshuai.xi #define TSP_CLK_TSCB                    0xFF    //not support
225*53ee8cc1Swenshuai.xi 
226*53ee8cc1Swenshuai.xi //PIDFLT1,2 source definition
227*53ee8cc1Swenshuai.xi #define TSP_PIDFLT1_USE_TSIF1           0
228*53ee8cc1Swenshuai.xi #define TSP_PIDFLT2_USE_TSIF2           1
229*53ee8cc1Swenshuai.xi #define TSP_PIDFLT1_USE_TSIF_MMFI0      2
230*53ee8cc1Swenshuai.xi #define TSP_PIDFLT2_USE_TSIF_MMFI1      3
231*53ee8cc1Swenshuai.xi 
232*53ee8cc1Swenshuai.xi 
233*53ee8cc1Swenshuai.xi #define TSP_FW_DEVICE_ID                0x67
234*53ee8cc1Swenshuai.xi 
235*53ee8cc1Swenshuai.xi #define STC_SYNTH_DEFAULT               0x28000000
236*53ee8cc1Swenshuai.xi 
237*53ee8cc1Swenshuai.xi #define DRAM_SIZE                       (0x20000000)
238*53ee8cc1Swenshuai.xi #define TSP_FW_BUF_SIZE                 (0x4000UL)
239*53ee8cc1Swenshuai.xi #define TSP_FW_BUF_LOW_BUD              0
240*53ee8cc1Swenshuai.xi #define TSP_FW_BUF_UP_BUD               DRAM_SIZE
241*53ee8cc1Swenshuai.xi 
242*53ee8cc1Swenshuai.xi #define TSP_VQ_BUF_LOW_BUD              0
243*53ee8cc1Swenshuai.xi #define TSP_VQ_BUF_UP_BUD               DRAM_SIZE
244*53ee8cc1Swenshuai.xi 
245*53ee8cc1Swenshuai.xi #define TSP_SEC_BUF_LOW_BUD             0
246*53ee8cc1Swenshuai.xi #define TSP_SEC_BUF_UP_BUD              DRAM_SIZE
247*53ee8cc1Swenshuai.xi #define TSP_SEC_FLT_DEPTH               32
248*53ee8cc1Swenshuai.xi #define TSP_FIQ_NUM                     0
249*53ee8cc1Swenshuai.xi 
250*53ee8cc1Swenshuai.xi //QMEM definition
251*53ee8cc1Swenshuai.xi #define _TSP_QMEM_I_MASK            0xffff8000 //total: 0x4000
252*53ee8cc1Swenshuai.xi #define _TSP_QMEM_I_ADDR_HIT        0x00000000
253*53ee8cc1Swenshuai.xi #define _TSP_QMEM_I_ADDR_MISS       0xffffffff
254*53ee8cc1Swenshuai.xi #define _TSP_QMEM_D_MASK            0xffff8000
255*53ee8cc1Swenshuai.xi #define _TSP_QMEM_D_ADDR_HIT        0x00000000
256*53ee8cc1Swenshuai.xi #define _TSP_QMEM_D_ADDR_MISS       0xffffffff
257*53ee8cc1Swenshuai.xi #define _TSP_QMEM_SIZE              0x1000 // 16K bytes, 32bit aligment  //0x4000
258*53ee8cc1Swenshuai.xi 
259*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
260*53ee8cc1Swenshuai.xi //  Type and Structure
261*53ee8cc1Swenshuai.xi //-------------------------------------------------------------------------------------------------
262*53ee8cc1Swenshuai.xi 
263*53ee8cc1Swenshuai.xi // Software
264*53ee8cc1Swenshuai.xi #define REG_PIDFLT_L_BASE                (0x00210000 << 1)                   // Fit the size of REG32, 0~63
265*53ee8cc1Swenshuai.xi #define REG_PIDFLT_H_BASE                (0x00210800 << 1)                   // Fit the size of REG32, 0~63
266*53ee8cc1Swenshuai.xi 
267*53ee8cc1Swenshuai.xi #define REG_SECFLT_BASE1                 (0x00211000 << 1)                   // Fix the size of REG32
268*53ee8cc1Swenshuai.xi 
269*53ee8cc1Swenshuai.xi #define REG_CTRL_BASE                   (0x2A00)                            // 0xBF800000+(1500/2)*4
270*53ee8cc1Swenshuai.xi #define REG_CTRL_MMFIBASE               (0x39C0)                            // 0xBF800000+(3800/2)*4 (TSP2: debug table), from 0x70
271*53ee8cc1Swenshuai.xi #define REG_CTRL_TSP3                   (0xC1440)
272*53ee8cc1Swenshuai.xi #define REG_CTRL_TSP4                   (0xC2E00)
273*53ee8cc1Swenshuai.xi #define REG_CTRL_TSP5                   (0xC7600)
274*53ee8cc1Swenshuai.xi #define REG_CTRL_TS_SAMPLE              (0x21600)
275*53ee8cc1Swenshuai.xi 
276*53ee8cc1Swenshuai.xi typedef struct _REG32
277*53ee8cc1Swenshuai.xi {
278*53ee8cc1Swenshuai.xi     volatile MS_U16                L;
279*53ee8cc1Swenshuai.xi     volatile MS_U16                empty_L;
280*53ee8cc1Swenshuai.xi     volatile MS_U16                H;
281*53ee8cc1Swenshuai.xi     volatile MS_U16                empty_H;
282*53ee8cc1Swenshuai.xi } REG32;
283*53ee8cc1Swenshuai.xi 
284*53ee8cc1Swenshuai.xi typedef struct _REG32_L
285*53ee8cc1Swenshuai.xi {
286*53ee8cc1Swenshuai.xi     volatile MS_U32                data;
287*53ee8cc1Swenshuai.xi     volatile MS_U32                _resv;
288*53ee8cc1Swenshuai.xi } REG32_L;
289*53ee8cc1Swenshuai.xi 
290*53ee8cc1Swenshuai.xi typedef struct _REG16
291*53ee8cc1Swenshuai.xi {
292*53ee8cc1Swenshuai.xi     volatile MS_U16                 u16data;
293*53ee8cc1Swenshuai.xi     volatile MS_U16                 _null;
294*53ee8cc1Swenshuai.xi } REG16;
295*53ee8cc1Swenshuai.xi 
296*53ee8cc1Swenshuai.xi typedef REG32                           REG_PidFlt;
297*53ee8cc1Swenshuai.xi 
298*53ee8cc1Swenshuai.xi //******************** PIDFLT DEFINE START ********************//
299*53ee8cc1Swenshuai.xi // PID
300*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_PID_MASK             0x00001FFF
301*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_PID_SHFT             0
302*53ee8cc1Swenshuai.xi 
303*53ee8cc1Swenshuai.xi // PIDFLT SRC
304*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_IN_MASK              0x0000E000
305*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_IN_NONE              0x00000000
306*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_IN_PIDFLT0           0x00002000
307*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_IN_PIDFLT_FILE       0x00004000
308*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_IN_PIDFLT1           0x00006000
309*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_IN_PIDFLT2           0x00008000
310*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_IN_PIDFLT_CB         0                                   //not support
311*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_IN_SHIFT             13
312*53ee8cc1Swenshuai.xi 
313*53ee8cc1Swenshuai.xi // Section filter Id (0~64)
314*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_SECFLT_MASK          0x000007f0                          // [36:42] secflt id
315*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_SECFLT_SHFT          4
316*53ee8cc1Swenshuai.xi 
317*53ee8cc1Swenshuai.xi // Stream source ID
318*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_IN_SRC_MASK          0x0000000F                         // [35:32] stream source id
319*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_IN_SRC_SHFT          0
320*53ee8cc1Swenshuai.xi 
321*53ee8cc1Swenshuai.xi // AF/Sec/Video/V3D/Audio/Audio-second/PVR1/PVR2
322*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_OUT_MASK             0xFFE00000
323*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_OUT_NONE             0x00000000
324*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_OUT_AFIFO4           0x00200000
325*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_OUT_AFIFO3           0x00400000
326*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_OUT_SECFLT_AF        0x01000000
327*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_OUT_SECFLT           0x02000000
328*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_OUT_VFIFO            0x04000000
329*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_OUT_VFIFO3D          0x08000000
330*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_OUT_AFIFO            0x10000000
331*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_OUT_AFIFO2           0x20000000
332*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_OUT_PVR1             0x80000000
333*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_OUT_PVR2             0x40000000
334*53ee8cc1Swenshuai.xi 
335*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_SECFLT_NULL          0x3F                                // software usage clean selected section filter
336*53ee8cc1Swenshuai.xi //******************** PIDFLT DEFINE END ********************//
337*53ee8cc1Swenshuai.xi 
338*53ee8cc1Swenshuai.xi typedef struct _REG_SecFlt
339*53ee8cc1Swenshuai.xi {
340*53ee8cc1Swenshuai.xi     REG32                           Ctrl;
341*53ee8cc1Swenshuai.xi     // SW flag
342*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_TYPE_MASK                    0x01000007
343*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_TYPE_SHFT                    0
344*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_TYPE_SEC                     0x00000000
345*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_TYPE_PES                     0x00000001
346*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_TYPE_PKT                     0x00000002
347*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_TYPE_PCR                     0x00000003
348*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_TYPE_TTX                     0x00000004
349*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_TYPE_VER                     0x00000005
350*53ee8cc1Swenshuai.xi     #ifdef SEC_ADF_TYPE_SUPPORT
351*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_TYPE_ADF                     0x00000006          //for af_descriptor
352*53ee8cc1Swenshuai.xi     #endif
353*53ee8cc1Swenshuai.xi     //#define TSP_SECFLT_TYPE_EMM                     0x00000006
354*53ee8cc1Swenshuai.xi     //#define TSP_SECFLT_TYPE_ECM                     0x00000007
355*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_TYPE_SEC_NO_PUSI             0x01000000
356*53ee8cc1Swenshuai.xi 
357*53ee8cc1Swenshuai.xi 
358*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_PCRRST                       0x00000010          // for TSP_SECFLT_TYPE_PCR
359*53ee8cc1Swenshuai.xi 
360*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_MODE_MASK                    0x00000030          // software implementation
361*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_MODE_SHFT                    4
362*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_MODE_CONTI                   0x0
363*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_MODE_ONESHOT                 0x1
364*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_MODE_CRCCHK                  0x2
365*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_MODE_PESSCMCHK               0x3                 //Only for PES type checking SCMB status
366*53ee8cc1Swenshuai.xi 
367*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_STATE_MASK                   0x000000C0          // software implementation
368*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_STATE_SHFT                   6
369*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_STATE_OVERFLOW               0x1
370*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_STATE_DISABLE                0x2
371*53ee8cc1Swenshuai.xi 
372*53ee8cc1Swenshuai.xi     REG32                           Match[TSP_FILTER_DEPTH/sizeof(MS_U32)];
373*53ee8cc1Swenshuai.xi 
374*53ee8cc1Swenshuai.xi     REG32                           Mask[TSP_FILTER_DEPTH/sizeof(MS_U32)];
375*53ee8cc1Swenshuai.xi 
376*53ee8cc1Swenshuai.xi     REG32                           BufStart;
377*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_BUFSTART_MASK                0xFFFFFFFF
378*53ee8cc1Swenshuai.xi 
379*53ee8cc1Swenshuai.xi     REG32                           BufEnd;
380*53ee8cc1Swenshuai.xi 
381*53ee8cc1Swenshuai.xi     REG32                           BufRead;
382*53ee8cc1Swenshuai.xi 
383*53ee8cc1Swenshuai.xi     REG32                           BufWrite;
384*53ee8cc1Swenshuai.xi 
385*53ee8cc1Swenshuai.xi     REG32                           BufCur;
386*53ee8cc1Swenshuai.xi 
387*53ee8cc1Swenshuai.xi     REG32                           RmnReqCnt;
388*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_OWNER_MASK                   0x80000000
389*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_OWNER_SHFT                   31
390*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_REQCNT_MASK                  0x7FFF0000
391*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_REQCNT_SHFT                  16
392*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_RMNCNT_MASK                  0x0000FFFF
393*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_RMNCNT_SHFT                  0
394*53ee8cc1Swenshuai.xi 
395*53ee8cc1Swenshuai.xi     REG32                           CRC32;
396*53ee8cc1Swenshuai.xi 
397*53ee8cc1Swenshuai.xi     REG32                           _x50[16];       // (0x210080-0x210050)/4
398*53ee8cc1Swenshuai.xi } REG_SecFlt;
399*53ee8cc1Swenshuai.xi 
400*53ee8cc1Swenshuai.xi 
401*53ee8cc1Swenshuai.xi typedef struct _REG_Stc
402*53ee8cc1Swenshuai.xi {
403*53ee8cc1Swenshuai.xi     REG32                           ML;
404*53ee8cc1Swenshuai.xi     REG32_L                         H32;
405*53ee8cc1Swenshuai.xi } REG_Stc;
406*53ee8cc1Swenshuai.xi 
407*53ee8cc1Swenshuai.xi typedef struct _REG_Pid
408*53ee8cc1Swenshuai.xi {                                                                       // Index(word)  CPU(byte)       Default
409*53ee8cc1Swenshuai.xi     REG_PidFlt                      Flt[TSP_PIDFLT_NUM_ALL];
410*53ee8cc1Swenshuai.xi } REG_Pid;
411*53ee8cc1Swenshuai.xi 
412*53ee8cc1Swenshuai.xi typedef struct _REG_Sec
413*53ee8cc1Swenshuai.xi {                                                                       // Index(word)  CPU(byte)       Default
414*53ee8cc1Swenshuai.xi     REG_SecFlt                      Flt[TSP_SECFLT_NUM];
415*53ee8cc1Swenshuai.xi } REG_Sec;
416*53ee8cc1Swenshuai.xi 
417*53ee8cc1Swenshuai.xi typedef struct _REG_Ctrl
418*53ee8cc1Swenshuai.xi {
419*53ee8cc1Swenshuai.xi     //----------------------------------------------
420*53ee8cc1Swenshuai.xi     // 0xBF802A00 MIPS direct access
421*53ee8cc1Swenshuai.xi     //----------------------------------------------
422*53ee8cc1Swenshuai.xi     // Type                         Name                                Index(word)     CPU(byte)     MIPS(0x1500/2+index)*4
423*53ee8cc1Swenshuai.xi     REG32                           TsRec_Head20;                       // 0xbf802a00   0x00
424*53ee8cc1Swenshuai.xi     #define TSP_HW_PVR_BUF_HEAD20_MASK              0xFFFF0000
425*53ee8cc1Swenshuai.xi     #define TSP_HW_PVR_BUF_HEAD20_SHFT              16
426*53ee8cc1Swenshuai.xi 
427*53ee8cc1Swenshuai.xi     REG32                           TsRec_Head21_Mid20_Wptr;            // 0xbf802a08   0x02 ,wptr & mid share same register
428*53ee8cc1Swenshuai.xi     #define TSP_HW_PVR_BUF_HEAD21_MASK              0x000007FF
429*53ee8cc1Swenshuai.xi     #define TSP_HW_PVR_BUF_HEAD21_SHFT              0
430*53ee8cc1Swenshuai.xi     #define TSP_HW_PVR_BUF_MID20_MASK               0xFFFF0000
431*53ee8cc1Swenshuai.xi     #define TSP_HW_PVR_BUF_MID20_SHFT               16
432*53ee8cc1Swenshuai.xi 
433*53ee8cc1Swenshuai.xi     REG32                           TsRec_Mid21_Tail20;                 // 0xbf802a10   0x04
434*53ee8cc1Swenshuai.xi     #define TSP_HW_PVR_BUF_MID21_MASK               0x000007FF
435*53ee8cc1Swenshuai.xi     #define TSP_HW_PVR_BUF_MID21_SHFT               0
436*53ee8cc1Swenshuai.xi     #define TSP_HW_PVR_BUF_TAIL20_MASK              0xFFFF0000
437*53ee8cc1Swenshuai.xi     #define TSP_HW_PVR_BUF_TAIL20_SHFT              16
438*53ee8cc1Swenshuai.xi 
439*53ee8cc1Swenshuai.xi     REG32                           TsRec_Tail2_Pcr1;                   // 0xbf802a18   0x06
440*53ee8cc1Swenshuai.xi     #define TSP_HW_PVR_BUF_TAIL21_MASK              0x000007FF
441*53ee8cc1Swenshuai.xi     #define TSP_HW_PVR_BUF_TAIL21_SHFT              0                   // PCR64 L16
442*53ee8cc1Swenshuai.xi     #define TSP_PCR64_L16_MASK                      0xFFFF0000
443*53ee8cc1Swenshuai.xi     #define TSP_PCR64_L16_SHFT                      16
444*53ee8cc1Swenshuai.xi 
445*53ee8cc1Swenshuai.xi     REG32                           Pcr1;                               // 0xbf802a20   0x08
446*53ee8cc1Swenshuai.xi     #define TSP_PCR64_MID32_MASK                    0xFFFFFFFF          // PCR64 Middle 64
447*53ee8cc1Swenshuai.xi     #define TSP_PCR64_MID32_SHFT                    0
448*53ee8cc1Swenshuai.xi 
449*53ee8cc1Swenshuai.xi     REG32                           Pcr64_H;                            // 0xbf802a28   0x0a
450*53ee8cc1Swenshuai.xi     #define TSP_PCR64_H16_MASK                      0x0000FFFF
451*53ee8cc1Swenshuai.xi     #define TSP_PCR64_H16_SHFT                      0
452*53ee8cc1Swenshuai.xi     #define TSP_MOBF_FILE_INDEX_MASK                0x001F0000          // MOBF file index
453*53ee8cc1Swenshuai.xi     #define TSP_MOBF_FILE_INDEX_SHIFT               16
454*53ee8cc1Swenshuai.xi 
455*53ee8cc1Swenshuai.xi     REG16                           _xbf202a30;                         // 0xbf802a30   0x0c
456*53ee8cc1Swenshuai.xi     REG16                           sw_mail_box0;                       // 0xbf802a34   0x0d
457*53ee8cc1Swenshuai.xi 
458*53ee8cc1Swenshuai.xi     REG32                           PVR2_Config;                        // 0xbf802a38   0x0e
459*53ee8cc1Swenshuai.xi     #define TSP_PVR2_LPCR1_WLD                      0x00000001
460*53ee8cc1Swenshuai.xi     #define TSP_PVR2_LPCR1_RLD                      0x00000002
461*53ee8cc1Swenshuai.xi     #define TSP_PVR2_STR2MIU_DSWAP                  0x00000004
462*53ee8cc1Swenshuai.xi     #define TSP_PVR2_STR2MIU_EN                     0x00000008
463*53ee8cc1Swenshuai.xi     #define TSP_PVR2_STR2MIU_RST_WADR               0x00000010
464*53ee8cc1Swenshuai.xi     #define TSP_PVR2_STR2MIU_BT_ORDER               0x00000020
465*53ee8cc1Swenshuai.xi     #define TSP_PVR2_STR2MIU_PAUSE                  0x00000040
466*53ee8cc1Swenshuai.xi     #define TSP_PVR2_REG_PINGPONG_EN                0x00000080
467*53ee8cc1Swenshuai.xi     #define TSP_PVR2_PVR_ALIGN_EN                   0x00000100
468*53ee8cc1Swenshuai.xi     #define TSP_PVR2_DMA_FLUSH_EN                   0x00000200
469*53ee8cc1Swenshuai.xi     #define TSP_PVR2_PKT192_EN                      0x00000400
470*53ee8cc1Swenshuai.xi     #define TSP_PVR2_BURST_LEN_MASK                 0x00001800
471*53ee8cc1Swenshuai.xi     #define TSP_PVR2_BURST_LEN_4                    0x00000800
472*53ee8cc1Swenshuai.xi     #define TSP_REC_DATA2_INV                       0x00002000
473*53ee8cc1Swenshuai.xi     #define TSP_V_BLOCK_DIS                         0x00004000
474*53ee8cc1Swenshuai.xi     #define TSP_V3D_BLOCK_DIS                       0x00008000
475*53ee8cc1Swenshuai.xi     #define TSP_AUD_BLOCK_DIS                       0x00010000
476*53ee8cc1Swenshuai.xi     #define TSP_AUDB_BLOCK_DIS                      0x00020000
477*53ee8cc1Swenshuai.xi     #define TSP_PVR1_BLOCK_DIS                      0x00040000
478*53ee8cc1Swenshuai.xi     #define TSP_PVR2_BLOCK_DIS                      0x00080000
479*53ee8cc1Swenshuai.xi     #define TSP_TSIF2_ENABLE                        0x00100000
480*53ee8cc1Swenshuai.xi     #define TSP_TSIF2_DATASWAP                      0x00200000
481*53ee8cc1Swenshuai.xi     #define TSP_TSIF2_SERL                          0x00000000
482*53ee8cc1Swenshuai.xi     #define TSP_TSIF2_PARL                          0x00400000
483*53ee8cc1Swenshuai.xi     #define TSP_TSIF2_EXTSYNC                       0x00800000
484*53ee8cc1Swenshuai.xi     #define TSP_TSIF2_BYPASS                        0x01000000
485*53ee8cc1Swenshuai.xi     #define TSP_TEI_SKIP_PKT2                       0x02000000
486*53ee8cc1Swenshuai.xi     #define TSP_CLR_LOCKED_PKT_CNT                  0x20000000
487*53ee8cc1Swenshuai.xi     #define TSP_CLR_AV_PKT_CNT                      0x40000000
488*53ee8cc1Swenshuai.xi     #define TSP_CLR_PVR_OVERFLOW                    0x80000000
489*53ee8cc1Swenshuai.xi 
490*53ee8cc1Swenshuai.xi     REG32                           PVR2_LPCR1;                         // 0xbf802a40   0x10
491*53ee8cc1Swenshuai.xi 
492*53ee8cc1Swenshuai.xi     #define TSP_STR2MI2_ADDR_MASK  0x07FFFFFF
493*53ee8cc1Swenshuai.xi     REG32                           Str2mi_head1_pvr2;                  // 0xbf802a48   0x12
494*53ee8cc1Swenshuai.xi     REG32                           Str2mi_mid1_wptr_pvr2;              // 0xbf802a50   0x14
495*53ee8cc1Swenshuai.xi     REG32                           Str2mi_tail1_pvr2;                  // 0xbf802a58   0x16
496*53ee8cc1Swenshuai.xi     REG32                           Str2mi_head2_pvr2;                  // 0xbf802a60   0x18
497*53ee8cc1Swenshuai.xi     REG32                           Str2mi_mid2_pvr2;                   // 0xbf802a68   0x1a, PVR2 mid address & write point
498*53ee8cc1Swenshuai.xi     REG32                           Str2mi_tail2_pvr2;                  // 0xbf802a70   0x1c
499*53ee8cc1Swenshuai.xi     REG32                           _xbf802a70;                         // 0xbf802a78   0x1e
500*53ee8cc1Swenshuai.xi     REG32                           Pkt_CacheW0;                        // 0xbf802a80   0x20
501*53ee8cc1Swenshuai.xi 
502*53ee8cc1Swenshuai.xi     REG32                           Pkt_CacheW1;                        // 0xbf802a88   0x22
503*53ee8cc1Swenshuai.xi 
504*53ee8cc1Swenshuai.xi     REG32                           Pkt_CacheW2;                        // 0xbf802a90   0x24
505*53ee8cc1Swenshuai.xi 
506*53ee8cc1Swenshuai.xi     REG32                           Pkt_CacheW3;                        // 0xbf802a98   0x26
507*53ee8cc1Swenshuai.xi 
508*53ee8cc1Swenshuai.xi     REG32_L                         Pkt_CacheIdx;                       // 0xbf802aa0   0x28
509*53ee8cc1Swenshuai.xi 
510*53ee8cc1Swenshuai.xi     REG32                           Pkt_DMA;                            // 0xbf802aa8   0x2a
511*53ee8cc1Swenshuai.xi     #define TSP_SEC_DMAFIL_NUM_MASK                 0x000000FF
512*53ee8cc1Swenshuai.xi     #define TSP_SEC_DMAFIL_NUM_SHIFT                0
513*53ee8cc1Swenshuai.xi     #define TSP_SEC_DMASRC_OFFSET_MASK              0x0000FF00
514*53ee8cc1Swenshuai.xi     #define TSP_SEC_DMASRC_OFFSET_SHIFT             8
515*53ee8cc1Swenshuai.xi     #define TSP_SEC_DMASRC_OFFSET_MASK              0x0000FF00
516*53ee8cc1Swenshuai.xi     #define TSP_SEC_DMADES_LEN_MASK                 0x00FF0000
517*53ee8cc1Swenshuai.xi     #define TSP_SEC_DMADES_LEN_SHIFT                16
518*53ee8cc1Swenshuai.xi 
519*53ee8cc1Swenshuai.xi     REG32                           Hw_Config0;                         // 0xbf802ab0   0x2c
520*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG0_DATA_PORT_EN                0x00000001
521*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG0_TSIFO_SERL                  0x00000000
522*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG0_TSIF0_PARL                  0x00000002
523*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG0_TSIF0_EXTSYNC               0x00000004
524*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG0_TSIF0_TS_BYPASS             0x00000008
525*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG0_TSIF0_VPID_BYPASS           0x00000010
526*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG0_TSIF0_APID_BYPASS           0x00000020
527*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG0_WB_DMA_RESET                0x00000040
528*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG0_TSIF0_APID_B_BYPASS         0x00000080
529*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG0_PACKET_BUF_SIZE_MASK        0x0000FF00
530*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG0_PACKET_BUF_SIZE_SHIFT       8
531*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG0_PACKET_PIDFLT0_SIZE_MASK    0x00FF0000
532*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG0_PACKET_PIDFLT0_SIZE_SHIFT   16
533*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG0_PACKET_CHK_SIZE_MASK        0xFF000000
534*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG0_PACKET_CHK_SIZE_SHFT        24
535*53ee8cc1Swenshuai.xi 
536*53ee8cc1Swenshuai.xi     REG32                           TSP_DBG_PORT;                       // 0xbf802ab8   0x2e
537*53ee8cc1Swenshuai.xi     #define TSP_DBG_FILTER_MATCH0_MASK              0x000000FF
538*53ee8cc1Swenshuai.xi     #define TSP_DBG_FILTER_MATCH0_SHIFT             0
539*53ee8cc1Swenshuai.xi     #define TSP_DBG_FILTER_MATCH1_MASK              0x0000FF00
540*53ee8cc1Swenshuai.xi     #define TSP_DBG_FILTER_MATCH1_SHIFT             8
541*53ee8cc1Swenshuai.xi     #define TSP_DNG_DATA_PORT_MASK                  0x00FF0000
542*53ee8cc1Swenshuai.xi     #define TSP_DNG_DATA_PORT_SHIFT                 16
543*53ee8cc1Swenshuai.xi 
544*53ee8cc1Swenshuai.xi     REG_Stc                         Pcr;                                // 0xbf802ac0   0x30 & 0x32
545*53ee8cc1Swenshuai.xi 
546*53ee8cc1Swenshuai.xi     REG32                           Pkt_Info;                           // 0xbf802ad0   0x34
547*53ee8cc1Swenshuai.xi     #define TSP_APID_L_MASK                         0x000000FF
548*53ee8cc1Swenshuai.xi     #define TSP_APID_L_SHIFT                        0
549*53ee8cc1Swenshuai.xi     #define TSP_APID_H_MASK                         0x00001F00
550*53ee8cc1Swenshuai.xi     #define TSP_APID_H_SHIFT                        8
551*53ee8cc1Swenshuai.xi     #define TSP_PKT_PID_8_12_CP_MASK                0x001F0000
552*53ee8cc1Swenshuai.xi     #define TSP_PKT_PID_8_12_CP_SHIFT               16
553*53ee8cc1Swenshuai.xi     #define TSP_PKT_PRI_MASK                        0x00200000
554*53ee8cc1Swenshuai.xi     #define TSP_PKT_PRI_SHIFT                       21
555*53ee8cc1Swenshuai.xi     #define TSP_PKT_PLST_MASK                       0x00400000
556*53ee8cc1Swenshuai.xi     #define TSP_PKT_PLST_SHIFT                      22
557*53ee8cc1Swenshuai.xi     #define TSP_PKT_ERR                             0x00800000
558*53ee8cc1Swenshuai.xi     #define TSP_PKT_ERR_SHIFT                       23
559*53ee8cc1Swenshuai.xi     #define TSP_DMAW_NO_HIT_INT                     0x0F000000
560*53ee8cc1Swenshuai.xi     #define TSP_DMAW_NO_HIT_INT_SHIFT               24
561*53ee8cc1Swenshuai.xi 
562*53ee8cc1Swenshuai.xi     REG32                           Pkt_Info2;                          // 0xbf802ad8   0x36
563*53ee8cc1Swenshuai.xi     #define TSP_PKT_INFO_CC_MASK                    0x0000000F
564*53ee8cc1Swenshuai.xi     #define TSP_PKT_INFO_CC_SHFT                    0
565*53ee8cc1Swenshuai.xi     #define TSP_PKT_INFO_ADPCNTL_MASK               0x00000030
566*53ee8cc1Swenshuai.xi     #define TSP_PKT_INFO_ADPCNTL_SHFT               4
567*53ee8cc1Swenshuai.xi     #define TSP_PKT_INFO_SCMB                       0x000000C0
568*53ee8cc1Swenshuai.xi     #define TSP_PKT_INFO_SCMB_SHFT                  6
569*53ee8cc1Swenshuai.xi     #define TSP_PKT_PID_0_7_CP_MASK                 0x0000FF00
570*53ee8cc1Swenshuai.xi     #define TSP_PKT_PID_0_7_CP_SHIFT                8
571*53ee8cc1Swenshuai.xi     #define TSP_VFIFO3D_STATUS                      0x000F0000
572*53ee8cc1Swenshuai.xi     #define TSP_VFIFO3D_STATUS_SHFT                 16
573*53ee8cc1Swenshuai.xi     #define TSP_VFIFO_STATUS                        0x00F00000
574*53ee8cc1Swenshuai.xi     #define TSP_VFIFO_STATUS_SHFT                   20
575*53ee8cc1Swenshuai.xi     #define TSP_AFIFO_STATUS                        0x0F000000
576*53ee8cc1Swenshuai.xi     #define TSP_AFIFO_STATUS_SHFT                   24
577*53ee8cc1Swenshuai.xi     #define TSP_AFIFOB_STATUS                       0xF0000000
578*53ee8cc1Swenshuai.xi     #define TSP_AFIFOB_STATUS_SHFT                  28
579*53ee8cc1Swenshuai.xi 
580*53ee8cc1Swenshuai.xi     REG32                           SwInt_Stat;                         // 0xbf802ae0   0x38
581*53ee8cc1Swenshuai.xi     #define TSP_SWINT_INFO_SEC_MASK                 0x000000FF
582*53ee8cc1Swenshuai.xi     #define TSP_SWINT_INFO_SEC_SHFT                 0
583*53ee8cc1Swenshuai.xi     #define TSP_SWINT_INFO_ENG_MASK                 0x0000FF00
584*53ee8cc1Swenshuai.xi     #define TSP_SWINT_INFO_ENG_SHFT                 8
585*53ee8cc1Swenshuai.xi     #define TSP_SWINT_STATUS_CMD_MASK               0x7FFF0000
586*53ee8cc1Swenshuai.xi     #define TSP_SWINT_STATUS_CMD_SHFT               16
587*53ee8cc1Swenshuai.xi     #define TSP_SWINT_STATUS_SEC_RDY                0x0001
588*53ee8cc1Swenshuai.xi     #define TSP_SWINT_STATUS_REQ_RDY                0x0002
589*53ee8cc1Swenshuai.xi     #define TSP_SWINT_STATUS_BUF_OVFLOW             0x0006
590*53ee8cc1Swenshuai.xi     #define TSP_SWINT_STATUS_SEC_CRCERR             0x0007
591*53ee8cc1Swenshuai.xi     #define TSP_SWINT_STATUS_SEC_ERROR              0x0008
592*53ee8cc1Swenshuai.xi     #define TSP_SWINT_STATUS_SYNC_LOST              0x0010
593*53ee8cc1Swenshuai.xi     #define TSP_SWINT_STATUS_PKT_OVRUN              0x0020
594*53ee8cc1Swenshuai.xi     #define TSP_SWINT_STATUS_DEBUG                  0x0030
595*53ee8cc1Swenshuai.xi     #define TSP_SWINT_CMD_DMA_PAUSE                 0x0100
596*53ee8cc1Swenshuai.xi     #define TSP_SWINT_CMD_DMA_RESUME                0x0200
597*53ee8cc1Swenshuai.xi     #define TSP_SWINT_STATUS_SEC_GROUP              0x000F
598*53ee8cc1Swenshuai.xi     #define TSP_SWINT_STATUS_GROUP                  0x00FF
599*53ee8cc1Swenshuai.xi     #define TSP_SWINT_CMD_GROUP                     0x7F00
600*53ee8cc1Swenshuai.xi     #define TSP_SWINT_CMD_STC_UPD                   0x0400
601*53ee8cc1Swenshuai.xi     #define TSP_SWINT_CTRL_FIRE                     0x80000000
602*53ee8cc1Swenshuai.xi 
603*53ee8cc1Swenshuai.xi     REG32                           TsDma_Addr;                         // 0xbf802ae8   0x3a
604*53ee8cc1Swenshuai.xi 
605*53ee8cc1Swenshuai.xi     REG32                           TsDma_Size;                         // 0xbf802af0   0x3c
606*53ee8cc1Swenshuai.xi 
607*53ee8cc1Swenshuai.xi     REG32                           TsDma_Ctrl_CmdQ;                    // 0xbf802af8   0x3e
608*53ee8cc1Swenshuai.xi 
609*53ee8cc1Swenshuai.xi     #define TSP_TSDMA_CTRL_VPES0                    0x00000004
610*53ee8cc1Swenshuai.xi     #define TSP_TSDMA_CTRL_APES0                    0x00000008
611*53ee8cc1Swenshuai.xi     #define TSP_TSDMA_CTRL_A2PES0                   0x00000010
612*53ee8cc1Swenshuai.xi     #define TSP_TSDMA_CTRL_V3DPES0                  0x00000020  //not used
613*53ee8cc1Swenshuai.xi     #define TSP_TSDMA_CTRL_A3PES0                   0x00000040  //not used
614*53ee8cc1Swenshuai.xi     #define TSP_TSDMA_CTRL_A4PES0                   0x00000080  //not used
615*53ee8cc1Swenshuai.xi 
616*53ee8cc1Swenshuai.xi     #define TSP_TSDMA_CTRL_START                    0x00000001
617*53ee8cc1Swenshuai.xi     #define TSP_TSDMA_CTRL_DONE                     0x00000002
618*53ee8cc1Swenshuai.xi     #define TSP_TSDMA_CTRL_INIT_TRUST               0x00000004
619*53ee8cc1Swenshuai.xi     #define TSP_TSDMA_STAT_ABORT                    0x00000080
620*53ee8cc1Swenshuai.xi     #define TSP_CMDQ_CNT_MASK                       0x001F0000
621*53ee8cc1Swenshuai.xi     #define TSP_CMDQ_CNT_SHFT                       16
622*53ee8cc1Swenshuai.xi     #define TSP_CMDQ_FULL                           0x00400000
623*53ee8cc1Swenshuai.xi     #define TSP_CMDQ_EMPTY                          0x00800000
624*53ee8cc1Swenshuai.xi     #define TSP_CMDQ_SIZE                           16
625*53ee8cc1Swenshuai.xi     #define TSP_CMDQ_WR_LEVEL_MASK                  0x03000000
626*53ee8cc1Swenshuai.xi     #define TSP_CMDQ_WR_LEVEL_SHFT                  24
627*53ee8cc1Swenshuai.xi 
628*53ee8cc1Swenshuai.xi     REG32                           MCU_Cmd;                            // 0xbf802b00   0x40
629*53ee8cc1Swenshuai.xi     #define TSP_MCU_CMD_MASK                                    0xFF000000
630*53ee8cc1Swenshuai.xi     #define TSP_MCU_CMD_NULL                                    0x00000000
631*53ee8cc1Swenshuai.xi     #define TSP_MCU_CMD_ALIVE                                   0x01000000
632*53ee8cc1Swenshuai.xi     #define TSP_MCU_CMD_NMATCH                                  0x02000000
633*53ee8cc1Swenshuai.xi     #define TSP_MCU_CMD_NMATCH_FLT_MASK                         0x000000FF
634*53ee8cc1Swenshuai.xi     #define TSP_MCU_CMD_NMATCH_FLT_SHFT                         0x00000000
635*53ee8cc1Swenshuai.xi     #define TSP_MCU_CMD_PCR_GET                                 0x03000000
636*53ee8cc1Swenshuai.xi     #define TSP_MCU_CMD_VER_RESET                               0x04000000
637*53ee8cc1Swenshuai.xi         #define TSP_MCU_CMD_VER_RESET_FLT_MASK                  0x000000FF
638*53ee8cc1Swenshuai.xi         #define TSP_MCU_CMD_VER_RESET_FLT_SHFT                  0x00000000
639*53ee8cc1Swenshuai.xi     #define TSP_MCU_CMD_MEM_HIGH_ADDR                           0x05000000
640*53ee8cc1Swenshuai.xi     #define TSP_MCU_CMD_MEM_LOW_ADDR                            0x06000000
641*53ee8cc1Swenshuai.xi         #define TSP_MCU_CMD_MEM_ADDR_SHFT                       0x00000000
642*53ee8cc1Swenshuai.xi         #define TSP_MCU_CMD_MEM_ADDR_MASK                       0x0000FFFF
643*53ee8cc1Swenshuai.xi     #define TSP_MCU_CMD_VERSION_GET                             0x07000000
644*53ee8cc1Swenshuai.xi     #define TSP_MCU_CMD_DBG_MEM                                 0x08000000
645*53ee8cc1Swenshuai.xi     #define TSP_MCU_CMD_DBG_WORD                                0x09000000
646*53ee8cc1Swenshuai.xi     #define TSP_MCU_CMD_HWPCR_REG_SET                           0x0A000000
647*53ee8cc1Swenshuai.xi     #define TSP_MCU_CMD_SCMSTS_GET                              0x0B000000
648*53ee8cc1Swenshuai.xi     #define TSP_MCU_CMD_CTRL_STC_UPDATE                         0x0C000000
649*53ee8cc1Swenshuai.xi     #define TSP_MCU_CMD_CTRL_STC1_UPDATE                        0x0D000000
650*53ee8cc1Swenshuai.xi         #define TSP_MCU_CMD_CTRL_STC_UPDATE_OPTION_MASK         0x00FF0000
651*53ee8cc1Swenshuai.xi         #define TSP_MCU_CMD_CTRL_STC_UPDATE_ONCE                0x00010000
652*53ee8cc1Swenshuai.xi     #define TSP_MCU_CMD_TEI_COUNT_GET                           0x0E000000
653*53ee8cc1Swenshuai.xi         #define TSP_MCU_CMD_TEI_COUNT_SRC_MASK                  0x0000FFFF
654*53ee8cc1Swenshuai.xi             #define TSP_MCU_CMD_TEI_COUNT_SRC_LIVE              0x00000000
655*53ee8cc1Swenshuai.xi             #define TSP_MCU_CMD_TEI_COUNT_SRC_FILE              0x00000001
656*53ee8cc1Swenshuai.xi         #define TSP_MCU_CMD_TEI_COUNT_OPTION_MASK               0x00FF0000
657*53ee8cc1Swenshuai.xi             #define TSP_MCU_CMD_TEI_COUNT_OPTION_RESET          0x00800000
658*53ee8cc1Swenshuai.xi     #define TSP_MCU_CMD_DISCONT_COUNT_GET                       0x0F000000
659*53ee8cc1Swenshuai.xi         #define TSP_MCU_CMD_DISCONT_COUNT_FLT_MASK              0x0000FFFF
660*53ee8cc1Swenshuai.xi             #define TSP_MCU_CMD_DISCONT_COUNT_OPTION_MASK       0x00FF0000
661*53ee8cc1Swenshuai.xi         #define TSP_MCU_CMD_DISCONT_COUNT_OPTION_RESET          0x00800000
662*53ee8cc1Swenshuai.xi     #define TSP_MCU_CMD_SET_STC_OFFSET                          0x10000000
663*53ee8cc1Swenshuai.xi         #define TSP_MCU_CMD_SET_STC_OFFSET_OPTION_MASK          0x00FF0000
664*53ee8cc1Swenshuai.xi         #define TSP_MCU_CMD_SET_STC_OFFSET_OPTION_SHIFT         16
665*53ee8cc1Swenshuai.xi     #define TSP_MCU_CMD_SEL_STC_ENG                             0x20000000
666*53ee8cc1Swenshuai.xi         #define TSP_MCU_SEL_STC_ENG_ID_MASK                     0x000000FF
667*53ee8cc1Swenshuai.xi         #define TSP_MCU_SEL_STC_ENG_ID_SHIFT                    0
668*53ee8cc1Swenshuai.xi         #define TSP_MCU_CMD_SEL_STC_ENG_FLTSRC_MASK             0x0000FF00
669*53ee8cc1Swenshuai.xi         #define TSP_MCU_CMD_SEL_STC_ENG_FLTSRC_SHIFT            8
670*53ee8cc1Swenshuai.xi 
671*53ee8cc1Swenshuai.xi     REG32                           Hw_Config2;                         // 0xbf802b08   0x42
672*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG2_PACKET_CHK_SIZE1_MASK       0x000000FF
673*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG2_PACKET_CHK_SIZE1_SHFT       0
674*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG2_PACKET_SYNCBYTE1_MASK       0x0000FF00
675*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG2_PACKET_SYNCBYTE1_SHFT       8
676*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG2_PACKET_SIZE1_MASK           0x00FF0000
677*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG2_PACKET_SIZE1_SHFT           16
678*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG2_TSIF1_SERL                  0x00000000
679*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG2_TSIF1_PARL                  0x01000000
680*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG2_TSIF1_EXTSYNC               0x02000000
681*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG2_TS_DATAPORT_EN1             0x04000000
682*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG2_PIDFLT1_SOURCE_TSIF_MMFI0   0x20000000          // Switch source of PIDFLT1 to MMFI0
683*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG2_PIDFLT2_SOURCE_TSIF_MMFI1   0x40000000          // Switch source of PIDFLT2 to MMFI1
684*53ee8cc1Swenshuai.xi 
685*53ee8cc1Swenshuai.xi     REG32                           Hw_Config4;                         // 0xbf802b10   0x44
686*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG4_PVR_ENABLE                  0x00000002
687*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG4_PVR_ENDIAN_BIG              0x00000004          // 1: record TS to MIU with big endian, 0: record TS to MIU with little endian
688*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG4_TSIF1_ENABLE                0x00000008          // 1: enable ts interface 1 and vice versa
689*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG4_PVR_FLUSH                   0x00000010          // 1: str2mi_wadr <- str2mi_miu_head
690*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG4_PVRBUF_BYTEORDER_BIG        0x00000020          // Byte order of 8-byte recoding buffer to MIU.
691*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG4_PVR_PAUSE                   0x00000040
692*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG4_MEMTSDATA_ENDIAN_BIG        0x00000080          // 32-bit data byte order read from 8x64 FIFO when playing file.
693*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG4_TSIF0_ENABLE                0x00000100          // 1: enable ts interface 0 and vice versa
694*53ee8cc1Swenshuai.xi     #define TSP_VALID_FALLING_DETECT                0x00000200          // Reset bit count when data valid signal of TS interface is low.
695*53ee8cc1Swenshuai.xi     #define TSP_SYNC_RISING_DETECT                  0x00000400          // Reset bit count on the rising sync signal of TS interface.
696*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG4_TS_DATA0_SWAP               0x00000800          // Set 1 to swap the bit order of TS0 DATA bus
697*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG4_TS_DATA1_SWAP               0x00001000          // Set 1 to swap the bit order of TS1 DATA bus
698*53ee8cc1Swenshuai.xi     #define TSP_HW_TSP2OUTAEON_INT_EN               0x00004000          // Set 1 to force interrupt to outside AEON
699*53ee8cc1Swenshuai.xi     #define TSP_HW_HK_INT_FORCE                     0x00008000          // Set 1 to force interrupt to HK_MCU
700*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG4_BYTE_ADDR_DMA               0x000F0000          // prevent from byte enable bug, bit1~3 must enable togather
701*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG4_ALT_TS_SIZE                 0x00010000          // enable TS packets in 204 mode
702*53ee8cc1Swenshuai.xi     #define TSP_HW_DMA_MODE_MASK                    0x00300000          // Section filter DMA mode, 2'b00: Single.2'b01: Burst 2 bytes.2'b10: Burst 4 bytes.2'b11: Burst 8 bytes.
703*53ee8cc1Swenshuai.xi     #define TSP_HW_DMA_MODE_SHIFT                   20
704*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG4_WSTAT_CH_EN                 0x00400000
705*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG4_PS_VID_EN                   0x00800000          // program stream video enable
706*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG4_PS_AUD_EN                   0x01000000          // program stream audio enable
707*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG4_PS_AUD2_EN                  0x02000000          // program stream audioB enable
708*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG4_APES_ERR_RM_EN              0x04000000          // Set 1 to enable removing APES error packet
709*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG4_VPES_ERR_RM_EN              0x08000000          // Set 1 to enable removing VPES error packet
710*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG4_SEC_ERR_RM_EN               0x10000000          // Set 1 to enable removing section error packet
711*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG4_VID_ERR                     0x20000000          // Set 1 to mask the error packet interrupt
712*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG4_AUD_ERR                     0x40000000          // Set 1 to mask the error packet interrupt
713*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG4_ISYNC_PATCH_EN              0x80000000          // Set 1 to enable the patch of internal sync in "tsif"
714*53ee8cc1Swenshuai.xi 
715*53ee8cc1Swenshuai.xi     REG32                           NOEA_PC;                            // 0xbf802b18   0x46
716*53ee8cc1Swenshuai.xi 
717*53ee8cc1Swenshuai.xi     REG32                           Idr_Ctrl_Addr0;                     // 0xbf802b20   0x48
718*53ee8cc1Swenshuai.xi     #define TSP_IDR_START                           0x00000001
719*53ee8cc1Swenshuai.xi     #define TSP_IDR_READ                            0x00000000
720*53ee8cc1Swenshuai.xi     #define TSP_IDR_WRITE                           0x00000002
721*53ee8cc1Swenshuai.xi     #define TSP_IDR_WR_ENDIAN_BIG                   0x00000004
722*53ee8cc1Swenshuai.xi     #define TSP_IDR_WR_ADDR_AUTO_INC                0x00000008          // Set 1 to enable address auto-increment after finishing read/write
723*53ee8cc1Swenshuai.xi     #define TSP_IDR_WDAT0_TRIG_EN                   0x00000010          // WDAT0_TRIG_EN
724*53ee8cc1Swenshuai.xi     #define TSP_IDR_MCUWAIT                         0x00000020
725*53ee8cc1Swenshuai.xi     #define TSP_IDR_SOFT_RST                        0x00000080          // Set 1 to soft-reset the IND32 module
726*53ee8cc1Swenshuai.xi     #define TSP_IDR_AUTO_INC_VAL_MASK               0x00000F00
727*53ee8cc1Swenshuai.xi     #define TSP_IDR_AUTO_INC_VAL_SHIFT              8
728*53ee8cc1Swenshuai.xi     #define TSP_IDR_ADDR_MASK0                      0xFFFF0000
729*53ee8cc1Swenshuai.xi     #define TSP_IDR_ADDR_SHFT0                      16
730*53ee8cc1Swenshuai.xi 
731*53ee8cc1Swenshuai.xi     REG32                           Idr_Addr1_Write0;                   // 0xbf802b28   0x4a
732*53ee8cc1Swenshuai.xi     #define TSP_IDR_ADDR_MASK1                      0x0000FFFF
733*53ee8cc1Swenshuai.xi     #define TSP_IDR_ADDR_SHFT1                      0
734*53ee8cc1Swenshuai.xi     #define TSP_IDR_WRITE_MASK0                     0xFFFF0000
735*53ee8cc1Swenshuai.xi     #define TSP_IDR_WRITE_SHFT0                     16
736*53ee8cc1Swenshuai.xi 
737*53ee8cc1Swenshuai.xi     REG32                           Idr_Write1_Read0;                   // 0xbf802b30   0x4c
738*53ee8cc1Swenshuai.xi     #define TSP_IDR_WRITE_MASK1                     0x0000FFFF
739*53ee8cc1Swenshuai.xi     #define TSP_IDR_WRITE_SHFT1                     0
740*53ee8cc1Swenshuai.xi     #define TSP_IDR_READ_MASK0                      0xFFFF0000
741*53ee8cc1Swenshuai.xi     #define TSP_IDR_READ_SHFT0                      16
742*53ee8cc1Swenshuai.xi 
743*53ee8cc1Swenshuai.xi     REG32                           Idr_Read1;                          // 0xbf802b38   0x4e
744*53ee8cc1Swenshuai.xi     #define TSP_IDR_READ_MASK1                      0x0000FFFF
745*53ee8cc1Swenshuai.xi     #define TSP_IDR_READ_SHFT1                      0
746*53ee8cc1Swenshuai.xi     #define TSP_V3D_FIFO_DISCON                     0x00100000
747*53ee8cc1Swenshuai.xi     #define TSP_V3D_FIFO_OVERFLOW                   0x00200000
748*53ee8cc1Swenshuai.xi     #define TSP_VD_FIFO_DISCON                      0x02000000
749*53ee8cc1Swenshuai.xi     #define TSP_VD_FIFO_OVERFLOW                    0x08000000
750*53ee8cc1Swenshuai.xi     #define TSP_AUB_FIFO_OVERFLOW                   0x10000000
751*53ee8cc1Swenshuai.xi     #define TSP_AU_FIFO_OVERFLOW                    0x20000000
752*53ee8cc1Swenshuai.xi 
753*53ee8cc1Swenshuai.xi     // only 25 bits supported in PVR address. 8 bytes address
754*53ee8cc1Swenshuai.xi     #define TSP_STR2MI2_ADDR_MASK                   0x07FFFFFF
755*53ee8cc1Swenshuai.xi     REG32                           TsRec_Head;                         // 0xbf802b40   0x50
756*53ee8cc1Swenshuai.xi     REG32                           TsRec_Mid_PVR1_WPTR;                // 0xbf802b48   0x52, PVR1 mid address & write point
757*53ee8cc1Swenshuai.xi     REG32                           TsRec_Tail;                         // 0xbf802b50   0x54
758*53ee8cc1Swenshuai.xi 
759*53ee8cc1Swenshuai.xi     REG16                           sw_mail_b0x1;                       // 0xbf802b58 0x56
760*53ee8cc1Swenshuai.xi     REG16                           sw_mail_b0x2;                       // 0xbf802b5c 0x57
761*53ee8cc1Swenshuai.xi     REG32                           _xbf802b58;                         // 0xbf802b60 ~ 0xbf802b64   0x58~0x59
762*53ee8cc1Swenshuai.xi 
763*53ee8cc1Swenshuai.xi     REG32                           reg15b4;                            // 0xbf802b68   0x5a
764*53ee8cc1Swenshuai.xi     #define TSP_SEC_CB_PVR2_DAMW_PROTECT_EN         0x00000002
765*53ee8cc1Swenshuai.xi     #define TSP_PVR_PID_BYPASS                      0x00000008          // Set 1 to bypass PID in record
766*53ee8cc1Swenshuai.xi     #define TSP_PVR_PID_BYPASS2                     0x00000010          // Set 1 to bypass PID in record2
767*53ee8cc1Swenshuai.xi     #define TSP_BD_AUD_EN                           0x00000020          // Set 1 to enable the BD audio stream recognization ( core /extend audio stream)
768*53ee8cc1Swenshuai.xi     #define TSP_AVFIFO_RD_EN                        0x00000080          // 0: AFIFO and VFIFO read are connected to MVD and MAD,  1: AFIFO and VFIFO read are controlled by registers (0x15B5[2:0])
769*53ee8cc1Swenshuai.xi     #define TSP_AVFIFO_RD                           0x00000100          // If AVFIFO_RD_EN is 1, set to 1, then set to 0 would issue a read strobe to AFIFO or VFIFO
770*53ee8cc1Swenshuai.xi     #define TSP_AVFIFO_SEL_VIDEO                    0x00000000
771*53ee8cc1Swenshuai.xi     #define TSP_AVFIFO_SEL_AUDIO                    0x00000200
772*53ee8cc1Swenshuai.xi     #define TSP_PVR_INVERT                          0x00001000          // Set 1 to enable data payload invert for PVR record
773*53ee8cc1Swenshuai.xi     #define TSP_PLY_FILE_INV_EN                     0x00002000          // Set 1 to enable data payload invert in pidflt0 file path
774*53ee8cc1Swenshuai.xi     #define TSP_PLY_TS_INV_EN                       0x00004000          // Set 1 to enable data payload invert in pidflt0 TS path
775*53ee8cc1Swenshuai.xi     #define TSP_FILEIN_BYTETIMER_ENABLE             0x00008000          // Set 1 to enable byte timer in ts_if0 TS path
776*53ee8cc1Swenshuai.xi     #define TSP_PVR1_PINGPONG                       0x00010000          // Set 1 to enable MIU addresses with pinpon mode
777*53ee8cc1Swenshuai.xi     #define TSP_TEI_SKIPE_PKT_PID0                  0x00040000          // Set 1 to skip error packets in pidflt0 TS path
778*53ee8cc1Swenshuai.xi     #define TSP_TEI_SKIPE_PKT_FILE                  0x00080000          // Set 1 to skip error packets in pidflt0 file path
779*53ee8cc1Swenshuai.xi     #define TSP_TEI_SKIPE_PKT_PID1                  0x00100000          // Set 1 to skip error packets in pidflt1 TS path
780*53ee8cc1Swenshuai.xi     #define TSP_64bit_PCR2_ld                       0x00800000          // Set 1 to load CNT_64B_2 (the second STC)
781*53ee8cc1Swenshuai.xi     #define TSP_cnt_33b_ld                          0x01000000          // Set 1 to load cnt_33b
782*53ee8cc1Swenshuai.xi     #define TSP_FORCE_SYNCBYTE                      0x02000000          // Set 1 to force sync byte (8'h47) in ts_if0 and ts_if1 path.
783*53ee8cc1Swenshuai.xi     #define TSP_SERIAL_EXT_SYNC_LT                  0x04000000          // Set 1 to detect serial-in sync without 8-cycle mode
784*53ee8cc1Swenshuai.xi     #define TSP_BURST_LEN_MASK                      0x18000000          // 00,01:    burst length = 4; 10,11: burst length = 1
785*53ee8cc1Swenshuai.xi     #define TSP_BURST_LEN_4                         0x08000000
786*53ee8cc1Swenshuai.xi     #define TSP_BURST_LEN_SHIFT                     27
787*53ee8cc1Swenshuai.xi     #define TSP_MATCH_PID_SRC_MASK                  0x60000000          // Select the source of pid filter number with hit pid and match pid number with scramble information, 00 : from pkt_demux0, 01 : from pkt_demux_file, 10 : from pkt_demux1, 11 : from pkt_demux2
788*53ee8cc1Swenshuai.xi     #define TSP_MATCH_PID_SRC_SHIFT                 29
789*53ee8cc1Swenshuai.xi         #define TSP_MATCH_PID_SRC_PKTDMX0           0
790*53ee8cc1Swenshuai.xi         #define TSP_MATCH_PID_SRC_PKTDMXFL          1
791*53ee8cc1Swenshuai.xi         #define TSP_MATCH_PID_SRC_PKTDMX1           2
792*53ee8cc1Swenshuai.xi     #define TSP_MATCH_PID_LD                        0x80000000          // Set 1 to load match pid number with scramble information from FILE PIDFLT
793*53ee8cc1Swenshuai.xi 
794*53ee8cc1Swenshuai.xi     REG32                           TSP_MATCH_PID_NUM;                  // 0xbf802b70   0x5c
795*53ee8cc1Swenshuai.xi 
796*53ee8cc1Swenshuai.xi     REG32                           TSP_IWB_WAIT;                       // 0xbf802b78   0x5e  // Wait count settings for IWB when TSP CPU i-cache is enabled.
797*53ee8cc1Swenshuai.xi 
798*53ee8cc1Swenshuai.xi     REG32                           Cpu_Base;                           // 0xbf802b80   0x60
799*53ee8cc1Swenshuai.xi     #define TSP_CPU_BASE_ADDR_MASK                  0x01FFFFFF
800*53ee8cc1Swenshuai.xi 
801*53ee8cc1Swenshuai.xi     REG32                           Qmem_Ibase;                         // 0xbf802b88   0x62
802*53ee8cc1Swenshuai.xi 
803*53ee8cc1Swenshuai.xi     REG32                           Qmem_Imask;                         // 0xbf802b90   0x64
804*53ee8cc1Swenshuai.xi 
805*53ee8cc1Swenshuai.xi     REG32                           Qmem_Dbase;                         // 0xbf802b98   0x66
806*53ee8cc1Swenshuai.xi 
807*53ee8cc1Swenshuai.xi     REG32                           Qmem_Dmask;                         // 0xbf802ba0   0x68
808*53ee8cc1Swenshuai.xi 
809*53ee8cc1Swenshuai.xi     REG32                           TSP_Debug;                          // 0xbf802ba8   0x6a
810*53ee8cc1Swenshuai.xi     #define TSP_DEBUG_MASK                          0x00FFFFFF
811*53ee8cc1Swenshuai.xi 
812*53ee8cc1Swenshuai.xi     REG32                           _xbf802bb0;                         // 0xbf802bb0   0x6c
813*53ee8cc1Swenshuai.xi 
814*53ee8cc1Swenshuai.xi     REG32                           TsFileIn_RPtr;                      // 0xbf802bb8   0x6e
815*53ee8cc1Swenshuai.xi 
816*53ee8cc1Swenshuai.xi     REG32                           TsFileIn_Timer;                     // 0xbf802bc0   0x70
817*53ee8cc1Swenshuai.xi     #define TSP_FILE_TIMER_MASK                     0x00FFFFFF
818*53ee8cc1Swenshuai.xi     REG32                           TsFileIn_Head;                      // 0xbf802bc8   0x72
819*53ee8cc1Swenshuai.xi     #define TSP_FILE_ADDR_MASK                      0x07FFFFFF
820*53ee8cc1Swenshuai.xi     REG32                           TsFileIn_Mid;                       // 0xbf802bd0   0x74
821*53ee8cc1Swenshuai.xi 
822*53ee8cc1Swenshuai.xi     REG32                           TsFileIn_Tail;                      // 0xbf802bd8   0x76
823*53ee8cc1Swenshuai.xi 
824*53ee8cc1Swenshuai.xi     REG32                           Dnld_Ctrl;                          // 0xbf802be0   0x78
825*53ee8cc1Swenshuai.xi     #define TSP_DNLD_ADDR_MASK                      0x0000FFFF
826*53ee8cc1Swenshuai.xi     #define TSP_DNLD_ADDR_SHFT                      0
827*53ee8cc1Swenshuai.xi     #define TSP_DNLD_ADDR_ALI_SHIFT                 4                   // Bit [11:4] of DMA_RADDR[19:0]
828*53ee8cc1Swenshuai.xi     #define TSP_DNLD_NUM_MASK                       0xFFFF0000
829*53ee8cc1Swenshuai.xi     #define TSP_DNLD_NUM_SHFT                       16
830*53ee8cc1Swenshuai.xi 
831*53ee8cc1Swenshuai.xi     REG32                           TSP_Ctrl;                           // 0xbf802be8   0x7a
832*53ee8cc1Swenshuai.xi     #define TSP_CTRL_CPU_EN                         0x00000001
833*53ee8cc1Swenshuai.xi     #define TSP_CTRL_SW_RST                         0x00000002
834*53ee8cc1Swenshuai.xi     #define TSP_CTRL_DNLD_START                     0x00000004
835*53ee8cc1Swenshuai.xi     #define TSP_CTRL_DNLD_DONE                      0x00000008          // See 0x78 for related information
836*53ee8cc1Swenshuai.xi     #define TSP_CTRL_TSFILE_EN                      0x00000010
837*53ee8cc1Swenshuai.xi     #define TSP_CTRL_R_PRIO                         0x00000020
838*53ee8cc1Swenshuai.xi     #define TSP_CTRL_W_PRIO                         0x00000040
839*53ee8cc1Swenshuai.xi     #define TSP_CTRL_ICACHE_EN                      0x00000100
840*53ee8cc1Swenshuai.xi     #define TSP_CTRL_CPU2MI_R_PRIO                  0x00000400
841*53ee8cc1Swenshuai.xi     #define TSP_CTRL_CPU2MI_W_PRIO                  0x00000800
842*53ee8cc1Swenshuai.xi     #define TSP_CTRL_I_EL                           0x00000000
843*53ee8cc1Swenshuai.xi     #define TSP_CTRL_I_BL                           0x00001000
844*53ee8cc1Swenshuai.xi     #define TSP_CTRL_D_EL                           0x00000000
845*53ee8cc1Swenshuai.xi     #define TSP_CTRL_D_BL                           0x00002000
846*53ee8cc1Swenshuai.xi     #define TSP_CTRL_NOEA_QMEM_ACK_DIS              0x00004000
847*53ee8cc1Swenshuai.xi     #define TSP_CTRL_MEM_TS_WORDER                  0x00008000
848*53ee8cc1Swenshuai.xi     #define TSP_SYNC_BYTE_MASK                      0x00FF0000
849*53ee8cc1Swenshuai.xi     #define TSP_SYNC_BYTE_SHIFT                     16
850*53ee8cc1Swenshuai.xi 
851*53ee8cc1Swenshuai.xi     REG32                           PKT_CNT;                            // 0xbf802bf0   0x7c
852*53ee8cc1Swenshuai.xi     #define TSP_PKT_CNT_MASK                        0x000000FF
853*53ee8cc1Swenshuai.xi     #define TSP_DBG_SEL_MASK                        0xFFFF0000
854*53ee8cc1Swenshuai.xi     #define TSP_DBG_SEL_SHIFT                       16
855*53ee8cc1Swenshuai.xi 
856*53ee8cc1Swenshuai.xi     REG16                           HwInt_Stat;                         // 0xbf802bf8   0x7e
857*53ee8cc1Swenshuai.xi     #define TSP_HWINT_STATUS_MASK                   0xFF00              // Tsp2hk_int enable bits.
858*53ee8cc1Swenshuai.xi     #define TSP_HWINT_TSP_PVR_TAIL0_STATUS          0x0100
859*53ee8cc1Swenshuai.xi     #define TSP_HWINT_TSP_PVR_MID0_STATUS           0x0200
860*53ee8cc1Swenshuai.xi     #define TSP_HWINT_TSP_HK_INT_FORCE_STATUS       0x0400
861*53ee8cc1Swenshuai.xi     #define TSP_HWINT_TSP_FILEIN_MID_INT_STATUS     0x0800
862*53ee8cc1Swenshuai.xi     #define TSP_HWINT_TSP_FILEIN_TAIL_INT_STATUS    0x1000
863*53ee8cc1Swenshuai.xi     #define TSP_HWINT_TSP_SW_INT_STATUS             0x2000
864*53ee8cc1Swenshuai.xi     #define TSP_HWINT_TSP_DMA_READ_DONE             0x4000
865*53ee8cc1Swenshuai.xi     #define TSP_HWINT_TSP_AV_PKT_ERR                0x8000
866*53ee8cc1Swenshuai.xi 
867*53ee8cc1Swenshuai.xi     #define TSP_HWINT_HW_PVR1_MASK                  (TSP_HWINT_TSP_PVR_TAIL0_STATUS | TSP_HWINT_TSP_PVR_MID0_STATUS)
868*53ee8cc1Swenshuai.xi     #define TSP_HWINT_ALL                           (TSP_HWINT_HW_PVR1_MASK | TSP_HWINT_TSP_SW_INT_STATUS)
869*53ee8cc1Swenshuai.xi 
870*53ee8cc1Swenshuai.xi     // 0x7f: TSP_CTRL1: hidden in HwInt_Stat
871*53ee8cc1Swenshuai.xi     REG16                           TSP_Ctrl1;                          // 0xbf802bfc   0x7f
872*53ee8cc1Swenshuai.xi     #define TSP_CTRL1_FILEIN_TIMER_ENABLE           0x0001
873*53ee8cc1Swenshuai.xi     #define TSP_CTRL1_TSP_FILE_NON_STOP             0x0002              //Set 1 to enable TSP file data read without timer check
874*53ee8cc1Swenshuai.xi     #define TSP_CTRL1_FILEIN_PAUSE                  0x0004
875*53ee8cc1Swenshuai.xi     #define TSP_CTRL1_STANDBY                       0x0080
876*53ee8cc1Swenshuai.xi     #define TSP_CTRL1_INT2NOEA                      0x0100
877*53ee8cc1Swenshuai.xi     #define TSP_CTRL1_INT2NOEA_FORCE                0x0200
878*53ee8cc1Swenshuai.xi     #define TSP_CTRL1_FORCE_XIU_WRDY                0x0400
879*53ee8cc1Swenshuai.xi     #define TSP_CTRL1_CMDQ_RESET                    0x0800
880*53ee8cc1Swenshuai.xi     #define TSP_CTRL1_DLEND_EN                      0x1000              // Set 1 to enable little-endian mode in TSP CPU
881*53ee8cc1Swenshuai.xi     #define TSP_CTRL1_PVR_CMD_QUEUE_ENABLE          0x2000
882*53ee8cc1Swenshuai.xi     #define TSP_CTRL1_DMA_RST                       0x8000
883*53ee8cc1Swenshuai.xi 
884*53ee8cc1Swenshuai.xi     //----------------------------------------------
885*53ee8cc1Swenshuai.xi     // 0xBF802C00 MIPS direct access
886*53ee8cc1Swenshuai.xi     //----------------------------------------------
887*53ee8cc1Swenshuai.xi     REG32                           MCU_Data0;                          // 0xbf802c00   0x00
888*53ee8cc1Swenshuai.xi     #define TSP_MCU_DATA_ALIVE                      TSP_MCU_CMD_ALIVE
889*53ee8cc1Swenshuai.xi 
890*53ee8cc1Swenshuai.xi     REG32                           PVR1_LPcr1;                         // 0xbf802c08   0x02
891*53ee8cc1Swenshuai.xi 
892*53ee8cc1Swenshuai.xi     REG32                           LPcr2;                              // 0xbf802c10   0x04
893*53ee8cc1Swenshuai.xi 
894*53ee8cc1Swenshuai.xi     REG32                           reg160C;                            // 0xbf802c18   0x06
895*53ee8cc1Swenshuai.xi     #define TSP_PVR1_LPCR1_WLD                      0x00000001          // Set 1 to load LPCR1 value
896*53ee8cc1Swenshuai.xi     #define TSP_PVR1_LPCR1_RLD                      0x00000002          // Set 1 to read LPCR1 value (Default: 1)
897*53ee8cc1Swenshuai.xi     #define TSP_LPCR2_WLD                           0x00000004          // Set 1 to load LPCR2 value
898*53ee8cc1Swenshuai.xi     #define TSP_LPCR2_RLD                           0x00000008          // Set 1 to read LPCR2 value (Default: 1)
899*53ee8cc1Swenshuai.xi     #define TSP_RECORD192_EN                        0x00000010          // 160C bit(5)enable TS packets with 192 bytes on record mode
900*53ee8cc1Swenshuai.xi     #define TSP_FILEIN192_EN                        0x00000020          // 160C bit(5)enable TS packets with 192 bytes on file-in mode
901*53ee8cc1Swenshuai.xi     #define TSP_RVU_TIMESTAMP_EN                    0x00000040
902*53ee8cc1Swenshuai.xi     #define TSP_ORZ_DMAW_PROT_EN                    0x00000080          // 160C bit(7) open RISC DMA write protection
903*53ee8cc1Swenshuai.xi     #define TSP_CLR_PIDFLT_BYTE_CNT                 0x00000100          // Clear pidflt0_file byte counter
904*53ee8cc1Swenshuai.xi     #define TSP_DOUBLE_BUF_DESC                     0x00004000          // 160d bit(6) remove buffer limitation, Force pinpong buffer to flush
905*53ee8cc1Swenshuai.xi     #define TSP_TIMESTAMP_RESET                     0x00008000          // 160d bit(7) reset timestamp, reset all file in path
906*53ee8cc1Swenshuai.xi     #define TSP_VQTX0_BLOCK_DIS                     0x00010000
907*53ee8cc1Swenshuai.xi     #define TSP_VQTX1_BLOCK_DIS                     0x00020000
908*53ee8cc1Swenshuai.xi     #define TSP_VQTX2_BLOCK_DIS                     0x00040000
909*53ee8cc1Swenshuai.xi     #define TSP_DIS_MIU_RQ                          0x00100000          // Disable miu R/W request for reset TSP usage
910*53ee8cc1Swenshuai.xi     #define TSP_RM_DMA_GLITCH                       0x00800000          // Fix sec_dma overflow glitch
911*53ee8cc1Swenshuai.xi     #define TSP_RESET_VFIFO                         0x01000000          // Reset VFIFO -- ECO Done
912*53ee8cc1Swenshuai.xi     #define TSP_RESET_AFIFO                         0x02000000          // Reset AFIFO -- ECO Done
913*53ee8cc1Swenshuai.xi     #define TSP_RESET_GDMA                          0x04000000          // Set 1 to reset GDMA bridge
914*53ee8cc1Swenshuai.xi     #define TSP_CLR_ALL_FLT_MATCH                   0x08000000          // Set 1 to clean all flt_match in a packet
915*53ee8cc1Swenshuai.xi     #define TSP_RESET_AFIFO2                        0x10000000
916*53ee8cc1Swenshuai.xi     #define TSP_RESET_VFIFO3D                       0x20000000
917*53ee8cc1Swenshuai.xi     #define TSP_PVR_WPRI_HIGH                       0x20000000
918*53ee8cc1Swenshuai.xi     #define TSP_OPT_ORACESS_TIMING                  0x80000000
919*53ee8cc1Swenshuai.xi 
920*53ee8cc1Swenshuai.xi     REG32                           PktChkSizeFilein;                   // 0xbf802c20   0x08
921*53ee8cc1Swenshuai.xi     #define TSP_PKT_SIZE_MASK                       0x000000ff
922*53ee8cc1Swenshuai.xi     #define TSP_PKT192_BLK_DIS_FIN                  0x00000100          // Set 1 to disable file-in timestamp block scheme
923*53ee8cc1Swenshuai.xi     #define TSP_AV_CLR                              0x00000200          // Clear AV FIFO overflow flag and in/out counter
924*53ee8cc1Swenshuai.xi     #define TSP_HW_STANDBY_MODE                     0x00000400          // Set 1 to disable all SRAM in TSP for low power mode automatically
925*53ee8cc1Swenshuai.xi     #define TSP_CNT_34B_DEFF_EN                     0x00020000          // Switch STC DIFF Mode (Output STC+DIFF to MVD and MAD)
926*53ee8cc1Swenshuai.xi     #define TSP_SYSTIME_MODE_STC64                  0x00080000          // Switch normal STC or STC diff
927*53ee8cc1Swenshuai.xi     #define TSP_SEC_DMA_BURST_EN                    0x00800000          // ECO bit for section DMA burst mode
928*53ee8cc1Swenshuai.xi     #define TSP_REMOVE_DUP_VIDEO_PKT                0x02000000          // Set 1 to remove duplicate video packet
929*53ee8cc1Swenshuai.xi     #define TSP_REMOVE_DUP_VIDEO3D_PKT              0x04000000          // Set 1 to remove duplicate video 3D packet
930*53ee8cc1Swenshuai.xi     #define TSP_REMOVE_DUP_AUDIO_PKT                0x08000000          // Set 1 to remove duplicate audio packet
931*53ee8cc1Swenshuai.xi     #define TSP_REMOVE_DUP_AUDIOB_PKT               0x10000000          // Set 1 to remove duplicate audio description packet
932*53ee8cc1Swenshuai.xi 
933*53ee8cc1Swenshuai.xi     #define TSP_REMOVE_DUP_AV_PKT                   (TSP_REMOVE_DUP_VIDEO_PKT|TSP_REMOVE_DUP_AUDIO_PKT|TSP_REMOVE_DUP_AUDIOB_PKT | TSP_REMOVE_DUP_VIDEO3D_PKT)
934*53ee8cc1Swenshuai.xi 
935*53ee8cc1Swenshuai.xi     REG32                           Dnld_Ctrl2;                         // 0xbf802c28   0x0a
936*53ee8cc1Swenshuai.xi     #define TSP_DMA_RADDR_MSB_MASK                  0x000000FF
937*53ee8cc1Swenshuai.xi     #define TSP_DMA_RADDR_MSB_SHIFT                 0
938*53ee8cc1Swenshuai.xi     //#define TSP_CMQ_WORD_EN                         0x00400000          // Set 1 to access CMDQ related registers in word.
939*53ee8cc1Swenshuai.xi     //#define TSP_RESET_PVR_MOBF                      0x04000000
940*53ee8cc1Swenshuai.xi     //#define TSP_RESET_FILEIN_MOBF                   0x08000000
941*53ee8cc1Swenshuai.xi     #define TSP_TSIF0_VPID_3D_BYPASS                0x0F000000          // bypass TS for matched video 3D pid
942*53ee8cc1Swenshuai.xi     #define TSP_VPID_3D_ERR_RM_EN                   0x10000000          // enable removing v3d err pkt
943*53ee8cc1Swenshuai.xi     #define TSP_PS_VID3D_EN                         0x40000000
944*53ee8cc1Swenshuai.xi     #define TSP_PREVENT_OVF_META                    0x80000000
945*53ee8cc1Swenshuai.xi 
946*53ee8cc1Swenshuai.xi     REG32                           TsPidScmbStatTsin;                  // 0xbf802c30   0x0c
947*53ee8cc1Swenshuai.xi 
948*53ee8cc1Swenshuai.xi     REG32                           _xbf802c38;                         // 0xbf802c38   0x0e
949*53ee8cc1Swenshuai.xi 
950*53ee8cc1Swenshuai.xi     REG32                           PCR64_2_L;                          // 0xbf802c40   0x10
951*53ee8cc1Swenshuai.xi 
952*53ee8cc1Swenshuai.xi     REG32                           PCR64_2_H;                          // 0xbf802c48   0x12
953*53ee8cc1Swenshuai.xi 
954*53ee8cc1Swenshuai.xi     #define TSP_DMAW_BND_MASK                       0xFFFFFFFFF
955*53ee8cc1Swenshuai.xi     REG32                           DMAW_LBND0;                         // 0xbf802c50   0x14
956*53ee8cc1Swenshuai.xi 
957*53ee8cc1Swenshuai.xi     REG32                           DMAW_UBND0;                         // 0xbf802c58   0x16
958*53ee8cc1Swenshuai.xi 
959*53ee8cc1Swenshuai.xi     REG32                           DMAW_LBND1;                         // 0xbf802c60   0x18
960*53ee8cc1Swenshuai.xi 
961*53ee8cc1Swenshuai.xi     REG32                           DMAW_UBND1;                         // 0xbf802c68   0x1A
962*53ee8cc1Swenshuai.xi 
963*53ee8cc1Swenshuai.xi     REG32                           DMAW_ERR_WADDR_SRC_SEL;                   //   0x1C ~ 0x1D
964*53ee8cc1Swenshuai.xi     #define TSP_CLR_NO_HIT_INT                       0x00000001         // set 1 clear all dma write function not hit interrupt
965*53ee8cc1Swenshuai.xi     #define DMAW_ERR_WADDR_SRC_SEL_MASK              0x0000001E
966*53ee8cc1Swenshuai.xi     #define DMAW_ERR_WADDR_SRC_SEL_SHIFT             1
967*53ee8cc1Swenshuai.xi     #define TSP_PVR1_DWMA_WADDR_ERR                  0x0
968*53ee8cc1Swenshuai.xi     #define TSP_SEC_DWMA_WADDR_ERR                   0x1
969*53ee8cc1Swenshuai.xi     #define TSP_PVR_CB_DWMA_WADDR_ERR                0x2
970*53ee8cc1Swenshuai.xi     #define TSP_VQTX0_DWMA_WADDR_ERR                 0x3
971*53ee8cc1Swenshuai.xi     #define TSP_VQTX1_DWMA_WADDR_ERR                 0x4
972*53ee8cc1Swenshuai.xi     #define TSP_ORZ_DWMA_WADDR_ERR                   0x5
973*53ee8cc1Swenshuai.xi     #define TSP_VQTX2_DWMA_WADDR_ERR                 0x6
974*53ee8cc1Swenshuai.xi     #define TSP_PVR2_DWMA_WADDR_ERR                  0x8
975*53ee8cc1Swenshuai.xi     #define TSP_CLR_SEC_DMAW_OVERFLOW                0x00000040
976*53ee8cc1Swenshuai.xi     #define TSP_APES_B_ERR_RM_EN                     0x00000080
977*53ee8cc1Swenshuai.xi     #define TSP_BLK_AF_SCRMB_BIT                     0x00000400
978*53ee8cc1Swenshuai.xi 
979*53ee8cc1Swenshuai.xi     REG32                           reg163C;                            // 0xbf802c78   0x1e
980*53ee8cc1Swenshuai.xi 
981*53ee8cc1Swenshuai.xi     #define TSP_CLR_SRC_MASK                        0x00070000
982*53ee8cc1Swenshuai.xi     #define TSP_CLR_SRC_SHIFT                       16
983*53ee8cc1Swenshuai.xi         #define TSP_CLR_SRC_CH_0                    1
984*53ee8cc1Swenshuai.xi         #define TSP_CLR_SRC_CH_FI                   2
985*53ee8cc1Swenshuai.xi         #define TSP_CLR_SRC_CH_1                    3
986*53ee8cc1Swenshuai.xi         #define TSP_CLR_SRC_CH_MMFI0                6
987*53ee8cc1Swenshuai.xi         #define TSP_CLR_SRC_CH_MMFI1                7
988*53ee8cc1Swenshuai.xi     #define TSP_DISCONTI_VD_CLR                     0x00080000  //Set 1 to clear video discontinuity count
989*53ee8cc1Swenshuai.xi     #define TSP_DISCONTI_AUD_CLR                    0x00200000  //Set 1 to clear audio discontinuity count
990*53ee8cc1Swenshuai.xi     #define TSP_DISCONTI_AUDB_CLR                   0x00400000  //Set 1 to clear videoB discontinuity count
991*53ee8cc1Swenshuai.xi     #define TSL_CLR_SRAM_COLLISION                  0x02000000
992*53ee8cc1Swenshuai.xi     #define TSP_TS_OUT_EN                           0x04000000  //set 1 to enable ts_out
993*53ee8cc1Swenshuai.xi 
994*53ee8cc1Swenshuai.xi     #define TSP_ALL_VALID_EN                        0x08000000
995*53ee8cc1Swenshuai.xi     #define TSP_PKT130_PUSI_EN                      0x10000000
996*53ee8cc1Swenshuai.xi     #define TSP_PKT130_TEI_EN                       0x20000000
997*53ee8cc1Swenshuai.xi     #define TSP_PKT130_ERR_CLR                      0x40000000
998*53ee8cc1Swenshuai.xi     #define TSP_PKT130_EN                           0x80000000 // file in only
999*53ee8cc1Swenshuai.xi 
1000*53ee8cc1Swenshuai.xi     REG32                           VQ0_BASE;                           // 0xbf802c80   0x20
1001*53ee8cc1Swenshuai.xi     REG32                           VQ0_CTRL;                           // 0xbf802c88   0x22
1002*53ee8cc1Swenshuai.xi     #define TSP_VQ0_SIZE_208PK_MASK                 0x0000FFFF
1003*53ee8cc1Swenshuai.xi     #define TSP_VQ0_SIZE_208PK_SHIFT                0
1004*53ee8cc1Swenshuai.xi     #define TSP_VQ0_WR_THRESHOLD_MASK               0x000F0000
1005*53ee8cc1Swenshuai.xi     #define TSP_VQ0_WR_THRESHOLD_SHIFT              16
1006*53ee8cc1Swenshuai.xi     #define TSP_VQ0_PRIORTY_THRESHOLD_MASK          0x00F00000
1007*53ee8cc1Swenshuai.xi     #define TSP_VQ0_PRIORTY_THRESHOL_SHIFT          20
1008*53ee8cc1Swenshuai.xi     #define TSP_VQ0_FORCE_FIRE_CNT_1K_MASK          0x0F000000
1009*53ee8cc1Swenshuai.xi     #define TSP_VQ0_FORCE_FIRE_CNT_1K_SHIFT         24
1010*53ee8cc1Swenshuai.xi     #define TSP_VQ0_RESET                           0x10000000
1011*53ee8cc1Swenshuai.xi     #define TSP_VQ0_OVERFLOW_INT_EN                 0x40000000          // Enable the interrupt for overflow happened on Virtual Queue path
1012*53ee8cc1Swenshuai.xi     #define TSP_VQ0_CLR_OVERFLOW_INT                0x80000000         // Clear the interrupt and the overflow flag
1013*53ee8cc1Swenshuai.xi 
1014*53ee8cc1Swenshuai.xi     REG32                           VQ_PIDFLT_CTRL;                    // 0xbf802c90   0x24
1015*53ee8cc1Swenshuai.xi     #define TSP_REQ_VQ_RX_THRESHOLD_MASKE           0x000E0000
1016*53ee8cc1Swenshuai.xi     #define TSP_REQ_VQ_RX_THRESHOLD_SHIFT           17
1017*53ee8cc1Swenshuai.xi     #define TSP_REQ_VQ_RX_THRESHOLD_LEN1            0x00000000
1018*53ee8cc1Swenshuai.xi     #define TSP_REQ_VQ_RX_THRESHOLD_LEN2            0x00020000
1019*53ee8cc1Swenshuai.xi     #define TSP_REQ_VQ_RX_THRESHOLD_LEN4            0x00040000
1020*53ee8cc1Swenshuai.xi     #define TSP_REQ_VQ_RX_THRESHOLD_LEN8            0x00060000
1021*53ee8cc1Swenshuai.xi     #define TSP_PIDFLT0_OVF_INT_EN                  0x00400000
1022*53ee8cc1Swenshuai.xi     #define TSP_PIDFLT0_CLR_OVF_INT                 0x00800000
1023*53ee8cc1Swenshuai.xi     #define TSP_PIDFLT0_FILE_OVF_INT_EN             0x01000000
1024*53ee8cc1Swenshuai.xi     #define TSP_PIDFLT0_FILE_CLR_OVF_INT            0x02000000
1025*53ee8cc1Swenshuai.xi     #define TSP_PIDFLT1_OVF_INT_EN                  0x04000000
1026*53ee8cc1Swenshuai.xi     #define TSP_PIDFLT1_CLR_OVF_INT                 0x08000000
1027*53ee8cc1Swenshuai.xi     #define TSP_PIDFLT2_OVF_INT_EN                  0x10000000
1028*53ee8cc1Swenshuai.xi     #define TSP_PIDFLT2_CLR_OVF_INT                 0x20000000
1029*53ee8cc1Swenshuai.xi     #define TSP_PIDFLT_CB_OVF_INT_EN                0x40000000
1030*53ee8cc1Swenshuai.xi     #define TSP_PIDFLT_CB_CLR_OVF_INT               0x80000000
1031*53ee8cc1Swenshuai.xi 
1032*53ee8cc1Swenshuai.xi     REG32                           MOBF_PVR1_Index;                    // 0xbf3a2c98   0x26
1033*53ee8cc1Swenshuai.xi     #define TSP_MOBF_PVR1_INDEX0_MASK               0x0000000F
1034*53ee8cc1Swenshuai.xi     #define TSP_MOBF_PVR1_INDEX0_SHIFT              0
1035*53ee8cc1Swenshuai.xi     #define TSP_MOBF_PVR1_INDEX1_MASK               0x000F0000
1036*53ee8cc1Swenshuai.xi     #define TSP_MOBF_PVR1_INDEX1_SHIFT              16
1037*53ee8cc1Swenshuai.xi 
1038*53ee8cc1Swenshuai.xi     REG32                           MOBF_PVR2_Index;                    // 0xbf3a2cA0   0x28
1039*53ee8cc1Swenshuai.xi     #define TSP_MOBF_PVR2_INDEX0_MASK               0x0000000F
1040*53ee8cc1Swenshuai.xi     #define TSP_MOBF_PVR2_INDEX0_SHIFT              0
1041*53ee8cc1Swenshuai.xi     #define TSP_MOBF_PVR2_INDEX1_MASK               0x000F0000
1042*53ee8cc1Swenshuai.xi     #define TSP_MOBF_PVR2_INDEX1_SHIFT              16
1043*53ee8cc1Swenshuai.xi 
1044*53ee8cc1Swenshuai.xi     REG32                           DMAW_LBND2;                         // 0xbf802ca8   0x2a
1045*53ee8cc1Swenshuai.xi 
1046*53ee8cc1Swenshuai.xi     REG32                           DMAW_UBND2;                         // 0xbf802cb0   0x2c
1047*53ee8cc1Swenshuai.xi 
1048*53ee8cc1Swenshuai.xi     REG32                           DMAW_LBND3;                         // 0xbf802cb8   0x2e          //reserved
1049*53ee8cc1Swenshuai.xi 
1050*53ee8cc1Swenshuai.xi     REG32                           DMAW_UBND3;                         // 0xbf802cc0   0x30          //reserved
1051*53ee8cc1Swenshuai.xi 
1052*53ee8cc1Swenshuai.xi     REG32                           DMAW_LBND4;                         // 0xbf802cc8   0x32
1053*53ee8cc1Swenshuai.xi 
1054*53ee8cc1Swenshuai.xi     REG32                           DMAW_UBND4;                         // 0xbf802cd0   0x34
1055*53ee8cc1Swenshuai.xi 
1056*53ee8cc1Swenshuai.xi     REG32                           ORZ_DMAW_LBND;                      // 0xbf802cd8   0x36
1057*53ee8cc1Swenshuai.xi     #define TSP_ORZ_DMAW_LBND_MASK                  0xffffffff
1058*53ee8cc1Swenshuai.xi     REG32                           ORZ_DMAW_UBND;                      // 0xbf802ce0   0x38
1059*53ee8cc1Swenshuai.xi     #define TSP_ORZ_DMAW_UBND_MASK                  0xffffffff
1060*53ee8cc1Swenshuai.xi     REG32                           _xbf802ce8_xbf802cec;               // 0xbf802ce8_0xbf802cec  0x3a~0x3b
1061*53ee8cc1Swenshuai.xi 
1062*53ee8cc1Swenshuai.xi     REG32                           HWPCR0_L;                           // 0xbf802cf0   0x3c
1063*53ee8cc1Swenshuai.xi     REG32                           HWPCR0_H;                           // 0xbf802cf8   0x3e
1064*53ee8cc1Swenshuai.xi 
1065*53ee8cc1Swenshuai.xi     REG32                           CA_CTRL;                            // 0xbf802d00   0x40
1066*53ee8cc1Swenshuai.xi     #define TSP_CA_CTRL_MASK                        0xffffffff
1067*53ee8cc1Swenshuai.xi     #define TSP_CA0_CTRL_MASK                       0x00003077
1068*53ee8cc1Swenshuai.xi     #define TSP_CA0_INPUT_TSIF0_LIVEIN              0x00000001
1069*53ee8cc1Swenshuai.xi     #define TSP_CA0_INPUT_TSIF0_FILEIN              0x00000002
1070*53ee8cc1Swenshuai.xi     #define TSP_CA0_INPUT_TSIF1                     0x00000004
1071*53ee8cc1Swenshuai.xi     #define TSP_CA0_OUTPUT_PKTDMX0_LIVE             0x00000010
1072*53ee8cc1Swenshuai.xi     #define TSP_CA0_OUTPUT_PKTDMX0_FILE             0x00000020
1073*53ee8cc1Swenshuai.xi     #define TSP_CA0_OUTPUT_PKTDMX1                  0x00000040
1074*53ee8cc1Swenshuai.xi     #define TSP_CA0_INPUT_TSIF2                     0x00001000
1075*53ee8cc1Swenshuai.xi     #define TSP_CA0_OUTPUT_PKTDMX2                  0x00002000
1076*53ee8cc1Swenshuai.xi     #define TSP_CA0_OUTPUT_CA2                      0x00004000
1077*53ee8cc1Swenshuai.xi 
1078*53ee8cc1Swenshuai.xi     #define TSP_CA1_CTRL_MASK                       0x77308000
1079*53ee8cc1Swenshuai.xi     #define TSP_CA1_OUTPUT_CA2                      0x00008000
1080*53ee8cc1Swenshuai.xi     #define TSP_CA1_INPUT_TSIF2                     0x00100000
1081*53ee8cc1Swenshuai.xi     #define TSP_CA1_OUTPUT_PKTDMX2                  0x00200000
1082*53ee8cc1Swenshuai.xi 
1083*53ee8cc1Swenshuai.xi     #define TSP_CA1_INPUT_TSIF0_LIVEIN              0x01000000
1084*53ee8cc1Swenshuai.xi     #define TSP_CA1_INPUT_TSIF0_FILEIN              0x02000000
1085*53ee8cc1Swenshuai.xi     #define TSP_CA1_INPUT_TSIF1                     0x04000000
1086*53ee8cc1Swenshuai.xi     #define TSP_CA1_OUTPUT_PKTDMX0_LIVE             0x10000000
1087*53ee8cc1Swenshuai.xi     #define TSP_CA1_OUTPUT_PKTDMX0_FILE             0x20000000
1088*53ee8cc1Swenshuai.xi     #define TSP_CA1_OUTPUT_PKTDMX1                  0x40000000
1089*53ee8cc1Swenshuai.xi 
1090*53ee8cc1Swenshuai.xi     REG32                           REG_ONEWAY;                         // 0xbf802d08   0x42
1091*53ee8cc1Swenshuai.xi     #define TSP_ONEWAY_REC_DISABLE                  0x00000001          // Disable PVR
1092*53ee8cc1Swenshuai.xi     #define TSP_ONEWAY_PVR_PORT                     0x00000002          // Oneway for PVR buffer
1093*53ee8cc1Swenshuai.xi     #define TSP_ONEWAY_LOAD_FW_PORT                 0x00000004          // Oneway for f/w load address
1094*53ee8cc1Swenshuai.xi 
1095*53ee8cc1Swenshuai.xi     REG32                           HWPCR1_L;                           // 0xbf802d10   0x44
1096*53ee8cc1Swenshuai.xi     REG32                           HWPCR1_H;                           // 0xbf802d18   0x46
1097*53ee8cc1Swenshuai.xi 
1098*53ee8cc1Swenshuai.xi     REG32                           LPCR_CB;                            // 0xbf802d20   0x48
1099*53ee8cc1Swenshuai.xi 
1100*53ee8cc1Swenshuai.xi     REG32                           CHBW_BUF_HEAD;                      // 0xbf802d28   0x4a, channel browser
1101*53ee8cc1Swenshuai.xi 
1102*53ee8cc1Swenshuai.xi     REG32                           CHBW_BUF_MID_Wptr;                  // 0xbf802d30   0x4C, channel browser, Mid & Wptr share same register
1103*53ee8cc1Swenshuai.xi 
1104*53ee8cc1Swenshuai.xi     REG32                           CHBW_BUF_TAIL;                      // 0xbf802d38   0x4E, channel browser
1105*53ee8cc1Swenshuai.xi 
1106*53ee8cc1Swenshuai.xi     REG32                           FIFO_Src;                           // 0xbf802d40   0x50
1107*53ee8cc1Swenshuai.xi     #define TSP_AUD_SRC_MASK                        0x00000007
1108*53ee8cc1Swenshuai.xi     #define TSP_AUD_SRC_SHIFT                       0
1109*53ee8cc1Swenshuai.xi         #define TSP_SRC_FROM_PKTDMX0                0x00000001
1110*53ee8cc1Swenshuai.xi         #define TSP_SRC_FROM_PKTDMXFL               0x00000002
1111*53ee8cc1Swenshuai.xi         #define TSP_SRC_FROM_PKTDMX1                0x00000003
1112*53ee8cc1Swenshuai.xi         #define TSP_SRC_FROM_PKTDMX2                0x00000004
1113*53ee8cc1Swenshuai.xi         #define TSP_SRC_FROM_MMFI0                  0x00000006
1114*53ee8cc1Swenshuai.xi         #define TSP_SRC_FROM_MMFI1                  0x00000007
1115*53ee8cc1Swenshuai.xi     #define TSP_AUDB_SRC_MASK                       0x00000038
1116*53ee8cc1Swenshuai.xi     #define TSP_AUDB_SRC_SHIFT                      3
1117*53ee8cc1Swenshuai.xi     #define TSP_VID_SRC_MASK                        0x000001C0
1118*53ee8cc1Swenshuai.xi     #define TSP_VID_SRC_SHIFT                       6
1119*53ee8cc1Swenshuai.xi     #define TSP_VID3D_SRC_MASK                      0x00000E00
1120*53ee8cc1Swenshuai.xi     #define TSP_VID3D_SRC_SHIFT                     9
1121*53ee8cc1Swenshuai.xi     #define TSP_PVR1_SRC_MASK                       0x00007000
1122*53ee8cc1Swenshuai.xi     #define TSP_PVR1_SRC_SHIFT                      12
1123*53ee8cc1Swenshuai.xi     #define TSP_PVR2_SRC_MASK                       0x00038000
1124*53ee8cc1Swenshuai.xi     #define TSP_PVR2_SRC_SHIFT                      15
1125*53ee8cc1Swenshuai.xi     #define TSP_PCR0_SRC_MASK                       0x001C0000
1126*53ee8cc1Swenshuai.xi     #define TSP_PCR0_SRC_SHIFT                      18
1127*53ee8cc1Swenshuai.xi     #define TSP_TEI_SKIP_PKT_PCR0                   0x01000000
1128*53ee8cc1Swenshuai.xi     #define TSP_PCR0_RESET                          0x02000000
1129*53ee8cc1Swenshuai.xi     #define TSP_PCR0_INT_CLR                        0x04000000
1130*53ee8cc1Swenshuai.xi     #define TSP_PCR0_READ                           0x08000000
1131*53ee8cc1Swenshuai.xi 
1132*53ee8cc1Swenshuai.xi     REG32                           STC_DIFF_BUF;                       // 0xbf802d48   0x52
1133*53ee8cc1Swenshuai.xi 
1134*53ee8cc1Swenshuai.xi     REG32                           STC_DIFF_BUF_H;                     // 0xbf802d50   0x54
1135*53ee8cc1Swenshuai.xi     #define TSP_STC_DIFF_BUF_H_MASK                 0x0000007F
1136*53ee8cc1Swenshuai.xi     #define TSP_STC_DIFF_BUF_H_AHIFT                0
1137*53ee8cc1Swenshuai.xi 
1138*53ee8cc1Swenshuai.xi     REG32                           VQ1_Base;                           // 0xbf802d58   0x56
1139*53ee8cc1Swenshuai.xi 
1140*53ee8cc1Swenshuai.xi     REG32                           Hw_Config5;                         // 0xbf802d60   0x58
1141*53ee8cc1Swenshuai.xi 
1142*53ee8cc1Swenshuai.xi     REG32                           CH_BW_CTRL;                         // 0xbf802d68   0x5a
1143*53ee8cc1Swenshuai.xi     #define TSP_CH_BW_WP_LD                         0x00000100
1144*53ee8cc1Swenshuai.xi 
1145*53ee8cc1Swenshuai.xi     REG32                           VQ1_Config;                         // 0xbf802d70   0x5C
1146*53ee8cc1Swenshuai.xi     #define TSP_VQ1_SIZE_208BYTE_MASK               0x0000ffff
1147*53ee8cc1Swenshuai.xi     #define TSP_VQ1_SIZE_208BYTE_SHIFT              0
1148*53ee8cc1Swenshuai.xi     #define TSP_VQ1_WR_THRESHOLD_MASK               0x000F0000
1149*53ee8cc1Swenshuai.xi     #define TSP_VQ1_WR_THRESHOLD_SHIFT              16
1150*53ee8cc1Swenshuai.xi     #define TSP_VQ1_PRI_THRESHOLD_MASK              0x00F00000
1151*53ee8cc1Swenshuai.xi     #define TSP_VQ1_PRI_THRESHOLD_SHIFT             20
1152*53ee8cc1Swenshuai.xi     #define TSP_VQ1_FORCEFIRE_CNT_1K_MASK           0x0F000000
1153*53ee8cc1Swenshuai.xi     #define TSP_VQ1_FORCEFIRE_CNT_1K_SHIFT          24
1154*53ee8cc1Swenshuai.xi     #define TSP_VQ1_RESET                           0x10000000
1155*53ee8cc1Swenshuai.xi     #define TSP_VQ1_OVF_INT_EN                      0x40000000
1156*53ee8cc1Swenshuai.xi     #define TSP_VQ1_CLR_OVF_INT                     0x80000000
1157*53ee8cc1Swenshuai.xi 
1158*53ee8cc1Swenshuai.xi     REG32                           VQ2_Base;                           // 0xbf802d78   0x5E
1159*53ee8cc1Swenshuai.xi 
1160*53ee8cc1Swenshuai.xi     REG32                           Pkt_Info3;                          // 0xbf802d80   0x60
1161*53ee8cc1Swenshuai.xi     #define TSP_AFIFOC_STATUS                       0x0000000F
1162*53ee8cc1Swenshuai.xi     #define TSP_AFIFOC_STATUS_SHFT                  0
1163*53ee8cc1Swenshuai.xi     #define TSP_AFIFOD_STATUS                       0x000000F0
1164*53ee8cc1Swenshuai.xi     #define TSP_AFIFOD_STATUS_SHFT                  4
1165*53ee8cc1Swenshuai.xi 
1166*53ee8cc1Swenshuai.xi     REG32                           Bist_Fail;                          // 0xbf802d88   0x62
1167*53ee8cc1Swenshuai.xi     #define TSP_BIST_FAIL_STATUS_MASK               0x00FF0000
1168*53ee8cc1Swenshuai.xi     #define TSP_BIST_FAIL_STATUS_SRAM1P192x8_MASK   0x00070000
1169*53ee8cc1Swenshuai.xi     #define TSP_BIST_FAIL_STATUS_SRAM2P512x32w8     0x00080000
1170*53ee8cc1Swenshuai.xi     #define TSP_BIST_FAIL_STATUS_SRAM2P16x128_MASK  0x00600000
1171*53ee8cc1Swenshuai.xi     #define TSP_BIST_FAIL_STATUS_SRAM1P2048x32w8    0x00800000
1172*53ee8cc1Swenshuai.xi     #define TSP_BIST_FAIL_STATUS_SRAM1P1024x32w8    0x01000000
1173*53ee8cc1Swenshuai.xi     #define TSP_BIST_FAIL_STATUS_SRAM1P512x20       0x00200000
1174*53ee8cc1Swenshuai.xi 
1175*53ee8cc1Swenshuai.xi     REG32                           VQ2_Config;                         // 0xbf802d90   0x64
1176*53ee8cc1Swenshuai.xi     #define TSP_VQ2_SIZE_208BYTE_MASK               0x0000ffff
1177*53ee8cc1Swenshuai.xi     #define TSP_VQ2_SIZE_208BYTE_SHIFT              0
1178*53ee8cc1Swenshuai.xi     #define TSP_VQ2_WR_THRESHOLD_MASK               0x000F0000
1179*53ee8cc1Swenshuai.xi     #define TSP_VQ2_WR_THRESHOLD_SHIFT              16
1180*53ee8cc1Swenshuai.xi     #define TSP_VQ2_PRI_THRESHOLD_MASK              0x00F00000
1181*53ee8cc1Swenshuai.xi     #define TSP_VQ2_PRI_THRESHOLD_SHIFT             20
1182*53ee8cc1Swenshuai.xi     #define TSP_VQ2_FORCEFIRE_CNT_1K_MASK           0x0F000000
1183*53ee8cc1Swenshuai.xi     #define TSP_VQ2_FORCEFIRE_CNT_1K_SHIFT          24
1184*53ee8cc1Swenshuai.xi     #define TSP_VQ2_RESET                           0x10000000
1185*53ee8cc1Swenshuai.xi     #define TSP_VQ2_OVF_INT_EN                      0x40000000
1186*53ee8cc1Swenshuai.xi     #define TSP_VQ2_CLR_OVF_INT                     0x80000000
1187*53ee8cc1Swenshuai.xi 
1188*53ee8cc1Swenshuai.xi     REG32                           VQ_STATUS;                          // 0xbf802d98   0x66
1189*53ee8cc1Swenshuai.xi     #define TSP_VQ_STATUS_MASK                      0xFFFFFFFF
1190*53ee8cc1Swenshuai.xi     #define TSP_VQ_STATUS_SHIFT                     0
1191*53ee8cc1Swenshuai.xi     #define TSP_VQ0_STATUS_READ_EVER_FULL           0x00001000
1192*53ee8cc1Swenshuai.xi     #define TSP_VQ0_STATUS_READ_EVER_OVERFLOW       0x00002000
1193*53ee8cc1Swenshuai.xi     #define TSP_VQ0_STATUS_EMPTY                    0x00004000
1194*53ee8cc1Swenshuai.xi     #define TSP_VQ0_STATUS_READ_BUSY                0x00008000
1195*53ee8cc1Swenshuai.xi     #define TSP_VQ1_STATUS_READ_EVER_FULL           0x00010000
1196*53ee8cc1Swenshuai.xi     #define TSP_VQ1_STATUS_READ_EVER_OVERFLOW       0x00020000
1197*53ee8cc1Swenshuai.xi     #define TSP_VQ1_STATUS_EMPTY                    0x00040000
1198*53ee8cc1Swenshuai.xi     #define TSP_VQ1_STATUS_READ_BUSY                0x00080000
1199*53ee8cc1Swenshuai.xi     #define TSP_VQ2_STATUS_READ_EVER_FULL           0x00100000
1200*53ee8cc1Swenshuai.xi     #define TSP_VQ2_STATUS_READ_EVER_OVERFLOW       0x00200000
1201*53ee8cc1Swenshuai.xi     #define TSP_VQ2_STATUS_EMPTY                    0x00400000
1202*53ee8cc1Swenshuai.xi     #define TSP_VQ2_STATUS_READ_BUSY                0x00800000
1203*53ee8cc1Swenshuai.xi     #define TSP_VQ3_STATUS_READ_EVER_FULL           0x01000000
1204*53ee8cc1Swenshuai.xi     #define TSP_VQ3_STATUS_READ_EVER_OVERFLOW       0x02000000
1205*53ee8cc1Swenshuai.xi     #define TSP_VQ3_STATUS_EMPTY                    0x04000000
1206*53ee8cc1Swenshuai.xi     #define TSP_VQ3_STATUS_READ_BUSY                0x08000000
1207*53ee8cc1Swenshuai.xi     #define TSP_VQ0_STATUS_TX_OVERFLOW              0x10000000
1208*53ee8cc1Swenshuai.xi     #define TSP_VQ1_STATUS_TX_OVERFLOW              0x20000000
1209*53ee8cc1Swenshuai.xi     #define TSP_VQ2_STATUS_TX_OVERFLOW              0x40000000
1210*53ee8cc1Swenshuai.xi     #define TSP_VQ3_STATUS_TX_OVERFLOW              0x80000000
1211*53ee8cc1Swenshuai.xi 
1212*53ee8cc1Swenshuai.xi     REG32                           DM2MI_WAddr_Err;                    // 0xbf802da0   0x68  , DM2MI_WADDR_ERR0
1213*53ee8cc1Swenshuai.xi 
1214*53ee8cc1Swenshuai.xi     REG32                           ORZ_DMAW_WAddr_Err;                 // 0xbf802da8   0x6a  , ORZ_WADDR_ERR0
1215*53ee8cc1Swenshuai.xi 
1216*53ee8cc1Swenshuai.xi     REG16                           SwInt_Stat1_L;                      // 0xbf802dB0   0x6c
1217*53ee8cc1Swenshuai.xi     #define TSP_HWINT2_EN_MASK                      0x00FF
1218*53ee8cc1Swenshuai.xi     #define TSP_HWINT2_EN_SHIFT                     0
1219*53ee8cc1Swenshuai.xi     #define TSP_HWINT2_STATUS_MASK                  0xFF00
1220*53ee8cc1Swenshuai.xi     #define TSP_HWINT2_STATUS_SHIFT                 8
1221*53ee8cc1Swenshuai.xi     #define TSP_HWINT2_PCR1_UPDATE_END              0x0400
1222*53ee8cc1Swenshuai.xi     #define TSP_HWINT2_PCR0_UPDATE_END              0x0800
1223*53ee8cc1Swenshuai.xi     #define TSP_HWINT2_PVRCB_MEET_MID_TAIL          0x1000
1224*53ee8cc1Swenshuai.xi     #define TSP_HWINT2_ALL_DMA_WADDR_NOT_IN_PROCT_Z 0x2000
1225*53ee8cc1Swenshuai.xi     #define TSP_HWINT2_VQ0_VQ1_VQ2_VQ3_OVERFLOW     0x4000
1226*53ee8cc1Swenshuai.xi     #define TSP_HWINT2_PVR2_MID_TAIL_STATUS         0x8000
1227*53ee8cc1Swenshuai.xi 
1228*53ee8cc1Swenshuai.xi     #define TSP_HWINT_HW_PVRCB_MASK                 TSP_HWINT2_PVRCB_MEET_MID_TAIL
1229*53ee8cc1Swenshuai.xi     #define TSP_HWINT_HW_PVR2_MASK                  TSP_HWINT2_PVR2_MID_TAIL_STATUS
1230*53ee8cc1Swenshuai.xi     #define TSP_HWINT2_ALL                          (TSP_HWINT_HW_PVRCB_MASK|TSP_HWINT_HW_PVR2_MASK|TSP_HWINT2_PCR0_UPDATE_END|TSP_HWINT2_PCR1_UPDATE_END)
1231*53ee8cc1Swenshuai.xi 
1232*53ee8cc1Swenshuai.xi     #define TSP_SWINT1_L_SHFT                       16
1233*53ee8cc1Swenshuai.xi     #define TSP_SWINT1_L_MASK                       0xFFFF0000
1234*53ee8cc1Swenshuai.xi 
1235*53ee8cc1Swenshuai.xi     REG16                           SwInt_Stat1_M;
1236*53ee8cc1Swenshuai.xi     REG32                           SwInt_Stat1_H;                     // 0xbf802dB8   0x6e
1237*53ee8cc1Swenshuai.xi     #define TSP_SWINT1_H_SHFT       0
1238*53ee8cc1Swenshuai.xi     #define TSP_SWINT1_H_MASK       0x0000FFFF
1239*53ee8cc1Swenshuai.xi 
1240*53ee8cc1Swenshuai.xi     REG32                           TimeStamp_FileIn;                   // 0xbf802dC0   0x70
1241*53ee8cc1Swenshuai.xi 
1242*53ee8cc1Swenshuai.xi     REG32                           HW2_Config3;                        // 0xbf802dC0   0x72
1243*53ee8cc1Swenshuai.xi     #define TSP_WADDR_ERR_SRC_SEL_MASK              0x00000006
1244*53ee8cc1Swenshuai.xi     #define TSP_WADDR_ERR_SRC_SEL_SHIFT             1
1245*53ee8cc1Swenshuai.xi     #define TSP_WADDR_ERR_SRC_PVR                   0x00000000
1246*53ee8cc1Swenshuai.xi     #define TSP_WADDR_ERR_SRC_VQ                    0x00000002
1247*53ee8cc1Swenshuai.xi     #define TSP_WADDR_ERR_SRC_SEC_CB                0x00000004
1248*53ee8cc1Swenshuai.xi     #define TSP_RM_OVF_GLITCH                       0x00000008
1249*53ee8cc1Swenshuai.xi     #define TSP_FILEIN_RADDR_READ                   0x00000010
1250*53ee8cc1Swenshuai.xi     #define TSP_DUP_PKT_CNT_CLR                     0x00000040
1251*53ee8cc1Swenshuai.xi     #define TSP_REC_AT_SYNC_DIS                     0x00000100
1252*53ee8cc1Swenshuai.xi     #define TSP_PVR1_ALIGN_EN                       0x00000200
1253*53ee8cc1Swenshuai.xi     #define TSP_REC_FORCE_SYNC_EN                   0x00000400
1254*53ee8cc1Swenshuai.xi     #define TSP_RM_PKT_DEMUX_PIPE                   0x00000800
1255*53ee8cc1Swenshuai.xi     #define TSP_VQ_EN                               0x00004000
1256*53ee8cc1Swenshuai.xi     #define TSP_VQ2PINGPONG_EN                      0x00008000
1257*53ee8cc1Swenshuai.xi     #define TSP_PVR1_REC_ALL_EN                     0x00010000
1258*53ee8cc1Swenshuai.xi     #define TSP_PVR2_REC_ALL_EN                     0x00020000
1259*53ee8cc1Swenshuai.xi     #define TSP_DMA_FLUSH_EN                        0x00040000          //PVR1, PVR2 dma flush
1260*53ee8cc1Swenshuai.xi     #define TSP_REC_ALL_OLD                         0x00080000
1261*53ee8cc1Swenshuai.xi     #define TSP_RESET_AFIFO3                        0x00400000
1262*53ee8cc1Swenshuai.xi     #define TSP_RESET_AFIFO4                        0x00800000
1263*53ee8cc1Swenshuai.xi     #define TSP_TSIF0_CLK_STAMP_27_EN               0x01000000
1264*53ee8cc1Swenshuai.xi     #define TSP_PVR1_CLK_STAMP_27_EN                0x02000000
1265*53ee8cc1Swenshuai.xi     #define TSP_PVR2_CLK_STAMP_27_EN                0x04000000
1266*53ee8cc1Swenshuai.xi     #define TSP_REC_NULL                            0x40000000          // No used
1267*53ee8cc1Swenshuai.xi 
1268*53ee8cc1Swenshuai.xi     REG32                           VQ3_BASE;                           // 0xbf802dC0   0x74
1269*53ee8cc1Swenshuai.xi 
1270*53ee8cc1Swenshuai.xi     REG32                           VQ3_Config;                         // 0xbf802dC0   0x76
1271*53ee8cc1Swenshuai.xi 
1272*53ee8cc1Swenshuai.xi     REG32                           VQ_RX_Status;                       // 0xbf802dC0   0x78
1273*53ee8cc1Swenshuai.xi     #define VQ_RX_ARBITER_MODE_MASK                 0x0000000F
1274*53ee8cc1Swenshuai.xi     #define VQ_RX_ARBITER_MODE_SHIFT                0
1275*53ee8cc1Swenshuai.xi     #define VQ_RX0_PRI_MASK                         0x000000F0
1276*53ee8cc1Swenshuai.xi     #define VQ_RX0_PRI_SHIFT                        4
1277*53ee8cc1Swenshuai.xi     #define VQ_RX1_PRI_MASK                         0x00000F00
1278*53ee8cc1Swenshuai.xi     #define VQ_RX1_PRI_SHIFT                        8
1279*53ee8cc1Swenshuai.xi     #define VQ_RX2_PRI_MASK                         0x0000F000
1280*53ee8cc1Swenshuai.xi     #define VQ_RX2_PRI_SHIFT                        12
1281*53ee8cc1Swenshuai.xi 
1282*53ee8cc1Swenshuai.xi     REG32                           _xbf802dC0;                         // 0xbf802dC0   0x7a
1283*53ee8cc1Swenshuai.xi 
1284*53ee8cc1Swenshuai.xi     REG32                           MCU_Data1;                          // 0xbf802dC0   0x7c
1285*53ee8cc1Swenshuai.xi } REG_Ctrl;
1286*53ee8cc1Swenshuai.xi 
1287*53ee8cc1Swenshuai.xi // TSP part 2
1288*53ee8cc1Swenshuai.xi typedef struct _REG_Ctrl2
1289*53ee8cc1Swenshuai.xi {
1290*53ee8cc1Swenshuai.xi     REG16                           Qmem_Dbg;                          // 0xbf803ac0   0x70
1291*53ee8cc1Swenshuai.xi     #define QMEM_DBG_MODE                           0x0001
1292*53ee8cc1Swenshuai.xi     #define QMEM_DBG_TSP_SEL_SRAM                   0x0002
1293*53ee8cc1Swenshuai.xi     REG16                           Qmem_Dbg_RAddr;                    // 0xbf803ac4   0x71
1294*53ee8cc1Swenshuai.xi     #define QMEM_DBG_RADDR_MASK                     0xFFFF
1295*53ee8cc1Swenshuai.xi     REG32                           Qmem_Dbg_RD ;                      // 0xbf803ac8~0xbf803acc   0x72~0x73
1296*53ee8cc1Swenshuai.xi 
1297*53ee8cc1Swenshuai.xi } REG_Ctrl2;
1298*53ee8cc1Swenshuai.xi 
1299*53ee8cc1Swenshuai.xi typedef struct _REG_Ctrl3
1300*53ee8cc1Swenshuai.xi {
1301*53ee8cc1Swenshuai.xi     REG16                           PktConverterCfg[3];         // 0x10~12
1302*53ee8cc1Swenshuai.xi     #define INPUT_MODE_MASK                                     0x0007
1303*53ee8cc1Swenshuai.xi     #define INPUT_MODE_SHIF                                     0
1304*53ee8cc1Swenshuai.xi     #define FORCE_SYNC_0X47                                     0x0008
1305*53ee8cc1Swenshuai.xi     #define BYPASS_PKT_CONVERTER                                0x0010
1306*53ee8cc1Swenshuai.xi     #define BYPASS_SRC_ID_PARSER                                0x0020
1307*53ee8cc1Swenshuai.xi 
1308*53ee8cc1Swenshuai.xi     REG16                           _reserved_TSP3_13;          // 0x13
1309*53ee8cc1Swenshuai.xi 
1310*53ee8cc1Swenshuai.xi     REG16                           HW3_Cfg0;                   // 0x14
1311*53ee8cc1Swenshuai.xi     #define PREVENT_SRAM_COLLISION                              0x0001
1312*53ee8cc1Swenshuai.xi     #define PUSI_THREE_BYTE_MODE                                0x0002
1313*53ee8cc1Swenshuai.xi     #define PCR0_SRC_MASK                                       0x0F00
1314*53ee8cc1Swenshuai.xi     #define PCR0_SRC_SHIFT                                      8
1315*53ee8cc1Swenshuai.xi 
1316*53ee8cc1Swenshuai.xi     REG16                           HW3_Cfg1;                   // 0x15
1317*53ee8cc1Swenshuai.xi     #define MASK_SCR_VID_EN                                     0x0001
1318*53ee8cc1Swenshuai.xi     #define MASK_SCR_VID_3D_EN                                  0x0002
1319*53ee8cc1Swenshuai.xi     #define MASK_SCR_AUD_EN                                     0x0004
1320*53ee8cc1Swenshuai.xi     #define MASK_SCR_AUD_B_EN                                   0x0008
1321*53ee8cc1Swenshuai.xi     #define MASK_SCR_PVR1_EN                                    0x0040
1322*53ee8cc1Swenshuai.xi     #define MASK_SCR_PVR2_EN                                    0x0080
1323*53ee8cc1Swenshuai.xi     #define RST_CC_MODE                                         0x0100
1324*53ee8cc1Swenshuai.xi     #define DIS_CNTR_INC_BY_PL                                  0x0200
1325*53ee8cc1Swenshuai.xi     #define BYPASS_TIMESTAMP_SEL0                               0x0400
1326*53ee8cc1Swenshuai.xi     #define BYPASS_TIMESTAMP_SEL1                               0x0800
1327*53ee8cc1Swenshuai.xi 
1328*53ee8cc1Swenshuai.xi     REG32                          _reserved_TSP3_16_19[2];     // 0x16~17, 0x18~19
1329*53ee8cc1Swenshuai.xi 
1330*53ee8cc1Swenshuai.xi     REG32                          PIDFLR_PCR[1];               // 0x1a-0x1b
1331*53ee8cc1Swenshuai.xi     #define TSP_PIDFLT_PCR_PID_MASK                             0x00001fff
1332*53ee8cc1Swenshuai.xi     #define TSP_PIDFLT_PCR_EN                                   0x00008000
1333*53ee8cc1Swenshuai.xi     #define TSP_PIDFLT_PCR_SOURCE_MASK                          0x000F0000
1334*53ee8cc1Swenshuai.xi     #define TSP_PIDFLT_PCR_SOURCE_SHIFT                         16
1335*53ee8cc1Swenshuai.xi 
1336*53ee8cc1Swenshuai.xi     REG32                          _reserved_TSP3_1c_1f[2];     // 0x1c~0x1f
1337*53ee8cc1Swenshuai.xi 
1338*53ee8cc1Swenshuai.xi     REG16                          HW_Semaphore0;               // 0x20
1339*53ee8cc1Swenshuai.xi     REG16                          HW_Semaphore1;               // 0x21
1340*53ee8cc1Swenshuai.xi     REG16                          HW_Semaphore2;               // 0x22
1341*53ee8cc1Swenshuai.xi 
1342*53ee8cc1Swenshuai.xi     REG16                          HWeco0;                      // 0x23
1343*53ee8cc1Swenshuai.xi     #define                        HW_ECO_RVU                   0x0001
1344*53ee8cc1Swenshuai.xi     #define                        HW_ECO_NEW_SYNCP_IN_ECO      0x0002
1345*53ee8cc1Swenshuai.xi     #define                        HW_ECO_BURST_NEW_MODE0       0x0004
1346*53ee8cc1Swenshuai.xi     #define                        HW_ECO_BURST_NEW_MODE1       0x0008
1347*53ee8cc1Swenshuai.xi     #define                        HW_ECO_FIX_FIQ_RESDEADLOCK   0x0010
1348*53ee8cc1Swenshuai.xi     #define                        HW_ECO_FIX_SEC_NULLPKT_ERR   0x0020
1349*53ee8cc1Swenshuai.xi 
1350*53ee8cc1Swenshuai.xi     REG16                          HWeco1;                      // 0x24
1351*53ee8cc1Swenshuai.xi     REG16                          ModeCfg;                     // 0x25
1352*53ee8cc1Swenshuai.xi     #define TSP_3WIRE_SERIAL_MODE_MASK                          0x001F           //set 1 to enable 3 wire serial in mode: Combine valid and clk.Valid always 1 and gated clk when no data in
1353*53ee8cc1Swenshuai.xi     #define TSP_3WIRE_SERIAL_TSIF0                              0x0001
1354*53ee8cc1Swenshuai.xi     #define TSP_3WIRE_SERIAL_TSIF1                              0x0002
1355*53ee8cc1Swenshuai.xi     #define TSP_3WIRE_SERIAL_TSIFFI                             0x0010
1356*53ee8cc1Swenshuai.xi     #define TSP_NEW_OVERFLOW_MODE                               0x0100            // 1: new dma_overflow 0:old dma_overflow
1357*53ee8cc1Swenshuai.xi     #define TSP_NON_188_CNT_MODE                                0x0200
1358*53ee8cc1Swenshuai.xi 
1359*53ee8cc1Swenshuai.xi     REG16                          _reserved_TSP3_26_27[2];      // 0x26~27
1360*53ee8cc1Swenshuai.xi 
1361*53ee8cc1Swenshuai.xi     REG16                          SyncByte_tsif0[4];           // 0x28~2b
1362*53ee8cc1Swenshuai.xi     #define TSP_SYNC_BYTE0_MAASK0                               0x00FF
1363*53ee8cc1Swenshuai.xi     #define TSP_SYNC_BYTE0_MAASK1                               0xFF00
1364*53ee8cc1Swenshuai.xi     REG16                          SourceId_tsif0[2];           // 0x2c~2d
1365*53ee8cc1Swenshuai.xi     #define TSP_SRCID_MASK0                                     0x000F
1366*53ee8cc1Swenshuai.xi     #define TSP_SRCID_MASK1                                     0x00F0
1367*53ee8cc1Swenshuai.xi     #define TSP_SRCID_MASK2                                     0x0F00
1368*53ee8cc1Swenshuai.xi     #define TSP_SRCID_MASK3                                     0xF000
1369*53ee8cc1Swenshuai.xi     REG16                          SyncByte_file[4];
1370*53ee8cc1Swenshuai.xi     REG16                          SourceId_file[2];
1371*53ee8cc1Swenshuai.xi     REG16                          SyncByte_tsif1[4];
1372*53ee8cc1Swenshuai.xi     REG16                          SourceId_tsif1[2];
1373*53ee8cc1Swenshuai.xi } REG_Ctrl3;
1374*53ee8cc1Swenshuai.xi 
1375*53ee8cc1Swenshuai.xi // TSP part 4
1376*53ee8cc1Swenshuai.xi typedef struct _REG_Ctrl4
1377*53ee8cc1Swenshuai.xi {
1378*53ee8cc1Swenshuai.xi     REG16                               Overflow0;                          // 0xbf803900   0x00
1379*53ee8cc1Swenshuai.xi     #define PID_HIT_0_EVER_OVERFLOW                 0x0001
1380*53ee8cc1Swenshuai.xi     #define PID_HIT_1_EVER_OVERFLOW                 0x0002
1381*53ee8cc1Swenshuai.xi     #define PID_HIT_FILE_EVER_OVERFLOW              0x0008
1382*53ee8cc1Swenshuai.xi     #define AFIFO_EVER_OVERFLOW                     0x0020
1383*53ee8cc1Swenshuai.xi     #define AFIFOB_EVER_OVERFLOW                    0x0040
1384*53ee8cc1Swenshuai.xi     #define VFIFO_EVER_OVERFLOW                     0x0080
1385*53ee8cc1Swenshuai.xi     #define V3DFIFO_EVER_OVERFLOW                   0x0100
1386*53ee8cc1Swenshuai.xi     #define PVR_1_EVER_OVERFLOW                     0x0200
1387*53ee8cc1Swenshuai.xi     #define PVR_2_EVER_OVERFLOW                     0x0400
1388*53ee8cc1Swenshuai.xi     #define VQ_TX0_EVER_OVERFLOW                    0x1000
1389*53ee8cc1Swenshuai.xi     #define VQ_TX1_EVER_OVERFLOW                    0x2000
1390*53ee8cc1Swenshuai.xi     #define VQ_TX2_EVER_OVERFLOW                    0x4000
1391*53ee8cc1Swenshuai.xi 
1392*53ee8cc1Swenshuai.xi     REG16                               Overflow1;                          // 0xbf803904   0x01
1393*53ee8cc1Swenshuai.xi     #define SEC_DMAW_OVERFLOW                       0x0004
1394*53ee8cc1Swenshuai.xi     #define SEC_SINGLE_EVER_OVERFLOW                0x0002
1395*53ee8cc1Swenshuai.xi     #define SEC_PINGPONG_EVER_OVERFLOW              0x0001
1396*53ee8cc1Swenshuai.xi 
1397*53ee8cc1Swenshuai.xi     REG16                               FifoStatus;                         // 0xbf803908   0x02
1398*53ee8cc1Swenshuai.xi     #define AFIFO_STATUS_MASK                       0x000F
1399*53ee8cc1Swenshuai.xi     #define AFIFO_STATUS_SHFT                       0
1400*53ee8cc1Swenshuai.xi     #define AFIFOB_STATUS_MASK                      0x00F0
1401*53ee8cc1Swenshuai.xi     #define AFIFOB_STATUS_SHFT                      4
1402*53ee8cc1Swenshuai.xi     #define VFIFO_STATUS_MASK                       0x0F00
1403*53ee8cc1Swenshuai.xi     #define VFIFO_STATUS_SHFT                       8
1404*53ee8cc1Swenshuai.xi     #define V3DFIFO_STATUS_MASK                     0xF000
1405*53ee8cc1Swenshuai.xi     #define V3DFIFO_STATUS_SHFT                     12
1406*53ee8cc1Swenshuai.xi 
1407*53ee8cc1Swenshuai.xi     REG16                               PvrFifoStatus;                       // 0xbf80390C   0x03
1408*53ee8cc1Swenshuai.xi     #define PVR_1_STATUS_MASK                       0x000F
1409*53ee8cc1Swenshuai.xi     #define PVR_1_STATUS_SHFT                       0
1410*53ee8cc1Swenshuai.xi     #define PVR_2_STATUS_MASK                       0x00F0
1411*53ee8cc1Swenshuai.xi     #define PVR_2_STATUS_SHFT                       4
1412*53ee8cc1Swenshuai.xi 
1413*53ee8cc1Swenshuai.xi     REG16                               VQTxFifoStatus;                      // 0xbf803910   0x04
1414*53ee8cc1Swenshuai.xi     #define VQ_TX0_STATUS_MASK                      0x000F
1415*53ee8cc1Swenshuai.xi     #define VQ_TX0_STATUS_SHFT                      0
1416*53ee8cc1Swenshuai.xi     #define VQ_TX1_STATUS_MASK                      0x0F00
1417*53ee8cc1Swenshuai.xi     #define VQ_TX1_STATUS_SHFT                      8
1418*53ee8cc1Swenshuai.xi 
1419*53ee8cc1Swenshuai.xi     REG16                               PktCnt_video;                        // 0x05
1420*53ee8cc1Swenshuai.xi     REG16                               PktCnt_v3d;                          // 0x06
1421*53ee8cc1Swenshuai.xi     REG16                               PktCnt_aud;                          // 0x07
1422*53ee8cc1Swenshuai.xi     REG16                               PktCnt_audB;                         // 0x08
1423*53ee8cc1Swenshuai.xi     REG16                               PktCnt_audC;                         // 0x09
1424*53ee8cc1Swenshuai.xi     REG16                               PktCnt_audD;                         // 0x0a
1425*53ee8cc1Swenshuai.xi     REG16                               Reserved[0xd-0xb];
1426*53ee8cc1Swenshuai.xi     REG16                               LockedPktCnt;                        // 0x0d
1427*53ee8cc1Swenshuai.xi     REG16                               AVPktCnt;                            // 0x0e
1428*53ee8cc1Swenshuai.xi 
1429*53ee8cc1Swenshuai.xi     REG16                               PktErrStatus;                        // 0xbf80392C   0x0x0f
1430*53ee8cc1Swenshuai.xi     REG16                               PidMatched0;                         // 0xbf803930   0x10
1431*53ee8cc1Swenshuai.xi     REG16                               PidMatched1;                         // 0xbf803934   0x11
1432*53ee8cc1Swenshuai.xi     REG16                               PidMatched2;                         // 0xbf803938   0x12
1433*53ee8cc1Swenshuai.xi     REG16                               PidMatched3;                         // 0xbf80393C   0x13
1434*53ee8cc1Swenshuai.xi     REG16                               dummy[2];                            // 0x14~0x15
1435*53ee8cc1Swenshuai.xi     REG16                               Sram2p_collision;                    // 0x16
1436*53ee8cc1Swenshuai.xi     #define SRAM_COLLISION_BY_SW                0x1000
1437*53ee8cc1Swenshuai.xi     #define SRAM_COLLISION_BY_HW                0x2000
1438*53ee8cc1Swenshuai.xi     #define SECFLT_SRAM1_EVER_COLLISION         0x4000
1439*53ee8cc1Swenshuai.xi     #define SECFLT_SRAM0_EVER_COLLISION         0x8000
1440*53ee8cc1Swenshuai.xi     REG16                               AVPktCnt1;                          //for vid_3d/audb                0x17
1441*53ee8cc1Swenshuai.xi     REG16                               ErrPktCnt;                          //use reg_err_pkt_src_sel      0x18
1442*53ee8cc1Swenshuai.xi     REG16                               AVPktCnt2;                          //for audc/audd                  0x19
1443*53ee8cc1Swenshuai.xi 
1444*53ee8cc1Swenshuai.xi     REG16                               EverUnlockStatus;                   // 0x1a
1445*53ee8cc1Swenshuai.xi     #define EVER_UNLOCK_TS0                     0x0001      // set 1 mean there are unlock pkts
1446*53ee8cc1Swenshuai.xi     #define EVER_UNLOCK_TS1                     0x0002
1447*53ee8cc1Swenshuai.xi     #define EVER_UNLOCK_TS2                     0x0004
1448*53ee8cc1Swenshuai.xi 
1449*53ee8cc1Swenshuai.xi     REG16                               Overflow2;                          // 0xbf803904   0x1b
1450*53ee8cc1Swenshuai.xi     #define PC_EVER_OVERFLOW_0                  0x0001
1451*53ee8cc1Swenshuai.xi     #define PC_EVER_OVERFLOW_FILE               0x0002
1452*53ee8cc1Swenshuai.xi     #define PC_EVER_OVERFLOW_1                  0x0004
1453*53ee8cc1Swenshuai.xi     #define PC_EVER_OVERFLOW_2                  0x0008
1454*53ee8cc1Swenshuai.xi 
1455*53ee8cc1Swenshuai.xi     REG16                               dummy1[0x70-0x1c];
1456*53ee8cc1Swenshuai.xi     REG16                               ErrPktSrcSel;                       //select source of ErrPktCnt  0x70
1457*53ee8cc1Swenshuai.xi     #define ERR_PKT_SRC_TS0                     0x0001
1458*53ee8cc1Swenshuai.xi     #define ERR_PKT_SRC_FILE                    0x0002
1459*53ee8cc1Swenshuai.xi     #define ERR_PKT_SRC_TS1                     0x0003
1460*53ee8cc1Swenshuai.xi     #define ERR_PKT_SRC_TS2                     0x0004
1461*53ee8cc1Swenshuai.xi     #define ERR_PKT_SRC_MMFI0                   0x0005
1462*53ee8cc1Swenshuai.xi     #define ERR_PKT_SRC_MMFI1                   0x0006
1463*53ee8cc1Swenshuai.xi 
1464*53ee8cc1Swenshuai.xi     REG16                               ErrPktCntLoad;                      // 0x71
1465*53ee8cc1Swenshuai.xi     #define ERR_PKT_CNT_0_LOAD                  0x0001
1466*53ee8cc1Swenshuai.xi     #define ERR_PKT_CNT_FILE_LOAD               0x0002
1467*53ee8cc1Swenshuai.xi     #define ERR_PKT_CNT_1_LOAD                  0x0004
1468*53ee8cc1Swenshuai.xi     #define ERR_PKT_CNT_2_LOAD                  0x0008
1469*53ee8cc1Swenshuai.xi     #define ERR_PKT_CNT_MMFI0_LOAD              0x0010
1470*53ee8cc1Swenshuai.xi     #define ERR_PKT_CNT_MMFI1_LOAD              0x0020
1471*53ee8cc1Swenshuai.xi 
1472*53ee8cc1Swenshuai.xi     REG16                               ErrPktCntClr;                       // 0x72
1473*53ee8cc1Swenshuai.xi     #define ERR_PKT_CNT_0_CLR                   0x0001
1474*53ee8cc1Swenshuai.xi     #define ERR_PKT_CNT_FILE_CLR                0x0002
1475*53ee8cc1Swenshuai.xi     #define ERR_PKT_CNT_1_CLR                   0x0004
1476*53ee8cc1Swenshuai.xi     #define ERR_PKT_CNT_2_CLR                   0x0008
1477*53ee8cc1Swenshuai.xi     #define ERR_PKT_CNT_MMFI0_CLR               0x0010
1478*53ee8cc1Swenshuai.xi     #define ERR_PKT_CNT_MMFI1_CLR               0x0020
1479*53ee8cc1Swenshuai.xi 
1480*53ee8cc1Swenshuai.xi     REG16                               dummy2[0x78-0x73];                    // 0x73~0x77
1481*53ee8cc1Swenshuai.xi     REG16                               AudCSrc;        // ??                                   //0x78
1482*53ee8cc1Swenshuai.xi     REG16                               dummy3;
1483*53ee8cc1Swenshuai.xi     REG16                               PktCntLoad;                             // 0x7a
1484*53ee8cc1Swenshuai.xi     #define LOCK_PKT_CNT_0_LOAD                 0x0001
1485*53ee8cc1Swenshuai.xi     #define LOCK_PKT_CNT_1_LOAD                 0x0002
1486*53ee8cc1Swenshuai.xi     #define LOCK_PKT_CNT_2_LOAD                 0x0004
1487*53ee8cc1Swenshuai.xi     #define LOCK_PKT_CNT_CB_LOAD                0x0008
1488*53ee8cc1Swenshuai.xi     #define LOCK_PKT_CNT_FI_LOAD                0x0010
1489*53ee8cc1Swenshuai.xi 
1490*53ee8cc1Swenshuai.xi     #define V_PKT_CNT_LOAD                      0x0100
1491*53ee8cc1Swenshuai.xi     #define V3D_PKT_CNT_LOAD                    0x0200
1492*53ee8cc1Swenshuai.xi     #define AUD_PKT_CNT_LOAD                    0x0400
1493*53ee8cc1Swenshuai.xi     #define AUDB_PKT_CNT_LOAD                   0x0800
1494*53ee8cc1Swenshuai.xi     #define AUDC_PKT_CNT_LOAD                   0x1000
1495*53ee8cc1Swenshuai.xi     #define AUDD_PKT_CNT_LOAD                   0x2000
1496*53ee8cc1Swenshuai.xi 
1497*53ee8cc1Swenshuai.xi     REG16                               PktCntLoad1;                             // 0x7b
1498*53ee8cc1Swenshuai.xi     #define V_DROP_PKT_CNT_LOAD                 0x0001
1499*53ee8cc1Swenshuai.xi     #define V3D_DROP_PKT_CNT_LOAD               0x0002
1500*53ee8cc1Swenshuai.xi     #define AUD_DROP_PKT_CNT_LOAD               0x0004
1501*53ee8cc1Swenshuai.xi     #define AUDB_DROP_PKT_CNT_LOAD              0x0008
1502*53ee8cc1Swenshuai.xi     #define AUDC_DROP_PKT_CNT_LOAD              0x0010
1503*53ee8cc1Swenshuai.xi     #define AUDD_DROP_PKT_CNT_LOAD              0x0020
1504*53ee8cc1Swenshuai.xi 
1505*53ee8cc1Swenshuai.xi     #define V_DIS_CNTR_PKT_CNT_LOAD             0x0100
1506*53ee8cc1Swenshuai.xi     #define V3D_DIS_CNTR_PKT_CNT_LOAD           0x0200
1507*53ee8cc1Swenshuai.xi     #define AUD_DIS_CNTR_PKT_CNT_LOAD           0x0400
1508*53ee8cc1Swenshuai.xi     #define AUDB_DIS_CNTR_PKT_CNT_LOAD          0x0800
1509*53ee8cc1Swenshuai.xi     #define AUDC_DIS_CNTR_PKT_CNT_LOAD          0x1000
1510*53ee8cc1Swenshuai.xi     #define AUDD_DIS_CNTR_PKT_CNT_LOAD          0x2000
1511*53ee8cc1Swenshuai.xi 
1512*53ee8cc1Swenshuai.xi 
1513*53ee8cc1Swenshuai.xi     REG16                               PktCntClr;                             // 0x7c
1514*53ee8cc1Swenshuai.xi     #define LOCK_PKT_CNT_0_CLR                  0x0001
1515*53ee8cc1Swenshuai.xi     #define LOCK_PKT_CNT_1_CLR                  0x0002
1516*53ee8cc1Swenshuai.xi     #define LOCK_PKT_CNT_2_CLR                  0x0004
1517*53ee8cc1Swenshuai.xi     #define LOCK_PKT_CNT_CB_CLR                 0x0008
1518*53ee8cc1Swenshuai.xi     #define LOCK_PKT_CNT_FI_CLR                 0x0010
1519*53ee8cc1Swenshuai.xi 
1520*53ee8cc1Swenshuai.xi     #define V_PKT_CNT_CLR                       0x0100
1521*53ee8cc1Swenshuai.xi     #define V3D_PKT_CNT_CLR        0x0200
1522*53ee8cc1Swenshuai.xi     #define AUD_PKT_CNT_CLR                     0x0400
1523*53ee8cc1Swenshuai.xi     #define AUDB_PKT_CNT_CLR                    0x0800
1524*53ee8cc1Swenshuai.xi 
1525*53ee8cc1Swenshuai.xi     REG16                               PktCntClr1;                             // 0x7d
1526*53ee8cc1Swenshuai.xi     #define V_DROP_PKT_CNT_CLR                  0x0001
1527*53ee8cc1Swenshuai.xi     #define V3D_DROP_PKT_CNT_CLR        0x0002
1528*53ee8cc1Swenshuai.xi     #define AUD_DROP_PKT_CNT_CLR                0x0004
1529*53ee8cc1Swenshuai.xi     #define AUDB_DROP_PKT_CNT_CLR               0x0008
1530*53ee8cc1Swenshuai.xi 
1531*53ee8cc1Swenshuai.xi     #define V_DIS_CNTR_PKT_CNT_CLR              0x0100
1532*53ee8cc1Swenshuai.xi     #define V3D_DIS_CNTR_PKT_CNT_CLR        0x0200
1533*53ee8cc1Swenshuai.xi     #define AUD_DIS_CNTR_PKT_CNT_CLR            0x0400
1534*53ee8cc1Swenshuai.xi     #define AUDB_DIS_CNTR_PKT_CNT_CLR           0x0800
1535*53ee8cc1Swenshuai.xi 
1536*53ee8cc1Swenshuai.xi     REG16                               PktCntSrc;                             // 0x7e
1537*53ee8cc1Swenshuai.xi     #define VID_SRC_MASK                        0x0007
1538*53ee8cc1Swenshuai.xi     #define VID_SRC_SHIFT                       0
1539*53ee8cc1Swenshuai.xi     #define V3D_SRC_MASK    0x0031
1540*53ee8cc1Swenshuai.xi     #define V3D_SRC_SHIFT   3
1541*53ee8cc1Swenshuai.xi     #define AUD_SRC_MASK                        0x01C0
1542*53ee8cc1Swenshuai.xi     #define AUD_SRC_SHIFT                       6
1543*53ee8cc1Swenshuai.xi     #define AUDB_SRC_MASK                       0x0E00
1544*53ee8cc1Swenshuai.xi     #define AUDB_SRC_SHIFT                      9
1545*53ee8cc1Swenshuai.xi 
1546*53ee8cc1Swenshuai.xi     REG16                               DebugSrcSel;                            // 0x7f
1547*53ee8cc1Swenshuai.xi     #define SRC_SEL_MASK                        0x0001
1548*53ee8cc1Swenshuai.xi     #define DROP_PKT_MODE_MASK                  0x0002
1549*53ee8cc1Swenshuai.xi     #define PIDFLT_SRC_SEL_MASK                 0x001C
1550*53ee8cc1Swenshuai.xi     #define TSIF_SRC_SEL_MASK                   0x00E0
1551*53ee8cc1Swenshuai.xi     #define TSIF_SRC_SEL_SHIFT                  5
1552*53ee8cc1Swenshuai.xi     #define TSIF_SRC_SEL_TSIF0                  0x000
1553*53ee8cc1Swenshuai.xi     #define TSIF_SRC_SEL_TSIF1                  0x001
1554*53ee8cc1Swenshuai.xi     #define TSIF_SRC_SEL_TSIF_FI                0x004
1555*53ee8cc1Swenshuai.xi 
1556*53ee8cc1Swenshuai.xi     #define AV_PKT_SRC_SEL                      0x0100
1557*53ee8cc1Swenshuai.xi     #define AV_PKT_SRC_SEL_MASK                 0x0100
1558*53ee8cc1Swenshuai.xi     #define AV_PKT_SRC_SEL_SHIFT                8
1559*53ee8cc1Swenshuai.xi     #define AV_PKT_SRC_VID                      0x0
1560*53ee8cc1Swenshuai.xi     #define AV_PKT_SRC_AUD                      0x1
1561*53ee8cc1Swenshuai.xi     #define AV_PKT_SRC_V3D          0x0
1562*53ee8cc1Swenshuai.xi     #define AV_PKT_SRC_AUDB                     0x1
1563*53ee8cc1Swenshuai.xi     #define CLR_SRC_MASK                        0x0E00
1564*53ee8cc1Swenshuai.xi 
1565*53ee8cc1Swenshuai.xi }REG_Ctrl4;
1566*53ee8cc1Swenshuai.xi 
1567*53ee8cc1Swenshuai.xi // TSP part 4
1568*53ee8cc1Swenshuai.xi typedef struct _REG_Ctrl5
1569*53ee8cc1Swenshuai.xi {
1570*53ee8cc1Swenshuai.xi     REG16                               ATS_Adj_Period;                             // 0x00
1571*53ee8cc1Swenshuai.xi     #define TSP_ATS_ADJ_PERIOD_MASK                     0x000F
1572*53ee8cc1Swenshuai.xi 
1573*53ee8cc1Swenshuai.xi     REG16                               AtsCfg;                                     // 0x01
1574*53ee8cc1Swenshuai.xi     #define TSP_ATS_MODE_FI_ENABLE                      0x0001
1575*53ee8cc1Swenshuai.xi     #define TSP_ATS_OFFSET_FI_ENABLE                    0x0002
1576*53ee8cc1Swenshuai.xi     #define TSP_ATS_OFFSET_FI_SHIFT                     8
1577*53ee8cc1Swenshuai.xi     #define TSP_ATS_OFFSET_FI_MASK                      0x0F00
1578*53ee8cc1Swenshuai.xi     #define TSP_ATS_OFFSET_FI_POSITIVE                  0x0000
1579*53ee8cc1Swenshuai.xi     #define TSP_ATS_OFFSET_FI_NEGATIVE                  0x1000
1580*53ee8cc1Swenshuai.xi 
1581*53ee8cc1Swenshuai.xi     REG16                               Ts_If_Fi_Cfg;                               // 0x02
1582*53ee8cc1Swenshuai.xi     #define TSP_FIIF_EN                                 0x0001
1583*53ee8cc1Swenshuai.xi     #define TSP_FIIF_DATA_SWAP                          0x0002
1584*53ee8cc1Swenshuai.xi     #define TSP_FIIF_P_SEL                              0x0004
1585*53ee8cc1Swenshuai.xi     #define TSP_FIIF_EXT_SYNC_SEL                       0x0008
1586*53ee8cc1Swenshuai.xi     #define TSP_FIIF_MUX_MASK                           0x0010
1587*53ee8cc1Swenshuai.xi         #define TSP_FIIF_MUX_FILE_PATH                  0x0000
1588*53ee8cc1Swenshuai.xi         #define TSP_FIIF_MUX_LIVE_PATH                  0x0010
1589*53ee8cc1Swenshuai.xi     #define TSP_PKT_CHK_SIZE_FI_MASK                    0xFF00
1590*53ee8cc1Swenshuai.xi     #define TSP_PKT_CHK_SIZE_FI_SHIFT                   8
1591*53ee8cc1Swenshuai.xi 
1592*53ee8cc1Swenshuai.xi     REG16                               S2PCfg;                                     //  0x03
1593*53ee8cc1Swenshuai.xi     #define TSP_MATCH_PID_SEL_MASK                      0x000F                      // 0: #0~#31, 1: #32~#63, 2: #64~#95, 3: #96~#127
1594*53ee8cc1Swenshuai.xi     #define TSP_MATCH_PID_SEL_SHIFT                     0
1595*53ee8cc1Swenshuai.xi 
1596*53ee8cc1Swenshuai.xi     REG16                               S2PCfg1;                                    //  0x04
1597*53ee8cc1Swenshuai.xi     #define TSP_S2PCFG1_TSIF_0_TSO_BLK_EN               0x0100
1598*53ee8cc1Swenshuai.xi     #define TSP_S2PCFG1_TSIF_1_TSO_BLK_EN               0x0200
1599*53ee8cc1Swenshuai.xi     #define TSP_S2PCFG1_TSIF_FI_TSO_BLK_EN              0x0800
1600*53ee8cc1Swenshuai.xi     #define TSP_S2PCFG1_WB_FSM_RST                      0x1000
1601*53ee8cc1Swenshuai.xi     #define TSP_S2PCFG1_WB_FSM_RST_FINISHED             0x2000
1602*53ee8cc1Swenshuai.xi 
1603*53ee8cc1Swenshuai.xi     REG16                               TSP5_Reserve_5;                           // 0x05
1604*53ee8cc1Swenshuai.xi     REG16                               TSP5_Eco;                                 // 0x06
1605*53ee8cc1Swenshuai.xi     #define TSP_192_TIMER_0_EN                          0x0001
1606*53ee8cc1Swenshuai.xi     REG16                               TSP5_Reserve[9];                           // 0x07~0x0F
1607*53ee8cc1Swenshuai.xi 
1608*53ee8cc1Swenshuai.xi 
1609*53ee8cc1Swenshuai.xi     REG16                               TS_MUX_CFG0;                                // 0x10
1610*53ee8cc1Swenshuai.xi     #define TS_MUX_CFG_TS0_MUX_MASK                     0x000F
1611*53ee8cc1Swenshuai.xi     #define TS_MUX_CFG_TS0_MUX_SHIFT                    0
1612*53ee8cc1Swenshuai.xi     #define TS_MUX_CFG_TS1_MUX_MASK                     0x00F0
1613*53ee8cc1Swenshuai.xi     #define TS_MUX_CFG_TS1_MUX_SHIFT                    4
1614*53ee8cc1Swenshuai.xi     #define TS_MUX_CFG_TSFI_MUX_MASK                    0xF000
1615*53ee8cc1Swenshuai.xi     #define TS_MUX_CFG_TSFI_MUX_SHIFT                   12
1616*53ee8cc1Swenshuai.xi         #define TS_MUX_CFG_TS_MUX_TS0                   0x0000
1617*53ee8cc1Swenshuai.xi         #define TS_MUX_CFG_TS_MUX_TS1                   0x0001
1618*53ee8cc1Swenshuai.xi         #define TS_MUX_CFG_TS_MUX_TS2                   0x0002
1619*53ee8cc1Swenshuai.xi         #define TS_MUX_CFG_TS_MUX_TSO                   0x0006
1620*53ee8cc1Swenshuai.xi         #define TS_MUX_CFG_TS_MUX_DMD                   0x0007
1621*53ee8cc1Swenshuai.xi     REG16                               TS_MUX_CFG1;                                // 0x11
1622*53ee8cc1Swenshuai.xi 
1623*53ee8cc1Swenshuai.xi     REG16                               TS_MUX_CFG_S2P;                             // 0x12
1624*53ee8cc1Swenshuai.xi     #define TS_MUX_CFG_S2P0_MUX_MASK                    0x000F
1625*53ee8cc1Swenshuai.xi         #define TS_MUX_CFG_S2P_MUX_TS0                  0x0000
1626*53ee8cc1Swenshuai.xi         #define TS_MUX_CFG_S2P_MUX_TS1                  0x0001
1627*53ee8cc1Swenshuai.xi         #define TS_MUX_CFG_S2P_MUX_TS2                  0x0002
1628*53ee8cc1Swenshuai.xi 
1629*53ee8cc1Swenshuai.xi     REG16                               TS_MUX_CFG0_TSOIN;                          // 0x13
1630*53ee8cc1Swenshuai.xi         #define TS_MUX_CFG_TSOIN0_MUX_MASK              0x000F
1631*53ee8cc1Swenshuai.xi         #define TS_MUX_CFG_TSOIN0_MUX_SHIFT             0
1632*53ee8cc1Swenshuai.xi         #define TS_MUX_CFG_TSOIN1_MUX_MASK              0x00F0
1633*53ee8cc1Swenshuai.xi         #define TS_MUX_CFG_TSOIN1_MUX_SHIFT             4
1634*53ee8cc1Swenshuai.xi 
1635*53ee8cc1Swenshuai.xi     REG16                               TSP5_Reserve_14;                            // 0x14
1636*53ee8cc1Swenshuai.xi 
1637*53ee8cc1Swenshuai.xi     REG16                               TS_MUX_CFG_TSOOUT;                          // 0x15
1638*53ee8cc1Swenshuai.xi     #define TS_MUX_CFG_TSOOUT_MASK                      0x000F
1639*53ee8cc1Swenshuai.xi         #define TS_MUX_CFG_TSOOUT_FROM_TSO              0x0000
1640*53ee8cc1Swenshuai.xi         #define TS_MUX_CFG_TSOOUT_FROM_S2P              0x0001
1641*53ee8cc1Swenshuai.xi }REG_Ctrl5;
1642*53ee8cc1Swenshuai.xi 
1643*53ee8cc1Swenshuai.xi // TSP: ts sample part
1644*53ee8cc1Swenshuai.xi typedef struct _REG_TS_Sample
1645*53ee8cc1Swenshuai.xi {
1646*53ee8cc1Swenshuai.xi     REG16                               TS0_Clk_Sample;                             // 0x00
1647*53ee8cc1Swenshuai.xi     #define TS0_PHASE_ADJUST_COUNT_MASK                 0x001F
1648*53ee8cc1Swenshuai.xi     #define TS0_PHASE_ADJUST_EN                         0x0020
1649*53ee8cc1Swenshuai.xi     #define TS0_RESAMPLE_VOTE_ADJUST_EN                 0x0040
1650*53ee8cc1Swenshuai.xi 
1651*53ee8cc1Swenshuai.xi     REG16                               TS1_Clk_Sample;                             // 0x01
1652*53ee8cc1Swenshuai.xi     #define TS1_PHASE_ADJUST_COUNT_MASK                 0x001F
1653*53ee8cc1Swenshuai.xi     #define TS1_PHASE_ADJUST_EN                         0x0020
1654*53ee8cc1Swenshuai.xi     #define TS1_RESAMPLE_VOTE_ADJUST_EN                 0x0040
1655*53ee8cc1Swenshuai.xi 
1656*53ee8cc1Swenshuai.xi     REG16                               TS2_Clk_Sample;                             // 0x02
1657*53ee8cc1Swenshuai.xi     #define TS2_PHASE_ADJUST_COUNT_MASK                 0x001F
1658*53ee8cc1Swenshuai.xi     #define TS2_PHASE_ADJUST_EN                         0x0020
1659*53ee8cc1Swenshuai.xi     #define TS2_RESAMPLE_VOTE_ADJUST_EN                 0x0040
1660*53ee8cc1Swenshuai.xi 
1661*53ee8cc1Swenshuai.xi     REG16                               TS3_Clk_Sample;                             // 0x03
1662*53ee8cc1Swenshuai.xi     #define TS3_PHASE_ADJUST_COUNT_MASK                 0x001F
1663*53ee8cc1Swenshuai.xi     #define TS3_PHASE_ADJUST_EN                         0x0020
1664*53ee8cc1Swenshuai.xi     #define TS3_RESAMPLE_VOTE_ADJUST_EN                 0x0040
1665*53ee8cc1Swenshuai.xi 
1666*53ee8cc1Swenshuai.xi     REG16                               TS4_Clk_Sample;                             // 0x04
1667*53ee8cc1Swenshuai.xi     #define TS4_PHASE_ADJUST_COUNT_MASK                 0x001F
1668*53ee8cc1Swenshuai.xi     #define TS4_PHASE_ADJUST_EN                         0x0020
1669*53ee8cc1Swenshuai.xi     #define TS4_RESAMPLE_VOTE_ADJUST_EN                 0x0040
1670*53ee8cc1Swenshuai.xi 
1671*53ee8cc1Swenshuai.xi     REG16                               TS5_Clk_Sample;                             // 0x05
1672*53ee8cc1Swenshuai.xi     #define TS5_PHASE_ADJUST_COUNT_MASK                 0x001F
1673*53ee8cc1Swenshuai.xi     #define TS5_PHASE_ADJUST_EN                         0x0020
1674*53ee8cc1Swenshuai.xi     #define TS5_RESAMPLE_VOTE_ADJUST_EN                 0x0040
1675*53ee8cc1Swenshuai.xi 
1676*53ee8cc1Swenshuai.xi     REG16                               TsSample_Reserved0[0x10-0x6];               // 0x06 - 0x0F
1677*53ee8cc1Swenshuai.xi 
1678*53ee8cc1Swenshuai.xi     REG16                               TSO_Clk_Sample;                             // 0x10
1679*53ee8cc1Swenshuai.xi     #define TSO_PHASE_ADJUST_COUNT_MASK                 0x001F
1680*53ee8cc1Swenshuai.xi     #define TSO_PHASE_ADJUST_EN                         0x0020
1681*53ee8cc1Swenshuai.xi     #define TSO_RESAMPLE_VOTE_ADJUST_EN                 0x0040
1682*53ee8cc1Swenshuai.xi     #define TSO_CLK_INVERT                              0x0080
1683*53ee8cc1Swenshuai.xi 
1684*53ee8cc1Swenshuai.xi     REG16                               TsSample_Reserved1[0x20-0x11];              // 0x11 - 0x1F
1685*53ee8cc1Swenshuai.xi 
1686*53ee8cc1Swenshuai.xi     REG16                               TS_Out_Clk_Sample;                          // 0x20 (for old path: TSIF2 out)
1687*53ee8cc1Swenshuai.xi     #define TS_OUT_PHASE_ADJUST_COUNT_MASK              0x001F
1688*53ee8cc1Swenshuai.xi     #define TS_OUT_PHASE_ADJUST_EN                      0x0020
1689*53ee8cc1Swenshuai.xi     #define TS_OUT_RESAMPLE_VOTE_ADJUST_EN              0x0040
1690*53ee8cc1Swenshuai.xi     #define TS_OUT_CLK_INVERT                           0x0080
1691*53ee8cc1Swenshuai.xi 
1692*53ee8cc1Swenshuai.xi     REG16                               S2P_Out_Clk_Sample;                         // 0x21
1693*53ee8cc1Swenshuai.xi     #define S2P_PHASE_ADJUST_COUNT_MASK                 0x001F
1694*53ee8cc1Swenshuai.xi     #define S2P_PHASE_ADJUST_EN                         0x0020
1695*53ee8cc1Swenshuai.xi     #define S2P_RESAMPLE_VOTE_ADJUST_EN                 0x0040
1696*53ee8cc1Swenshuai.xi     #define S2P_CLK_INVERT                              0x0080
1697*53ee8cc1Swenshuai.xi 
1698*53ee8cc1Swenshuai.xi     REG16                               TsSample_Reserved2[0x30-0x23];              // 0x22 - 0x30
1699*53ee8cc1Swenshuai.xi 
1700*53ee8cc1Swenshuai.xi     REG16                               TSO_Out_Clk_Sel;                            // 0x30
1701*53ee8cc1Swenshuai.xi     #define TSO_0_sel_MASK                              0x0003
1702*53ee8cc1Swenshuai.xi     #define TSO_0_sel_TSO                               0x0000
1703*53ee8cc1Swenshuai.xi     #define TSO_0_sel_S2P0                              0x0001
1704*53ee8cc1Swenshuai.xi     #define TSO_0_sel_S2P1                              0x0002
1705*53ee8cc1Swenshuai.xi 
1706*53ee8cc1Swenshuai.xi     #define TSO_1_sel_MASK                              0x0030
1707*53ee8cc1Swenshuai.xi     #define TSO_1_sel_TSO                               0x0000
1708*53ee8cc1Swenshuai.xi     #define TSO_1_sel_S2P0                              0x0010
1709*53ee8cc1Swenshuai.xi     #define TSO_1_sel_S2P1                              0x0020
1710*53ee8cc1Swenshuai.xi 
1711*53ee8cc1Swenshuai.xi }REG_TS_Sample;
1712*53ee8cc1Swenshuai.xi 
1713*53ee8cc1Swenshuai.xi // Firmware status
1714*53ee8cc1Swenshuai.xi #define TSP_FW_STATE_MASK           0xFFFF0000
1715*53ee8cc1Swenshuai.xi #define TSP_FW_STATE_LOAD           0x00010000
1716*53ee8cc1Swenshuai.xi #define TSP_FW_STATE_ENG_OVRUN      0x00020000
1717*53ee8cc1Swenshuai.xi #define TSP_FW_STATE_ENG1_OVRUN     0x00040000                          //[reserved]
1718*53ee8cc1Swenshuai.xi #define TSP_FW_STATE_IC_ENABLE      0x01000000
1719*53ee8cc1Swenshuai.xi #define TSP_FW_STATE_DC_ENABLE      0x02000000
1720*53ee8cc1Swenshuai.xi #define TSP_FW_STATE_IS_ENABLE      0x04000000
1721*53ee8cc1Swenshuai.xi #define TSP_FW_STATE_DS_ENABLE      0x08000000
1722*53ee8cc1Swenshuai.xi 
1723*53ee8cc1Swenshuai.xi 
1724*53ee8cc1Swenshuai.xi // TSP AEON specific IP address
1725*53ee8cc1Swenshuai.xi #define OPENRISC_IP_1_ADDR 0x00200000
1726*53ee8cc1Swenshuai.xi #define OPENRISC_IP_1_SIZE 0x00020000
1727*53ee8cc1Swenshuai.xi #define OPENRISC_IP_2_ADDR 0x90000000
1728*53ee8cc1Swenshuai.xi #define OPENRISC_IP_2_SIZE 0x00010000
1729*53ee8cc1Swenshuai.xi #define OPENRISC_IP_3_ADDR 0x40080000
1730*53ee8cc1Swenshuai.xi #define OPENRISC_IP_3_SIZE 0x00020000
1731*53ee8cc1Swenshuai.xi #define OPENRISC_QMEM_ADDR 0x00000000
1732*53ee8cc1Swenshuai.xi #define OPENRISC_QMEM_SIZE 0x00003000
1733*53ee8cc1Swenshuai.xi #endif // _TSP_REG_H_
1734