/*
|
* 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__*/
|