hc
2023-03-13 2ec15ae1cb4be1b4fcb56c6d621123d7ebdaad6c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
/*
 * Copyright 2015 Rockchip Electronics Co. LTD
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
 
#ifndef __HAL_H264D_VDPU2_REG_TBL_H__
#define __HAL_H264D_VDPU2_REG_TBL_H__
 
#include "rk_type.h"
 
/* Number registers for the decoder */
#define DEC_VDPU_REGISTERS          159
 
typedef struct {
    RK_U32 sw00_49[50];
    struct {
        RK_U32 dec_tiled_msb : 1;
        RK_U32 adtion_latency : 6;
        RK_U32 dec_fixed_quant : 1;
        RK_U32 dblk_flt_dis : 1;
        RK_U32 skip_sel : 1;
        RK_U32 dec_ascmd0_dis : 1;
        RK_U32 adv_pref_dis : 1;
        RK_U32 dec_tiled_lsb : 1;
        RK_U32 refbuf_thrd : 12;
        RK_U32 refbuf_pid : 5;
        RK_U32 reverse0 : 2;
    } sw50;
    struct {
        RK_U32 stream_len : 24;
        RK_U32 stream_len_ext : 1;
        RK_U32 qp_init_val : 6;
        RK_U32 reverse0 : 1;
    } sw51;
    struct {
        RK_U32 ydim_mbst : 8;
        RK_U32 xdim_mbst : 9;
        RK_U32 adv_pref_thrd : 14;
        RK_U32 reverse0 : 1;
    } sw52;
    struct {
        RK_U32 dec_fmt_sel : 4;
        RK_U32 reverse0 : 28;
    } sw53;
    struct {
        RK_U32 dec_in_endian : 1;
        RK_U32 dec_out_endian : 1;
        RK_U32 dec_in_wordsp : 1;
        RK_U32 dec_out_wordsp : 1;
        RK_U32 dec_strm_wordsp : 1;
        RK_U32 dec_strendian_e : 1;
        RK_U32 reverse0 : 26;
    } sw54;
    struct {
        RK_U32 dec_irq : 1;
        RK_U32 dec_irq_dis : 1;
        RK_U32 reverse0 : 2;
        RK_U32 dec_rdy_sts : 1;
        RK_U32 pp_bus_sts : 1;
        RK_U32 buf_emt_sts : 1;
        RK_U32 reverse1 : 1;
        RK_U32 aso_det_sts : 1;
        RK_U32 slice_det_sts : 1;
        RK_U32 bslice_det_sts : 1;
        RK_U32 reverse2 : 1;
        RK_U32 error_det_sts : 1;
        RK_U32 timeout_det_sts : 1;
        RK_U32 reverse3 : 18;
    } sw55;
    struct {
        RK_U32 dec_axi_id_rd : 8;
        RK_U32 dec_axi_id_wr : 8;
        RK_U32 dec_max_burlen : 5;
        RK_U32 bus_pos_sel : 1;
        RK_U32 dec_data_discd_en : 1;
        RK_U32 axi_sel : 1;
        RK_U32 reverse0 : 8;
    } sw56;
    struct {
        RK_U32 dec_st_work : 1;
        RK_U32 refpic_buf2_en : 1;
        RK_U32 dec_wr_extmen_dis : 1;
        RK_U32 reverse0 : 1;
        RK_U32 dec_clkgate_en : 1;
        RK_U32 timeout_sts_en : 1;
        RK_U32 rd_cnt_tab_en : 1;
        RK_U32 sequ_mbaff_en : 1;
        RK_U32 first_reftop_en : 1;
        RK_U32 reftop_en : 1;
        RK_U32 dmmv_wr_en : 1;
        RK_U32 sorspa_en : 1;
        RK_U32 fwd_refpic_mode_sel : 1;
        RK_U32 pic_decfield_sel : 1;
        RK_U32 pic_type_sel0 : 1;
        RK_U32 pic_type_sel1 : 1;
        RK_U32 curpic_stru_sel : 1;
        RK_U32 curpic_code_sel : 1;
        RK_U32 prog_jpeg_en : 1;
        RK_U32 divx3_en : 1;
        RK_U32 rlc_mode_en : 1;
        RK_U32 addit_ch_fmt_wen : 1;
        RK_U32 st_code_exit : 1;
        RK_U32 reverse1 : 2;
        RK_U32 inter_dblspeed : 1;
        RK_U32 intra_dblspeed : 1;
        RK_U32 intra_dbl3t : 1;
        RK_U32 pref_sigchan : 1;
        RK_U32 cache_en : 1;
        RK_U32 reverse2 : 1;
        RK_U32 dec_timeout_mode : 1;
    } sw57;
    struct {
        RK_U32 soft_rst : 1;
        RK_U32 reverse0 : 31;
    } sw58;
    struct {
        RK_U32 reverse0 : 2;
        RK_U32 pflt_set0_tap2 : 10;
        RK_U32 pflt_set0_tap1 : 10;
        RK_U32 pflt_set0_tap0 : 10;
    } sw59;
    struct {
        RK_U32 addit_ch_st_adr : 32;
    } sw60;
    struct {
        RK_U32 qtable_st_adr : 32;
    } sw61;
    struct {
        RK_U32 dmmv_st_adr : 32;
    } sw62;
    struct {
        RK_U32 dec_out_st_adr : 32;
    } sw63;
    struct {
        RK_U32 rlc_vlc_st_adr : 32;
    } sw64;
    struct {
        RK_U32 refbuf_y_offset : 9;
        RK_U32 reserve0 : 3;
        RK_U32 refbuf_fildpar_mode_e : 1;
        RK_U32 refbuf_idcal_e : 1;
        RK_U32 refbuf_picid : 5;
        RK_U32 refbuf_thr_level : 12;
        RK_U32 refbuf_e : 1;
    } sw65;
    RK_U32 sw66;
    RK_U32 sw67;
    struct {
        RK_U32 refbuf_sum_bot : 16;
        RK_U32 refbuf_sum_top : 16;
    } sw68;
    struct {
        RK_U32 luma_sum_intra : 16;
        RK_U32 refbuf_sum_hit : 16;
    } sw69;
    struct {
        RK_U32 ycomp_mv_sum : 22;
        RK_U32 reserve0 : 10;
    } sw70;
    RK_U32 sw71;
    RK_U32 sw72;
    RK_U32 sw73;
    struct {
        RK_U32 init_reflist_pf4 : 5;
        RK_U32 init_reflist_pf5 : 5;
        RK_U32 init_reflist_pf6 : 5;
        RK_U32 init_reflist_pf7 : 5;
        RK_U32 init_reflist_pf8 : 5;
        RK_U32 init_reflist_pf9 : 5;
        RK_U32 reverse0 : 2;
    } sw74;
    struct {
        RK_U32 init_reflist_pf10 : 5;
        RK_U32 init_reflist_pf11 : 5;
        RK_U32 init_reflist_pf12 : 5;
        RK_U32 init_reflist_pf13 : 5;
        RK_U32 init_reflist_pf14 : 5;
        RK_U32 init_reflist_pf15 : 5;
        RK_U32 reverse0 : 2;
    } sw75;
    struct {
        RK_U32 num_ref_idx0 : 16;
        RK_U32 num_ref_idx1 : 16;
    } sw76;
    struct {
        RK_U32 num_ref_idx2 : 16;
        RK_U32 num_ref_idx3 : 16;
    } sw77;
    struct {
        RK_U32 num_ref_idx4 : 16;
        RK_U32 num_ref_idx5 : 16;
    } sw78;
    struct {
        RK_U32 num_ref_idx6 : 16;
        RK_U32 num_ref_idx7 : 16;
    } sw79;
    struct {
        RK_U32 num_ref_idx8 : 16;
        RK_U32 num_ref_idx9 : 16;
    } sw80;
    struct {
        RK_U32 num_ref_idx10 : 16;
        RK_U32 num_ref_idx11 : 16;
    } sw81;
    struct {
        RK_U32 num_ref_idx12 : 16;
        RK_U32 num_ref_idx13 : 16;
    } sw82;
    struct {
        RK_U32 num_ref_idx14 : 16;
        RK_U32 num_ref_idx15 : 16;
    } sw83;
    union {
        RK_U32 ref0_st_addr;
        struct {
            RK_U32 ref0_closer_sel : 1;
            RK_U32 ref0_field_en : 1;
            RK_U32 reverse0 : 30;
        };
    } sw84;
    union {
        RK_U32 ref1_st_addr;
        struct {
            RK_U32 ref1_closer_sel : 1;
            RK_U32 ref1_field_en : 1;
            RK_U32 reverse0 : 30;
        };
    } sw85;
    union {
        RK_U32 ref2_st_addr;
        struct {
            RK_U32 ref2_closer_sel : 1;
            RK_U32 ref2_field_en : 1;
            RK_U32 reverse0 : 30;
        };
    } sw86;
    union {
        RK_U32 ref3_st_addr;
        struct {
            RK_U32 ref3_closer_sel : 1;
            RK_U32 ref3_field_en : 1;
            RK_U32 reverse0 : 30;
        };
    } sw87;
    union {
        RK_U32 ref4_st_addr;
        struct {
            RK_U32 ref4_closer_sel : 1;
            RK_U32 ref4_field_en : 1;
            RK_U32 reverse0 : 30;
        };
    } sw88;
    union {
        RK_U32 ref5_st_addr;
        struct {
            RK_U32 ref5_closer_sel : 1;
            RK_U32 ref5_field_en : 1;
            RK_U32 reverse0 : 30;
        };
    } sw89;
    union {
        RK_U32 ref6_st_addr;
        struct {
            RK_U32 ref6_closer_sel : 1;
            RK_U32 ref6_field_en : 1;
            RK_U32 reverse0 : 30;
        };
    } sw90;
    union {
        RK_U32 ref7_st_addr;
        struct {
            RK_U32 ref7_closer_sel : 1;
            RK_U32 ref7_field_en : 1;
            RK_U32 reverse0 : 30;
        };
    } sw91;
    union {
        RK_U32 ref8_st_addr;
        struct {
            RK_U32 ref8_closer_sel : 1;
            RK_U32 ref8_field_en : 1;
            RK_U32 reverse0 : 30;
        };
    } sw92;
    union {
        RK_U32 ref9_st_addr;
        struct {
            RK_U32 ref9_closer_sel : 1;
            RK_U32 ref9_field_en : 1;
            RK_U32 reverse0 : 30;
        };
    } sw93;
    union {
        RK_U32 ref10_st_addr;
        struct {
            RK_U32 ref10_closer_sel : 1;
            RK_U32 ref10_field_en : 1;
            RK_U32 reverse0 : 30;
        };
    } sw94;
    union {
        RK_U32 ref11_st_addr;
        struct {
            RK_U32 ref11_closer_sel : 1;
            RK_U32 ref11_field_en : 1;
            RK_U32 reverse0 : 30;
        };
    } sw95;
    union {
        RK_U32 ref12_st_addr;
        struct {
            RK_U32 ref12_closer_sel : 1;
            RK_U32 ref12_field_en : 1;
            RK_U32 reverse0 : 30;
        };
    } sw96;
    union {
        RK_U32 ref13_st_addr;
        struct {
            RK_U32 ref13_closer_sel : 1;
            RK_U32 ref13_field_en : 1;
            RK_U32 reverse0 : 30;
        };
    } sw97;
    union {
        RK_U32 ref14_st_addr;
        struct {
            RK_U32 ref14_closer_sel : 1;
            RK_U32 ref14_field_en : 1;
            RK_U32 reverse0 : 30;
        };
    } sw98;
    union {
        RK_U32 ref15_st_addr;
        struct {
            RK_U32 ref15_closer_sel : 1;
            RK_U32 ref15_field_en : 1;
            RK_U32 reverse0 : 30;
        };
    } sw99;
    struct {
        RK_U32 init_reflist_df0 : 5;
        RK_U32 init_reflist_df1 : 5;
        RK_U32 init_reflist_df2 : 5;
        RK_U32 init_reflist_df3 : 5;
        RK_U32 init_reflist_df4 : 5;
        RK_U32 init_reflist_df5 : 5;
        RK_U32 reverse0 : 2;
    } sw100;
    struct {
        RK_U32 init_reflist_df6 : 5;
        RK_U32 init_reflist_df7 : 5;
        RK_U32 init_reflist_df8 : 5;
        RK_U32 init_reflist_df9 : 5;
        RK_U32 init_reflist_df10 : 5;
        RK_U32 init_reflist_df11 : 5;
        RK_U32 reverse0 : 2;
    } sw101;
    struct {
        RK_U32 init_reflist_df12 : 5;
        RK_U32 init_reflist_df13 : 5;
        RK_U32 init_reflist_df14 : 5;
        RK_U32 init_reflist_df15 : 5;
        RK_U32 reverse0 : 12;
    } sw102;
    struct {
        RK_U32 init_reflist_db0 : 5;
        RK_U32 init_reflist_db1 : 5;
        RK_U32 init_reflist_db2 : 5;
        RK_U32 init_reflist_db3 : 5;
        RK_U32 init_reflist_db4 : 5;
        RK_U32 init_reflist_db5 : 5;
        RK_U32 reverse0 : 2;
    } sw103;
    struct {
        RK_U32 init_reflist_db6 : 5;
        RK_U32 init_reflist_db7 : 5;
        RK_U32 init_reflist_db8 : 5;
        RK_U32 init_reflist_db9 : 5;
        RK_U32 init_reflist_db10 : 5;
        RK_U32 init_reflist_db11 : 5;
        RK_U32 reverse0 : 2;
    } sw104;
    struct {
        RK_U32 init_reflist_db12 : 5;
        RK_U32 init_reflist_db13 : 5;
        RK_U32 init_reflist_db14 : 5;
        RK_U32 init_reflist_db15 : 5;
        RK_U32 reverse0 : 12;
    } sw105;
    struct {
        RK_U32 init_reflist_pf0 : 5;
        RK_U32 init_reflist_pf1 : 5;
        RK_U32 init_reflist_pf2 : 5;
        RK_U32 init_reflist_pf3 : 5;
        RK_U32 reverse0 : 12;
    } sw106;
    struct {
        RK_U32 refpic_term_flag : 32;
    } sw107;
    struct {
        RK_U32 refpic_valid_flag : 32;
    } sw108;
    struct {
        RK_U32 strm_start_bit : 6;
        RK_U32 reverse0 : 26;
    } sw109;
    struct {
        RK_U32 pic_mb_w : 9;
        RK_U32 pic_mb_h : 8;
        RK_U32 flt_offset_cb_qp : 5;
        RK_U32 flt_offset_cr_qp : 5;
        RK_U32 reverse0 : 5;
    } sw110;
    struct {
        RK_U32 max_refnum : 5;
        RK_U32 reverse0 : 11;
        RK_U32 wp_bslice_sel : 2;
        RK_U32 reverse1 : 14;
    } sw111;
    struct {
        RK_U32 curfrm_num : 16;
        RK_U32 cur_frm_len : 5;
        RK_U32 reverse0 : 9;
        RK_U32 rpcp_flag : 1;
        RK_U32 dblk_ctrl_flag : 1;
    } sw112;
    struct {
        RK_U32 idr_pic_id : 16;
        RK_U32 refpic_mk_len : 11;
        RK_U32 reverse0 : 5;
    } sw113;
    struct {
        RK_U32 poc_field_len : 8;
        RK_U32 reverse0 : 6;
        RK_U32 max_refidx0 : 5;
        RK_U32 max_refidx1 : 5;
        RK_U32 pps_id : 8;
    } sw114;
    struct {
        RK_U32 fieldpic_flag_exist : 1;
        RK_U32 scl_matrix_en : 1;
        RK_U32 tranf_8x8_flag_en : 1;
        RK_U32 const_intra_en : 1;
        RK_U32 weight_pred_en : 1;
        RK_U32 cabac_en : 1;
        RK_U32 monochr_en : 1;
        RK_U32 dlmv_method_en : 1;
        RK_U32 idr_pic_flag : 1;
        RK_U32 reverse0 : 23;
    } sw115;
    RK_U32 sw116_158[43];
} H264dVdpuRegs_t;
 
#endif /*__HAL_H264D_VDPU_REG_TBL_H__*/