xref: /utopia/UTPA2-700.0.x/modules/dmx/hal/mooney/tsp/regTSP.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1 //<MStar Software>
2 //******************************************************************************
3 // MStar Software
4 // Copyright (c) 2010 - 2012 MStar Semiconductor, Inc. All rights reserved.
5 // All software, firmware and related documentation herein ("MStar Software") are
6 // intellectual property of MStar Semiconductor, Inc. ("MStar") and protected by
7 // law, including, but not limited to, copyright law and international treaties.
8 // Any use, modification, reproduction, retransmission, or republication of all
9 // or part of MStar Software is expressly prohibited, unless prior written
10 // permission has been granted by MStar.
11 //
12 // By accessing, browsing and/or using MStar Software, you acknowledge that you
13 // have read, understood, and agree, to be bound by below terms ("Terms") and to
14 // comply with all applicable laws and regulations:
15 //
16 // 1. MStar shall retain any and all right, ownership and interest to MStar
17 //    Software and any modification/derivatives thereof.
18 //    No right, ownership, or interest to MStar Software and any
19 //    modification/derivatives thereof is transferred to you under Terms.
20 //
21 // 2. You understand that MStar Software might include, incorporate or be
22 //    supplied together with third party`s software and the use of MStar
23 //    Software may require additional licenses from third parties.
24 //    Therefore, you hereby agree it is your sole responsibility to separately
25 //    obtain any and all third party right and license necessary for your use of
26 //    such third party`s software.
27 //
28 // 3. MStar Software and any modification/derivatives thereof shall be deemed as
29 //    MStar`s confidential information and you agree to keep MStar`s
30 //    confidential information in strictest confidence and not disclose to any
31 //    third party.
32 //
33 // 4. MStar Software is provided on an "AS IS" basis without warranties of any
34 //    kind. Any warranties are hereby expressly disclaimed by MStar, including
35 //    without limitation, any warranties of merchantability, non-infringement of
36 //    intellectual property rights, fitness for a particular purpose, error free
37 //    and in conformity with any international standard.  You agree to waive any
38 //    claim against MStar for any loss, damage, cost or expense that you may
39 //    incur related to your use of MStar Software.
40 //    In no event shall MStar be liable for any direct, indirect, incidental or
41 //    consequential damages, including without limitation, lost of profit or
42 //    revenues, lost or damage of data, and unauthorized system use.
43 //    You agree that this Section 4 shall still apply without being affected
44 //    even if MStar Software has been modified by MStar in accordance with your
45 //    request or instruction for your use, except otherwise agreed by both
46 //    parties in writing.
47 //
48 // 5. If requested, MStar may from time to time provide technical supports or
49 //    services in relation with MStar Software to you for your use of
50 //    MStar Software in conjunction with your or your customer`s product
51 //    ("Services").
52 //    You understand and agree that, except otherwise agreed by both parties in
53 //    writing, Services are provided on an "AS IS" basis and the warranty
54 //    disclaimer set forth in Section 4 above shall apply.
55 //
56 // 6. Nothing contained herein shall be construed as by implication, estoppels
57 //    or otherwise:
58 //    (a) conferring any license or right to use MStar name, trademark, service
59 //        mark, symbol or any other identification;
60 //    (b) obligating MStar or any of its affiliates to furnish any person,
61 //        including without limitation, you and your customers, any assistance
62 //        of any kind whatsoever, or any information; or
63 //    (c) conferring any license or right under any intellectual property right.
64 //
65 // 7. These terms shall be governed by and construed in accordance with the laws
66 //    of Taiwan, R.O.C., excluding its conflict of law rules.
67 //    Any and all dispute arising out hereof or related hereto shall be finally
68 //    settled by arbitration referred to the Chinese Arbitration Association,
69 //    Taipei in accordance with the ROC Arbitration Law and the Arbitration
70 //    Rules of the Association by three (3) arbitrators appointed in accordance
71 //    with the said Rules.
72 //    The place of arbitration shall be in Taipei, Taiwan and the language shall
73 //    be English.
74 //    The arbitration award shall be final and binding to both parties.
75 //
76 //******************************************************************************
77 //<MStar Software>
78 ////////////////////////////////////////////////////////////////////////////////
79 //
80 // Copyright (c) 2008-2009 MStar Semiconductor, Inc.
81 // All rights reserved.
82 //
83 // Unless otherwise stipulated in writing, any and all information contained
84 // herein regardless in any format shall remain the sole proprietary of
85 // MStar Semiconductor Inc. and be kept in strict confidence
86 // ("MStar Confidential Information") by the recipient.
87 // Any unauthorized act including without limitation unauthorized disclosure,
88 // copying, use, reproduction, sale, distribution, modification, disassembling,
89 // reverse engineering and compiling of the contents of MStar Confidential
90 // Information is unlawful and strictly prohibited. MStar hereby reserves the
91 // rights to any and all damages, losses, costs and expenses resulting therefrom.
92 //
93 ////////////////////////////////////////////////////////////////////////////////
94 
95 ////////////////////////////////////////////////////////////////////////////////////////////////////
96 //
97 //  File name: regTSP.h
98 //  Description: Transport Stream Processor (TSP) Register Definition
99 //
100 ////////////////////////////////////////////////////////////////////////////////////////////////////
101 
102 #ifndef _TSP_REG_H_
103 #define _TSP_REG_H_
104 
105 //--------------------------------------------------------------------------------------------------
106 //  Abbreviation
107 //--------------------------------------------------------------------------------------------------
108 // Addr                             Address
109 // Buf                              Buffer
110 // Clr                              Clear
111 // CmdQ                             Command queue
112 // Cnt                              Count
113 // Ctrl                             Control
114 // Flt                              Filter
115 // Hw                               Hardware
116 // Int                              Interrupt
117 // Len                              Length
118 // Ovfw                             Overflow
119 // Pkt                              Packet
120 // Rec                              Record
121 // Recv                             Receive
122 // Rmn                              Remain
123 // Reg                              Register
124 // Req                              Request
125 // Rst                              Reset
126 // Scmb                             Scramble
127 // Sec                              Section
128 // Stat                             Status
129 // Sw                               Software
130 // Ts                               Transport Stream
131 
132 
133 
134 //--------------------------------------------------------------------------------------------------
135 //  Global Definition
136 //--------------------------------------------------------------------------------------------------
137 #define TS_PACKET_SIZE              188UL
138 
139 //--------------------------------------------------------------------------------------------------
140 //  Compliation Option
141 //--------------------------------------------------------------------------------------------------
142 
143 //[CMODEL][FWTSP]
144 // When enable, interrupt will not lost, CModel will block next packet
145 // and FwTSP will block until interrupt status is clear by MIPS.
146 // (For firmware and cmodel only)
147 #define TSP_DBG_SAFE_MODE_ENABLE    0
148 
149 //-------------------------------------------------------------------------------------------------
150 //  Harware Capability
151 //-------------------------------------------------------------------------------------------------
152 #define TSP_PIDFLT_NUM                  32UL
153 #define TSP_PIDFLT1_NUM                 16UL
154 #define TSP_PVR_IF_NUM                  1UL
155 #define TSP_MMFI_AUDIO_FILTER_NUM       2UL
156 #define TSP_MMFI_V3D_FILTER_NUM         1UL
157 #define TSP_IF_NUM                      2UL
158 #define TSP_DEMOD_NUM                   1UL
159 #define TSP_VFIFO_NUM                   2UL
160 #define TSP_AFIFO_NUM                   2UL
161 #define TSP_TS_PAD_NUM                  3UL  // TS0 is null
162 #define TSP_VQ_NUM                      2UL
163 #define TSP_CA_FLT_NUM                  16UL
164 #define TSP_CA_KEY_NUM                  8UL
165 #define TSP_VQ_PITCH                    192UL
166 /***************************************************/
167 
168 #define TSP_ENGINE_NUM                      (1UL)
169 #define TSP_PIDFLT_NUM_ALL                  (TSP_PIDFLT_NUM+ TSP_PIDFLT1_NUM)
170 #define TSP_SECFLT_NUM                      (TSP_PIDFLT_NUM)
171 #define TSP_SECBUF_NUM                      (TSP_SECFLT_NUM)
172 #define TSP_FILTER_DEPTH                    (16UL)
173 
174 #define TSP_SECFLT_NUM_All                  (TSP_SECFLT_NUM)
175 
176 #define TSP_WP_SET_NUM                      (5UL)
177 
178 #define DSCMB_FLT_START_ID                  (16UL)
179 #define DSCMB_FLT_END_ID                    (31UL)
180 #define DSCMB_FLT_NUM                       (16UL)
181 
182 #define DSCMB_FLT_SHAREKEY_START_ID         (0UL)
183 #define DSCMB_FLT_SHAREKEY_END_ID           (0UL)
184 #define DSCMB_FLT_SHAREKEY_NUM              (0UL)
185 
186 #define DSCMB_FLT_NUM_ALL                   (DSCMB_FLT_NUM+DSCMB_FLT_SHAREKEY_NUM)
187 
188 
189 //PAD MUX definition
190 #define TSP_MUX_TS0                         0UL
191 #define TSP_MUX_TS1                         1UL       //not support
192 #define TSP_MUX_TS2                         2UL
193 #define TSP_MUX_INDEMOD                     7UL
194 
195 //Clk source definition
196 #define TSP_CLK_DISABLE                     0x01UL
197 #define TSP_CLK_INVERSE                     0x02UL
198 #define TSP_CLK_TS0                         0x00UL
199 #define TSP_CLK_TS1                         0x04UL
200 #define TSP_CLK_TS2                         0x08UL
201 #define TSP_CLK_INDEMOD                     0x1CUL
202 #define CLKGEN0_TSP_CLK_MASK                0x1CUL
203 
204 #define TSP_FW_DEVICE_ID                    0x31UL
205 
206 #define STC_SYNTH_NUM                       1UL
207 #define STC_SYNTH_DEFAULT                   0x28000000UL
208 
209 #define DRAM_SIZE                           (0x40000000UL)
210 #define TSP_FW_BUF_SIZE                     (0x4000UL)
211 #define TSP_FW_BUF_LOW_BUD                  0UL
212 #define TSP_FW_BUF_UP_BUD                   DRAM_SIZE
213 
214 #define TSP_VQ_BUF_LOW_BUD                  0UL
215 #define TSP_VQ_BUF_UP_BUD                   DRAM_SIZE
216 
217 #define TSP_SEC_BUF_LOW_BUD                 0UL
218 #define TSP_SEC_BUF_UP_BUD                  DRAM_SIZE
219 #define TSP_SEC_FLT_DEPTH                   32UL
220 #define TSP_FIQ_NUM                         0UL
221 
222 //-------------------------------------------------------------------------------------------------
223 //  Type and Structure
224 //-------------------------------------------------------------------------------------------------
225 
226 // Software
227 #define REG_PIDFLT_BASE         (0x00210000UL << 1UL)                   // Fit the size of REG32
228 #define REG_SECFLT_BASE         (0x00211000UL << 1UL)                   // Fix the size of REG32
229 
230 #define REG_CTRL_BASE           (0x2A00UL)                            // 0xBF800000+(1500/2)*4
231 #define REG_CTRL_BASE_TS3       (0xC1400UL)                           // 0xBF800000+(60A00/2)*4
232 #define REG_CTRL_MMFIBASE       (0x3900UL)                            // 0xBF800000+(1C80/2)*4 (TSP2: debug table)
233 
234 typedef struct _REG32
235 {
236     volatile MS_U16                L;
237     volatile MS_U16                empty_L;
238     volatile MS_U16                H;
239     volatile MS_U16                empty_H;
240 } REG32;
241 
242 typedef struct _REG32_L
243 {
244     volatile MS_U32                data;
245     volatile MS_U32                _resv;
246 } REG32_L;
247 
248 typedef struct _REG16
249 {
250     volatile MS_U16                 u16data;
251     volatile MS_U16                 _null;
252 } REG16;
253 
254 typedef REG32                       REG_PidFlt;
255 
256 // PID
257 #define TSP_PIDFLT_PID_MASK         0x00001FFFUL
258 #define TSP_PIDFLT_PID_SHFT         0UL
259 
260 // Section filter Id
261 #define TSP_PIDFLT_SECFLT_MASK      0x001F0000UL                          // [20:16] secflt id
262 #define TSP_PIDFLT_SECFLT_SHFT      16UL
263 #define TSP_PIDFLT_SECFLT_NULL      0x1FUL                                // software usage
264 
265 // AF/Sec/Video/Audio/Audio-second
266 #define TSP_PIDFLT_OUT_MASK         0x09e02000UL
267 #define TSP_PIDFLT_OUT_SECFLT_AF    0x00002000UL
268 #define TSP_PIDFLT_OUT_NONE         0x00000000UL
269 #define TSP_PIDFLT_OUT_SECFLT       0x00200000UL
270 #define TSP_PIDFLT_OUT_VFIFO        0x00400000UL
271 #define TSP_PIDFLT_OUT_AFIFO        0x00800000UL
272 #define TSP_PIDFLT_OUT_AFIFO2       0x01000000UL
273 #define TSP_PIDFLT_OUT_VFIFO3D      0x08000000UL
274 
275 // File/Live
276 #define TSP_PIDFLT_IN_MASK          0x02000000UL
277 #define TSP_PIDFLT_IN_LIVE          0x00000000UL
278 #define TSP_PIDFLT_IN_FILE          0x02000000UL
279 
280 // note, this bit is only useful for PVR pure pid
281 // use SEC/VIDEO/AUDIO flag is identical to PVR a certain PID
282 #define TSP_PIDFLT_PVR_ENABLE       0x04000000UL
283 
284 typedef struct _REG_SecFlt
285 {
286     REG32                           Ctrl;
287     // SW flag
288     #define TSP_SECFLT_TYPE_MASK                    0x01000007UL
289     #define TSP_SECFLT_TYPE_SHFT                    0UL
290     #define TSP_SECFLT_TYPE_SEC                     0x00000000UL
291     #define TSP_SECFLT_TYPE_PES                     0x00000001UL
292     #define TSP_SECFLT_TYPE_PKT                     0x00000002UL
293     #define TSP_SECFLT_TYPE_PCR                     0x00000003UL
294     #define TSP_SECFLT_TYPE_TTX                     0x00000004UL
295     #define TSP_SECFLT_TYPE_VER                     0x00000005UL
296     #define TSP_SECFLT_TYPE_EMM                     0x00000006UL
297     #define TSP_SECFLT_TYPE_ECM                     0x00000007UL
298     #define TSP_SECFLT_TYPE_SEC_NO_PUSI             0x01000000UL
299     // for TSP_SECFLT_TYPE_PCR
300     #define TSP_SECFLT_PCRRST                       0x00000010UL
301 
302     // for
303     // TSP_SECFLT_TYPE_SEC
304     // TSP_SECFLT_TYPE_PES
305     // TSP_SECFLT_TYPE_PKT
306     // TSP_SECFLT_TYPE_TTX
307     // TSP_SECFLT_TYPE_OAD
308     #define TSP_SECFLT_MODE_MASK                    0x00000030UL          // software implementation
309     #define TSP_SECFLT_MODE_SHFT                    4UL
310     #define TSP_SECFLT_MODE_CONTI                   0x0UL
311     #define TSP_SECFLT_MODE_ONESHOT                 0x1UL
312     #define TSP_SECFLT_MODE_CRCCHK                  0x2UL
313     #define TSP_SECFLT_MODE_PESSCMCHK               0x3UL                 //Only for PES type checking SCMB status
314 
315     //[NOTE] update section filter
316     // It's not suggestion user update section filter control register
317     // when filter is enable. There may be race condition. Be careful.
318     #define TSP_SECFLT_STATE_MASK                   0x000000C0UL          // software implementation
319     #define TSP_SECFLT_STATE_SHFT                   6UL
320     #define TSP_SECFLT_STATE_OVERFLOW               0x1UL
321     #define TSP_SECFLT_STATE_DISABLE                0x2UL
322 
323     REG32                           Match[TSP_FILTER_DEPTH/sizeof(MS_U32)];
324     REG32                           Mask[TSP_FILTER_DEPTH/sizeof(MS_U32)];
325     REG32                           BufStart;
326     #define TSP_SECFLT_BUFSTART_MASK                0xFFFFFFFFUL
327     REG32                           BufEnd;
328     REG32                           BufRead;
329     REG32                           BufWrite;
330     REG32                           BufCur;
331 
332     REG32                           RmnReqCnt;
333     #define TSP_SECFLT_OWNER_MASK                   0x80000000UL
334     #define TSP_SECFLT_OWNER_SHFT                   31UL
335     #define TSP_SECFLT_REQCNT_MASK                  0x7FFF0000UL
336     #define TSP_SECFLT_REQCNT_SHFT                  16UL
337     #define TSP_SECFLT_RMNCNT_MASK                  0x0000FFFFUL
338     #define TSP_SECFLT_RMNCNT_SHFT                  0UL
339 
340     REG32                           CRC32;
341     REG32                           NMatch[TSP_FILTER_DEPTH/sizeof(MS_U32)];
342     REG32                           _x50[12]; // (0x210080-0x210050)/4
343 } REG_SecFlt;
344 
345 
346 typedef struct _REG_Stc
347 {
348     REG32                           ML;
349     REG32_L                         H32;
350 } REG_Stc;
351 
352 
353 typedef struct _REG_Pid
354 {                                                                       // Index(word)  CPU(byte)       Default
355     REG_PidFlt                      Flt[TSP_PIDFLT_NUM_ALL];
356 } REG_Pid;
357 
358 
359 typedef struct _REG_Sec
360 {                                                                       // Index(word)  CPU(byte)       Default
361     REG_SecFlt                      Flt[TSP_SECFLT_NUM];
362 } REG_Sec;
363 
364 
365 typedef struct _REG_Ctrl
366 {
367     //----------------------------------------------
368     // 0xBF802A00 MIPS direct access
369     //----------------------------------------------
370                                                                         // Index(word)  CPU(byte)     MIPS(0x1500/2+index)*4
371     // only 24 bits supported in PVR address. 8 bytes address
372     REG32                           TsRec_Head20;                       // 0xbf802a00   0x00     //oneway/rw protect
373     #define TSP_HW_PVR_BUF_HEAD20_MASK              0xFFFF0000UL
374     #define TSP_HW_PVR_BUF_HEAD20_SHFT              16UL
375     REG32                           TsRec_Head21_Mid20;                 // 0xbf802a08   0x02
376     #define TSP_HW_PVR_BUF_HEAD21_MASK              0x0000FFFFUL
377     #define TSP_HW_PVR_BUF_HEAD21_SHFT              0UL
378     #define TSP_HW_PVR_BUF_MID20_MASK               0xFFFF0000UL
379     #define TSP_HW_PVR_BUF_MID20_SHFT               16UL
380     REG32                           TsRec_Mid21_Tail20;                 // 0xbf802a10   0x04
381     #define TSP_HW_PVR_BUF_MID21_MASK               0x0000FFFFUL
382     #define TSP_HW_PVR_BUF_MID21_SHFT               0UL
383     #define TSP_HW_PVR_BUF_TAIL20_MASK              0xFFFF0000UL
384     #define TSP_HW_PVR_BUF_TAIL20_SHFT              16UL
385     REG32                           TsRec_Tail2_Pcr1;                   // 0xbf802a18   0x06
386     #define TSP_HW_PVR_BUF_TAIL21_MASK              0x0000FFFFUL
387     #define TSP_HW_PVR_BUF_TAIL21_SHFT              0UL
388     #define TSP_PCR1_L16_MASK                       0xFFFF0000UL
389     #define TSP_PCR1_L16_SHFT                       16UL
390     REG32                           Pcr1;                               // 0xbf802a20   0x08
391     #define TSP_PCR64_MID32_MASK                    0xFFFFFFFFUL          //PCR64 Middle 64
392     #define TSP_PCR64_MID32_SHFT                    0UL
393     REG32                           Pcr64_H;                            // 0xbf802a28   0x0A
394     #define TSP_PCR64_H16_MASK                      0x0000FFFFUL
395     #define TSP_PCR64_H16_SHFT                      0UL
396     #define TSP_MOBF_FILE_KEY0_L_MASK               0x001F0000UL          //decrypt key
397     #define TSP_MOBF_FILE_KEY0_L_SHIFT              16UL
398 
399     REG32                           _xbf802a30;                         //_xbf802a30    0x0C
400 
401     REG32                           DbgInfo_Ctrl;                       //_xbf802a38    0x0E
402     #define TSP_DIS_LOCKED_PKT_CNT                  0x10000000UL
403     #define TSP_CLR_LOCKED_PKT_CNT                  0x20000000UL
404     #define TSP_CLR_AV_PKT_CNT                      0x40000000UL
405 
406     REG32                           _xbf802a40_xbf802a78[8];            // 0xbf802a40-- 0xbf802a78 (0x10 ~ 0x1E)
407     REG32                           Pkt_CacheW0;                        // 0xbf802a80   0x20
408     REG32                           Pkt_CacheW1;                        // 0xbf802a88   0x22
409     REG32                           Pkt_CacheW2;                        // 0xbf802a90   0x24
410     REG32                           Pkt_CacheW3;                        // 0xbf802a98   0x26
411     REG32_L                         Pkt_CacheIdx;                       // 0xbf802aa0   0x28
412     REG32                           Pkt_DMA;                            // 0xbf802aa8   0x2a
413     #define TSP_SEC_DMAFIL_NUM_MASK                 0x000000FFUL
414     #define TSP_SEC_DMAFIL_NUM_SHIFT                0UL
415     #define TSP_SEC_DMASRC_OFFSET_MASK              0x0000FF00UL
416     #define TSP_SEC_DMASRC_OFFSET_SHIFT             8UL
417     #define TSP_SEC_DMASRC_OFFSET_MASK              0x0000FF00UL
418     #define TSP_SEC_DMADES_LEN_MASK                 0x00FF0000UL
419     #define TSP_SEC_DMADES_LEN_SHIFT                16UL
420     REG32                           Hw_Config0;                         // 0xbf802ab0   0x2c : HW_Config0~3 (0x2c~0x2d)
421     #define TSP_HW_CFG0_DATA_PORT_EN                0x00000001UL
422     #define TSP_HW_CFG0_TSIFO_SERL                  0x00000000UL
423     #define TSP_HW_CFG0_TSIF0_PARL                  0x00000002UL
424     #define TSP_HW_CFG0_TSIF0_EXTSYNC               0x00000004UL
425     #define TSP_HW_CFG0_TSIF0_TS_BYPASS             0x00000008UL
426     #define TSP_HW_CFG0_TSIF0_VPID_BYPASS           0x00000010UL
427     #define TSP_HW_CFG0_TSIF0_APID_BYPASS           0x00000020UL
428     #define TSP_HW_CFG0_WB_DMA_RESET                0x00000040UL
429 
430     #define TSP_HW_CFG0_PACKET_BUF_SIZE_MASK        0x0000FF00UL
431     #define TSP_HW_CFG0_PACKET_BUF_SIZE_SHIFT       8UL
432     #define TSP_HW_CFG0_PACKET_PIDFLT0_SIZE_MASK    0x00FF0000UL
433     #define TSP_HW_CFG0_PACKET_PIDFLT0_SIZE_SHIFT   16UL
434     #define TSP_HW_CFG0_PACKET_SIZE_MASK            0xFF000000UL
435     #define TSP_HW_CFG0_PACKET_SIZE_SHFT            24UL
436 
437     REG32                           TSP_DBG_PORT;                       // 0xbf802ab8   0x2e
438     #define TSP_DBG_FILTER_MATCH0_MASK              0x000000FFUL
439     #define TSP_DBG_FILTER_MATCH0_SHIFT             0UL
440     #define TSP_DBG_FILTER_MATCH1_MASK              0x0000FF00UL
441     #define TSP_DBG_FILTER_MATCH1_SHIFT             8UL
442     #define TSP_DNG_DATA_MASK                       0x00FF0000UL
443     #define TSP_DNG_DATA_SHIFT                      16UL
444     REG_Stc                         Pcr;                                // 0xbf802ac0   0x30 & 0x32
445 
446     REG32                           Pkt_Info;                           // 0xbf802ad0   0x34
447     #define TSP_APID_L_MASK                         0x000000FFUL
448     #define TSP_APID_L_SHIFT                        0UL
449     #define TSP_APID_H_MASK                         0x00001F00UL
450     #define TSP_APID_H_SHIFT                        8UL
451     #define TSP_PKT_PID_8_12_CP_MASK                0x001F0000UL
452     #define TSP_PKT_PID_8_12_CP_SHIFT               16UL
453     #define TSP_PKT_PRI_MASK                        0x00200000UL
454     #define TSP_PKT_PRI_SHIFT                       21UL
455     #define TSP_PKT_PLST_MASK                       0x00400000UL
456     #define TSP_PKT_PLST_SHIFT                      22UL
457     #define TSP_PKT_ERR                             0x00800000UL
458 
459     REG32                           Pkt_Info2;                         // 0xbf802ad8   0x36
460     #define TSP_PKT_INFO_CC_MASK                    0x0000000FUL
461     #define TSP_PKT_INFO_CC_SHFT                    0UL
462     #define TSP_PKT_INFO_ADPCNTL_MASK               0x00000030UL
463     #define TSP_PKT_INFO_ADPCNTL_SHFT               4UL
464     #define TSP_PKT_INFO_SCMB                       0x000000C0UL
465     #define TSP_PKT_INFO_SCMB_SHFT                  6UL
466     #define TSP_PKT_PID_0_7_CP_MASK                 0x0000FF00UL
467     #define TSP_PKT_PID_0_7_CP_SHIFT                8UL
468 
469     REG32                           SwInt_Stat;                         // 0xbf802ae0   0x38
470     #define TSP_SWINT_INFO_SEC_MASK                 0x000000FFUL
471     #define TSP_SWINT_INFO_SEC_SHFT                 0UL
472     #define TSP_SWINT_INFO_ENG_MASK                 0x0000FF00UL
473     #define TSP_SWINT_INFO_ENG_SHFT                 8UL
474     #define TSP_SWINT_STATUS_CMD_MASK               0x7FFF0000UL
475     #define TSP_SWINT_STATUS_CMD_SHFT               16UL
476     #define TSP_SWINT_STATUS_SEC_RDY                0x0001UL
477     #define TSP_SWINT_STATUS_REQ_RDY                0x0002UL
478     #define TSP_SWINT_STATUS_BUF_OVFLOW             0x0006UL
479     #define TSP_SWINT_STATUS_SEC_CRCERR             0x0007UL
480     #define TSP_SWINT_STATUS_SEC_ERROR              0x0008UL
481     #define TSP_SWINT_STATUS_SYNC_LOST              0x0010UL
482     #define TSP_SWINT_STATUS_PKT_OVRUN              0x0020UL
483     #define TSP_SWINT_STATUS_DEBUG                  0x0030UL
484     #define TSP_SWINT_CMD_DMA_PAUSE                 0x0100UL
485     #define TSP_SWINT_CMD_DMA_RESUME                0x0200UL
486 
487     #define TSP_SWINT_STATUS_SEC_GROUP              0x000FUL
488     #define TSP_SWINT_STATUS_GROUP                  0x00FFUL
489     #define TSP_SWINT_CMD_GROUP                     0x7F00UL
490     #define TSP_SWINT_CMD_STC_UPD                   0x0400UL
491 
492     #define TSP_SWINT_CTRL_FIRE                     0x80000000UL
493 
494     REG32                           TsDma_Addr;                         // 0xbf802ae8   0x3a         //oneway/rw protect
495     // only 24 bits available for filein length
496     REG32                           TsDma_Size;                         // 0xbf802af0   0x3c
497     REG32                           TsDma_Ctrl_CmdQ;                    // 0xbf802af8   0x3e
498     // file in control
499     #define TSP_TSDMA_CTRL_START                    0x00000001UL
500     #define TSP_TSDMA_RDONE                         0x00000002UL
501     #define TSP_TSDMA_CTRL_INIT_TRUST_MCU           0x00000004UL
502     #define TSP_TSDMA_CTRL_PESMODE_MASK             0x0000001CUL
503     #define TSP_TSDMA_CTRL_VPES0                    0x00000004UL
504     #define TSP_TSDMA_CTRL_APES0                    0x00000008UL
505     #define TSP_TSDMA_CTRL_A2PES0                   0x00000010UL
506     #define TSP_TSDMA_CTRL_V3DPES0                  0x00000020UL  //not used
507     #define TSP_TSDMA_STAT_ABORT                    0x00000080UL
508     // CmdQ
509     #define TSP_CMDQ_CNT_MASK                       0x001F0000UL
510     #define TSP_CMDQ_CNT_SHFT                       16UL
511     #define TSP_CMDQ_FULL                           0x00400000UL
512     #define TSP_CMDQ_EMPTY                          0x00800000UL
513     #define TSP_CMDQ_SIZE                           16UL
514     #define TSP_CMDQ_WR_LEVEL_MASK                  0x03000000UL
515     #define TSP_CMDQ_WR_LEVEL_SHFT                  24UL
516 
517     REG32                           MCU_Cmd;                            // 0xbf802b00   0x40
518     #define TSP_MCU_CMD_MASK                                    0xFF000000UL
519     #define TSP_MCU_CMD_NULL                                    0x00000000UL
520     #define TSP_MCU_CMD_ALIVE                                   0x01000000UL
521     #define TSP_MCU_CMD_NMATCH                                  0x02000000UL
522         #define TSP_MCU_CMD_NMATCH_FLT_MASK                     0x000000FFUL
523         #define TSP_MCU_CMD_NMATCH_FLT_SHFT                     0x00000000UL
524     #define TSP_MCU_CMD_PCR_GET                                 0x03000000UL
525     #define TSP_MCU_CMD_VER_RESET                               0x04000000UL
526         #define TSP_MCU_CMD_VER_RESET_FLT_MASK                  0x000000FFUL
527         #define TSP_MCU_CMD_VER_RESET_FLT_SHFT                  0x00000000UL
528     #define TSP_MCU_CMD_MEM_HIGH_ADDR                           0x05000000UL
529     #define TSP_MCU_CMD_MEM_LOW_ADDR                            0x06000000UL
530         #define TSP_MCU_CMD_MEM_ADDR_SHFT                       0x00000000UL
531         #define TSP_MCU_CMD_MEM_ADDR_MASK                       0x0000FFFFUL
532     #define TSP_MCU_CMD_VERSION_GET                             0x07000000UL
533     #define TSP_MCU_CMD_DBG_MEM                                 0x08000000UL
534     #define TSP_MCU_CMD_DBG_WORD                                0x09000000UL
535     #define TSP_MCU_CMD_SCMSTS_GET                              0x0B000000UL
536     #define TSP_MCU_CMD_CTRL_STC_UPDATE                         0x0C000000UL
537     #define TSP_MCU_CMD_CTRL_STC1_UPDATE                        0x0D000000UL
538         #define TSP_MCU_CMD_CTRL_STC_UPDATE_OPTION_MASK         0x00FF0000UL
539         #define TSP_MCU_CMD_CTRL_STC_UPDATE_ONCE                0x00010000UL
540     #define TSP_MCU_CMD_TEI_COUNT_GET                           0x0E000000UL
541         #define TSP_MCU_CMD_TEI_COUNT_SRC_MASK                  0x0000FFFFUL
542             #define TSP_MCU_CMD_TEI_COUNT_SRC_LIVE              0x00000000UL
543             #define TSP_MCU_CMD_TEI_COUNT_SRC_FILE              0x00000001UL
544         #define TSP_MCU_CMD_TEI_COUNT_OPTION_MASK               0x00FF0000UL
545             #define TSP_MCU_CMD_TEI_COUNT_OPTION_RESET          0x00800000UL
546     #define TSP_MCU_CMD_DISCONT_COUNT_GET                       0x0F000000UL
547         #define TSP_MCU_CMD_DISCONT_COUNT_FLT_MASK              0x0000FFFFUL
548             #define TSP_MCU_CMD_DISCONT_COUNT_OPTION_MASK       0x00FF0000UL
549         #define TSP_MCU_CMD_DISCONT_COUNT_OPTION_RESET          0x00800000UL
550     #define TSP_MCU_CMD_SET_STC_OFFSET                          0x10000000UL
551         #define TSP_MCU_CMD_SET_STC_OFFSET_OPTION_MASK          0x00FF0000UL
552         #define TSP_MCU_CMD_SET_STC_OFFSET_OPTION_SHIFT         16UL
553     // #define TSP_MSG_FW_STC_NOSYNC                   0x00000001
554     // #define TSP_MSG_FW_STC1_NOSYNC                  0x00000002          //[reserved]
555 
556     REG32                           Hw_Config2;                         // 0xbf802b08   0x42
557     #define TSP_HW_CFG2_PACKET_CHK_SIZE1_MASK       0x000000FFUL
558     #define TSP_HW_CFG2_PACKET_CHK_SIZE1_SHFT       0UL
559     #define TSP_HW_CFG2_PACKET_SYNCBYTE1_MASK       0x0000FF00UL
560     #define TSP_HW_CFG2_PACKET_SYNCBYTE1_SHFT       8UL
561     #define TSP_HW_CFG2_PACKET_SIZE1_MASK           0x00FF0000UL
562     #define TSP_HW_CFG2_PACKET_SIZE1_SHFT           16UL
563     #define TSP_HW_CFG2_TSIF1_SERL                  0x00000000UL
564     #define TSP_HW_CFG2_TSIF1_PARL                  0x01000000UL
565     #define TSP_HW_CFG2_TSIF1_EXTSYNC               0x02000000UL
566     #define TSP_HW_CFG2_TS_DATAPORT_EN1             0x04000000UL
567     #define TSP_HW_CFG2_TS_FILE_IN1                 0x08000000UL
568     #define TSP_HW_CFG2_TSIF1_TS_BYPASS             0x10000000UL
569     #define TSP_HW_CFG2_TSIF1_VPID_BYPASS           0x20000000UL
570     #define TSP_HW_CFG2_TSIF1_APID_BYPASS           0x40000000UL
571     #define TSP_PIDFLT_SEL_PID0                     0x00000000UL
572     #define TSP_PIDFLT_SEL_PID1                     0x80000000UL
573 
574     REG32                           Hw_Config4;                         // 0xbf802b10   0x44
575     #define TSP_HW_CFG4_PVR_PIDFLT_SEC              0x00000001UL
576     #define TSP_HW_CFG4_PVR_ENABLE                  0x00000002UL
577     #define TSP_HW_CFG4_PVR_ENDIAN_BIG              0x00000004UL          // 1: record TS to MIU with big endian
578                                                                         // 0: record TS to MIU with little endian
579     #define TSP_HW_CFG4_TSIF1_ENABLE                0x00000008UL          // 1: enable ts interface 1 and vice versa
580     #define TSP_HW_CFG4_PVR_FLUSH                   0x00000010UL          // 1: str2mi_wadr <- str2mi_miu_head
581     #define TSP_HW_CFG4_PVRBUF_BYTEORDER_BIG        0x00000020UL          // Byte order of 8-byte recoding buffer to MIU.
582     #define TSP_HW_CFG4_PVR_PAUSE                   0x00000040UL
583     #define TSP_HW_CFG4_MEMTSDATA_ENDIAN_BIG        0x00000080UL          // 32-bit data byte order read from 8x64 FIFO when playing file.
584 
585     #define TSP_HW_CFG4_TSIF0_ENABLE                0x00000100UL          // 1: enable ts interface 0 and vice versa
586     #define TSP_VALID_FALLING_DETECT                0x00000200UL          // Reset bit count when data valid signal of TS interface is low.
587     #define TSP_SYNC_RISING_DETECT                  0x00000400UL          // Reset bit count on the rising sync signal of TS interface.
588     #define TSP_HW_CFG4_TS_DATA0_SWAP               0x00000800UL          // Set 1 to swap the bit order of TS0 DATA bus
589     #define TSP_HW_CFG4_TS_DATA1_SWAP               0x00001000UL          // Set 1 to swap the bit order of TS1 DATA bus
590     #define TSP_HW_BD_AUDIO_EN                      0x00002000UL
591     #define TSP_HW_TSP2OUTAEON_INT_EN               0x00004000UL          // Set 1 to force interrupt to outside AEON
592     #define TSP_HW_HK_INT_FORCE                     0x00008000UL          // Set 1 to force interrupt to HK_MCU
593     #define TSP_HW_CFG4_BYTE_ADDR_DMA               0x000E0000UL          // prevent from byte enable bug
594     #define TSP_HW_CFG4_ALT_TS_SIZE                 0x00010000UL          // enable TS packets in 204 mode
595     #define TSP_HW_DMA_MODE_MASK                    0x00300000UL          // Section filter DMA mode, 2'b00: Single.2'b01: Burst 2 bytes.2'b10: Burst 4 bytes.2'b11: Burst 8 bytes.
596     #define TSP_HW_DMA_MODE_SHIFT                   20UL
597     #define TSP_HW_CFG4_PS_VID_EN                   0x00800000UL          // program stream video enable
598     #define TSP_HW_CFG4_PS_AUD_EN                   0x01000000UL          // program stream audio enable
599     #define TSP_HW_CFG4_PS_AUD2_EN                  0x02000000UL          // program stream audioB enable
600     #define TSP_HW_CFG4_APES_ERR_RM_E               0x04000000UL          // Set 1 to enable removing APES error packet
601     #define TSP_HW_CFG4_VPES_ERR_RM_EN              0x08000000UL          // Set 1 to enable removing VPES error packet
602     #define TSP_HW_CFG4_SEC_ERR_RM_EN               0x10000000UL          // Set 1 to enable removing section error packet
603     #define TSP_HW_CFG4_ISYNC_PATCH_EN              0x80000000UL          // Set 1 to enable the patch of internal sync in "tsif"
604 
605     REG32                           NOEA_PC;                            // 0xbf802b18   0x46
606     REG32                           Idr_Ctrl_Addr0;                     // 0xbf802b20   0x48
607     #define TSP_IDR_START                           0x00000001UL
608     #define TSP_IDR_READ                            0x00000000UL
609     #define TSP_IDR_WRITE                           0x00000002UL
610     #define TSP_IDR_WR_ENDIAN_BIG                   0x00000004UL
611     #define TSP_IDR_WR_ADDR_AUTO_INC                0x00000008UL          // Set 1 to enable address auto-increment after finishing read/write
612     #define TSP_IDR_WDAT0_TRIG_EN                   0x00000010UL          // WDAT0_TRIG_EN
613     #define TSP_IDR_MCUWAIT                         0x00000020UL
614     #define TSP_IDR_SOFT_RST                        0x00000080UL          // Set 1 to soft-reset the IND32 module
615     #define TSP_IDR_AUTO_INC_VAL_MASK               0x00000F00UL
616     #define TSP_IDR_AUTO_INC_VAL_SHIFT              8UL
617     #define TSP_IDR_ADDR_MASK0                      0xFFFF0000UL
618     #define TSP_IDR_ADDR_SHFT0                      16UL
619     REG32                           Idr_Addr1_Write0;                   // 0xbf802b28   0x4a
620     #define TSP_IDR_ADDR_MASK1                      0x0000FFFFUL
621     #define TSP_IDR_ADDR_SHFT1                      0UL
622     #define TSP_IDR_WRITE_MASK0                     0xFFFF0000UL
623     #define TSP_IDR_WRITE_SHFT0                     16UL
624     REG32                           Idr_Write1_Read0;                   // 0xbf802b30   0x4c
625     #define TSP_IDR_WRITE_MASK1                     0x0000FFFFUL
626     #define TSP_IDR_WRITE_SHFT1                     0UL
627     #define TSP_IDR_READ_MASK0                      0xFFFF0000UL
628     #define TSP_IDR_READ_SHFT0                      16UL
629     REG32                           Idr_Read1;                          // 0xbf802b38   0x4e
630     #define TSP_IDR_READ_MASK1                      0x0000FFFFUL
631     #define TSP_IDR_READ_SHFT1                      0UL
632     #define TSP_V3D_FIFO_OVERFLOW                   0x00200000UL
633     #define TSP_VD_FIFO_OVERFLOW                    0x08000000UL
634     #define TSP_AUB_FIFO_OVERFLOW                   0x10000000UL
635     #define TSP_AU_FIFO_OVERFLOW                    0x20000000UL
636 
637     // only 25 bits supported in PVR address. 8 bytes address
638     REG32                           TsRec_Head;                         // 0xbf802b40   0x50         //oneway/rw protect
639     REG32                           TsRec_Mid;                          // 0xbf802b48   0x52
640     REG32                           TsRec_Tail;                         // 0xbf802b50   0x54
641     REG32                           TsRec_WPtr;                         // 0xbf802b58   0x56
642 
643     REG32                           TSP_DMAWP_BND;                      // 0xbf802b60   0x58
644     #define TSP_DMAWP_BND_ALI_SHIFT                 10UL
645     #define TSP_DMAWP_LBND_MASK                     0x0000FFFFUL
646     #define TSP_DMAWP_LBND_SHFT                     0UL
647     #define TSP_DMAWP_HBND_MASK                     0x0000FFFFUL
648     #define TSP_DMAWP_HBND_SHFT                     16UL
649 
650     REG32                           reg15b4;                            // 0xbf802b68   0x5a
651     #define TSP_VQ_DMAW_PROTECT_EN                  0x00000001UL
652     #define TSP_DMAW_PROTECT_EN                     0x00000002UL
653     #define TSP_DMAW_ERRST_CLR                      0x00000004UL          // Set 1 to clear the error status of DMA write out of bound
654     #define TSP_PVR_TS_HEADER                       0x00000008UL          // Set 1 to bypass TS header in PIDFLT0 record
655     #define TSP_PVR_FILEIN                          0x00000010UL          // Set 1 to enable recoding through PIDFLT0
656     #define TSP_REC_ALL_TS                          0x00000020UL          // Set 1 to enable recoding TS from broadcast source in PIDFLT0
657     #define TSP_REC_ALL_FILE                        0x00000040UL          // Set 1 to enable recoding TS from file input source in PIDFLT0
658     #define TSP_AVFIFO_RD_EN                        0x00000080UL          // 0: AFIFO and VFIFO read are connected to MVD and MAD,  1: AFIFO and VFIFO read are controlled by registers (0x15B5[2:0])
659     #define TSP_AVFIFO_RD                           0x00000100UL          // If AVFIFO_RD_EN is 1, set to 1, then set to 0 would issue a read strobe to AFIFO or VFIFO
660     #define TSP_AVFIFO_SEL_VIDEO                    0x00000000UL
661     #define TSP_AVFIFO_SEL_AUDIO                    0x00000200UL
662     #define TSP_NMATCH_DIS                          0x00000800UL          // Set 1 to disable not match compare function
663     #define TSP_REC_DATA_INV_EN                     0x00001000UL          // Set 1 to enable data payload invert for PVR record
664     #define TSP_PLY_FILE_INV_EN                     0x00002000UL          // Set 1 to enable data payload invert in pidflt0 file path
665     #define TSP_PLY_TS_INV_EN                       0x00004000UL          // Set 1 to enable data payload invert in pidflt0 TS path
666     #define TSP_BYTE_TIMER_EN                       0x00008000UL          // Set 1 to enable byte timer in ts_if0 TS path
667     #define TSP_STR2MI_MIU_PINPON_EN                0x00010000UL          // Set 1 to enable MIU addresses with pinpon mode
668     #define TSP_REG_REC_PID_EN                      0x00020000UL          // Set 1 to record max 24 pid and ignore a/v/sec/adp flag.
669     #define TSP_TEI_SKIPE_PKT_PID0                  0x00040000UL          // Set 1 to skip error packets in pidflt0 TS path
670     #define TSP_TEI_SKIPE_PKT_FILE                  0x00080000UL          // Set 1 to skip error packets in pidflt0 file path
671     #define TSP_TEI_SKIPE_PKT_PID1                  0x00100000UL          // Set 1 to skip error packets in pidflt1 TS path
672     #define TSP_cnt_33b_ld                          0x01000000UL          // Set 1 to load cnt_33b
673     #define TSP_force_syncbyte                      0x02000000UL          // Set 1 to force sync byte (8'h47) in ts_if0 and ts_if1 path.
674     #define TSP_serial_ext_sync_1t                  0x04000000UL          // Set 1 to detect serial-in sync without 8-cycle mode
675     #define TSP_burst_len_MASK                      0x18000000UL          // 00,01:    burst length = 4; 10,11: burst length = 1
676     #define TSP_burst_len_SHIFT                     27UL
677     #define TSP_match_pid_num_ld                    0x20000000UL          // Set 1 to load match pid number
678     #define TSP_match_pid_scr_ts_ld                 0x40000000UL          // Set 1 to load match pid number with scramble information from FILE PIDFLT
679     #define TSP_match_pid_scr_fi_ld                 0x80000000UL          // Set 1 to load match pid number with scramble information from TS PIDFLT
680 
681     REG32                           TSP_MATCH_PID_NUM;                  // 0xbf802b70   0x5c
682     REG32                           TSP_IWB_WAIT;                       // 0xbf802b78   0x5e  // Wait count settings for IWB when TSP CPU i-cache is enabled.
683 
684     REG32                           Cpu_Base;                           // 0xbf802b80   0x60         //oneway/rw protect
685     #define TSP_CPU_BASE_ADDR_MASK                  0x03FFFFFFUL
686     REG32                           Qmem_Ibase;                         // 0xbf802b88   0x62
687     REG32                           Qmem_Imask;                         // 0xbf802b90   0x64
688     REG32                           Qmem_Dbase;                         // 0xbf802b98   0x66
689     REG32                           Qmem_Dmask;                         // 0xbf802ba0   0x68
690 
691     REG32                           TSP_Debug;                          // 0xbf802ba8   0x6a
692     #define TSP_DEBUG_MASK          0x00FFFFFFUL
693 
694     REG32                           TsFileIn_WPtr;                      // 0xbf802bb0   0x6c, bit0~bit24
695     REG32                           TsFileIn_RPtr;                      // 0xbf802bb8   0x6e
696     REG32                           TsFileIn_Timer;                     // 0xbf802bc0   0x70
697     REG32                           TsFileIn_Head;                      // 0xbf802bc8   0x72, bit0~bit24
698     REG32                           TsFileIn_Mid;                       // 0xbf802bd0   0x74
699     REG32                           TsFileIn_Tail;                      // 0xbf802bd8   0x76
700 
701     REG32                           Dnld_Ctrl;                          // 0xbf802be0   0x78, miu address
702     #define TSP_DNLD_ADDR_MASK                      0x0000FFFFUL
703     #define TSP_DNLD_ADDR_SHFT                      0UL
704     #define TSP_DNLD_ADDR_ALI_SHIFT                 4UL //Bit [11:4] of DMA_RADDR[19:0]
705     #define TSP_DNLD_NUM_MASK                       0xFFFF0000UL
706     #define TSP_DNLD_NUM_SHFT                       16UL
707 
708     REG32                           TSP_Ctrl;                           // 0xbf802be8   0x7a
709     #define TSP_CTRL_CPU_EN                         0x00000001UL
710     #define TSP_CTRL_SW_RST                         0x00000002UL
711     #define TSP_CTRL_DNLD_START                     0x00000004UL
712     #define TSP_CTRL_DNLD_DONE                      0x00000008UL          // see 0x78 for related information
713     #define TSP_CTRL_TSFILE_EN                      0x00000010UL
714     #define TSP_CTRL_R_PRIO                         0x00000020UL
715     #define TSP_CTRL_W_PRIO                         0x00000040UL
716     #define TSP_CTRL_IF0_PAD_SHIFT                  7UL
717     #define TSP_CTRL_IF0_PAD0_SEL                   0x00000000UL
718     #define TSP_CTRL_IF0_PAD1_SEL                   0x00000080UL
719     #define TSP_CTRL_ICACHE_EN                      0x00000100UL
720     #define TSP_CTRL_CPU2MI_R_PRIO                  0x00000400UL
721     #define TSP_CTRL_CPU2MI_W_PRIO                  0x00000800UL
722     #define TSP_CTRL_I_EL                           0x00000000UL
723     #define TSP_CTRL_I_BL                           0x00001000UL
724     #define TSP_CTRL_D_EL                           0x00000000UL
725     #define TSP_CTRL_D_BL                           0x00002000UL
726 
727     REG32                           PKT_CNT;                            // 0xbf802bf0   0x7c
728     #define TSP_PKT_CNT_MASK                        0x000000FFUL
729     #define TSP_DBG_SEL_MASK                        0xFFFF0000UL
730     #define TSP_DBG_SEL_SHIFT                       16UL
731 
732     REG16                           HwInt_Stat;                         // 0xbf802bf8   0x7e
733     #define TSP_HWINT_STATUS_MASK                   0xFF00UL              // Tsp2hk_int enable bits.
734     #define TSP_HWINT_TSP_PVR_TAIL0_STATUS          0x0100UL
735     #define TSP_HWINT_TSP_PVR_MID0_STATUS           0x0200UL
736     #define TSP_HWINT_TSP_PVR_TAIL1_STATUS          0x0100UL
737     #define TSP_HWINT_TSP_PVR_MID1_STATUS           0x0200UL
738     #define TSP_HWINT_TSP_HK_INT_FORCE_STATUS       0x0400UL
739     #define TSP_HWINT_TSP_FILEIN_MID_INT_STATUS     0x0800UL
740     #define TSP_HWINT_TSP_FILEIN_TAIL_INT_STATUS    0x1000UL
741     #define TSP_HWINT_TSP_SW_INT_STATUS             0x2000UL
742     #define TSP_HWINT_TSP_DMA_READ_DONE             0x4000UL
743     #define TSP_HWINT_TSP_AV_PKT_ERR                0x8000UL
744 
745     #define TSP_HWINT_HW_PVR_MASK                   (TSP_HWINT_TSP_PVR_TAIL0_STATUS|TSP_HWINT_TSP_PVR_TAIL1_STATUS)
746     #define TSP_HWINT_ALL                           (TSP_HWINT_TSP_SW_INT_STATUS|TSP_HWINT_HW_PVR_MASK)
747 
748     REG16                           TSP_Ctrl1;                          // 0xbf802bfc   0x7f
749     #define TSP_CTRL1_FILEIN_TIMER_ENABLE           0x0001UL
750     #define TSP_CTRL1_TSP_FILE_NON_STOP             0x0002UL              //Set 1 to enable TSP file data read without timer check
751     #define TSP_CTRL1_FILEIN_PAUSE                  0x0004UL
752     #define TSP_CTRL1_FILE_CHECK_WP                 0x0008UL
753     #define TSP_CTRL1_FILE_CHECK_WP_8x8             0x0040UL              // Select read threshold when playing back TS file to be at least 8x8 bytes
754     #define TSP_CTRL1_STANDBY                       0x0080UL
755     #define TSP_CTRL1_INT2NOEA                      0x0100UL
756     #define TSP_CTRL1_FILEIN_ENABLE                 0x0200UL
757     #define TSP_CTRL1_FORCE_XIU_WRDY                0x0400UL
758     #define TSP_CTRL1_CMDQ_RESET                    0x0800UL
759     #define TSP_CTRL1_DLEND_EN                      0x1000UL              // Set 1 to enable little-endian mode in TSP CPU
760     #define TSP_CTRL1_PVR_CMD_QUEUE_ENABLE          0x2000UL
761     #define TSP_CTRL1_FILE_WP_LOAD                  0x4000UL
762     #define TSP_CTRL1_DMA_RST                       0x8000UL
763 
764     //----------------------------------------------
765     // 0xBF802C00 MIPS direct access
766     //----------------------------------------------
767     REG32                           MCU_Data0;                           // 0xbf802c00   0x00
768     #define TSP_MCU_DATA_ALIVE                      TSP_MCU_CMD_ALIVE
769 
770     REG32                           LPcr1;                              // 0xbf802c08   0x02
771     REG32                           LPcr2;                              // 0xbf802c10   0x04
772     REG32                           reg160C;                            // 0xbf802c18   0x06
773     #define TSP_LPCR1_WLD                           0x00000001UL          // Set 1 to load LPCR1 value
774     #define TSP_LPCR1_RLD                           0x00000002UL          // Set 1 to read LPCR1 value (Default: 1)
775     #define TSP_LPCR2_WLD                           0x00000004UL          // Set 1 to load LPCR2 value
776     #define TSP_LPCR2_RLD                           0x00000008UL          // Set 1 to read LPCR2 value (Default: 1)
777     #define TSP_RECORD192_EN                        0x00000010UL          // 160C bit(5)enable TS packets with 192 bytes on record mode
778     #define TSP_FILEIN192_EN                        0x00000020UL          // 160C bit(5)enable TS packets with 192 bytes on file-in mode
779     #define TSP_DOUBLE_BUF_EN                       0x00000040UL          // tsin->pinpon filein->single
780     #define TSP_ORZ_DMAW_PROT_EN                    0x00000080UL          // 160C bit(7) open RISC DMA write protection
781     #define TSP_CLR_PIDFLT_BYTE_CNT                 0x00000100UL          // Clear pidflt0_file byte counter
782     #define TSP_WATCH_DOG_EN                        0x00000200UL          // Set 1 to count watch dog and release blocking scheme on second section interface when meeting timeout
783     #define TSP_BLK_DISABLE                         0x00000400UL          // Disable blocking scheme for second section interface
784     #define TSP_DOUBLE_BUF_SWITCH                   0x00000800UL          // tsin->single filein->pinpon
785     #define TSP_DOUBLE_BUF_DESC                     0x00004000UL          // 160d bit(6) remove buffer limitation
786     #define TSP_TIMESTAMP_RESET                     0x00008000UL          // 160d bit(7) reset timestamp
787     #define TSP_DIS_MIU_RQ                          0x00100000UL          // Disable miu R/W request for reset TSP usage
788     #define TSP_GDMA2WBSRAM_EN                      0x00200000UL          // Enable GDMA bridge for boot from SPI
789     #define TSP_GDMA2WBSRAM_ENDIAN_BIG              0x00400000UL          // Byte order of 4-byte GDMA to QMEM.
790     #define TSP_RM_DMA_GLITCH                       0x00800000UL          // Fix sec_dma overflow glitch
791     #define TSP_RESET_VFIFO                         0x01000000UL          // Reset VFIFO -- ECO Done
792     #define TSP_RESET_AFIFO                         0x02000000UL          // Reset AFIFO -- ECO Done
793     #define TSP_RESET_AFIFO2                        0x10000000UL
794     #define TSP_RESET_VFIFO3D                       0x20000000UL
795     #define TSP_REG_RESET_GDMA                      0x04000000UL          // Set 1 to reset GDMA bridge
796     #define TSP_CLR_ALL_FLT_MATCH                   0x08000000UL          // Set 1 to clean all flt_match in a packet
797 
798     REG32                           PktChkSizeFilein;                   // 0xbf802c20   0x08
799     #define TSP_PKT_SIZE_MASK                       0x000000FFUL
800     #define TSP_PKT192_BLK_DIS_FIN                  0x00000100UL          // Set 1 to disable file-in timestamp block scheme
801     #define TSP_AV_CLR                              0x00000200UL          // Clear AV FIFO overflow flag and in/out counter
802     #define TSP_HW_STANDBY_MODE                     0x00000400UL          // Set 1 to disable all SRAM in TSP for low power mode automatically
803     #define TSP_LIVEAB_SEL                          0x00010000UL          // switch tsif1 to filein
804     #define TSP_CNT_34B_DEFF_EN                     0x00020000UL          // Switch STC DIFF Mode (Output STC+DIFF to MVD and MAD)
805     #define TSP_DMA_OVERFLOW_MET_SEL                0x00040000UL
806     #define TSP_SYSTIME_MODE_STC64                  0x00080000UL
807     #define TSP_SEC_DMA_BURST_EN                    0x00800000UL
808     #define TSP_DUP_PKT_SKIP_VD                     0x02000000UL
809     #define TSP_DUP_PKT_SKIP_V3D                    0x04000000UL
810     #define TSP_DUP_PKT_SKIP_AV                     0x08000000UL
811     #define TSP_DUP_PKT_SKIP_AD                     0x10000000UL
812 
813     REG32                           Dnld_Ctrl2;                         // 0xbf802c28   0x0a
814     #define TSP_DNLD_ADDR_MASK1                     0x001F0000UL
815     #define TSP_DNLD_ADDR_SHFT1                     16UL
816     #define TSP_BLK_AF_SCRMB_BIT                    0x00000400UL          // Set 1 to block update pids to scrmb when the there are only AF in the pkt
817     #define TSP_TSIF0_CLK_STAMP_27_EN               0x00000100UL
818     #define TSP_PVR1_CLK_STAMP_27_EN                0x00000200UL
819     #define TSP_CMQ_WORD_EN                         0x00400000UL          // Set 1 to access CMDQ related registers in word.
820     #define TSP_NEW_WARB_BURST_MODE_DIS             0x00800000UL
821     #define TSP_V3D_PID_BYPASS                      0x08000000UL
822     #define TSP_AVPID_ST_SEL                        0x20000000UL
823         #define TSP_AVPID_ST_AV                     0x20000000UL
824         #define TSP_AVPID_ST_AU2V3D                 0x00000000UL
825     #define TSP_PS_VID3D_EN                         0x40000000UL
826     #define TSP_PREVENT_OVF_META                    0x80000000UL
827 
828     REG32                           TsPidScmbStatTsin;                  // 0xbf802c30   0x0c
829     REG32                           TsPidScmbStatFile;                  // 0xbf802c38   0x0e
830     REG32                           _xbf802c40_xbf802c70[7];            // 0xbf802c40-0xbf802c70  0x10-0x1C -reserved
831 
832     REG32                           DbgInfo_Ctrl1;                      //0xbf802c78     0x1E
833     #define TSP_CLR_SRC_MASK                0x00070000UL
834     #define TSP_CLR_SRC_SHIFT                       16UL
835         #define TSP_CLR_DISCINT_SRC_CH0             0x00010000UL
836         #define TSP_CLR_DISCINT_SRC_CHFILE          0x00020000UL
837     #define TSP_DISCONTI_VD_CLR                     0x00080000UL
838     #define TSP_DISCONTI_V3D_CLR                    0x00100000UL
839     #define TSP_DISCONTI_AUD_CLR                    0x00200000UL
840     #define TSP_DISCONTI_AUDB_CLR                   0x00400000UL
841     #define TSP_SRAM_COLLISION_CLR                  0x02000000UL
842 
843     REG32                           VQ0_BASE;                           // 0x3a2c80       0x20
844     #define TSP_VQ0_BASE_MASK                       0x03FFFFFFUL
845     REG32                           VQ0_CTRL;                           // 0x3a2c88       0x22
846     #define TSP_VQ0_SIZE_192PK_MASK                 0x0000FFFFUL
847     #define TSP_VQ0_SIZE_192PK_SHIFT                0UL
848     #define TSP_VQ0_WR_THRESHOLD_MASK               0x000F0000UL
849     #define TSP_VQ0_WR_THRESHOLD_SHIFT              16UL
850     #define TSP_VQ0_PRIORTY_THRESHOLD_MASK          0x00F00000UL
851     #define TSP_VQ0_PRIORTY_THRESHOL_SHIFT          20UL
852     #define TSP_VQ0_FORCE_FIRE_CNT_1K_MASK          0x0F000000UL
853     #define TSP_VQ0_FORCE_FIRE_CNT_1K_SHIFT         24UL
854     #define TSP_VQ0_RESET                           0x10000000UL
855     #define TSP_VQ0_OVERFLOW_INT_EN                 0x40000000UL  // Enable the interrupt for overflow happened on Virtual Queue path
856     #define TSP_VQ0_CLR_OVERFLOW_INT                0x80000000UL  // Clear the interrupt and the overflow flag
857     REG32                           VQ0_STATUS;                         // 0x3a2c90       0x24
858     #define TSP_VQ0_STATUS_MASK                     0x0000FFFFUL
859     #define TSP_VQ0_STATUS_SHIFT                    0UL
860     #define TSP_VQ0_EN                              0x00010000UL
861     #define TSP_REQ_VQ_RX_THRESHOLD_MASKE           0x00060000UL
862     #define TSP_REQ_VQ_RX_THRESHOLD_SHIFT           17UL
863         #define TSP_REQ_VQ_RX_THRESHOLD_LEN1        0x00000000UL
864         #define TSP_REQ_VQ_RX_THRESHOLD_LEN2        0x00020000UL
865         #define TSP_REQ_VQ_RX_THRESHOLD_LEN4        0x00040000UL
866         #define TSP_REQ_VQ_RX_THRESHOLD_LEN8        0x00060000UL
867     #define TSP_VQ_FILE_EN                          0x00100000UL
868     #define TSP_VQ_PINGPONG_EN                      0x00200000UL
869 
870     REG32                           _xbf802c98_xbf802ce0[10];            // 0xbf802c98-0xbf802ce0  0x26-0x38 -reserved
871     REG32                           DMAW1_1;                            // 0xbf802ce8   0x3a
872     #define TSP_DMAW1_ALI_SHIFT                     10UL
873     #define TSP_DMAW1_LBND_MASK1                    0x0000FFFFUL
874     #define TSP_DMAW1_LBND_SHIFT1                   0UL
875     #define TSP_DMAW1_UBND_MASK1                    0x0000FFFFUL
876     #define TSP_DMAW1_UBND_SHIFT1                   16UL
877     REG32                           DMAW2_1;                            // 0xbf802cf0   0x3c
878     #define TSP_DMAW2_ALI_SHIFT                     10UL
879     #define TSP_DMAW2_LBND_MASK1                    0x0000FFFFUL
880     #define TSP_DMAW2_LBND_SHIFT1                   0UL
881     #define TSP_DMAW2_UBND_MASK1                    0x0000FFFFUL
882     #define TSP_DMAW2_UBND_SHIFT1                   16UL
883     REG32                           ORZ_DMAW;                           // 0xbf802cf8   0x3e
884     #define TSP_ORZ_ALI_SHIFT                       2UL
885     #define TSP_ORZ_DMAW_LBND                       0x0000ffffUL
886     #define TSP_ORZ_DMAW_UBND                       0xffff0000UL
887     #define TSP_ORZ_DMAW_UBND_SHIFT                 16UL
888 
889     REG32_L                         CA_CTRL;                            // 0xbf802d00   0x40
890     #define TSP_CA_CTRL_MASK                        0x000000ffUL
891     #define TSP_CA_INPUT_TSIF0_LIVEIN               0x00000001UL
892     #define TSP_CA_INPUT_TSIF0_FILEIN               0x00000002UL
893     #define TSP_CA_INPUT_TSIF1                      0x00000004UL
894     #define TSP_CA_AVPAUSE                          0x00000008UL
895     #define TSP_CA_OUTPUT_PLAY_LIVE                 0x00000010UL
896     #define TSP_CA_OUTPUT_PLAY_FILE                 0x00000020UL
897     #define TSP_CA_OUTPUT_REC                       0x00000040UL
898 
899     REG32                           REG_ONEWAY;                         // 0xbf802d08   0x42
900     #define TSP_ONEWAY_REC_DISABLE                  0x00000001UL          //Disable record descrambled stream
901     #define TSP_ONEWAY_PVR_PORT                     0x00000002UL          //PVR buffer registers are oneway
902     #define TSP_ONEWAY_FW_PORT                      0x00000004UL          //Orz fw buffer registers are oneway
903     #define TSP_ONEWAY_QMEM_PORT                    0x00000008UL          //QMEM registers are oneway
904 
905     REG32                           _xbf802d10_xbf802d48[8];             // 0xbf802d10 -0xbf802d48  0x44-0x52 -reserved
906     REG32                           MOBF_PVR_KEY;                        // 0xbf802d50        0x54
907     #define TSP_MOBF_PVR_KEY0_MASK                  0x00FF0000UL
908     #define TSP_MOBF_PVR_KEY0_SHIFT                 16UL
909     #define TSP_MOBF_PVR_KEY1_MASK                  0xFF000000UL
910     #define TSP_MOBF_PVR_KEY1_SHIFT                 24UL
911 
912     REG32                           VQ1_Base;                           // 0xbf802d58   0x56
913 
914     REG32                           _xbf802d60_xbf802d68[2];            // 0xbf802d60 -0xbf802d68  0x58 -0x5a -reserved
915 
916     REG32                           VQ1_Size;                           // 0xbf802d70   0x5C
917     #define TSP_VQ1_SIZE_192BYTE_MASK               0xffff0000UL
918     #define TSP_VQ1_SIZE_192BYTE_SHIFT              16UL
919 
920     REG32                           VQ1_Config;                         // 0xbf802d78   0x5e
921     #define TSP_VQ1_WR_THRESHOLD_MASK               0x0000000FUL
922     #define TSP_VQ1_WR_THRESHOLD_SHIFT              0UL
923     #define TSP_VQ1_PRI_THRESHOLD_MASK              0x000000F0UL
924     #define TSP_VQ1_PRI_THRESHOLD_SHIFT             4UL
925     #define TSP_VQ1_FORCEFIRE_CNT_1K_MASK           0x00000F00UL
926     #define TSP_VQ1_FORCEFIRE_CNT_1K_SHIFT          8UL
927     #define TSP_VQ1_RESET                           0x00001000UL
928     #define TSP_VQ1_OVF_INT_EN                      0x00004000UL
929     #define TSP_VQ1_CLR_OVF_INT                     0x00008000UL
930 
931     REG32                           reg16C0;                            // 0xbf802d80   0x60
932     #define TSP_ORZ_DMAW_LBND_LSB8                  0x000000ffUL
933     #define TSP_ORZ_DMAW_UBND_LSB8                  0x0000ff00UL
934     #define TSP_ORZ_DMAW_UBND_LSB8_SHIFT            8UL
935     #define TSP_ORZ_DMAW_BND_ALT_SHIFT              2UL
936     #define TSP_TS_WATCH_DOG_MASK                   0xFFFF0000UL
937     #define TSP_TS_WATCH_DOG_SHIFT                  16UL
938 
939     REG32                           reg16C4;                            // 0xbf802d88   0x62
940     #define TSP_DMAW_BND_ALI_SHIFT                  2UL
941     #define TSP_DMAW_LBND_LSB8                      0x000000ffUL
942     #define TSP_DMAW_UBND_LSB8                      0x0000ff00UL
943     #define TSP_DMAW_UBND_LSB8_SHIFT                8UL
944     REG32                           reg16C8;                            // 0xbf802d90   0x64
945     #define TSP_DMAW1_BND_ALI_SHIFT                 2UL
946     #define TSP_DMAW1_LBND_LSB8                     0x000000ffUL
947     #define TSP_DMAW1_UBND_LSB8                     0x0000ff00UL
948     #define TSP_DMAW1_UBND_LSB8_SHIFT               8UL
949     REG32                           reg16CC;                            // 0xbf802d98   0x66
950     #define TSP_DMAW2_BND_ALI_SHIFT                 2UL
951     #define TSP_DMAW2_LBND_LSB8                     0x000000ffUL
952     #define TSP_DMAW2_UBND_LSB8                     0x0000ff00UL
953     #define TSP_DMAW2_UBND_LSB8_SHIFT               8UL
954     REG32                           _xbf802da0_xbf802da8[2];            // 0xbf802da0 -0xbf802da8  0x68-0x6a -reserved
955     REG16                           SwInt_Stat1_L;                      // 0xbf802dB0   0x6c
956     #define TSP_HWINT2_EN_MASK                      0x00FFUL
957     #define TSP_HWINT2_STATUS_MASK                  0xFF00UL
958     #define TSP_HWINT2_STATUS_SHIFT                 8UL
959     #define TSP_HWINT2_DMA_WPR_STATUS               0x0100UL
960     #define TSP_HWINT2_ORZ_WPR_STATUS               0x0200UL
961     #define TSP_HWINT2_VQ_OVERFLOW_STATUS           0x1000UL
962 
963     REG16                           SwInt_Stat1_M;
964     REG32                           SwInt_Stat1_H;                     // 0xbf802dB8   0x6e
965     #define TSP_SWINT1_H_SHFT                       0UL
966     #define TSP_SWINT1_H_MASK                       0x0000FFFFUL
967 
968     REG32                           TimeStamp_FileIn;                  // 0xbf802dC0   0x70
969 
970     REG32                           HW2_Config3;                       // 0xbf802dC0   0x72
971     #define TSP_RM_OVERFLOW_GLITCH                  0x00000008UL
972     #define TSP_DUP_PKT_CNT_CLR                     0x00000040UL
973     #define TSP_REC_AT_SYNC_DIS                     0x00000100UL
974     #define TSP_PVR_ALIGN_EN                        0x00000200UL
975     #define TSP_FORCE_SYNC_EN                       0x00000400UL
976     #define TSP_DMA_FLUSH_EN                        0x00040000UL
977     #define TSP_STR2MI_WP_LD                        0x00080000UL
978     #define TSP_CLR_SEC_DMAW_OVERFLOW               0x10000000UL
979     #define TSP_PUSI_3BYTE_MODE                     0x40000000UL         // set 1 to set pusi flag only in first 3 byte of the payload
980 
981     REG32                           DMAW3_LBND;                        // 0xbf802dC0   0x74, MIU Address 3 of the lower bound of DMA write protection when REG15B4[1] is 1
982     REG32                           DMAW3_UBND;                        // 0xbf802dC0   0x76, MIU Address 3 of the upper bound of DMA write protection when REG15B4[1] is 1
983         #define TSP_DMAW3_BND_ALI_SHIFT             2UL
984         #define TSP_DMAW3_LBND_MASK                 0x00FFFFFFUL
985         #define TSP_DMAW3_UBND_MASK                 0x00FFFFFFUL
986     REG32                           DMAW4_LBND;                        // 0xbf802dC0   0x78, MIU Address 4 of the lower bound of DMA write protection when REG15B4[1] is 1
987     REG32                           DMAW4_UBND;                        // 0xbf802dC0   0x7a, MIU Address 4  of the upper bound of DMA write protection when REG15B4[1] is 1
988         #define TSP_DMAW4_BND_ALI_SHIFT             2UL
989         #define TSP_DMAW4_LBND_MASK                 0x00FFFFFFUL
990         #define TSP_DMAW4_UBND_MASK                 0x00FFFFFFUL
991     REG32                           MCU_Data1;                         // 0xbf802dC0   0x7C
992 } REG_Ctrl;
993 
994 // TSP part 2
995 typedef struct _REG_Ctrl2
996 {
997     REG16                           Overflow0;                          // 0xbf803900   0x40
998     #define AFIFO_EVER_OVERFLOW                     0x0020UL
999     #define AFIFOB_EVER_OVERFLOW                    0x0040UL
1000     #define VFIFO_EVER_OVERFLOW                     0x0080UL
1001     #define V3DFIFO_EVER_OVERFLOW                   0x0100UL
1002     #define PVR_1_EVER_OVERFLOW                     0x0200UL
1003     #define VQ_TX0_EVER_OVERFLOW                    0x1000UL
1004     #define VQ_TX1_EVER_OVERFLOW                    0x2000UL
1005 
1006     REG16                           Overflow1;                          // 0xbf803904   0x41
1007     #define SEC_PINGPONG_EVER_OVERFLOW              0x0001UL
1008     #define SEC_SINGLE_EVER_OVERFLOW                0x0002UL
1009     #define SEC_DMAW_OVERFLOW                       0x0004UL
1010 
1011     REG16                           FifoStatus;                         // 0xbf803908   0x42
1012     #define AFIFO_STATUS_MASK                       0x000FUL
1013     #define AFIFO_STATUS_SHFT                       0UL
1014     #define AFIFOB_STATUS_MASK                      0x00F0UL
1015     #define AFIFOB_STATUS_SHFT                      4UL
1016     #define VFIFO_STATUS_MASK                       0x0F00UL
1017     #define VFIFO_STATUS_SHFT                       8UL
1018     #define V3DFIFO_STATUS_MASK                     0xF000UL
1019     #define V3DFIFO_STATUS_SHFT                     12UL
1020 
1021     REG16                           PvrFifoStatus;                      // 0xbf80390C   0x43
1022     #define PVR_1_STATUS_MASK                       0x000FUL
1023     #define PVR_1_STATUS_SHFT                       0UL
1024 
1025     REG16                           VQTxFifoStatus;                      // 0xbf803910   0x44
1026     #define VQ_TX0_STATUS_MASK                      0x000FUL
1027     #define VQ_TX0_STATUS_SHFT                      0UL
1028     #define VQ_TX1_STATUS_MASK                      0x0F00UL
1029     #define VQ_TX1_STATUS_SHFT                      8UL
1030 
1031     REG16                           PktCnt_TS0;                          // 0xbf803914   0x45
1032     REG16                           PktCnt_TS1;                          // 0xbf803918   0x46
1033     REG16                           PktCnt_TS2;                          // 0xbf80391C   0x47
1034     REG16                           PktCnt_File;                         // 0xbf803920   0x48
1035     #define DISCONTI_CNT_AUDIO_MASK                 0x000FUL
1036     #define DISCONTI_CNT_AUDIO_SHFT                 0UL
1037     #define DISCONTI_CNT_AUDIOB_MASK                0x00F0UL
1038     #define DISCONTI_CNT_AUDIOB_SHFT                4UL
1039     #define DISCONTI_CNT_VIDEO_MASK                 0x0F00UL
1040     #define DISCONTI_CNT_VIDEO_SHFT                 8UL
1041     #define DISCONTI_CNT_V3D_MASK                   0xF000UL
1042     #define DISCONTI_CNT_V3D_SHFT                   12UL
1043 
1044     #define DROP_CNT_AUDIO_MASK                     0x000FUL
1045     #define DROP_CNT_AUDIO_SHFT                     0UL
1046     #define DROP_CNT_AUDIOB_MASK                    0x00F0UL
1047     #define DROP_CNT_AUDIOB_SHFT                    4UL
1048     #define DROP_CNT_VIDEO_MASK                     0x0F00UL
1049     #define DROP_CNT_VIDEO_SHFT                     8UL
1050     #define DROP_CNT_V3D_MASK                       0xF000UL
1051     #define DROP_CNT_V3D_SHFT                       12UL
1052 
1053     REG16                           LockPktCnt;                          // 0xbf803924   0x49
1054     #define TS0_LOCK_CNT_MASK                       0x000FUL
1055     #define TS0_LOCK_CNT_SHFT                       0UL
1056     #define TS1_LOCK_CNT_MASK                       0x00F0UL
1057     #define TS1_LOCK_CNT_SHFT                       4UL
1058     #define TSCB_LOCK_CNT_MASK                      0xF000UL
1059     #define TSCB_LOCK_CNT_SHFT                      12UL
1060 
1061     REG16                           AVPktCnt;                            // 0xbf803928   0x4A
1062     #define VIDEO_PKT_CNT_MASK                      0x000FUL
1063     #define VIDEO_PKT_CNT_SHFT                      0UL
1064     #define AUDIO_PKT_CNT_MASK                      0x00F0UL
1065     #define AUDIO_PKT_CNT_SHFT                      4UL
1066 
1067 
1068     REG16                           PktErrStatus;                        // 0xbf80392C   0x4B
1069     REG16                           PidMatched0;                         // 0xbf803930   0x4C
1070     REG16                           PidMatched1;                         // 0xbf803934   0x4D
1071     REG16                           PidMatched2;                         // 0xbf803938   0x4E
1072     REG16                           PidMatched3;                         // 0xbf80393C   0x4F
1073 
1074     REG16                           Sram_Collision;                      // 0xbf803940   0x50
1075 
1076     REG16                           dummy_0x51_0x6F[0x70-0x51];          // 0xbf803998   0x51 ~6F
1077 
1078     REG32                           Qmem_Config;                         // 0xbf8039FC   0x70
1079     #define TSP_QMEM_DBG_MODE                       0x00000001UL
1080     #define TSP_TSP_SEL_SRAM                        0x00000002UL
1081     #define TSP_QMEM_DBG_RADDR                      0xFFFF0000UL
1082 
1083     REG32                           Qmem_Dbg_Rd;                         // 0xbf8039FC   0x72
1084 
1085     REG16                           dummy_0x74_0x76[0x77-0x74];          // 0xbf803998   0x74 ~77
1086 
1087     REG16                           HwCfg0;                              // 0x77
1088     #define TSP_TSIFCFG_WB_FSM_RESET                0x0001UL
1089     #define TSP_TSIFCFG_WB_FSM_RESET_FINISH         0x0002UL
1090 
1091     #define MASK_SCR_VID_EN                         0x0004UL
1092     #define MASK_SCR_VID_3D_EN                      0x0008UL
1093     #define MASK_SCR_AUD_EN                         0x0010UL
1094     #define MASK_SCR_AUDB_EN                        0x0020UL
1095     #define MASK_SCR_PVR1_EN                        0x0040UL
1096     #define PREVENT_SRAM_COLLISION                  0x0080UL
1097 
1098     #define TSP_3WIRE_SERIAL_MODE_MASK              0x0300UL           //set 1 to enable 3 wire serial in mode: Combine valid and clk.Valid always 1 and gated clk when no data in
1099     #define TSP_3WIRE_SERIAL_TSIF0                  0x0100UL
1100     #define TSP_3WIRE_SERIAL_TSIF1                  0x0200UL
1101 
1102     REG16                           HwCfg1;                              // 0x78
1103     #define NEW_OVERFLOW_MODE                       0x0001UL
1104     #define AF_PKT_LOSS_BYTE_ECO                    0x0004UL  // reg_adp_sel_sync_byte_cnt_out_en .issue befor:use section mode get AF only pkt may loss one byte
1105     #define FIX_PINPON_SYNC_IN_ECO                  0x0008UL  // if enable, overflow flag will be clear after dma_abort and buffer not full. if disable, overflow flag will be clear once buffer un-full.
1106     #define DMA_WADDR_INC_NEW_MODE                  0x0010UL  // default 0
1107     #define DIS_CNT_INC_BY_PAYLOAD                  0x0040UL
1108     #define UPDATE_SCRAMBLE_PID_PUSI                0x0080UL
1109     REG16                           dummy_0x79_0x7E[0x7f-0x79];
1110     REG16                           HwCfg2;                               // 0xbf8039FC   0x7F
1111     #define HW_INFO_SRC_MODE_MASK                   0x0003UL
1112     #define REG_SRC_SEL                             0x0001UL
1113     #define REG_DROP_PKT_MODE                       0x0002UL
1114     #define REG_RST_CC_MODE                         0x0004UL
1115 
1116 } REG_Ctrl2;
1117 
1118 // TSP part 3
1119 typedef struct _REG_Ctrl3
1120 {
1121     REG32                           ReSample_Config;                     // 0xbf8C1400   0x00
1122     #define TSP_RESAMPLE_EN                         0x00000001UL
1123     #define TSP_TS_SOURCE_MASK                      0x00000006UL
1124     #define TSP_RETURN_STATUS                       0x0000FFF8UL
1125     #define TSP_RESAMPLE_CTRL                       0xFFFF0000UL
1126 
1127     REG32                           Clk_Phase;                           // 0xbf8C1408   0x02
1128     #define TSP_CLK_PHASE                           0x000000FFUL
1129     #define TSP_CLK_PHASE_DIFF                      0x0000FF00UL
1130     #define TSP_MIN_CLK                             0x00FF0000UL
1131     #define TSP_MAX_CLK                             0x00FF0000UL
1132 
1133     REG32                           MaxMin_SyncValid;                    // 0xbf8C1410   0x04
1134     #define TSP_MIN_SYNC                            0x000000FFUL
1135     #define TSP_MAX_SYNC                            0x0000FF00UL
1136     #define TSP_MIN_VALID                           0x00FF0000UL
1137     #define TSP_MAX_VALID                           0xFF000000UL
1138 
1139     REG32                           MaxMin_dat0dat1;                     // 0xbf8C1418   0x06
1140     #define TSP_MIN_DAT0                            0x000000FFUL
1141     #define TSP_MAX_DAT0                            0x0000FF00UL
1142     #define TSP_MIN_DAT1                            0x00FF0000UL
1143     #define TSP_MAX_DAT1                            0xFF000000UL
1144 
1145     REG32                           MaxMin_dat2dat3;                     // 0xbf8C1420   0x08
1146     #define TSP_MIN_DAT2                            0x000000FFUL
1147     #define TSP_MAX_DAT2                            0x0000FF00UL
1148     #define TSP_MIN_DAT3                            0x00FF0000UL
1149     #define TSP_MAX_DAT3                            0xFF000000UL
1150 
1151     REG32                           MaxMin_dat4dat5;                     // 0xbf8C1428   0x0A
1152     #define TSP_MIN_DAT4                            0x000000FFUL
1153     #define TSP_MAX_DAT4                            0x0000FF00UL
1154     #define TSP_MIN_DAT5                            0x00FF0000UL
1155     #define TSP_MAX_DAT5                            0xFF000000UL
1156 
1157     REG32                           MaxMin_dat6dat7;                     // 0xbf8C1430   0x0C
1158     #define TSP_MIN_DAT6                            0x000000FFUL
1159     #define TSP_MAX_DAT6                            0x0000FF00UL
1160     #define TSP_MIN_DAT7                            0x00FF0000UL
1161     #define TSP_MAX_DAT7                            0xFF000000UL
1162 
1163     REG32                           _xbf8C1438_xbf8C1478[9];             // 0xbf8C1438 - 0xbf8C1478  0x0E-0x1E -reserved
1164 
1165     REG16                           Hw_Semaphore0;                       // 0xbf8C1480   0x20
1166     REG16                           Hw_Semaphore1;                       // 0xbf8C1484   0x21
1167     REG16                           Hw_Semaphore2;                       // 0xbf8C1488   0x22
1168 
1169     REG16                           Hw_Eco0;                             // 0xbf8C148C   0x23
1170     #define TSP_FIXED_MIU_FLUSH                     0x0800
1171     REG16                           Hw_Eco1;                             // 0xbf8C1490   0x24
1172     REG16                           Hw_Eco2;                             // 0xbf8C1494   0x25
1173     #define TSP_VQ0_FORCEFIRE_CNT_1K_EXT_MASK       0x0003
1174     #define TSP_VQ1_FORCEFIRE_CNT_1K_EXT_MASK       0x000C
1175 
1176 } REG_Ctrl3;
1177 
1178 // Firmware status
1179 #define TSP_FW_STATE_MASK           0xFFFF0000UL
1180 #define TSP_FW_STATE_LOAD           0x00010000UL
1181 #define TSP_FW_STATE_ENG_OVRUN      0x00020000UL
1182 #define TSP_FW_STATE_ENG1_OVRUN     0x00040000UL                          //[reserved]
1183 #define TSP_FW_STATE_IC_ENABLE      0x01000000UL
1184 #define TSP_FW_STATE_DC_ENABLE      0x02000000UL
1185 #define TSP_FW_STATE_IS_ENABLE      0x04000000UL
1186 #define TSP_FW_STATE_DS_ENABLE      0x08000000UL
1187 
1188 // TSP AEON specific IP address
1189 #define OPENRISC_IP_1_ADDR 0x00200000UL
1190 #define OPENRISC_IP_1_SIZE 0x00020000UL
1191 #define OPENRISC_IP_2_ADDR 0x90000000UL
1192 #define OPENRISC_IP_2_SIZE 0x00010000UL
1193 #define OPENRISC_IP_3_ADDR 0x40080000UL
1194 #define OPENRISC_IP_3_SIZE 0x00020000UL
1195 #define OPENRISC_QMEM_ADDR 0x00000000UL
1196 #define OPENRISC_QMEM_SIZE 0x00003000UL
1197 
1198 #endif // _TSP_REG_H_
1199 
1200