xref: /utopia/UTPA2-700.0.x/modules/dmx/hal/k7u/tsp/regTSP.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1*53ee8cc1Swenshuai.xi #ifndef _TSP2_REG_H_
2*53ee8cc1Swenshuai.xi #define _TSP2_REG_H_
3*53ee8cc1Swenshuai.xi 
4*53ee8cc1Swenshuai.xi typedef struct _REG32
5*53ee8cc1Swenshuai.xi {
6*53ee8cc1Swenshuai.xi     volatile MS_U16                 low;
7*53ee8cc1Swenshuai.xi     volatile MS_U16                 _null_l;
8*53ee8cc1Swenshuai.xi     volatile MS_U16                 high;
9*53ee8cc1Swenshuai.xi     volatile MS_U16                 _null_h;
10*53ee8cc1Swenshuai.xi } REG32;
11*53ee8cc1Swenshuai.xi 
12*53ee8cc1Swenshuai.xi typedef struct _REG16
13*53ee8cc1Swenshuai.xi {
14*53ee8cc1Swenshuai.xi     volatile MS_U16                 data;   //[jerry] not to name "low"
15*53ee8cc1Swenshuai.xi     volatile MS_U16                 _null;
16*53ee8cc1Swenshuai.xi } REG16;
17*53ee8cc1Swenshuai.xi 
18*53ee8cc1Swenshuai.xi typedef struct _TSP32
19*53ee8cc1Swenshuai.xi {
20*53ee8cc1Swenshuai.xi     volatile MS_U32                 reg32;
21*53ee8cc1Swenshuai.xi } TSP32;
22*53ee8cc1Swenshuai.xi 
23*53ee8cc1Swenshuai.xi 
24*53ee8cc1Swenshuai.xi //#########################################################################
25*53ee8cc1Swenshuai.xi //#### Hardware Capability Macro Start
26*53ee8cc1Swenshuai.xi //#########################################################################
27*53ee8cc1Swenshuai.xi 
28*53ee8cc1Swenshuai.xi #define TSP_TSIF_NUM                7
29*53ee8cc1Swenshuai.xi #define TSP_PVRENG_NUM              10
30*53ee8cc1Swenshuai.xi #define TSP_PVR_IF_NUM              7
31*53ee8cc1Swenshuai.xi #define TSP_OTVENG_NUM              8
32*53ee8cc1Swenshuai.xi #define STC_ENG_NUM                 8
33*53ee8cc1Swenshuai.xi #define TSP_PCRFLT_NUM              STC_ENG_NUM
34*53ee8cc1Swenshuai.xi 
35*53ee8cc1Swenshuai.xi #define TSP_PIDFLT_NUM              768
36*53ee8cc1Swenshuai.xi #define TSP_SECFLT_NUM              512
37*53ee8cc1Swenshuai.xi #define TSP_SECBUF_NUM              512
38*53ee8cc1Swenshuai.xi 
39*53ee8cc1Swenshuai.xi #define TSP_MERGESTREAM_NUM         32
40*53ee8cc1Swenshuai.xi 
41*53ee8cc1Swenshuai.xi //@NOTE: accroding to width of FW/VQ/SEC buffer base addr , lower / upper bound may be different
42*53ee8cc1Swenshuai.xi #define TSP_FW_BUF_LOW_BUD          0
43*53ee8cc1Swenshuai.xi #define TSP_FW_BUF_UP_BUD           ((1ULL << 32) - 1) // base addr: bits[31:4] , unit: 16-bytes (bits[3:0])
44*53ee8cc1Swenshuai.xi                                                        // base addr = {reg_dma_raddr_msb(8-bits),reg_dma_raddr(16-bits),4'b0(4-bits)}
45*53ee8cc1Swenshuai.xi #define TSP_VQ_BUF_LOW_BUD          0
46*53ee8cc1Swenshuai.xi #define TSP_VQ_BUF_UP_BUD           ((1ULL << 32) - 1) // base addr: bits[31:0] , unit: 1-byte
47*53ee8cc1Swenshuai.xi #define TSP_SEC_BUF_LOW_BUD         0
48*53ee8cc1Swenshuai.xi #define TSP_SEC_BUF_UP_BUD          ((1ULL << 32) - 1) // base addr: bits[31:0] , unit: 1-byte
49*53ee8cc1Swenshuai.xi 
50*53ee8cc1Swenshuai.xi 
51*53ee8cc1Swenshuai.xi 
52*53ee8cc1Swenshuai.xi //#########################################################################
53*53ee8cc1Swenshuai.xi //#### Hardware Capability Macro End
54*53ee8cc1Swenshuai.xi //#########################################################################
55*53ee8cc1Swenshuai.xi 
56*53ee8cc1Swenshuai.xi 
57*53ee8cc1Swenshuai.xi // PID Filter
58*53ee8cc1Swenshuai.xi typedef TSP32                       REG_PidFlt;                         // 0x210000
59*53ee8cc1Swenshuai.xi 
60*53ee8cc1Swenshuai.xi #define TSP_FILTER_DEPTH            16
61*53ee8cc1Swenshuai.xi 
62*53ee8cc1Swenshuai.xi 
63*53ee8cc1Swenshuai.xi //#########################################################################
64*53ee8cc1Swenshuai.xi //#### CLKGEN0 Bank:0x100B
65*53ee8cc1Swenshuai.xi //#########################################################################
66*53ee8cc1Swenshuai.xi #define TSP_CLKGEN0_REG(addr)       (*((volatile MS_U16*)(_u32RegBase + 0x1600 + ((addr)<<2))))
67*53ee8cc1Swenshuai.xi 
68*53ee8cc1Swenshuai.xi     #define REG_CLKGEN0_DC0_SYTNTH                  0x05
69*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_STC_CW_SEL              0x0002
70*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_STC_CW_EN               0x0004
71*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_STC1_CW_SEL             0x0200
72*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_STC1_CW_EN              0x0400
73*53ee8cc1Swenshuai.xi 
74*53ee8cc1Swenshuai.xi     #define REG_CLKGEN0_DC0_STC_CW_L                0x06
75*53ee8cc1Swenshuai.xi     #define REG_CLKGEN0_DC0_STC_CW_H                0x07
76*53ee8cc1Swenshuai.xi     #define REG_CLKGEN0_DC0_STC1_CW_L               0x08
77*53ee8cc1Swenshuai.xi     #define REG_CLKGEN0_DC0_STC1_CW_H               0x09
78*53ee8cc1Swenshuai.xi 
79*53ee8cc1Swenshuai.xi     #define REG_CLKGEN0_S2P_IN_CLK_SRC              0x0C
80*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_S2P_IN_CLK_SHIFT        0
81*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_S2P1_IN_CLK_SHIFT       8
82*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_S2P_IN_CLK_MASK         0x1F
83*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_S2P_IN_CLK_DISABLE      0x0001
84*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_S2P_IN_CLK_INVERT       0x0002
85*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_S2P_IN_CLK_SRC_SHIFT    2
86*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_S2P_IN_CLK_SRC_MASK     0x7
87*53ee8cc1Swenshuai.xi 
88*53ee8cc1Swenshuai.xi     #define REG_CLKGEN0_TSO0_CLK                    0x27    // TSO #0
89*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_TSO0_SHIFT              0
90*53ee8cc1Swenshuai.xi 
91*53ee8cc1Swenshuai.xi     #define REG_CLKGEN0_TS0_CLK                     0x28
92*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_TS0_SHIFT               0
93*53ee8cc1Swenshuai.xi     #define REG_CLKGEN0_TS1_CLK                     0x28
94*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_TS1_SHIFT               8
95*53ee8cc1Swenshuai.xi     #define REG_CLKGEN0_TS2_CLK                     0x29
96*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_TS2_SHIFT               0
97*53ee8cc1Swenshuai.xi     #define REG_CLKGEN0_TS3_CLK                     0x29
98*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_TS3_SHIFT               8
99*53ee8cc1Swenshuai.xi     #define REG_CLKGEN0_TS4_CLK                     0x6B
100*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_TS4_SHIFT               0
101*53ee8cc1Swenshuai.xi     #define REG_CLKGEN0_TS5_CLK                     0x6B
102*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_TS5_SHIFT               8
103*53ee8cc1Swenshuai.xi     #define REG_CLKGEN0_TS6_CLK                     0x6C
104*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_TS6_SHIFT               0
105*53ee8cc1Swenshuai.xi 
106*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_TS_MASK                 0x003F  // 4 bit each
107*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_TS_DISABLE              0x0001
108*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_TS_INVERT               0x0002
109*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_TS_SRC_SHIFT            2
110*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_TS_SRC_MASK             0x000F
111*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_TS_SRC_EXT0             0x0000
112*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_TS_SRC_EXT1             0x0001
113*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_TS_SRC_EXT2             0x0002
114*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_TS_SRC_EXT3             0x0003
115*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_TS_SRC_EXT4             0x0004
116*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_TS_SRC_EXT5             0x0005
117*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_TS_SRC_EXT6             0x0006
118*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_TS_SRC_EXT7             0x0007
119*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_TS_SRC_EXT8             0x0008
120*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_TS_SRC_TSO0             0x0009
121*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_TS_SRC_TSO1             0x000A
122*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_TS_SRC_TSIO0            0x000B
123*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_TS_SRC_CILINK           0x000C
124*53ee8cc1Swenshuai.xi         //@NOTE Not support internal demod in K7U
125*53ee8cc1Swenshuai.xi 
126*53ee8cc1Swenshuai.xi     //get TSP Clk Gen bank
127*53ee8cc1Swenshuai.xi     #define REG_CLKGEN0_TSP_CLK                     0x2A
128*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_TSP_CLK_MASK            0x001F
129*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_TSP_SHIFT               0
130*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_TSP_DISABLE             0x0001
131*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_TSP_INVERT              0x0002
132*53ee8cc1Swenshuai.xi         //SRC
133*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_TSP_SRC_SHIFT           2
134*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_TSP_SRC_MASK            0x0007
135*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_TSP_SRC_288MHZ          0x0000
136*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_TSP_SRC_240MHZ          0x0001
137*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_TSP_SRC_216MHZ          0x0002
138*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_TSP_SRC_192MHZ          0x0003
139*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_TSP_SRC_172MHZ          0x0004
140*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_TSP_SRC_144MHZ          0x0005
141*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_TSP_SRC_108MHZ          0x0006
142*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_TSP_SRC_XTAL            0x0007
143*53ee8cc1Swenshuai.xi 
144*53ee8cc1Swenshuai.xi     //get STC0/1 Clk Gen bank
145*53ee8cc1Swenshuai.xi     #define REG_CLKGEN0_STC0_CLK                    0x2A
146*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_STC0_MASK               0x0F00
147*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_STC0_SHIFT              8
148*53ee8cc1Swenshuai.xi     #define REG_CLKGEN0_STC1_CLK                    0x2A
149*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_STC1_MASK               0xF000
150*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_STC1_SHIFT              12
151*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_STC_DISABLE             0x0001
152*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_STC_INVERT              0x0002
153*53ee8cc1Swenshuai.xi         //SRC
154*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_STC_SRC_SHIFT           2
155*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_STC_SRC_MASK            0x0003
156*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_STC_SRC_SYNTH           0x0000
157*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_STC_SRC_ONE             0x0001  // reserved
158*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_STC_SRC_27M             0x0002
159*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_STC_SRC_XTAL            0x0003  // reserved
160*53ee8cc1Swenshuai.xi 
161*53ee8cc1Swenshuai.xi     #define REG_CLKGEN0_STAMP_CLK                   0x2F
162*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_STAMP_MASK              0x0F00
163*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_STAMP_SHIFT             8
164*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_STAMP_DISABLE           0x0001
165*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_STAMP_INVERT            0x0002
166*53ee8cc1Swenshuai.xi 
167*53ee8cc1Swenshuai.xi     #define REG_CLKGEN0_PARSER_CLK                  0x39
168*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_PARSER_MASK             0x0F00
169*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_PARSER_SHIFT            8
170*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_PARSER_DISABLE          0x0001
171*53ee8cc1Swenshuai.xi         #define REG_CLKGEN0_PARSER_INVERT           0x0002
172*53ee8cc1Swenshuai.xi 
173*53ee8cc1Swenshuai.xi //#########################################################################
174*53ee8cc1Swenshuai.xi //#### CLKGEN1 Bank:0x1033
175*53ee8cc1Swenshuai.xi //#########################################################################
176*53ee8cc1Swenshuai.xi #define TSP_CLKGEN1_REG(addr)       (*((volatile MS_U16*)(_u32RegBase + 0x6600 + ((addr)<<2))))
177*53ee8cc1Swenshuai.xi     #define REG_CLKGEN1_DC0_SYTNTH                  0x5A
178*53ee8cc1Swenshuai.xi         #define REG_CLKGEN1_STC4_CW_SEL             0x0002
179*53ee8cc1Swenshuai.xi         #define REG_CLKGEN1_STC4_CW_EN              0x0004
180*53ee8cc1Swenshuai.xi         #define REG_CLKGEN1_STC5_CW_SEL             0x0200
181*53ee8cc1Swenshuai.xi         #define REG_CLKGEN1_STC5_CW_EN              0x0400
182*53ee8cc1Swenshuai.xi 
183*53ee8cc1Swenshuai.xi     #define REG_CLKGEN1_DC0_STC4_CW_L               0x5B
184*53ee8cc1Swenshuai.xi     #define REG_CLKGEN1_DC0_STC4_CW_H               0x5C
185*53ee8cc1Swenshuai.xi     #define REG_CLKGEN1_DC0_STC5_CW_L               0x5D
186*53ee8cc1Swenshuai.xi     #define REG_CLKGEN1_DC0_STC5_CW_H               0x5E
187*53ee8cc1Swenshuai.xi 
188*53ee8cc1Swenshuai.xi     #define REG_CLKGEN1_STC4_CLK                    0x5F
189*53ee8cc1Swenshuai.xi         #define REG_CLKGEN1_STC4_MASK               0x000F
190*53ee8cc1Swenshuai.xi         #define REG_CLKGEN1_STC4_SHIFT              0
191*53ee8cc1Swenshuai.xi     #define REG_CLKGEN1_STC5_CLK                    0x5F
192*53ee8cc1Swenshuai.xi         #define REG_CLKGEN1_STC5_MASK               0x00F0
193*53ee8cc1Swenshuai.xi         #define REG_CLKGEN1_STC5_SHIFT              4
194*53ee8cc1Swenshuai.xi         #define REG_CLKGEN1_STC_DISABLE             0x0001
195*53ee8cc1Swenshuai.xi         #define REG_CLKGEN1_STC_INVERT              0x0002
196*53ee8cc1Swenshuai.xi         //SRC
197*53ee8cc1Swenshuai.xi         #define REG_CLKGEN1_STC_SRC_SHIFT           2
198*53ee8cc1Swenshuai.xi         #define REG_CLKGEN1_STC_SRC_MASK            0x0003
199*53ee8cc1Swenshuai.xi         #define REG_CLKGEN1_STC_SRC_SYNTH           0x0000
200*53ee8cc1Swenshuai.xi         #define REG_CLKGEN1_STC_SRC_ONE             0x0001  // reserved
201*53ee8cc1Swenshuai.xi         #define REG_CLKGEN1_STC_SRC_27M             0x0002
202*53ee8cc1Swenshuai.xi         #define REG_CLKGEN1_STC_SRC_XTAL            0x0003  // reserved
203*53ee8cc1Swenshuai.xi 
204*53ee8cc1Swenshuai.xi     #define REG_CLKGEN1_DC1_SYTNTH                  0x6A
205*53ee8cc1Swenshuai.xi         #define REG_CLKGEN1_STC6_CW_SEL             0x0002
206*53ee8cc1Swenshuai.xi         #define REG_CLKGEN1_STC6_CW_EN              0x0004
207*53ee8cc1Swenshuai.xi         #define REG_CLKGEN1_STC7_CW_SEL             0x0200
208*53ee8cc1Swenshuai.xi         #define REG_CLKGEN1_STC7_CW_EN              0x0400
209*53ee8cc1Swenshuai.xi 
210*53ee8cc1Swenshuai.xi     #define REG_CLKGEN1_DC1_STC6_CW_L               0x6B
211*53ee8cc1Swenshuai.xi     #define REG_CLKGEN1_DC1_STC6_CW_H               0x6C
212*53ee8cc1Swenshuai.xi     #define REG_CLKGEN1_DC1_STC7_CW_L               0x6D
213*53ee8cc1Swenshuai.xi     #define REG_CLKGEN1_DC1_STC7_CW_H               0x6E
214*53ee8cc1Swenshuai.xi 
215*53ee8cc1Swenshuai.xi     #define REG_CLKGEN1_STC6_CLK                    0x6F
216*53ee8cc1Swenshuai.xi         #define REG_CLKGEN1_STC6_MASK               0x000F
217*53ee8cc1Swenshuai.xi         #define REG_CLKGEN1_STC6_SHIFT              0
218*53ee8cc1Swenshuai.xi     #define REG_CLKGEN1_STC7_CLK                    0x6F
219*53ee8cc1Swenshuai.xi         #define REG_CLKGEN1_STC7_MASK               0x00F0
220*53ee8cc1Swenshuai.xi         #define REG_CLKGEN1_STC7_SHIFT              4
221*53ee8cc1Swenshuai.xi 
222*53ee8cc1Swenshuai.xi 
223*53ee8cc1Swenshuai.xi //#########################################################################
224*53ee8cc1Swenshuai.xi //#### CLKGEN2 Bank:0x100A
225*53ee8cc1Swenshuai.xi //#########################################################################
226*53ee8cc1Swenshuai.xi #define TSP_CLKGEN2_REG(addr)       (*((volatile MS_U16*)(_u32RegBase + 0x1400 + ((addr)<<2))))
227*53ee8cc1Swenshuai.xi     #define REG_CLKGEN2_DC0_SYTNTH                  0x4A
228*53ee8cc1Swenshuai.xi         #define REG_CLKGEN2_STC2_CW_SEL             0x0002
229*53ee8cc1Swenshuai.xi         #define REG_CLKGEN2_STC2_CW_EN              0x0004
230*53ee8cc1Swenshuai.xi         #define REG_CLKGEN2_STC3_CW_SEL             0x0200
231*53ee8cc1Swenshuai.xi         #define REG_CLKGEN2_STC3_CW_EN              0x0400
232*53ee8cc1Swenshuai.xi 
233*53ee8cc1Swenshuai.xi     #define REG_CLKGEN2_DC0_STC2_CW_L               0x4B
234*53ee8cc1Swenshuai.xi     #define REG_CLKGEN2_DC0_STC2_CW_H               0x4C
235*53ee8cc1Swenshuai.xi     #define REG_CLKGEN2_DC0_STC3_CW_L               0x4D
236*53ee8cc1Swenshuai.xi     #define REG_CLKGEN2_DC0_STC3_CW_H               0x4E
237*53ee8cc1Swenshuai.xi 
238*53ee8cc1Swenshuai.xi     //get STC2/3 Clk Gen bank
239*53ee8cc1Swenshuai.xi     #define REG_CLKGEN2_STC2_CLK                    0x4F
240*53ee8cc1Swenshuai.xi         #define REG_CLKGEN2_STC2_MASK               0x000F
241*53ee8cc1Swenshuai.xi         #define REG_CLKGEN2_STC2_SHIFT              0
242*53ee8cc1Swenshuai.xi     #define REG_CLKGEN2_STC3_CLK                    0x4F
243*53ee8cc1Swenshuai.xi         #define REG_CLKGEN2_STC3_MASK               0x00F0
244*53ee8cc1Swenshuai.xi         #define REG_CLKGEN2_STC3_SHIFT              4
245*53ee8cc1Swenshuai.xi         #define REG_CLKGEN2_STC_DISABLE             0x0001
246*53ee8cc1Swenshuai.xi         #define REG_CLKGEN2_STC_INVERT              0x0002
247*53ee8cc1Swenshuai.xi         //SRC
248*53ee8cc1Swenshuai.xi         #define REG_CLKGEN2_STC_SRC_SHIFT           2
249*53ee8cc1Swenshuai.xi         #define REG_CLKGEN2_STC_SRC_MASK            0x0003
250*53ee8cc1Swenshuai.xi         #define REG_CLKGEN2_STC_SRC_SYNTH           0x0000
251*53ee8cc1Swenshuai.xi         #define REG_CLKGEN2_STC_SRC_ONE             0x0001  // reserved
252*53ee8cc1Swenshuai.xi         #define REG_CLKGEN2_STC_SRC_27M             0x0002
253*53ee8cc1Swenshuai.xi         #define REG_CLKGEN2_STC_SRC_XTAL            0x0003  // reserved
254*53ee8cc1Swenshuai.xi 
255*53ee8cc1Swenshuai.xi //#########################################################################
256*53ee8cc1Swenshuai.xi //#### CHIPTOP Bank:0x101E
257*53ee8cc1Swenshuai.xi //#########################################################################
258*53ee8cc1Swenshuai.xi #define TSP_TOP_REG(addr)           (*((volatile MS_U16*)(_u32RegBase + 0x3c00UL + ((addr)<<2))))
259*53ee8cc1Swenshuai.xi 
260*53ee8cc1Swenshuai.xi     #define REG_TOP_TS_PADMUX_MODE                  0x02
261*53ee8cc1Swenshuai.xi         #define REG_TOP_TS0MODE_MASK                0x1
262*53ee8cc1Swenshuai.xi         #define REG_TOP_TS0MODE_SHIFT               0
263*53ee8cc1Swenshuai.xi             #define REG_TOP_TS0MODE_PARALLEL        1
264*53ee8cc1Swenshuai.xi         #define REG_TOP_TS1MODE_MASK                0x3
265*53ee8cc1Swenshuai.xi         #define REG_TOP_TS1MODE_SHIFT               1
266*53ee8cc1Swenshuai.xi             #define REG_TOP_TS1MODE_INPUT           1
267*53ee8cc1Swenshuai.xi         #define REG_TOP_TS2MODE_MASK                0x3
268*53ee8cc1Swenshuai.xi         #define REG_TOP_TS2MODE_SHIFT               3
269*53ee8cc1Swenshuai.xi             #define REG_TOP_TS2MODE_PARALLEL        1
270*53ee8cc1Swenshuai.xi             #define REG_TOP_TS2MODE_4WIRED          2
271*53ee8cc1Swenshuai.xi             #define REG_TOP_TS2MODE_3WIRED          3
272*53ee8cc1Swenshuai.xi 
273*53ee8cc1Swenshuai.xi     #define REG_TOP_TS_OUTPUT_MODE                  0x07
274*53ee8cc1Swenshuai.xi         #define REG_TOP_TS_OUT_MODE_MASK            0x3
275*53ee8cc1Swenshuai.xi         #define REG_TOP_TS_OUT_MODE_SHIFT           14
276*53ee8cc1Swenshuai.xi             #define REG_TOP_TS_OUT_MODE_TSO         1
277*53ee8cc1Swenshuai.xi             #define REG_TOP_TS_OUT_MODE_S2P         2
278*53ee8cc1Swenshuai.xi             #define REG_TOP_TS_OUT_MODE_S2P1        3
279*53ee8cc1Swenshuai.xi 
280*53ee8cc1Swenshuai.xi     #define REG_TOP_TSP_BOOT_CLK_SEL                0x54
281*53ee8cc1Swenshuai.xi         #define REG_TOP_TSP_BOOT_CLK_SEL_MASK       0x0100
282*53ee8cc1Swenshuai.xi         #define REG_TOP_TSP_BOOT_CLK_SEL_TSP        0x0000
283*53ee8cc1Swenshuai.xi 
284*53ee8cc1Swenshuai.xi 
285*53ee8cc1Swenshuai.xi #define TSP_MMFI_REG(addr)       (*((volatile MS_U16*)(_u32RegBase + 0x27E00 + ((addr)<<2))))
286*53ee8cc1Swenshuai.xi     #define REG_MMFI_TSP_SEL_SRAM                   0x70
287*53ee8cc1Swenshuai.xi         #define REG_MMFI_TSP_SEL_SRAM_EN            0x0002
288*53ee8cc1Swenshuai.xi 
289*53ee8cc1Swenshuai.xi #define TSP_TSO_REG(addr)        (*((volatile MS_U16*)(_u32RegBase + 0xE0C00 + ((addr)<<2))))
290*53ee8cc1Swenshuai.xi     #define REG_TSO_TSP_CONFIG0                     0x1C
291*53ee8cc1Swenshuai.xi         #define REG_TSO_TSP_S2P_MASK                0x001F
292*53ee8cc1Swenshuai.xi         #define REG_TSO_TSP_S2P_EN                  0x0001
293*53ee8cc1Swenshuai.xi         #define REG_TSO_TSP_S2P_TS_SIN_C0           0x0002
294*53ee8cc1Swenshuai.xi         #define REG_TSO_TSP_S2P_TS_SIN_C1           0x0004
295*53ee8cc1Swenshuai.xi         #define REG_TSO_TSP_S2P_3WIRE               0x0008
296*53ee8cc1Swenshuai.xi         #define REG_TSO_TSP_BYPASS_S2P              0x0010
297*53ee8cc1Swenshuai.xi 
298*53ee8cc1Swenshuai.xi         #define REG_TSO_TSP_S2P1_MASK               0x1F00
299*53ee8cc1Swenshuai.xi         #define REG_TSO_TSP_S2P1_EN                 0x0100
300*53ee8cc1Swenshuai.xi         #define REG_TSO_TSP_S2P1_TS_SIN_C0          0x0200
301*53ee8cc1Swenshuai.xi         #define REG_TSO_TSP_S2P1_TS_SIN_C1          0x0400
302*53ee8cc1Swenshuai.xi         #define REG_TSO_TSP_S2P1_3WIRE              0x0800
303*53ee8cc1Swenshuai.xi         #define REG_TSO_TSP_BYPASS_S2P1             0x1000
304*53ee8cc1Swenshuai.xi 
305*53ee8cc1Swenshuai.xi 
306*53ee8cc1Swenshuai.xi typedef struct _REG_SecFlt
307*53ee8cc1Swenshuai.xi {
308*53ee8cc1Swenshuai.xi     TSP32                           Ctrl;
309*53ee8cc1Swenshuai.xi     // Software Usage Flags
310*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_USER_MASK                    0x00000007
311*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_USER_SHFT                    0
312*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_USER_NULL                    0x0
313*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_USER_SEC                     0x1
314*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_USER_PES                     0x2
315*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_USER_PKT                     0x3
316*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_USER_PCR                     0x4
317*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_USER_TTX                     0x5
318*53ee8cc1Swenshuai.xi /*
319*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_USER_EMM                     0x6
320*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_USER_ECM                     0x7
321*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_USER_OAD                     0x8
322*53ee8cc1Swenshuai.xi */
323*53ee8cc1Swenshuai.xi 
324*53ee8cc1Swenshuai.xi     #define TSP_SEC_MATCH_INV                       0x00000008 // HW
325*53ee8cc1Swenshuai.xi 
326*53ee8cc1Swenshuai.xi     // for
327*53ee8cc1Swenshuai.xi     //     TSP_SECFLT_TYPE_SEC
328*53ee8cc1Swenshuai.xi     //     TSP_SECFLT_TYPE_PES
329*53ee8cc1Swenshuai.xi     //     TSP_SECFLT_TYPE_PKT
330*53ee8cc1Swenshuai.xi     //     TSP_SECFLT_TYPE_TTX
331*53ee8cc1Swenshuai.xi     //     TSP_SECFLT_TYPE_OAD
332*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_MODE_MASK                    0x00000030          // software implementation
333*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_MODE_SHFT                    4
334*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_MODE_CONTI                   0x0                 // SEC
335*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_MODE_ONESHOT                 0x1
336*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_MODE_CRCCHK                  0x2
337*53ee8cc1Swenshuai.xi     // for TSP_SECFLT_TYPE_PCR
338*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_PCRRST                       0x00000010          //[OBSOLETED] PCR
339*53ee8cc1Swenshuai.xi 
340*53ee8cc1Swenshuai.xi 
341*53ee8cc1Swenshuai.xi     //[NOTE] update section filter
342*53ee8cc1Swenshuai.xi     // It's not recommended for user updating section filter control register
343*53ee8cc1Swenshuai.xi     // when filter is enable. There may be race condition.
344*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_STATE_MASK                   0x000000C0          // software implementation
345*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_STATE_SHFT                   6
346*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_STATE_OVERFLOW               0x1
347*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_STATE_DISABLE                0x2
348*53ee8cc1Swenshuai.xi 
349*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_BEMASK                       0x0000FF00          //[Reserved]
350*53ee8cc1Swenshuai.xi 
351*53ee8cc1Swenshuai.xi 
352*53ee8cc1Swenshuai.xi     // for
353*53ee8cc1Swenshuai.xi     //     TSP_SECFLT_SEL_BUF
354*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_SECBUF_MASK                  0xFF000000          // [31:24] secbuf id (secbuf id low field)
355*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_SECBUF_SHFT                  24
356*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_SECBUF_MAX                   0x1FF               // software usage
357*53ee8cc1Swenshuai.xi 
358*53ee8cc1Swenshuai.xi     TSP32                           Match[TSP_FILTER_DEPTH/sizeof(TSP32)];
359*53ee8cc1Swenshuai.xi     TSP32                           Mask[TSP_FILTER_DEPTH/sizeof(TSP32)];
360*53ee8cc1Swenshuai.xi /*
361*53ee8cc1Swenshuai.xi     TSP32                           BufStart;
362*53ee8cc1Swenshuai.xi     TSP32                           BufEnd;
363*53ee8cc1Swenshuai.xi     TSP32                           BufRead;
364*53ee8cc1Swenshuai.xi     TSP32                           BufWrite;
365*53ee8cc1Swenshuai.xi     TSP32                           BufCur;
366*53ee8cc1Swenshuai.xi */
367*53ee8cc1Swenshuai.xi     TSP32                           _x24[(0x38-0x24)/sizeof(TSP32)];    // (0x00211024-0x0021103B)/4
368*53ee8cc1Swenshuai.xi 
369*53ee8cc1Swenshuai.xi     TSP32                           RmnCnt;
370*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_ALLOC_MASK                   0x80000000
371*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_ALLOC_SHFT                   31
372*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_OWNER_MASK                   0x70000000
373*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_OWNER_SHFT                   24
374*53ee8cc1Swenshuai.xi 
375*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_MODE_AUTO_CRCCHK             0x00100000 //sec flt mode bits are not enough, arbitrarily occupy here
376*53ee8cc1Swenshuai.xi 
377*53ee8cc1Swenshuai.xi     #define TSP_SECBUF_RMNCNT_MASK                  0x0000FFFF                                      // TS/PES length
378*53ee8cc1Swenshuai.xi     #define TSP_SECBUF_RMNCNT_SHFT                  0
379*53ee8cc1Swenshuai.xi 
380*53ee8cc1Swenshuai.xi /*
381*53ee8cc1Swenshuai.xi     // for
382*53ee8cc1Swenshuai.xi     //     TSP_SECFLT_TYPE_ECM
383*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_ECM_IDX_SHFT                 16
384*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_ECM_IDX_MASK                 0x00070000
385*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_ECM_IDX_NULL                 0x00000007                                      // only alow 0 .. 5
386*53ee8cc1Swenshuai.xi  */
387*53ee8cc1Swenshuai.xi 
388*53ee8cc1Swenshuai.xi     TSP32                           CRC32;
389*53ee8cc1Swenshuai.xi 
390*53ee8cc1Swenshuai.xi     TSP32                           NMask[TSP_FILTER_DEPTH/sizeof(MS_U32)];
391*53ee8cc1Swenshuai.xi 
392*53ee8cc1Swenshuai.xi     TSP32                           Ctrl_1;
393*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_SECBUF_H_MASK                0x00000001          // secbuf id high field (bit[8])
394*53ee8cc1Swenshuai.xi     #define TSP_SECFLT_SECBUF_H_SHFT                0
395*53ee8cc1Swenshuai.xi 
396*53ee8cc1Swenshuai.xi     TSP32                           _x54[(0x80-0x54)/sizeof(TSP32)];    // (0x00211054-0x0021107F)/4
397*53ee8cc1Swenshuai.xi 
398*53ee8cc1Swenshuai.xi } REG_SecFlt;
399*53ee8cc1Swenshuai.xi 
400*53ee8cc1Swenshuai.xi typedef struct _REG_SecBuf
401*53ee8cc1Swenshuai.xi {
402*53ee8cc1Swenshuai.xi     TSP32                           Start;
403*53ee8cc1Swenshuai.xi     #define TSP_SECBUF_START_MASK                   0x1FFFFFF0 //section buffers of kaiser and keltic are "4" bits aligment
404*53ee8cc1Swenshuai.xi     #define TSP_SECBUF_OWNER_MASK                   0x60000000
405*53ee8cc1Swenshuai.xi     #define TSP_SECBUF_OWNER_SHFT                   29
406*53ee8cc1Swenshuai.xi     #define TSP_SECBUF_ALLOC_MASK                   0x80000000
407*53ee8cc1Swenshuai.xi     #define TSP_SECBUF_ALLOC_SHFT                   31
408*53ee8cc1Swenshuai.xi     TSP32                           End;
409*53ee8cc1Swenshuai.xi     TSP32                           Read;
410*53ee8cc1Swenshuai.xi     TSP32                           Write;
411*53ee8cc1Swenshuai.xi     TSP32                           Cur;
412*53ee8cc1Swenshuai.xi     TSP32                           _x38[(0xA4-0x38)/sizeof(TSP32)];    // (0x0021103C-0x002110A4)/4
413*53ee8cc1Swenshuai.xi } REG_SecBuf;
414*53ee8cc1Swenshuai.xi 
415*53ee8cc1Swenshuai.xi typedef struct _REG_Pid
416*53ee8cc1Swenshuai.xi {                                                                       // CPU(byte)    RIU(index)  MIPS(0x1500/2+RIU)*4
417*53ee8cc1Swenshuai.xi     REG_PidFlt                      Flt[TSP_PIDFLT_NUM];                // 0x00210000-0x00210007C
418*53ee8cc1Swenshuai.xi } REG_Pid;
419*53ee8cc1Swenshuai.xi 
420*53ee8cc1Swenshuai.xi typedef struct _REG_Sec
421*53ee8cc1Swenshuai.xi {                                                                       // CPU(byte)    RIU(index)  MIPS(0x1500/2+RIU)*4
422*53ee8cc1Swenshuai.xi     REG_SecFlt                      Flt[TSP_SECFLT_NUM];
423*53ee8cc1Swenshuai.xi } REG_Sec;
424*53ee8cc1Swenshuai.xi 
425*53ee8cc1Swenshuai.xi 
426*53ee8cc1Swenshuai.xi typedef struct _REG_Buf
427*53ee8cc1Swenshuai.xi {
428*53ee8cc1Swenshuai.xi     REG_SecBuf                      Buf[TSP_SECFLT_NUM];
429*53ee8cc1Swenshuai.xi } REG_Buf;
430*53ee8cc1Swenshuai.xi 
431*53ee8cc1Swenshuai.xi 
432*53ee8cc1Swenshuai.xi //@NOTE TSP 0~1
433*53ee8cc1Swenshuai.xi typedef struct _REG_Ctrl
434*53ee8cc1Swenshuai.xi {
435*53ee8cc1Swenshuai.xi     //----------------------------------------------
436*53ee8cc1Swenshuai.xi     // 0xBF802A00 MIPS direct access
437*53ee8cc1Swenshuai.xi     //----------------------------------------------
438*53ee8cc1Swenshuai.xi     // Type                         Name                                Index(word)     CPU(byte)     MIPS(0x1500/2+index)*4
439*53ee8cc1Swenshuai.xi     REG16                           _xbf202a00;                              // 0xbf802a00   0x00
440*53ee8cc1Swenshuai.xi     REG32                           Str2mi_head2pvr1;                        // 0xbf802a04   0x01
441*53ee8cc1Swenshuai.xi     #define TSP_HW_PVR1_BUF_HEAD2_MASK              0x0FFFFFFF
442*53ee8cc1Swenshuai.xi     REG32                           Str2mi_mid2pvr1;                         // 0xbf802a0c   0x03 ,wptr & mid share same register
443*53ee8cc1Swenshuai.xi     #define TSP_HW_PVR1_BUF_MID2_MASK               0x0FFFFFFF
444*53ee8cc1Swenshuai.xi     REG32                           Str2mi_tail2pvr1;                        // 0xbf802a14   0x05
445*53ee8cc1Swenshuai.xi     #define TSP_HW_PVR1_BUF_TAIL2_MASK              0x0FFFFFFF
446*53ee8cc1Swenshuai.xi 
447*53ee8cc1Swenshuai.xi     REG32                           Pcr_L;                                   // 0xbf802a1c  0x07_0x08
448*53ee8cc1Swenshuai.xi     #define TSP_PCR64_L32_MASK                      0xFFFFFFFF
449*53ee8cc1Swenshuai.xi     REG32                           Pcr_H;                                   // 0xbf802a24  0x09_0x0a
450*53ee8cc1Swenshuai.xi     #define TSP_PCR64_H32_MASK                      0xFFFFFFFF               // PCR64 Middle 64
451*53ee8cc1Swenshuai.xi 
452*53ee8cc1Swenshuai.xi     REG16                           Mobf_Filein_Idx;                         // 0xbf802a2c   0x0b
453*53ee8cc1Swenshuai.xi     #define TSP_MOBF_FILEIN_MASK                    0x0000001F
454*53ee8cc1Swenshuai.xi 
455*53ee8cc1Swenshuai.xi     REG32                           _xbf202a2c;                              // 0xbf802a30   0x0c_0x0d
456*53ee8cc1Swenshuai.xi 
457*53ee8cc1Swenshuai.xi     REG32                           PVR2_Config;                             // 0xbf802a38   0x0e_0x0f
458*53ee8cc1Swenshuai.xi     #define TSP_PVR2_LPCR1_WLD                      0x00000001
459*53ee8cc1Swenshuai.xi     #define TSP_PVR2_LPCR1_RLD                      0x00000002
460*53ee8cc1Swenshuai.xi     #define TSP_PVR2_STR2MIU_DSWAP                  0x00000004
461*53ee8cc1Swenshuai.xi     #define TSP_PVR2_STR2MIU_EN                     0x00000008
462*53ee8cc1Swenshuai.xi     #define TSP_PVR2_STR2MIU_RST_WADR               0x00000010
463*53ee8cc1Swenshuai.xi     #define TSP_PVR2_STR2MIU_BT_ORDER               0x00000020
464*53ee8cc1Swenshuai.xi     #define TSP_PVR2_STR2MIU_PAUSE                  0x00000040
465*53ee8cc1Swenshuai.xi     #define TSP_PVR2_REG_PINGPONG_EN                0x00000080
466*53ee8cc1Swenshuai.xi     #define TSP_PVR2_PVR_ALIGN_EN                   0x00000100
467*53ee8cc1Swenshuai.xi     #define TSP_PVR2_DMA_FLUSH_EN                   0x00000200
468*53ee8cc1Swenshuai.xi     #define TSP_PVR2_PKT192_EN                      0x00000400
469*53ee8cc1Swenshuai.xi     #define TSP_PVR2_BURST_LEN_MASK                 0x00001800
470*53ee8cc1Swenshuai.xi     #define TSP_PVR2_BURST_LEN_SHIFT                11
471*53ee8cc1Swenshuai.xi     #define TSP_REC_DATA2_INV                       0x00002000
472*53ee8cc1Swenshuai.xi     #define TSP_V_BLOCK_DIS                         0x00004000
473*53ee8cc1Swenshuai.xi     #define TSP_V3d_BLOCK_DIS                       0x00008000
474*53ee8cc1Swenshuai.xi     #define TSP_A_BLOCK_DIS                         0x00010000
475*53ee8cc1Swenshuai.xi     #define TSP_AD_BLOCK_DIS                        0x00020000
476*53ee8cc1Swenshuai.xi     #define TSP_PVR1_BLOCK_DIS                      0x00040000
477*53ee8cc1Swenshuai.xi     #define TSP_PVR2_BLOCK_DIS                      0x00080000
478*53ee8cc1Swenshuai.xi     #define TSP_TS_IF2_EN                           0x00100000
479*53ee8cc1Swenshuai.xi     #define TSP_TS_DATA2_SWAP                       0x00200000
480*53ee8cc1Swenshuai.xi     #define TSP_P_SEL2                              0x00400000
481*53ee8cc1Swenshuai.xi     #define TSP_EXT_SYNC_SEL2                       0x00800000
482*53ee8cc1Swenshuai.xi     #define TSP_BYPASS_TSIF2                        0x01000000
483*53ee8cc1Swenshuai.xi     #define TSP_TEI_SKIP_PKT2                       0x02000000
484*53ee8cc1Swenshuai.xi     #define TSP_AC_BLOCK_DIS                        0x04000000
485*53ee8cc1Swenshuai.xi     #define TSP_ADD_BLOCK_DIS                       0x08000000
486*53ee8cc1Swenshuai.xi     #define TSP_CLR_LOCKED_PKT_CNT                  0x20000000
487*53ee8cc1Swenshuai.xi     #define TSP_CLR_PKT_CNT                         0x40000000
488*53ee8cc1Swenshuai.xi     #define TSP_CLR_PVR_OVERFLOW                    0x80000000
489*53ee8cc1Swenshuai.xi 
490*53ee8cc1Swenshuai.xi     REG32                           PVR2_LPCR1;                             // 0xbf802a40   0x10_0x11
491*53ee8cc1Swenshuai.xi     #define TSP_STR2MI2_ADDR_MASK  0x0FFFFFFF
492*53ee8cc1Swenshuai.xi 
493*53ee8cc1Swenshuai.xi     REG32                           Str2mi_head1_pvr2;                      // 0xbf802a48   0x12_0x13
494*53ee8cc1Swenshuai.xi     REG32                           Str2mi_mid1_wptr_pvr2;                  // 0xbf802a50   0x14_0x15
495*53ee8cc1Swenshuai.xi     REG32                           Str2mi_tail1_pvr2;                      // 0xbf802a58   0x16_0x17
496*53ee8cc1Swenshuai.xi     REG32                           Str2mi_head2_pvr2;                      // 0xbf802a60   0x18_0x19
497*53ee8cc1Swenshuai.xi     REG32                           Str2mi_mid2_pvr2;                       // 0xbf802a68   0x1a_0x1b, PVR2 mid address & write point
498*53ee8cc1Swenshuai.xi     REG32                           Str2mi_tail2_pvr2;                      // 0xbf802a70   0x1c_0x1d
499*53ee8cc1Swenshuai.xi     REG32                           Hw_SyncByte2;                           // 0xbf802a78   0x1e_0x1f
500*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG2_PACKET_SYNCBYTE2_MASK       0x000000FF
501*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG2_PACKET_SYNCBYTE2_SHFT       0
502*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG2_PACKET_SIZE2_MASK           0x0000FF00
503*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG2_PACKET_SIZE2_SHFT           8
504*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG2_PACKET_CHK_SIZE2_MASK       0x00FF0000
505*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG2_PACKET_CHK_SIZE2_SHFT       16
506*53ee8cc1Swenshuai.xi 
507*53ee8cc1Swenshuai.xi     REG32                           Pkt_CacheW0;                            // 0xbf802a80   0x20
508*53ee8cc1Swenshuai.xi     REG32                           Pkt_CacheW1;                            // 0xbf802a88   0x22
509*53ee8cc1Swenshuai.xi     REG32                           Pkt_CacheW2;                            // 0xbf802a90   0x24
510*53ee8cc1Swenshuai.xi     REG32                           Pkt_CacheW3;                            // 0xbf802a98   0x26
511*53ee8cc1Swenshuai.xi     REG32                           Pkt_CacheIdx;                           // 0xbf802aa0   0x28
512*53ee8cc1Swenshuai.xi 
513*53ee8cc1Swenshuai.xi     REG32                           Pkt_DMA;                                // 0xbf802aa8   0x2a
514*53ee8cc1Swenshuai.xi     #define TSP_SEC_DMAFIL_NUM_MASK                 0x000000FF
515*53ee8cc1Swenshuai.xi     #define TSP_SEC_DMAFIL_NUM_SHIFT                0
516*53ee8cc1Swenshuai.xi     #define TSP_SEC_DMASRC_OFFSET_MASK              0x0000FF00
517*53ee8cc1Swenshuai.xi     #define TSP_SEC_DMASRC_OFFSET_SHIFT             8
518*53ee8cc1Swenshuai.xi     #define TSP_SEC_DMADES_LEN_MASK                 0x00FF0000
519*53ee8cc1Swenshuai.xi     #define TSP_SEC_DMADES_LEN_SHIFT                16
520*53ee8cc1Swenshuai.xi 
521*53ee8cc1Swenshuai.xi     REG16                           Hw_Config0;                             // 0xbf802ab0   0x2c
522*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG0_DATA_PORT_SEL               0x0001                  //TSIF0 data port output select. 0: select live TS to be TSIF output 1: select data port to be TSIF output
523*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG0_TSIFO_SERL                  0x0000
524*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG0_TSIF0_PARL                  0x0002
525*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG0_TSIF0_EXTSYNC               0x0004
526*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG0_TSIF0_TS_BYPASS             0x0008
527*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG0_TSIF0_VPID_BYPASS           0x0010
528*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG0_TSIF0_APID_BYPASS           0x0020
529*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG0_WB_DMA_RESET                0x0040
530*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG0_PACKET_BUF_SIZE_MASK        0xFF00
531*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG0_PACKET_BUF_SIZE_SHIFT       8
532*53ee8cc1Swenshuai.xi 
533*53ee8cc1Swenshuai.xi     REG16                           Hw_PktSize0;                             // 0xbf802ab4   0x2d
534*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG0_PACKET_PIDFLT0_SIZE_MASK    0x00FF
535*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG0_PACKET_PIDFLT0_SIZE_SHIFT   0
536*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG0_PACKET_CHK_SIZE_MASK        0xFF00
537*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG0_PACKET_CHK_SIZE_SHFT        8
538*53ee8cc1Swenshuai.xi 
539*53ee8cc1Swenshuai.xi     REG16                           STC_Config;                             // 0xbf802ab8   0x2e
540*53ee8cc1Swenshuai.xi     #define TSP_STC_CFG_SET_TIME_BASE_64b_3         0x0001
541*53ee8cc1Swenshuai.xi     #define TSP_STC_CFG_CNT64b_3_EN                 0x0002
542*53ee8cc1Swenshuai.xi     #define TSP_STC_CFG_CNT64b_3_LD                 0x0004
543*53ee8cc1Swenshuai.xi     #define TSP_STC_CFG_SET_TIME_BASE_64b_4         0x0010
544*53ee8cc1Swenshuai.xi     #define TSP_STC_CFG_CNT64b_4_EN                 0x0020
545*53ee8cc1Swenshuai.xi     #define TSP_STC_CFG_CNT64b_4_LD                 0x0040
546*53ee8cc1Swenshuai.xi 
547*53ee8cc1Swenshuai.xi     REG16                           TSP_DBG_PORT;                           // 0xbf802ab8   0x2f
548*53ee8cc1Swenshuai.xi     #define TSP_DNG_DATA_PORT_MASK                  0x00FF
549*53ee8cc1Swenshuai.xi     #define TSP_DNG_DATA_PORT_SHIFT                 0
550*53ee8cc1Swenshuai.xi 
551*53ee8cc1Swenshuai.xi     REG32                           Pcr_L_CmdQ;                             // 0xbf802ac0   0x30
552*53ee8cc1Swenshuai.xi     REG16                           Pcr_H_CmdQ;                             // 0xbf802ac8   0x32
553*53ee8cc1Swenshuai.xi     #define TSP_REG_PCR_CMDQ_H                      0x0001
554*53ee8cc1Swenshuai.xi 
555*53ee8cc1Swenshuai.xi     REG16                           Vd_Pid_Hit;                             // 0xbf802acc   0x33
556*53ee8cc1Swenshuai.xi     #define TSP_VPID_MASK                           0x1FFF
557*53ee8cc1Swenshuai.xi 
558*53ee8cc1Swenshuai.xi     REG16                           Aud_Pid_Hit;                            // 0xbf802ad0   0x34
559*53ee8cc1Swenshuai.xi     #define TSP_APID_MASK                           0x1FFF
560*53ee8cc1Swenshuai.xi 
561*53ee8cc1Swenshuai.xi     REG16                           Pkt_Info;                               // 0xbf802ad4   0x35
562*53ee8cc1Swenshuai.xi     #define TSP_PKT_PID_8_12_CP_MASK                0x001F
563*53ee8cc1Swenshuai.xi     #define TSP_PKT_PID_8_12_CP_SHIFT               0
564*53ee8cc1Swenshuai.xi     #define TSP_PKT_PRI_MASK                        0x0020
565*53ee8cc1Swenshuai.xi     #define TSP_PKT_PRI_SHIFT                       5
566*53ee8cc1Swenshuai.xi     #define TSP_PKT_PLST_MASK                       0x0040
567*53ee8cc1Swenshuai.xi     #define TSP_PKT_PLST_SHIFT                      6
568*53ee8cc1Swenshuai.xi     #define TSP_PKT_ERR                             0x0080
569*53ee8cc1Swenshuai.xi     #define TSP_PKT_ERR_SHIFT                       7
570*53ee8cc1Swenshuai.xi 
571*53ee8cc1Swenshuai.xi     REG16                           Pkt_Info2;                              // 0xbf802ad8   0x36
572*53ee8cc1Swenshuai.xi     #define TSP_PKT_INFO_CC_MASK                    0x000F
573*53ee8cc1Swenshuai.xi     #define TSP_PKT_INFO_CC_SHFT                    0
574*53ee8cc1Swenshuai.xi     #define TSP_PKT_INFO_ADPCNTL_MASK               0x0030
575*53ee8cc1Swenshuai.xi     #define TSP_PKT_INFO_ADPCNTL_SHFT               4
576*53ee8cc1Swenshuai.xi     #define TSP_PKT_INFO_SCMB                       0x00C0
577*53ee8cc1Swenshuai.xi     #define TSP_PKT_INFO_SCMB_SHFT                  6
578*53ee8cc1Swenshuai.xi     #define TSP_PKT_PID_0_7_CP_MASK                 0xFF00
579*53ee8cc1Swenshuai.xi     #define TSP_PKT_PID_0_7_CP_SHIFT                8
580*53ee8cc1Swenshuai.xi 
581*53ee8cc1Swenshuai.xi     REG16                           AVFifoSts;                              // 0xbf802adc   0x37
582*53ee8cc1Swenshuai.xi     #define TSP_VFIFO3D_EMPTY                       0x0001
583*53ee8cc1Swenshuai.xi     #define TSP_VFIFO3D_EMPTY_SHFT                  0
584*53ee8cc1Swenshuai.xi     #define TSP_VFIFO3D_FULL                        0x0002
585*53ee8cc1Swenshuai.xi     #define TSP_VFIFO3D_FULL_SHFT                   1
586*53ee8cc1Swenshuai.xi     #define TSP_VFIFO3D_LEVEL                       0x000C
587*53ee8cc1Swenshuai.xi     #define TSP_VFIFO3D_LEVEL_SHFT                  2
588*53ee8cc1Swenshuai.xi     #define TSP_VFIFO_EMPTY                         0x0010
589*53ee8cc1Swenshuai.xi     #define TSP_VFIFO_EMPTY_SHFT                    4
590*53ee8cc1Swenshuai.xi     #define TSP_VFIFO_FULL                          0x0020
591*53ee8cc1Swenshuai.xi     #define TSP_VFIFO_FULL_SHFT                     5
592*53ee8cc1Swenshuai.xi     #define TSP_VFIFO_LEVEL                         0x00C0
593*53ee8cc1Swenshuai.xi     #define TSP_VFIFO_LEVEL_SHFT                    6
594*53ee8cc1Swenshuai.xi     #define TSP_AFIFO_EMPTY                         0x0100
595*53ee8cc1Swenshuai.xi     #define TSP_AFIFO_EMPTY_SHFT                    8
596*53ee8cc1Swenshuai.xi     #define TSP_AFIFO_FULL                          0x0200
597*53ee8cc1Swenshuai.xi     #define TSP_AFIFO_FULL_SHFT                     9
598*53ee8cc1Swenshuai.xi     #define TSP_AFIFO_LEVEL                         0x0C00
599*53ee8cc1Swenshuai.xi     #define TSP_AFIFO_LEVEL_SHFT                    10
600*53ee8cc1Swenshuai.xi     #define TSP_AFIFOB_EMPTY                        0x1000
601*53ee8cc1Swenshuai.xi     #define TSP_AFIFOB_EMPTY_SHFT                   12
602*53ee8cc1Swenshuai.xi     #define TSP_AFIFOB_FULL                         0x2000
603*53ee8cc1Swenshuai.xi     #define TSP_AFIFOB_FULL_SHFT                    13
604*53ee8cc1Swenshuai.xi     #define TSP_AFIFOB_LEVEL                        0xC000
605*53ee8cc1Swenshuai.xi     #define TSP_AFIFOB_LEVEL_SHFT                   14
606*53ee8cc1Swenshuai.xi 
607*53ee8cc1Swenshuai.xi     REG32                           SwInt_Stat;                             // 0xbf802ae0   0x38
608*53ee8cc1Swenshuai.xi     #define TSP_SWINT_INFO_SEC_MASK                 0x00000FFF
609*53ee8cc1Swenshuai.xi     #define TSP_SWINT_INFO_SEC_SHFT                 0
610*53ee8cc1Swenshuai.xi     #define TSP_SWINT_INFO_ENG_MASK                 0x0000F000
611*53ee8cc1Swenshuai.xi     #define TSP_SWINT_INFO_ENG_SHFT                 12
612*53ee8cc1Swenshuai.xi     #define TSP_SWINT_STATUS_CMD_MASK               0x7FFF0000
613*53ee8cc1Swenshuai.xi     #define TSP_SWINT_STATUS_CMD_SHFT               16
614*53ee8cc1Swenshuai.xi     #define TSP_SWINT_STATUS_SEC_RDY                0x0001
615*53ee8cc1Swenshuai.xi     #define TSP_SWINT_STATUS_REQ_RDY                0x0002
616*53ee8cc1Swenshuai.xi     #define TSP_SWINT_STATUS_SEC_RDY_CRCERR         0x0003
617*53ee8cc1Swenshuai.xi     #define TSP_SWINT_STATUS_BUF_OVFLOW             0x0006
618*53ee8cc1Swenshuai.xi     #define TSP_SWINT_STATUS_SEC_CRCERR             0x0007
619*53ee8cc1Swenshuai.xi     #define TSP_SWINT_STATUS_SEC_ERROR              0x0008
620*53ee8cc1Swenshuai.xi     #define TSP_SWINT_STATUS_SYNC_LOST              0x0010
621*53ee8cc1Swenshuai.xi     #define TSP_SWINT_STATUS_PKT_OVRUN              0x0020
622*53ee8cc1Swenshuai.xi     #define TSP_SWINT_STATUS_DEBUG                  0x0030
623*53ee8cc1Swenshuai.xi     #define TSP_SWINT_CMD_DMA_PAUSE                 0x0100
624*53ee8cc1Swenshuai.xi     #define TSP_SWINT_CMD_DMA_RESUME                0x0200
625*53ee8cc1Swenshuai.xi     #define TSP_SWINT_STATUS_SEC_GROUP              0x000F
626*53ee8cc1Swenshuai.xi     #define TSP_SWINT_STATUS_GROUP                  0x00FF
627*53ee8cc1Swenshuai.xi     #define TSP_SWINT_CMD_GROUP                     0x7F00
628*53ee8cc1Swenshuai.xi     #define TSP_SWINT_CMD_STC_UPD                   0x0400
629*53ee8cc1Swenshuai.xi     #define TSP_SWINT_CTRL_FIRE                     0x80000000
630*53ee8cc1Swenshuai.xi 
631*53ee8cc1Swenshuai.xi     REG32                           TsDma_Addr;                             // 0xbf802ae8   0x3a
632*53ee8cc1Swenshuai.xi     REG32                           TsDma_Size;                             // 0xbf802af0   0x3c
633*53ee8cc1Swenshuai.xi     REG16                           TsDma_Ctrl;                             // 0xbf802af8   0x3e
634*53ee8cc1Swenshuai.xi     #define TSP_TSDMA_CTRL_START                    0x0001
635*53ee8cc1Swenshuai.xi     #define TSP_TSDMA_FILEIN_DONE                   0x0002
636*53ee8cc1Swenshuai.xi     #define TSP_TSDMA_INIT_TRUST                    0x0004
637*53ee8cc1Swenshuai.xi     #define TSP_TSDMA_STAT_ABORT                    0x0080
638*53ee8cc1Swenshuai.xi 
639*53ee8cc1Swenshuai.xi     REG16                           TsDma_mdQ;                          // 0xbf802af8   0x3f
640*53ee8cc1Swenshuai.xi     #define TSP_CMDQ_CNT_MASK                       0x001F
641*53ee8cc1Swenshuai.xi     #define TSP_CMDQ_CNT_SHFT                       0
642*53ee8cc1Swenshuai.xi     #define TSP_CMDQ_FULL                           0x0040
643*53ee8cc1Swenshuai.xi     #define TSP_CMDQ_EMPTY                          0x0080
644*53ee8cc1Swenshuai.xi     #define TSP_CMDQ_SIZE                           16
645*53ee8cc1Swenshuai.xi     #define TSP_CMDQ_WR_LEVEL_MASK                  0x0300
646*53ee8cc1Swenshuai.xi     #define TSP_CMDQ_WR_LEVEL_SHFT                  8
647*53ee8cc1Swenshuai.xi 
648*53ee8cc1Swenshuai.xi     REG32                           MCU_Cmd;                            // 0xbf802b00   0x40
649*53ee8cc1Swenshuai.xi     #define TSP_MCU_CMD_MASK                        0x0000FFFF
650*53ee8cc1Swenshuai.xi     #define TSP_MCU_CMD_NULL                        0x00000000
651*53ee8cc1Swenshuai.xi     #define TSP_MCU_CMD_READ                        0x00000001
652*53ee8cc1Swenshuai.xi     #define TSP_MCU_CMD_WRITE                       0x00000002
653*53ee8cc1Swenshuai.xi     #define TSP_MCU_CMD_ALIVE                       0x00000100
654*53ee8cc1Swenshuai.xi     #define TSP_MCU_CMD_DBG                         0x00000200
655*53ee8cc1Swenshuai.xi     #define TSP_MCU_CMD_BUFRST                      0x00000400
656*53ee8cc1Swenshuai.xi     #define TSP_MCU_CMD_SECRDYINT_DISABLE           0x00000800
657*53ee8cc1Swenshuai.xi     #define TSP_MCU_CMD_SEC_CC_CHECK_DISABLE        0x00001000
658*53ee8cc1Swenshuai.xi     #define TSP_MCU_CMD_INFO                        0x00008000
659*53ee8cc1Swenshuai.xi         #define INFO_FW_VERSION                         0x0001
660*53ee8cc1Swenshuai.xi         #define INFO_FW_DATE                            0x0002
661*53ee8cc1Swenshuai.xi 
662*53ee8cc1Swenshuai.xi     REG16                           PktSize1;                          // 0xbf802b08   0x42
663*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG2_PACKET_CHK_SIZE1_MASK       0x00FF
664*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG2_PACKET_CHK_SIZE1_SHFT       0
665*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG2_PACKET_SYNCBYTE1_MASK       0xFF00
666*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG2_PACKET_SYNCBYTE1_SHFT       8
667*53ee8cc1Swenshuai.xi 
668*53ee8cc1Swenshuai.xi     REG16                           Hw_Config2;                         // 0xbf802b0C   0x43
669*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG2_PACKET_SIZE1_MASK           0x00FF
670*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG2_PACKET_SIZE1_SHFT           0
671*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG2_TSIF1_SERL                  0x0000
672*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG2_TSIF1_PARL                  0x0100
673*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG2_TSIF1_EXTSYNC               0x0200
674*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG2_TSIF1_TS_BYPASS             0x1000
675*53ee8cc1Swenshuai.xi 
676*53ee8cc1Swenshuai.xi     REG16                           Hw_PVRCfg;                          // 0xbf802b10   0x44
677*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG4_SECDMA_PRI_HIGH             0x0001
678*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG4_PVR_ENABLE                  0x0002
679*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG4_PVR_ENDIAN_BIG              0x0004              // 1: record TS to MIU with big endian, 0: record TS to MIU with little endian
680*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG4_TSIF1_ENABLE                0x0008              // 1: enable ts interface 1 and vice versa
681*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG4_PVR_FLUSH                   0x0010              // 1: str2mi_wadr <- str2mi_miu_head
682*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG4_PVRBUF_BYTEORDER_BIG        0x0020              // Byte order of 8-byte recoding buffer to MIU.
683*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG4_PVR_PAUSE                   0x0040
684*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG4_MEMTSDATA_ENDIAN_BIG        0x0080              // 32-bit data byte order read from 8x64 FIFO when playing file.
685*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG4_TSIF0_ENABLE                0x0100              // 1: enable ts interface 0 and vice versa
686*53ee8cc1Swenshuai.xi     #define TSP_SYNC_RISING_DETECT                  0x0200              // Reset bit count when data valid signal of TS interface is low.
687*53ee8cc1Swenshuai.xi     #define TSP_VALID_FALLING_DETECT                0x0400              // Reset bit count on the rising sync signal of TS interface.
688*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG4_TS_DATA0_SWAP               0x0800              // Set 1 to swap the bit order of TS0 DATA bus
689*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG4_TS_DATA1_SWAP               0x1000              // Set 1 to swap the bit order of TS1 DATA bus
690*53ee8cc1Swenshuai.xi     #define TSP_HW_TSP2OUTAEON_INT_EN               0x4000              // Set 1 to force interrupt to outside AEON
691*53ee8cc1Swenshuai.xi     #define TSP_HW_HK_INT_FORCE                     0x8000              // Set 1 to force interrupt to HK_MCU
692*53ee8cc1Swenshuai.xi 
693*53ee8cc1Swenshuai.xi     REG16                           Hw_Config4;                         // 0xbf802b14   0x45
694*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG4_ALT_TS_SIZE                 0x0001              // enable TS packets in 204 mode
695*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG4_PS_AUDC_EN                  0x0002              // program stream audiodC enable
696*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG4_BYTE_ADDR_DMA               0x000D              // prevent from byte enable bug, bit1~3 must enable togather
697*53ee8cc1Swenshuai.xi     #define TSP_HW_DMA_MODE_MASK                    0x0030              // Section filter DMA mode, 2'b00: Single.2'b01: Burst 2 bytes.2'b10: Burst 4 bytes.2'b11: Burst 8 bytes.
698*53ee8cc1Swenshuai.xi     #define TSP_HW_DMA_MODE_SHIFT                   4
699*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG4_WSTAT_CH_EN                 0x0040
700*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG4_PS_VID_EN                   0x0080              // program stream video enable
701*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG4_PS_AUD_EN                   0x0100              // program stream audio enable
702*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG4_PS_AUDB_EN                  0x0200              // program stream audioB enable
703*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG4_APES_ERR_RM_EN              0x0400              // Set 1 to enable removing APES error packet
704*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG4_VPES_ERR_RM_EN              0x0800              // Set 1 to enable removing VPES error packet
705*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG4_SEC_ERR_RM_EN               0x1000              // Set 1 to enable removing section error packet
706*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG4_PS_AUDD_EN                  0x2000              // program stream audioD enable
707*53ee8cc1Swenshuai.xi     #define TSP_HW_CFG4_DATA_CHK_2T                 0x8000              // Set 1 to enable the patch of internal sync in "tsif"
708*53ee8cc1Swenshuai.xi 
709*53ee8cc1Swenshuai.xi     REG32                           NOEA_PC;                            // 0xbf802b18   0x46
710*53ee8cc1Swenshuai.xi 
711*53ee8cc1Swenshuai.xi     REG16                           Idr_Ctrl;                           // 0xbf802b20   0x48
712*53ee8cc1Swenshuai.xi     #define TSP_IDR_START                           0x0001
713*53ee8cc1Swenshuai.xi     #define TSP_IDR_READ                            0x0000
714*53ee8cc1Swenshuai.xi     #define TSP_IDR_WRITE                           0x0002
715*53ee8cc1Swenshuai.xi     #define TSP_IDR_WR_ENDIAN_BIG                   0x0004
716*53ee8cc1Swenshuai.xi     #define TSP_IDR_WR_ADDR_AUTO_INC                0x0008              // Set 1 to enable address auto-increment after finishing read/write
717*53ee8cc1Swenshuai.xi     #define TSP_IDR_WDAT0_TRIG_EN                   0x0010              // WDAT0_TRIG_EN
718*53ee8cc1Swenshuai.xi     #define TSP_IDR_MCUWAIT                         0x0020
719*53ee8cc1Swenshuai.xi     #define TSP_IDR_SOFT_RST                        0x0080              // Set 1 to soft-reset the IND32 module
720*53ee8cc1Swenshuai.xi     #define TSP_IDR_AUTO_INC_VAL_MASK               0x0F00
721*53ee8cc1Swenshuai.xi     #define TSP_IDR_AUTO_INC_VAL_SHIFT              8
722*53ee8cc1Swenshuai.xi 
723*53ee8cc1Swenshuai.xi     REG32                           Idr_Addr;                           // 0xbf802b24   0x49
724*53ee8cc1Swenshuai.xi     REG32                           Idr_Write;                          // 0xbf802b2c   0x4b
725*53ee8cc1Swenshuai.xi     REG32                           Idr_Read;                           // 0xbf802b34   0x4d
726*53ee8cc1Swenshuai.xi 
727*53ee8cc1Swenshuai.xi     REG16                           Fifo_Status;                        // 0xbf802b3c   0x4f
728*53ee8cc1Swenshuai.xi     #define TSP_V3D_FIFO_DISCON                     0x0010
729*53ee8cc1Swenshuai.xi     #define TSP_V3D_FIFO_OVERFLOW                   0x0020
730*53ee8cc1Swenshuai.xi     #define TSP_VD_FIFO_DISCON                      0x0200
731*53ee8cc1Swenshuai.xi     #define TSP_VD_FIFO_OVERFLOW                    0x0800
732*53ee8cc1Swenshuai.xi     #define TSP_AUB_FIFO_OVERFLOW                   0x1000
733*53ee8cc1Swenshuai.xi     #define TSP_AU_FIFO_OVERFLOW                    0x2000
734*53ee8cc1Swenshuai.xi 
735*53ee8cc1Swenshuai.xi     // only 25 bits supported in PVR address. 8 bytes address
736*53ee8cc1Swenshuai.xi     #define TSP_STR2MI2_ADDR_MASK                   0x0FFFFFFF
737*53ee8cc1Swenshuai.xi     REG32                           TsRec_Head;                         // 0xbf802b40   0x50
738*53ee8cc1Swenshuai.xi     REG32                           TsRec_Mid_PVR1_WPTR;                // 0xbf802b48   0x52, PVR1 mid address & write point
739*53ee8cc1Swenshuai.xi     REG32                           TsRec_Tail;                         // 0xbf802b50   0x54
740*53ee8cc1Swenshuai.xi     REG32                           _xbf802b58[2];                      // 0xbf802b58 ~ 0xbf802b60   0x56~0x59
741*53ee8cc1Swenshuai.xi 
742*53ee8cc1Swenshuai.xi     REG16                           reg15b4;                            // 0xbf802b68   0x5a
743*53ee8cc1Swenshuai.xi     #define TSP_VQ_DMAW_PROTECT_EN                  0x0001
744*53ee8cc1Swenshuai.xi     #define TSP_SEC_CB_PVR2_DAMW_PROTECT_EN         0x0002
745*53ee8cc1Swenshuai.xi     #define TSP_PVR_PID_BYPASS                      0x0008              // Set 1 to bypass PID in record
746*53ee8cc1Swenshuai.xi     #define TSP_PVR_PID_BYPASS2                     0x0010              // Set 1 to bypass PID in record2
747*53ee8cc1Swenshuai.xi     #define TSP_BD_AUD_EN                           0x0020              // Set 1 to enable the BD audio stream recognization ( core /extend audio stream)
748*53ee8cc1Swenshuai.xi     #define TSP_BD2_AUD_EN                          0x0200              // Set 1 to enable the BD audio stream recognization ( core /extend audio stream)
749*53ee8cc1Swenshuai.xi     #define TSP_AVFIFO_RD_EN                        0x0080              // 0: AFIFO and VFIFO read are connected to MVD and MAD,  1: AFIFO and VFIFO read are controlled by registers (0x15B5[2:0])
750*53ee8cc1Swenshuai.xi     #define TSP_AVFIFO_RD                           0x0100              // If AVFIFO_RD_EN is 1, set to 1, then set to 0 would issue a read strobe to AFIFO or VFIFO
751*53ee8cc1Swenshuai.xi     #define TSP_NMATCH_DISABLE                      0x0800
752*53ee8cc1Swenshuai.xi     #define TSP_PVR_INVERT                          0x1000              // Set 1 to enable data payload invert for PVR record
753*53ee8cc1Swenshuai.xi     #define TSP_PLY_FILE_INV_EN                     0x2000              // Set 1 to enable data payload invert in pidflt0 file path
754*53ee8cc1Swenshuai.xi     #define TSP_PLY_TS_INV_EN                       0x4000              // Set 1 to enable data payload invert in pidflt0 TS path
755*53ee8cc1Swenshuai.xi     #define TSP_FILEIN_BYTETIMER_ENABLE             0x8000              // Set 1 to enable byte timer in ts_if0 TS path
756*53ee8cc1Swenshuai.xi 
757*53ee8cc1Swenshuai.xi     REG16                           reg15b8;                            // 0xbf802b6C   0x5b
758*53ee8cc1Swenshuai.xi     #define TSP_PVR1_PINGPONG                       0x0001              // Set 1 to enable MIU addresses with pinpon mode
759*53ee8cc1Swenshuai.xi     #define TSP_VQ_STATUS_SEL                       0x0002
760*53ee8cc1Swenshuai.xi     #define TSP_TEI_SKIPE_PKT_PID0                  0x0004              // Set 1 to skip error packets in pidflt0 TS path
761*53ee8cc1Swenshuai.xi     #define TSP_TEI_SKIPE_PKT_PID4                  0x0008              // Set 1 to skip error packets in pidflt4 TS path
762*53ee8cc1Swenshuai.xi     #define TSP_TEI_SKIPE_PKT_PID1                  0x0010              // Set 1 to skip error packets in pidflt1 TS path
763*53ee8cc1Swenshuai.xi     #define TSP_TEI_SKIPE_PKT_PID3                  0x0020              // Set 1 to skip error packets in pidflt3 TS path
764*53ee8cc1Swenshuai.xi     #define TSP_REMOVE_DUP_AV_PKT                   0x0040              // Set 1 to remove duplicate A/V packet
765*53ee8cc1Swenshuai.xi     #define TSP_64bit_PCR2_ld                       0x0080
766*53ee8cc1Swenshuai.xi     #define TSP_cnt_33b_ld                          0x0100
767*53ee8cc1Swenshuai.xi     #define TSP_FORCE_SYNCBYTE                      0x0200              // Set 1 to force sync byte (8'h47) in ts_if0 and ts_if1 path.
768*53ee8cc1Swenshuai.xi     #define TSP_SERIAL_EXT_SYNC_1T                  0x0400              // Set 1 to detect serial-in sync without 8-cycle mode
769*53ee8cc1Swenshuai.xi     #define TSP_BURST_LEN_MASK                      0x1800              // 00,01:    burst length = 4; 10,11: burst length = 1
770*53ee8cc1Swenshuai.xi     #define TSP_BURST_LEN_SHIFT                     11
771*53ee8cc1Swenshuai.xi     #define TSP_MATCH_PID_SRC_MASK                  0xE000              // 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
772*53ee8cc1Swenshuai.xi     #define TSP_MATCH_PID_SRC_SHIFT                 13
773*53ee8cc1Swenshuai.xi     #define TSP_MATCH_PID_SRC_PKTDMX0               0
774*53ee8cc1Swenshuai.xi     #define TSP_MATCH_PID_SRC_PKTDMX1               1
775*53ee8cc1Swenshuai.xi     #define TSP_MATCH_PID_SRC_PKTDMX2               2
776*53ee8cc1Swenshuai.xi     #define TSP_MATCH_PID_SRC_PKTDMX3               3
777*53ee8cc1Swenshuai.xi     #define TSP_MATCH_PID_SRC_PKTDMX4               4
778*53ee8cc1Swenshuai.xi     #define TSP_MATCH_PID_SRC_PKTDMX5               5
779*53ee8cc1Swenshuai.xi     #define TSP_MATCH_PID_SRC_PKTDMX6               6
780*53ee8cc1Swenshuai.xi 
781*53ee8cc1Swenshuai.xi     REG32                           TSP_MATCH_PID_NUM;                  // 0xbf802b70   0x5c
782*53ee8cc1Swenshuai.xi     REG32                           TSP_IWB_WAIT;                       // 0xbf802b78   0x5e  // Wait count settings for IWB when TSP CPU i-cache is enabled.
783*53ee8cc1Swenshuai.xi 
784*53ee8cc1Swenshuai.xi     REG32                           Cpu_Base;                           // 0xbf802b80   0x60
785*53ee8cc1Swenshuai.xi     #define TSP_CPU_BASE_ADDR_MASK                  0x0FFFFFFF
786*53ee8cc1Swenshuai.xi 
787*53ee8cc1Swenshuai.xi     REG32                           Qmem_Ibase;                         // 0xbf802b88   0x62
788*53ee8cc1Swenshuai.xi     REG32                           Qmem_Imask;                         // 0xbf802b90   0x64
789*53ee8cc1Swenshuai.xi     REG32                           Qmem_Dbase;                         // 0xbf802b98   0x66
790*53ee8cc1Swenshuai.xi     REG32                           Qmem_Dmask;                         // 0xbf802ba0   0x68
791*53ee8cc1Swenshuai.xi 
792*53ee8cc1Swenshuai.xi     REG32                           TSP_Debug;                          // 0xbf802ba8   0x6a
793*53ee8cc1Swenshuai.xi     #define TSP_DEBUG_MASK                          0x00FFFFFF
794*53ee8cc1Swenshuai.xi 
795*53ee8cc1Swenshuai.xi     REG32                           _xbf802bb0;                         // 0xbf802bb0   0x6c
796*53ee8cc1Swenshuai.xi 
797*53ee8cc1Swenshuai.xi     REG32                           TsFileIn_RPtr;                      // 0xbf802bb8   0x6e
798*53ee8cc1Swenshuai.xi     #define TSP_FILE_RPTR_MASK                      0x0FFFFFFF
799*53ee8cc1Swenshuai.xi     REG32                           TsFileIn_Timer;                     // 0xbf802bc0   0x70
800*53ee8cc1Swenshuai.xi     #define TSP_FILE_TIMER_MASK                     0x00FFFFFF
801*53ee8cc1Swenshuai.xi     REG32                           TsFileIn_Head;                      // 0xbf802bc8   0x72
802*53ee8cc1Swenshuai.xi     #define TSP_FILE_ADDR_MASK                      0x0FFFFFFF
803*53ee8cc1Swenshuai.xi     REG32                           TsFileIn_Mid;                       // 0xbf802bd0   0x74
804*53ee8cc1Swenshuai.xi 
805*53ee8cc1Swenshuai.xi     REG32                           TsFileIn_Tail;                      // 0xbf802bd8   0x76
806*53ee8cc1Swenshuai.xi 
807*53ee8cc1Swenshuai.xi     REG16                           Dnld_Ctrl_Addr;                     // 0xbf802be0   0x78
808*53ee8cc1Swenshuai.xi     #define TSP_DNLD_ADDR_MASK                      0xFFFF
809*53ee8cc1Swenshuai.xi     #define TSP_DNLD_ADDR_SHFT                      0
810*53ee8cc1Swenshuai.xi     #define TSP_DNLD_ADDR_ALI_SHIFT                 4                   // Bit [11:4] of DMA_RADDR[19:0]
811*53ee8cc1Swenshuai.xi 
812*53ee8cc1Swenshuai.xi     REG16                           Dnld_Ctrl_Size;                     // 0xbf802be4   0x79
813*53ee8cc1Swenshuai.xi     #define TSP_DNLD_NUM_MASK                       0xFFFF
814*53ee8cc1Swenshuai.xi     #define TSP_DNLD_NUM_SHFT                       0
815*53ee8cc1Swenshuai.xi 
816*53ee8cc1Swenshuai.xi     REG16                           TSP_Ctrl;                           // 0xbf802be8   0x7a
817*53ee8cc1Swenshuai.xi     #define TSP_CTRL_CPU_EN                         0x0001
818*53ee8cc1Swenshuai.xi     #define TSP_CTRL_SW_RST                         0x0002
819*53ee8cc1Swenshuai.xi     #define TSP_CTRL_DNLD_START                     0x0004
820*53ee8cc1Swenshuai.xi     #define TSP_CTRL_DNLD_DONE                      0x0008              // See 0x78 for related information
821*53ee8cc1Swenshuai.xi     #define TSP_CTRL_TSFILE_EN                      0x0010
822*53ee8cc1Swenshuai.xi     #define TSP_CTRL_R_PRIO                         0x0020
823*53ee8cc1Swenshuai.xi     #define TSP_CTRL_W_PRIO                         0x0040
824*53ee8cc1Swenshuai.xi     #define TSP_CTRL_ICACHE_EN                      0x0100
825*53ee8cc1Swenshuai.xi     #define TSP_CTRL_CPU2MI_R_PRIO                  0x0400
826*53ee8cc1Swenshuai.xi     #define TSP_CTRL_CPU2MI_W_PRIO                  0x0800
827*53ee8cc1Swenshuai.xi     #define TSP_CTRL_I_EL                           0x0000
828*53ee8cc1Swenshuai.xi     #define TSP_CTRL_I_BL                           0x1000
829*53ee8cc1Swenshuai.xi     #define TSP_CTRL_D_EL                           0x0000
830*53ee8cc1Swenshuai.xi     #define TSP_CTRL_D_BL                           0x2000
831*53ee8cc1Swenshuai.xi     #define TSP_CTRL_NOEA_QMEM_ACK_DIS              0x4000
832*53ee8cc1Swenshuai.xi     #define TSP_CTRL_MEM_TS_WORDER                  0x8000
833*53ee8cc1Swenshuai.xi 
834*53ee8cc1Swenshuai.xi     REG16                           TSP_SyncByte;                       // 0xbf802bec   0x7b
835*53ee8cc1Swenshuai.xi     #define TSP_SYNC_BYTE_MASK                      0x00FF
836*53ee8cc1Swenshuai.xi     #define TSP_SYNC_BYTE_SHIFT                     0
837*53ee8cc1Swenshuai.xi 
838*53ee8cc1Swenshuai.xi     REG16                           PKT_CNT;                            // 0xbf802bf0   0x7c
839*53ee8cc1Swenshuai.xi     #define TSP_PKT_CNT_MASK                        0x00FF
840*53ee8cc1Swenshuai.xi 
841*53ee8cc1Swenshuai.xi     REG16                           DBG_SEL;                            // 0xbf802bf4   0x7d
842*53ee8cc1Swenshuai.xi     #define TSP_DBG_SEL_MASK                        0xFFFF
843*53ee8cc1Swenshuai.xi     #define TSP_DBG_SEL_SHIFT                       0
844*53ee8cc1Swenshuai.xi 
845*53ee8cc1Swenshuai.xi     REG16                           HwInt_Stat;                         // 0xbf802bf8   0x7e
846*53ee8cc1Swenshuai.xi         /*
847*53ee8cc1Swenshuai.xi             6: DMA read done
848*53ee8cc1Swenshuai.xi             5: HK_INT_FORCE.            // it's trigger bit is at bank 15 39 bit[15]
849*53ee8cc1Swenshuai.xi             4: STR2MI_WADR meets STR2MI_MID.
850*53ee8cc1Swenshuai.xi             3: STR2MI_WADR meets STR2MI_TAIL.
851*53ee8cc1Swenshuai.xi             2: dma_status1
852*53ee8cc1Swenshuai.xi             1: dma_status2
853*53ee8cc1Swenshuai.xi             0: dma_status3
854*53ee8cc1Swenshuai.xi         */
855*53ee8cc1Swenshuai.xi     #define TSP_HWINT_EN_MASK                       0x00FF          // Tsp2hk_int enable bits.
856*53ee8cc1Swenshuai.xi     #define TSP_HWINT_EN_SHIFT                      0
857*53ee8cc1Swenshuai.xi     #define TSP_HWINT_DMA_STATUS3_EN                0x0001          // currently not used in ISR
858*53ee8cc1Swenshuai.xi     #define TSP_HWINT_DMA_STATUS2_EN                0x0002          // currently not used in ISR
859*53ee8cc1Swenshuai.xi     #define TSP_HWINT_DMA_STATUS1_EN                0x0004          // currently not used in ISR
860*53ee8cc1Swenshuai.xi     #define TSP_HWINT_TSP_FILEIN_MID_INT_EN         0x0008          // currently not used in ISR
861*53ee8cc1Swenshuai.xi     #define TSP_HWINT_TSP_FILEIN_TAIL_INT_EN        0x0010          // currently not used in ISR
862*53ee8cc1Swenshuai.xi     #define TSP_HWINT_TSP_SW_INT_EN                 0x0020
863*53ee8cc1Swenshuai.xi     #define TSP_HWINT_TSP_DMA_READ_DONE_EN          0x0040          // currently not used in ISR
864*53ee8cc1Swenshuai.xi     #define TSP_HWINT_PVR                           (TSP_HWINT_TSP_FILEIN_MID_INT_EN | TSP_HWINT_TSP_FILEIN_TAIL_INT_EN)
865*53ee8cc1Swenshuai.xi     #define TSP_HWINT_TSP_SUPPORT_ALL               (TSP_HWINT_TSP_SW_INT_EN)
866*53ee8cc1Swenshuai.xi     #define TSP_HWINT_ALL                           TSP_HWINT_TSP_SUPPORT_ALL
867*53ee8cc1Swenshuai.xi 
868*53ee8cc1Swenshuai.xi     #define TSP_HWINT_STATUS_MASK                   0xFF00
869*53ee8cc1Swenshuai.xi     #define TSP_HWINT_STATUS_SHIFT                  8
870*53ee8cc1Swenshuai.xi     #define TSP_HWINT_DMA_STATUS3_STATUS            0x0100
871*53ee8cc1Swenshuai.xi     #define TSP_HWINT_DMA_STATUS2_STATUS            0x0200
872*53ee8cc1Swenshuai.xi     #define TSP_HWINT_DMA_STATUS1_STATUS            0x0400
873*53ee8cc1Swenshuai.xi     #define TSP_HWINT_TSP_FILEIN_MID_INT_STATUS     0x0800
874*53ee8cc1Swenshuai.xi     #define TSP_HWINT_TSP_FILEIN_TAIL_INT_STATUS    0x1000
875*53ee8cc1Swenshuai.xi     #define TSP_HWINT_TSP_SW_INT_STATUS             0x2000
876*53ee8cc1Swenshuai.xi     #define TSP_HWINT_TSP_DMA_READ_DONE             0x4000
877*53ee8cc1Swenshuai.xi 
878*53ee8cc1Swenshuai.xi     REG16                           TSP_Ctrl1;                          // 0xbf802bfc   0x7f
879*53ee8cc1Swenshuai.xi     // 0x7f: TSP_CTRL1: hidden in HwInt_Stat
880*53ee8cc1Swenshuai.xi     #define TSP_CTRL1_FILEIN_TIMER_ENABLE           0x0001
881*53ee8cc1Swenshuai.xi     #define TSP_CTRL1_TSP_FILE_NON_STOP             0x0002              //Set 1 to enable TSP file data read without timer check
882*53ee8cc1Swenshuai.xi     #define TSP_CTRL1_FILEIN_PAUSE                  0x0004              //Set 1 to pause file-in engine fetch data
883*53ee8cc1Swenshuai.xi     #define TSP_CTRL1_FILE_CHECK_WP                 0x0008
884*53ee8cc1Swenshuai.xi     #define TSP_CTRL1_FILE_WP_SEL_MASK              0x0030
885*53ee8cc1Swenshuai.xi     #define TSP_CTRL1_FILE_WP_FI                    0x0010
886*53ee8cc1Swenshuai.xi     #define TSP_CTRL1_FILE_WP_PVR                   0x0020
887*53ee8cc1Swenshuai.xi     #define TSP_CTRL1_STANDBY                       0x0080
888*53ee8cc1Swenshuai.xi     #define TSP_CTRL1_INT2NOEA                      0x0100
889*53ee8cc1Swenshuai.xi     #define TSP_CTRL1_INT2NOEA_FORCE                0x0200
890*53ee8cc1Swenshuai.xi     #define TSP_CTRL1_FORCE_XIU_WRDY                0x0400
891*53ee8cc1Swenshuai.xi     #define TSP_CTRL1_CMDQ_RESET                    0x0800
892*53ee8cc1Swenshuai.xi     #define TSP_CTRL1_DLEND_EN                      0x1000          // Set 1 to enable little-endian mode in TSP CPU
893*53ee8cc1Swenshuai.xi     #define TSP_CTRL1_PVR_CMD_QUEUE_ENABLE          0x2000
894*53ee8cc1Swenshuai.xi     #define TSP_CTRL1_FILEIN_RADDR_READ             0x4000
895*53ee8cc1Swenshuai.xi     #define TSP_CTRL1_DMA_RST                       0x8000
896*53ee8cc1Swenshuai.xi 
897*53ee8cc1Swenshuai.xi     //----------------------------------------------
898*53ee8cc1Swenshuai.xi     // 0xBF802C00 MIPS direct access
899*53ee8cc1Swenshuai.xi     //----------------------------------------------
900*53ee8cc1Swenshuai.xi     REG32                           MCU_Data0;                          // 0xbf802c00   0x00
901*53ee8cc1Swenshuai.xi     #define TSP_MCU_DATA_ALIVE                      TSP_MCU_CMD_ALIVE
902*53ee8cc1Swenshuai.xi 
903*53ee8cc1Swenshuai.xi     REG32                           PVR1_LPcr1;                         // 0xbf802c08   0x02
904*53ee8cc1Swenshuai.xi     REG32                           LPcr2;                              // 0xbf802c10   0x04
905*53ee8cc1Swenshuai.xi 
906*53ee8cc1Swenshuai.xi     REG16                           reg160C;                            // 0xbf802c18   0x06
907*53ee8cc1Swenshuai.xi     #define TSP_PVR1_LPCR1_WLD                      0x0001              // Set 1 to load LPCR1 value (Default: 0)
908*53ee8cc1Swenshuai.xi     #define TSP_PVR1_LPCR1_RLD                      0x0002              // Set 1 to read LPCR1 value (Default: 1)
909*53ee8cc1Swenshuai.xi     #define TSP_LPCR2_WLD                           0x0004              // Set 1 to load LPCR2 value (Default: 0)
910*53ee8cc1Swenshuai.xi     #define TSP_LPCR2_RLD                           0x0008              // Set 1 to read LPCR2 value (Default: 1)
911*53ee8cc1Swenshuai.xi     #define TSP_RECORD192_EN                        0x0010              // 160C bit(5)enable TS packets with 192 bytes on record mode
912*53ee8cc1Swenshuai.xi     #define TSP_FILEIN192_EN                        0x0020              // 160C bit(5)enable TS packets with 192 bytes on file-in mode
913*53ee8cc1Swenshuai.xi     #define TSP_ORZ_DMAW_PROT_EN                    0x0080              // 160C bit(7) open RISC DMA write protection
914*53ee8cc1Swenshuai.xi     #define TSP_CLR_PIDFLT_BYTE_CNT                 0x0100              // Clear pidflt0_file byte counter
915*53ee8cc1Swenshuai.xi     #define TSP_DOUBLE_BUF_DESC                     0x4000              // 160d bit(6) remove buffer limitation, Force pinpong buffer to flush
916*53ee8cc1Swenshuai.xi     #define TSP_TIMESTAMP_RESET                     0x8000              // 160d bit(7) reset timestamp
917*53ee8cc1Swenshuai.xi 
918*53ee8cc1Swenshuai.xi     REG16                           reg160E;                            // 0xbf802c1C   0x07
919*53ee8cc1Swenshuai.xi     #define TSP_VQTX0_BLOCK_DIS                     0x0001
920*53ee8cc1Swenshuai.xi     #define TSP_VQTX1_BLOCK_DIS                     0x0002
921*53ee8cc1Swenshuai.xi     #define TSP_VQTX2_BLOCK_DIS                     0x0004
922*53ee8cc1Swenshuai.xi     #define TSP_VQTX3_BLOCK_DIS                     0x0008
923*53ee8cc1Swenshuai.xi     #define TSP_DIS_MIU_RQ                          0x0010              // Disable miu R/W request for reset TSP usage
924*53ee8cc1Swenshuai.xi     #define TSP_RM_DMA_GLITCH                       0x0080              // Fix sec_dma overflow glitch
925*53ee8cc1Swenshuai.xi     #define TSP_RESET_VFIFO                         0x0100              // Reset VFIFO -- ECO Done
926*53ee8cc1Swenshuai.xi     #define TSP_RESET_AFIFO                         0x0200              // Reset AFIFO -- ECO Done
927*53ee8cc1Swenshuai.xi     #define TSP_RESET_AFIFO3                        0x0400              // Reset AFIFOC -- ECO Done
928*53ee8cc1Swenshuai.xi     #define TSP_CLR_ALL_FLT_MATCH                   0x0800              // Set 1 to clean all flt_match in a packet
929*53ee8cc1Swenshuai.xi     #define TSP_RESET_AFIFO2                        0x1000
930*53ee8cc1Swenshuai.xi     #define TSP_RESET_VFIFO3D                       0x2000
931*53ee8cc1Swenshuai.xi     #define TSP_PVR_WPRI_HIGH                       0x4000
932*53ee8cc1Swenshuai.xi     #define TSP_OPT_ORACESS_TIMING                  0x8000
933*53ee8cc1Swenshuai.xi 
934*53ee8cc1Swenshuai.xi     REG16                           PktChkSizeFilein;                   // 0xbf802c20   0x08
935*53ee8cc1Swenshuai.xi     #define TSP_PKT_SIZE_MASK                       0x00ff
936*53ee8cc1Swenshuai.xi     #define TSP_PKT192_BLK_DIS_FIN                  0x0100              // Set 1 to disable file-in timestamp block scheme
937*53ee8cc1Swenshuai.xi     #define TSP_AV_CLR                              0x0200              // Clear AV FIFO overflow flag and in/out counter
938*53ee8cc1Swenshuai.xi     #define TSP_HW_STANDBY_MODE                     0x0400              // Set 1 to disable all SRAM in TSP for low power mode automatically
939*53ee8cc1Swenshuai.xi     #define TSP_RESET_AFIFO4                        0x4000              // Reset AFIFOC -- ECO Done
940*53ee8cc1Swenshuai.xi 
941*53ee8cc1Swenshuai.xi     REG16                           TSP_Cfg5;                           // 0xbf802c24   0x09
942*53ee8cc1Swenshuai.xi     #define TSP_PREVENT_OVF_META                    0x0001
943*53ee8cc1Swenshuai.xi     #define TSP_OVF_META_SEL                        0x0004
944*53ee8cc1Swenshuai.xi     #define TSP_SYSTIME_MODE                        0x0008
945*53ee8cc1Swenshuai.xi     #define TSP_SEC_DMA_BURST_EN                    0x0080              // Enable Section DMA burst
946*53ee8cc1Swenshuai.xi 
947*53ee8cc1Swenshuai.xi     REG16                           Dnld_AddrH;                         // 0xbf802c28   0x0a
948*53ee8cc1Swenshuai.xi     #define TSP_DMA_RADDR_MSB_MASK                  0x00FF
949*53ee8cc1Swenshuai.xi     #define TSP_DMA_RADDR_MSB_SHIFT                 0
950*53ee8cc1Swenshuai.xi 
951*53ee8cc1Swenshuai.xi     REG16                           TSP_Ctrl2;                          // 0xbf802c2c   0x0b
952*53ee8cc1Swenshuai.xi     #define TSP_CMQ_WORD_EN                         0x0040              // Set 1 to access CMDQ related registers in word.
953*53ee8cc1Swenshuai.xi     #define TSP_AV_DIRECT_STOP                      0x0080              //Set 1 to enable A/V fifo full pull back tsif0 file in
954*53ee8cc1Swenshuai.xi     #define TSP_AV_DIRECT_STOP1                     0x0100              //Set 1 to enable A/V fifo full pull back tsif1 file in
955*53ee8cc1Swenshuai.xi     #define TSP_AV_DIRECT_STOP2                     0x0200              //Set 1 to enable A/V fifo full pull back tsif2 file in
956*53ee8cc1Swenshuai.xi     #define TSP_AV_DIRECT_STOP3                     0x0400              //Set 1 to enable A/V fifo full pull back tsif3 file in
957*53ee8cc1Swenshuai.xi     #define TSP_TS_OUT_EN                           0x1000              // TS_CB out enable. for Serial input to parallel output
958*53ee8cc1Swenshuai.xi     #define TSP_PS_VID_3D_EN                        0x2000              //Set 1 to enable video 3D path in program stream mode
959*53ee8cc1Swenshuai.xi 
960*53ee8cc1Swenshuai.xi     REG32                           TsPidScmbStatTsin;                  // 0xbf802c30   0x0c
961*53ee8cc1Swenshuai.xi     REG32                           TsPidScmbStatFile;                  // 0xbf802c38   0x0e
962*53ee8cc1Swenshuai.xi 
963*53ee8cc1Swenshuai.xi     REG32                           PCR64_2_L;                          // 0xbf802c40   0x10
964*53ee8cc1Swenshuai.xi     REG32                           PCR64_2_H;                          // 0xbf802c48   0x12
965*53ee8cc1Swenshuai.xi     #define TSP_DMAW_BND_MASK                       0xFFFFFFFFUL
966*53ee8cc1Swenshuai.xi 
967*53ee8cc1Swenshuai.xi     REG32                           DMAW_LBND0;                         // 0xbf802c50   0x14    //sec1 protect
968*53ee8cc1Swenshuai.xi     REG32                           DMAW_UBND0;                         // 0xbf802c58   0x16
969*53ee8cc1Swenshuai.xi     REG32                           DMAW_LBND1;                         // 0xbf802c60   0x18    //sec2 protect
970*53ee8cc1Swenshuai.xi     REG32                           DMAW_UBND1;                         // 0xbf802c68   0x1A
971*53ee8cc1Swenshuai.xi 
972*53ee8cc1Swenshuai.xi     REG32                           HW2_CFG6;                           // 0xbf802c68   0x1C
973*53ee8cc1Swenshuai.xi     REG32                           HW2_CFG5;                           // 0xbf802c68   0x1E
974*53ee8cc1Swenshuai.xi 
975*53ee8cc1Swenshuai.xi     REG32                           VQ0_BASE;                           // 0xbf802c80   0x20
976*53ee8cc1Swenshuai.xi     REG16                           VQ0_SIZE;                           // 0xbf802c84   0x22
977*53ee8cc1Swenshuai.xi     #define TSP_VQ0_SIZE_208PK_MASK                 0xFFFF
978*53ee8cc1Swenshuai.xi     #define TSP_VQ0_SIZE_208PK_SHIFT                0
979*53ee8cc1Swenshuai.xi 
980*53ee8cc1Swenshuai.xi     REG16                           VQ0_CTRL;                           // 0xbf802c88   0x23
981*53ee8cc1Swenshuai.xi     #define TSP_VQ0_WR_THRESHOLD_MASK               0x000F
982*53ee8cc1Swenshuai.xi     #define TSP_VQ0_WR_THRESHOLD_SHIFT              0
983*53ee8cc1Swenshuai.xi     #define TSP_VQ0_PRIORTY_THRESHOLD_MASK          0x00F0
984*53ee8cc1Swenshuai.xi     #define TSP_VQ0_PRIORTY_THRESHOL_SHIFT          4
985*53ee8cc1Swenshuai.xi     #define TSP_VQ0_FORCE_FIRE_CNT_1K_MASK          0x0F00
986*53ee8cc1Swenshuai.xi     #define TSP_VQ0_FORCE_FIRE_CNT_1K_SHIFT         8
987*53ee8cc1Swenshuai.xi     #define TSP_VQ0_RESET                           0x1000
988*53ee8cc1Swenshuai.xi     #define TSP_VQ0_OVERFLOW_INT_EN                 0x4000              // Enable the interrupt for overflow happened on Virtual Queue path
989*53ee8cc1Swenshuai.xi     #define TSP_VQ0_CLR_OVERFLOW_INT                0x8000              // Clear the interrupt and the overflow flag
990*53ee8cc1Swenshuai.xi 
991*53ee8cc1Swenshuai.xi     REG16                           VQ_PIDFLT_CTRL;                    // 0xbf802c90   0x24
992*53ee8cc1Swenshuai.xi 
993*53ee8cc1Swenshuai.xi     #define TSP_REQ_VQ_RX_THRESHOLD_MASKE           0x000E
994*53ee8cc1Swenshuai.xi     #define TSP_REQ_VQ_RX_THRESHOLD_SHIFT           1
995*53ee8cc1Swenshuai.xi     #define TSP_REQ_VQ_RX_THRESHOLD_LEN1            0x0000
996*53ee8cc1Swenshuai.xi     #define TSP_REQ_VQ_RX_THRESHOLD_LEN2            0x0002
997*53ee8cc1Swenshuai.xi     #define TSP_REQ_VQ_RX_THRESHOLD_LEN4            0x0004
998*53ee8cc1Swenshuai.xi     #define TSP_REQ_VQ_RX_THRESHOLD_LEN8            0x0006
999*53ee8cc1Swenshuai.xi     #define TSP_PIDFLT0_OVF_INT_EN                  0x0040
1000*53ee8cc1Swenshuai.xi     #define TSP_PIDFLT0_CLR_OVF_INT                 0x0080
1001*53ee8cc1Swenshuai.xi     #define TSP_PIDFLT1_OVF_INT_EN                  0x0100
1002*53ee8cc1Swenshuai.xi     #define TSP_PIDFLT1_CLR_OVF_INT                 0x0200
1003*53ee8cc1Swenshuai.xi     #define TSP_PIDFLT2_OVF_INT_EN                  0x0400
1004*53ee8cc1Swenshuai.xi     #define TSP_PIDFLT2_CLR_OVF_INT                 0x0800
1005*53ee8cc1Swenshuai.xi 
1006*53ee8cc1Swenshuai.xi     REG16                           _xbf202c94 ;                        // 0xbf802c94   0x25
1007*53ee8cc1Swenshuai.xi 
1008*53ee8cc1Swenshuai.xi     REG16                           MOBF_PVR1_Index[2];                 // 0xbf3a2c98   0x26
1009*53ee8cc1Swenshuai.xi     #define TSP_MOBF_PVR1_INDEX_MASK               0x0000001F
1010*53ee8cc1Swenshuai.xi     #define TSP_MOBF_PVR1_INDEX_SHIFT              0
1011*53ee8cc1Swenshuai.xi     REG16                           MOBF_PVR2_Index[2];                 // 0xbf3a2cA0   0x28
1012*53ee8cc1Swenshuai.xi     #define TSP_MOBF_PVR2_INDEX_MASK               0x0000001F
1013*53ee8cc1Swenshuai.xi     #define TSP_MOBF_PVR2_INDEX_SHIFT              0
1014*53ee8cc1Swenshuai.xi 
1015*53ee8cc1Swenshuai.xi     REG32                           DMAW_LBND2;                         // 0xbf802ca8   0x2a    //PVR protect
1016*53ee8cc1Swenshuai.xi     #define TSP_PVR_MASK            0x0FFFFFFFUL
1017*53ee8cc1Swenshuai.xi     REG32                           DMAW_UBND2;                         // 0xbf802cb0   0x2c
1018*53ee8cc1Swenshuai.xi     REG32                           DMAW_LBND3;                         // 0xbf802cb8   0x2e    //PVR 2 protect
1019*53ee8cc1Swenshuai.xi     REG32                           DMAW_UBND3;                         // 0xbf802cc0   0x30
1020*53ee8cc1Swenshuai.xi     REG32                           DMAW_LBND4;                         // 0xbf802cc8   0x32    //PVR 3 protect
1021*53ee8cc1Swenshuai.xi     REG32                           DMAW_UBND4;                         // 0xbf802cd0   0x34
1022*53ee8cc1Swenshuai.xi 
1023*53ee8cc1Swenshuai.xi     REG32                           ORZ_DMAW_LBND;                      // 0xbf802cd8   0x36    //CPU protect
1024*53ee8cc1Swenshuai.xi     #define TSP_ORZ_DMAW_LBND_MASK                  0xffffffffUL        //protect address is base on MIU unit (16byte aligment)
1025*53ee8cc1Swenshuai.xi     REG32                           ORZ_DMAW_UBND;                      // 0xbf802ce0   0x38
1026*53ee8cc1Swenshuai.xi     #define TSP_ORZ_DMAW_UBND_MASK                  0xffffffffUL
1027*53ee8cc1Swenshuai.xi 
1028*53ee8cc1Swenshuai.xi     REG16                           PIDFLT_PCR0;                        // 0xbf802ce8   0x3a
1029*53ee8cc1Swenshuai.xi     #define TSP_PIDFLT_PCR0_PID_MASK                0x1fff
1030*53ee8cc1Swenshuai.xi     #define TSP_PIDFLT_PCR0_EN                      0x8000
1031*53ee8cc1Swenshuai.xi 
1032*53ee8cc1Swenshuai.xi     REG16                           PIDFLT_PCR1;                        // 0xbf802ce8   0x3b
1033*53ee8cc1Swenshuai.xi     #define TSP_PIDFLT_PCR1_PID_MASK                0x1fff
1034*53ee8cc1Swenshuai.xi     #define TSP_PIDFLT_PCR1_EN                      0x8000
1035*53ee8cc1Swenshuai.xi 
1036*53ee8cc1Swenshuai.xi     REG32                           HWPCR0_L;                           // 0xbf802cf0   0x3c
1037*53ee8cc1Swenshuai.xi     REG32                           HWPCR0_H;                           // 0xbf802cf8   0x3e
1038*53ee8cc1Swenshuai.xi 
1039*53ee8cc1Swenshuai.xi     REG32                           CA_CTRL;                            // 0xbf802d00   0x40
1040*53ee8cc1Swenshuai.xi     #define TSP_CA_CTRL_MASK                        0xffffffff
1041*53ee8cc1Swenshuai.xi     #define TSP_CA0_INPUT_TSIF0_LIVEIN              0x00000001
1042*53ee8cc1Swenshuai.xi     #define TSP_CA0_INPUT_TSIF0_FILEIN              0x00000002
1043*53ee8cc1Swenshuai.xi     #define TSP_CA0_INPUT_TSIF1                     0x00000004
1044*53ee8cc1Swenshuai.xi     #define TSP_CA0_AVPAUSE                         0x00000008
1045*53ee8cc1Swenshuai.xi     #define TSP_CA0_OUTPUT_PKTDMX0_LIVE             0x00000010
1046*53ee8cc1Swenshuai.xi     #define TSP_CA0_OUTPUT_PKTDMX0_FILE             0x00000020
1047*53ee8cc1Swenshuai.xi     #define TSP_CA0_OUTPUT_PKTDMX1                  0x00000040          //pkt_demux1
1048*53ee8cc1Swenshuai.xi     #define TSP_CA0_INPUT_TSIF2                     0x00001000
1049*53ee8cc1Swenshuai.xi     #define TSP_CA0_OUTPUT_PKTDMX2                  0x00002000          //pkt_demux2
1050*53ee8cc1Swenshuai.xi     #define TSP_CA2_INPUT_TSIF2                     0x00100000
1051*53ee8cc1Swenshuai.xi     #define TSP_CA2_OUTPUT_REC2                     0x00200000          //pkt_demux2
1052*53ee8cc1Swenshuai.xi     #define TSP_CA2_INPUT_TSIF0_LIVEIN              0x01000000
1053*53ee8cc1Swenshuai.xi     #define TSP_CA2_INPUT_TSIF0_FILEIN              0x02000000
1054*53ee8cc1Swenshuai.xi     #define TSP_CA2_INPUT_TSIF1                     0x04000000
1055*53ee8cc1Swenshuai.xi     #define TSP_CA2_OUTPUT_PLAY_LIVE                0x10000000
1056*53ee8cc1Swenshuai.xi     #define TSP_CA2_OUTPUT_PLAY_FILE                0x20000000
1057*53ee8cc1Swenshuai.xi     #define TSP_CA2_OUTPUT_REC1                     0x40000000          //pkt_demux1
1058*53ee8cc1Swenshuai.xi 
1059*53ee8cc1Swenshuai.xi     REG16                           OneWay;                             // 0xbf802d08   0x42 ,
1060*53ee8cc1Swenshuai.xi     #define TSP_ONEWAY_CAREC_DISABLE                0x0001
1061*53ee8cc1Swenshuai.xi     #define TSP_ONEWAY_PVR                          0x0002
1062*53ee8cc1Swenshuai.xi     #define TSP_ONEWAY_PVR1                         0x0004
1063*53ee8cc1Swenshuai.xi     #define TSP_ONEWAY_FW                           0x0008
1064*53ee8cc1Swenshuai.xi     #define TSP_ONEWAY_QMEM                         0x0010
1065*53ee8cc1Swenshuai.xi     #define TSP_ONEWAY_PVR2                         0x0020
1066*53ee8cc1Swenshuai.xi     #define TSP_ONEWAY_FIQ                          0x0040
1067*53ee8cc1Swenshuai.xi 
1068*53ee8cc1Swenshuai.xi     REG16                           _xbf202d0C;                         // 0xbf802d0C   0x43
1069*53ee8cc1Swenshuai.xi 
1070*53ee8cc1Swenshuai.xi     REG32                           HWPCR1_L;                           // 0xbf802d10   0x44
1071*53ee8cc1Swenshuai.xi     REG32                           HWPCR1_H;                           // 0xbf802d18   0x46
1072*53ee8cc1Swenshuai.xi 
1073*53ee8cc1Swenshuai.xi     REG16                           IND32_CMD;                          // 0xbf802d20   0x48
1074*53ee8cc1Swenshuai.xi     REG32                           IND32_ADDR;                         // 0xbf802d24   0x49, Indirect address to TSP CPU
1075*53ee8cc1Swenshuai.xi     REG32                           IND32_WDATA;                        // 0xbf802d2C   0x4B, Indirect write data to TSP CPUr
1076*53ee8cc1Swenshuai.xi     REG32                           IND32_RDATA;                        // 0xbf802d34   0x4D, IND32_WDATA
1077*53ee8cc1Swenshuai.xi 
1078*53ee8cc1Swenshuai.xi     REG16                           _xbf202d3c;                         // 0xbf802d3C   0x4F
1079*53ee8cc1Swenshuai.xi 
1080*53ee8cc1Swenshuai.xi     REG16                           FIFO_Src;                           // 0xbf802d40   0x50
1081*53ee8cc1Swenshuai.xi     #define TSP_AUD_SRC_MASK                        0x0007
1082*53ee8cc1Swenshuai.xi     #define TSP_AUD_SRC_SHIFT                       0
1083*53ee8cc1Swenshuai.xi     #define TSP_AUDB_SRC_MASK                       0x0038
1084*53ee8cc1Swenshuai.xi     #define TSP_AUDB_SRC_SHIFT                      3
1085*53ee8cc1Swenshuai.xi     #define TSP_VID_SRC_MASK                        0x01C0
1086*53ee8cc1Swenshuai.xi     #define TSP_VID_SRC_SHIFT                       6
1087*53ee8cc1Swenshuai.xi     #define TSP_VID3D_SRC_MASK                      0x0E00
1088*53ee8cc1Swenshuai.xi     #define TSP_VID3D_SRC_SHIFT                     9
1089*53ee8cc1Swenshuai.xi     #define TSP_PVR1_SRC_MASK                       0x7000
1090*53ee8cc1Swenshuai.xi     #define TSP_PVR1_SRC_SHIFT                      12
1091*53ee8cc1Swenshuai.xi     #define TSP_PVR2_SRC_MASK_L                     0x8000
1092*53ee8cc1Swenshuai.xi     #define TSP_PVR2_SRC_SHIFT_L                    15
1093*53ee8cc1Swenshuai.xi 
1094*53ee8cc1Swenshuai.xi     REG16                           PCR_Cfg;                           // 0xbf802d44   0x51
1095*53ee8cc1Swenshuai.xi     #define TSP_PVR2_SRC_MASK_H                     0x0003
1096*53ee8cc1Swenshuai.xi     #define TSP_PVR2_SRC_SHIFT_H                    0
1097*53ee8cc1Swenshuai.xi     #define TSP_AUDC_SRC_MASK                       0x001C
1098*53ee8cc1Swenshuai.xi     #define TSP_AUDC_SRC_SHIFT                      2
1099*53ee8cc1Swenshuai.xi     #define TSP_AUDD_SRC_MASK                       0x00E0
1100*53ee8cc1Swenshuai.xi     #define TSP_AUDD_SRC_SHIFT                      5
1101*53ee8cc1Swenshuai.xi     #define TSP_TEI_SKIP_PKT_PCR0                   0x0100
1102*53ee8cc1Swenshuai.xi     #define TSP_PCR0_RESET                          0x0200
1103*53ee8cc1Swenshuai.xi     #define TSP_PCR0_INT_CLR                        0x0400
1104*53ee8cc1Swenshuai.xi     #define TSP_PCR0_READ                           0x0800
1105*53ee8cc1Swenshuai.xi     #define TSP_TEI_SKIP_PKT_PCR1                   0x1000
1106*53ee8cc1Swenshuai.xi     #define TSP_PCR1_RESET                          0x2000
1107*53ee8cc1Swenshuai.xi     #define TSP_PCR1_INT_CLR                        0x4000
1108*53ee8cc1Swenshuai.xi     #define TSP_PCR1_READ                           0x8000
1109*53ee8cc1Swenshuai.xi 
1110*53ee8cc1Swenshuai.xi     REG32                           STC_DIFF_BUF;                       // 0xbf802d48   0x52
1111*53ee8cc1Swenshuai.xi 
1112*53ee8cc1Swenshuai.xi     REG32                           STC_DIFF_BUF_H;                     // 0xbf802d50   0x54
1113*53ee8cc1Swenshuai.xi     #define TSP_STC_DIFF_BUF_H_MASK                 0x0000000F
1114*53ee8cc1Swenshuai.xi     #define TSP_STC_DIFF_BUF_H_AHIFT                0
1115*53ee8cc1Swenshuai.xi 
1116*53ee8cc1Swenshuai.xi     REG32                           VQ1_Base;                           // 0xbf802d58   0x56
1117*53ee8cc1Swenshuai.xi 
1118*53ee8cc1Swenshuai.xi     REG32                           _xbf202d60_6C[2];                   // 0xbf802d60   0x58~0x5B
1119*53ee8cc1Swenshuai.xi 
1120*53ee8cc1Swenshuai.xi     REG16                           VQ1_Size;                           // 0xbf802d70   0x5C
1121*53ee8cc1Swenshuai.xi     #define TSP_VQ1_SIZE_208PK_MASK                 0xffff
1122*53ee8cc1Swenshuai.xi     #define TSP_VQ1_SIZE_208PK_SHIFT                0
1123*53ee8cc1Swenshuai.xi 
1124*53ee8cc1Swenshuai.xi     REG16                           VQ1_Config;                         // 0xbf802d74   0x5d
1125*53ee8cc1Swenshuai.xi     #define TSP_VQ1_WR_THRESHOLD_MASK               0x000F
1126*53ee8cc1Swenshuai.xi     #define TSP_VQ1_WR_THRESHOLD_SHIFT              0
1127*53ee8cc1Swenshuai.xi     #define TSP_VQ1_PRI_THRESHOLD_MASK              0x00F0
1128*53ee8cc1Swenshuai.xi     #define TSP_VQ1_PRI_THRESHOLD_SHIFT             4
1129*53ee8cc1Swenshuai.xi     #define TSP_VQ1_FORCEFIRE_CNT_1K_MASK           0x0F00
1130*53ee8cc1Swenshuai.xi     #define TSP_VQ1_FORCEFIRE_CNT_1K_SHIFT          8
1131*53ee8cc1Swenshuai.xi     #define TSP_VQ1_RESET                           0x1000
1132*53ee8cc1Swenshuai.xi     #define TSP_VQ1_OVF_INT_EN                      0x4000
1133*53ee8cc1Swenshuai.xi     #define TSP_VQ1_CLR_OVF_INT                     0x8000
1134*53ee8cc1Swenshuai.xi 
1135*53ee8cc1Swenshuai.xi     REG32                           VQ2_Base;                           // 0xbf802d78   0x5E
1136*53ee8cc1Swenshuai.xi 
1137*53ee8cc1Swenshuai.xi     REG32                           TS_WatchDog_Cnt;                    // 0xbf802d80   0x60
1138*53ee8cc1Swenshuai.xi     #define TSP_TS_WATCH_DOG_MASK                   0xFFFF0000
1139*53ee8cc1Swenshuai.xi     #define TSP_TS_WATCH_DOG_SHIFT                  16
1140*53ee8cc1Swenshuai.xi 
1141*53ee8cc1Swenshuai.xi     REG32                           Bist_Fail;                          // 0xbf802d88   0x62
1142*53ee8cc1Swenshuai.xi     #define TSP_BIST_FAIL_STATUS_MASK               0x00FF0000
1143*53ee8cc1Swenshuai.xi     #define TSP_BIST_FAIL_STATUS_SRAM1P192x8_MASK   0x00070000
1144*53ee8cc1Swenshuai.xi     #define TSP_BIST_FAIL_STATUS_SRAM2P512x32w8     0x00080000
1145*53ee8cc1Swenshuai.xi     #define TSP_BIST_FAIL_STATUS_SRAM2P16x128_MASK  0x00600000
1146*53ee8cc1Swenshuai.xi     #define TSP_BIST_FAIL_STATUS_SRAM1P2048x32w8    0x00800000
1147*53ee8cc1Swenshuai.xi     #define TSP_BIST_FAIL_STATUS_SRAM1P1024x32w8    0x01000000
1148*53ee8cc1Swenshuai.xi     #define TSP_BIST_FAIL_STATUS_SRAM1P512x20       0x00200000
1149*53ee8cc1Swenshuai.xi 
1150*53ee8cc1Swenshuai.xi     REG16                           VQ2_Size;                         // 0xbf802d90   0x64
1151*53ee8cc1Swenshuai.xi     #define TSP_VQ2_SIZE_208PK_MASK                 0xffff
1152*53ee8cc1Swenshuai.xi     #define TSP_VQ2_SIZE_208PK_SHIFT                0
1153*53ee8cc1Swenshuai.xi 
1154*53ee8cc1Swenshuai.xi     REG16                           VQ2_Config;                         // 0xbf802d90   0x65
1155*53ee8cc1Swenshuai.xi     #define TSP_VQ2_WR_THRESHOLD_MASK               0x000F
1156*53ee8cc1Swenshuai.xi     #define TSP_VQ2_WR_THRESHOLD_SHIFT              0
1157*53ee8cc1Swenshuai.xi     #define TSP_VQ2_PRI_THRESHOLD_MASK              0x00F0
1158*53ee8cc1Swenshuai.xi     #define TSP_VQ2_PRI_THRESHOLD_SHIFT             4
1159*53ee8cc1Swenshuai.xi     #define TSP_VQ2_FORCEFIRE_CNT_1K_MASK           0x0F00
1160*53ee8cc1Swenshuai.xi     #define TSP_VQ2_FORCEFIRE_CNT_1K_SHIFT          8
1161*53ee8cc1Swenshuai.xi     #define TSP_VQ2_RESET                           0x1000
1162*53ee8cc1Swenshuai.xi     #define TSP_VQ2_OVF_INT_EN                      0x4000
1163*53ee8cc1Swenshuai.xi     #define TSP_VQ2_CLR_OVF_INT                     0x8000
1164*53ee8cc1Swenshuai.xi 
1165*53ee8cc1Swenshuai.xi     REG32                           VQ_STATUS;                          // 0xbf802d98   0x66
1166*53ee8cc1Swenshuai.xi     #define TSP_VQ_STATUS_MASK                      0xFFFFFFFF
1167*53ee8cc1Swenshuai.xi     #define TSP_VQ_STATUS_SHIFT                     0
1168*53ee8cc1Swenshuai.xi     #define TSP_VQ0_STATUS_READ_EVER_FULL           0x00001000
1169*53ee8cc1Swenshuai.xi     #define TSP_VQ0_STATUS_READ_EVER_OVERFLOW       0x00002000
1170*53ee8cc1Swenshuai.xi     #define TSP_VQ0_STATUS_EMPTY                    0x00004000
1171*53ee8cc1Swenshuai.xi     #define TSP_VQ0_STATUS_READ_BUSY                0x00008000
1172*53ee8cc1Swenshuai.xi     #define TSP_VQ1_STATUS_READ_EVER_FULL           0x00010000
1173*53ee8cc1Swenshuai.xi     #define TSP_VQ1_STATUS_READ_EVER_OVERFLOW       0x00020000
1174*53ee8cc1Swenshuai.xi     #define TSP_VQ1_STATUS_EMPTY                    0x00040000
1175*53ee8cc1Swenshuai.xi     #define TSP_VQ1_STATUS_READ_BUSY                0x00080000
1176*53ee8cc1Swenshuai.xi     #define TSP_VQ2_STATUS_READ_EVER_FULL           0x00100000
1177*53ee8cc1Swenshuai.xi     #define TSP_VQ2_STATUS_READ_EVER_OVERFLOW       0x00200000
1178*53ee8cc1Swenshuai.xi     #define TSP_VQ2_STATUS_EMPTY                    0x00400000
1179*53ee8cc1Swenshuai.xi     #define TSP_VQ2_STATUS_READ_BUSY                0x00800000
1180*53ee8cc1Swenshuai.xi     #define TSP_VQ0_STATUS_TX_OVERFLOW              0x10000000
1181*53ee8cc1Swenshuai.xi     #define TSP_VQ1_STATUS_TX_OVERFLOW              0x20000000
1182*53ee8cc1Swenshuai.xi     #define TSP_VQ2_STATUS_TX_OVERFLOW              0x40000000
1183*53ee8cc1Swenshuai.xi 
1184*53ee8cc1Swenshuai.xi     REG32                           DM2MI_WAddr_Err;                    // 0xbf802da0   0x68  , DM2MI_WADDR_ERR0
1185*53ee8cc1Swenshuai.xi 
1186*53ee8cc1Swenshuai.xi     REG32                           ORZ_DMAW_WAddr_Err;                 // 0xbf802da8   0x6a  , ORZ_WADDR_ERR0
1187*53ee8cc1Swenshuai.xi 
1188*53ee8cc1Swenshuai.xi     REG16                           HwInt2_Stat;                        // 0xbf802dB0   0x6c
1189*53ee8cc1Swenshuai.xi         /*
1190*53ee8cc1Swenshuai.xi             [5] : OTV HW interrupt
1191*53ee8cc1Swenshuai.xi             [4] : all DMA write address not in the protect zone interrupt
1192*53ee8cc1Swenshuai.xi             [3] : vq0~vq6 overflow interrupt
1193*53ee8cc1Swenshuai.xi             [2] : aud_err
1194*53ee8cc1Swenshuai.xi             [1] : vid_err
1195*53ee8cc1Swenshuai.xi             [0] : reg_hk_int_force (it's trigger bit is at bank 15 44 bit[15])
1196*53ee8cc1Swenshuai.xi         */
1197*53ee8cc1Swenshuai.xi     #define TSP_HWINT2_EN_MASK                              0x00FF
1198*53ee8cc1Swenshuai.xi     #define TSP_HWINT2_EN_SHIFT                             0
1199*53ee8cc1Swenshuai.xi     #define TSP_HWINT2_TSP_HK_INT_FORCE_EN                  0x0001      // currently not used in ISR
1200*53ee8cc1Swenshuai.xi     #define TSP_HWINT2_TSP_VID_PKT_ERR_EN                   0x0002      // currently not used in ISR
1201*53ee8cc1Swenshuai.xi     #define TSP_HWINT2_TSP_AUD_PKT_ERR_EN                   0x0004      // currently not used in ISR
1202*53ee8cc1Swenshuai.xi     #define TSP_HWINT2_VQ0_TO_VQ6_OVERFLOW_EN               0x0008      // currently not used in ISR
1203*53ee8cc1Swenshuai.xi     #define TSP_HWINT2_ALL_DMA_WADDR_NOT_IN_PROCT_Z_EN      0x0010      // currently not used in ISR
1204*53ee8cc1Swenshuai.xi     #define TSP_HWINT2_OTV_EN                               0x0020
1205*53ee8cc1Swenshuai.xi     #define TSP_HWINT2_SUPPORT_ALL                          0x0000
1206*53ee8cc1Swenshuai.xi     #define TSP_HWINT2_ALL                                  TSP_HWINT2_SUPPORT_ALL
1207*53ee8cc1Swenshuai.xi 
1208*53ee8cc1Swenshuai.xi     #define TSP_HWINT2_STATUS_MASK                          0xFF00
1209*53ee8cc1Swenshuai.xi     #define TSP_HWINT2_STATUS_SHIFT                         8
1210*53ee8cc1Swenshuai.xi     #define TSP_HWINT2_TSP_HK_INT_FORCE_STATUS              0x0100
1211*53ee8cc1Swenshuai.xi     #define TSP_HWINT2_TSP_VID_PKT_ERR                      0x0200
1212*53ee8cc1Swenshuai.xi     #define TSP_HWINT2_TSP_AUD_PKT_ERR                      0x0400
1213*53ee8cc1Swenshuai.xi     #define TSP_HWINT2_VQ0_TO_VQ6_OVERFLOW                  0x0800
1214*53ee8cc1Swenshuai.xi     #define TSP_HWINT2_ALL_DMA_WADDR_NOT_IN_PROCT_Z         0x1000
1215*53ee8cc1Swenshuai.xi     #define TSP_HWINT2_OTV                                  0x2000
1216*53ee8cc1Swenshuai.xi 
1217*53ee8cc1Swenshuai.xi     REG32                           SwInt2_Stat;                        // 0xbf802dB4   0x6d
1218*53ee8cc1Swenshuai.xi     REG16                           HwInt3_Stat;                        // 0xbf802dBC   0x6f
1219*53ee8cc1Swenshuai.xi         /*
1220*53ee8cc1Swenshuai.xi             [7] : pcr filter 7 update finish
1221*53ee8cc1Swenshuai.xi             [6] : pcr filter 6 update finish
1222*53ee8cc1Swenshuai.xi             [5] : pcr filter 5 update finish
1223*53ee8cc1Swenshuai.xi             [4] : pcr filter 4 update finish
1224*53ee8cc1Swenshuai.xi             [3] : pcr filter 3 update finish
1225*53ee8cc1Swenshuai.xi             [2] : pcr filter 2 update finish
1226*53ee8cc1Swenshuai.xi             [1] : pcr filter 1 update finish
1227*53ee8cc1Swenshuai.xi             [0] : pcr filter 0 update finish
1228*53ee8cc1Swenshuai.xi         */
1229*53ee8cc1Swenshuai.xi     #define TSP_HWINT3_EN_MASK                              0x00FF
1230*53ee8cc1Swenshuai.xi     #define TSP_HWINT3_EN_SHIFT                             0
1231*53ee8cc1Swenshuai.xi     #define TSP_HWINT3_PCR0_UPDATE_END_EN                   0x0001
1232*53ee8cc1Swenshuai.xi     #define TSP_HWINT3_PCR1_UPDATE_END_EN                   0x0002
1233*53ee8cc1Swenshuai.xi     #define TSP_HWINT3_PCR2_UPDATE_END_EN                   0x0004
1234*53ee8cc1Swenshuai.xi     #define TSP_HWINT3_PCR3_UPDATE_END_EN                   0x0008
1235*53ee8cc1Swenshuai.xi     #define TSP_HWINT3_PCR4_UPDATE_END_EN                   0x0010
1236*53ee8cc1Swenshuai.xi     #define TSP_HWINT3_PCR5_UPDATE_END_EN                   0x0020
1237*53ee8cc1Swenshuai.xi     #define TSP_HWINT3_PCR6_UPDATE_END_EN                   0x0040
1238*53ee8cc1Swenshuai.xi     #define TSP_HWINT3_PCR7_UPDATE_END_EN                   0x0080
1239*53ee8cc1Swenshuai.xi     #define TSP_HWINT3_SUPPORT_ALL                          0x00FF
1240*53ee8cc1Swenshuai.xi     #define TSP_HWINT3_ALL                                  TSP_HWINT3_SUPPORT_ALL
1241*53ee8cc1Swenshuai.xi 
1242*53ee8cc1Swenshuai.xi     #define TSP_HWINT3_STATUS_MASK                          0xFF00
1243*53ee8cc1Swenshuai.xi     #define TSP_HWINT3_STATUS_SHIFT                         8
1244*53ee8cc1Swenshuai.xi     #define TSP_HWINT3_PCR0_UPDATE_END                      0x0100
1245*53ee8cc1Swenshuai.xi     #define TSP_HWINT3_PCR1_UPDATE_END                      0x0200
1246*53ee8cc1Swenshuai.xi     #define TSP_HWINT3_PCR2_UPDATE_END                      0x0400
1247*53ee8cc1Swenshuai.xi     #define TSP_HWINT3_PCR3_UPDATE_END                      0x0800
1248*53ee8cc1Swenshuai.xi     #define TSP_HWINT3_PCR4_UPDATE_END                      0x1000
1249*53ee8cc1Swenshuai.xi     #define TSP_HWINT3_PCR5_UPDATE_END                      0x2000
1250*53ee8cc1Swenshuai.xi     #define TSP_HWINT3_PCR6_UPDATE_END                      0x4000
1251*53ee8cc1Swenshuai.xi     #define TSP_HWINT3_PCR7_UPDATE_END                      0x8000
1252*53ee8cc1Swenshuai.xi 
1253*53ee8cc1Swenshuai.xi     REG32                           TimeStamp_FileIn;                   // 0xbf802dC0   0x70
1254*53ee8cc1Swenshuai.xi 
1255*53ee8cc1Swenshuai.xi     REG16                           HW2_Config3;                        // 0xbf802dC8   0x72
1256*53ee8cc1Swenshuai.xi     #define TSP_PVR_DMAW_PROTECT_EN                 0x0001
1257*53ee8cc1Swenshuai.xi     #define TSP_WADDR_ERR_SRC_SEL_MASK              0x0006
1258*53ee8cc1Swenshuai.xi     #define TSP_WADDR_ERR_SRC_SEL_SHIFT             1
1259*53ee8cc1Swenshuai.xi     #define TSP_WADDR_ERR_SRC_PVR                   0x0000
1260*53ee8cc1Swenshuai.xi     #define TSP_WADDR_ERR_SRC_VQ                    0x0002
1261*53ee8cc1Swenshuai.xi     #define TSP_WADDR_ERR_SRC_SEC_CB                0x0004
1262*53ee8cc1Swenshuai.xi     #define TSP_RM_OVF_GLITCH                       0x0008
1263*53ee8cc1Swenshuai.xi     #define TSP_FILEIN_RADDR_READ                   0x0010
1264*53ee8cc1Swenshuai.xi     #define TSP_DUP_PKT_CNT_CLR                     0x0040
1265*53ee8cc1Swenshuai.xi     #define TSP_DMA_FLUSH_EN                        0x0080        //PVR1, PVR2 dma flush
1266*53ee8cc1Swenshuai.xi     #define TSP_REC_AT_SYNC_DIS                     0x0100
1267*53ee8cc1Swenshuai.xi     #define TSP_PVR1_ALIGN_EN                       0x0200
1268*53ee8cc1Swenshuai.xi     #define TSP_REC_FORCE_SYNC_EN                   0x0400
1269*53ee8cc1Swenshuai.xi     #define TSP_RM_PKT_DEMUX_PIPE                   0x0800
1270*53ee8cc1Swenshuai.xi     #define TSP_VQ_EN                               0x4000
1271*53ee8cc1Swenshuai.xi     #define TSP_VQ2PINGPONG_EN                      0x8000
1272*53ee8cc1Swenshuai.xi 
1273*53ee8cc1Swenshuai.xi     REG16                           PVRConfig;                    // 0xbf802dCC  0x73
1274*53ee8cc1Swenshuai.xi     #define TSP_PVR1_REC_ALL_EN                     0x0001
1275*53ee8cc1Swenshuai.xi     #define TSP_PVR2_REC_ALL_EN                     0x0002
1276*53ee8cc1Swenshuai.xi     #define TSP_REC_NULL                            0x0004
1277*53ee8cc1Swenshuai.xi     #define TSP_REC_ALL_OLD                         0x0008
1278*53ee8cc1Swenshuai.xi     #define TSP_MATCH_PID_SEL_MASK                  0x1F00
1279*53ee8cc1Swenshuai.xi     #define TSP_MATCH_PID_SEL_SHIFT                 8
1280*53ee8cc1Swenshuai.xi     #define TSP_MATCH_PID_LD                        0x8000
1281*53ee8cc1Swenshuai.xi 
1282*53ee8cc1Swenshuai.xi     REG32                           VQ3_Base;                     // 0x74~75
1283*53ee8cc1Swenshuai.xi     REG16                           VQ3_Size;                     // 0x76
1284*53ee8cc1Swenshuai.xi     #define TSP_VQ3_SIZE_208PK_MASK                 0xffff
1285*53ee8cc1Swenshuai.xi     #define TSP_VQ3_SIZE_208PK_SHIFT                0
1286*53ee8cc1Swenshuai.xi 
1287*53ee8cc1Swenshuai.xi     REG16                           VQ3_Config;                   //0x77
1288*53ee8cc1Swenshuai.xi     #define TSP_VQ3_WR_THRESHOLD_MASK               0x000F
1289*53ee8cc1Swenshuai.xi     #define TSP_VQ3_WR_THRESHOLD_SHIFT              0
1290*53ee8cc1Swenshuai.xi     #define TSP_VQ3_PRI_THRESHOLD_MASK              0x00F0
1291*53ee8cc1Swenshuai.xi     #define TSP_VQ3_PRI_THRESHOLD_SHIFT             4
1292*53ee8cc1Swenshuai.xi     #define TSP_VQ3_FORCEFIRE_CNT_1K_MASK           0x0F00
1293*53ee8cc1Swenshuai.xi     #define TSP_VQ3_FORCEFIRE_CNT_1K_SHIFT          8
1294*53ee8cc1Swenshuai.xi     #define TSP_VQ3_RESET                           0x1000
1295*53ee8cc1Swenshuai.xi     #define TSP_VQ3_OVF_INT_EN                      0x4000
1296*53ee8cc1Swenshuai.xi     #define TSP_VQ3_CLR_OVF_INT                     0x8000
1297*53ee8cc1Swenshuai.xi 
1298*53ee8cc1Swenshuai.xi     REG32                           VQ_RX_Status;                 // 0xbf802de0   0x78
1299*53ee8cc1Swenshuai.xi     #define VQ_RX_ARBITER_MODE_MASK                 0x0000000F
1300*53ee8cc1Swenshuai.xi     #define VQ_RX_ARBITER_MODE_SHIFT                0
1301*53ee8cc1Swenshuai.xi     #define VQ_RX0_PRI_MASK                         0x000000F0
1302*53ee8cc1Swenshuai.xi     #define VQ_RX0_PRI_SHIFT                        4
1303*53ee8cc1Swenshuai.xi     #define VQ_RX1_PRI_MASK                         0x00000F00
1304*53ee8cc1Swenshuai.xi     #define VQ_RX1_PRI_SHIFT                        8
1305*53ee8cc1Swenshuai.xi     #define VQ_RX2_PRI_MASK                         0x0000F000
1306*53ee8cc1Swenshuai.xi     #define VQ_RX2_PRI_SHIFT                        12
1307*53ee8cc1Swenshuai.xi 
1308*53ee8cc1Swenshuai.xi     REG32                           _xbf802de8;                      // 0xbf802dC0   0x7a
1309*53ee8cc1Swenshuai.xi 
1310*53ee8cc1Swenshuai.xi     REG32                           MCU_Data1;                       // 0xbf802dC0   0x7c
1311*53ee8cc1Swenshuai.xi } REG_Ctrl;
1312*53ee8cc1Swenshuai.xi 
1313*53ee8cc1Swenshuai.xi 
1314*53ee8cc1Swenshuai.xi // TSP_MULTI
1315*53ee8cc1Swenshuai.xi #include "regTSP_MULTI.h"
1316*53ee8cc1Swenshuai.xi 
1317*53ee8cc1Swenshuai.xi // TSP_SRC
1318*53ee8cc1Swenshuai.xi #include "regTSP_SRC.h"
1319*53ee8cc1Swenshuai.xi 
1320*53ee8cc1Swenshuai.xi // LIVE-IN
1321*53ee8cc1Swenshuai.xi #include "regPATH.h"
1322*53ee8cc1Swenshuai.xi 
1323*53ee8cc1Swenshuai.xi // FILE-IN
1324*53ee8cc1Swenshuai.xi #include "regFILE.h"
1325*53ee8cc1Swenshuai.xi 
1326*53ee8cc1Swenshuai.xi // SPS/SPD
1327*53ee8cc1Swenshuai.xi #include "regSPS_SPD.h"
1328*53ee8cc1Swenshuai.xi 
1329*53ee8cc1Swenshuai.xi // PVR
1330*53ee8cc1Swenshuai.xi #include "regPVR.h"
1331*53ee8cc1Swenshuai.xi 
1332*53ee8cc1Swenshuai.xi // AV
1333*53ee8cc1Swenshuai.xi #include "regAV.h"
1334*53ee8cc1Swenshuai.xi 
1335*53ee8cc1Swenshuai.xi // STC / PCR
1336*53ee8cc1Swenshuai.xi #include "regSTC.h"
1337*53ee8cc1Swenshuai.xi 
1338*53ee8cc1Swenshuai.xi // Other
1339*53ee8cc1Swenshuai.xi #include "regOTHER.h"
1340*53ee8cc1Swenshuai.xi 
1341*53ee8cc1Swenshuai.xi // TOP
1342*53ee8cc1Swenshuai.xi #include "regTOP.h"
1343*53ee8cc1Swenshuai.xi 
1344*53ee8cc1Swenshuai.xi #endif
1345