hc
2023-12-09 b22da3d8526a935aa31e086e63f60ff3246cb61c
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
/* SPDX-License-Identifier: GPL-2.0 */
 
#ifndef RKVDEC_REGS_H_
#define RKVDEC_REGS_H_
 
/* rkvcodec registers */
#define RKVDEC_REG_INTERRUPT                0x004
#define RKVDEC_INTERRUPT_DEC_E                BIT(0)
#define RKVDEC_CONFIG_DEC_CLK_GATE_E            BIT(1)
#define RKVDEC_E_STRMD_CLKGATE_DIS            BIT(2)
#define RKVDEC_TIMEOUT_MODE                BIT(3)
#define RKVDEC_IRQ_DIS                    BIT(4)
#define RKVDEC_TIMEOUT_E                BIT(5)
#define RKVDEC_BUF_EMPTY_E                BIT(6)
#define RKVDEC_STRM_E_WAITDECFIFO_EMPTY            BIT(7)
#define RKVDEC_IRQ                    BIT(8)
#define RKVDEC_IRQ_RAW                    BIT(9)
#define RKVDEC_E_REWRITE_VALID                BIT(10)
#define RKVDEC_COMMONIRQ_MODE                BIT(11)
#define RKVDEC_RDY_STA                    BIT(12)
#define RKVDEC_BUS_STA                    BIT(13)
#define RKVDEC_ERR_STA                    BIT(14)
#define RKVDEC_TIMEOUT_STA                BIT(15)
#define RKVDEC_BUF_EMPTY_STA                BIT(16)
#define RKVDEC_COLMV_REF_ERR_STA            BIT(17)
#define RKVDEC_CABU_END_STA                BIT(18)
#define RKVDEC_H264ORVP9_ERR_MODE            BIT(19)
#define RKVDEC_SOFTRST_EN_P                BIT(20)
#define RKVDEC_FORCE_SOFTRESET_VALID            BIT(21)
#define RKVDEC_SOFTRESET_RDY                BIT(22)
 
#define RKVDEC_REG_SYSCTRL                0x008
#define RKVDEC_IN_ENDIAN                BIT(0)
#define RKVDEC_IN_SWAP32_E                BIT(1)
#define RKVDEC_IN_SWAP64_E                BIT(2)
#define RKVDEC_STR_ENDIAN                BIT(3)
#define RKVDEC_STR_SWAP32_E                BIT(4)
#define RKVDEC_STR_SWAP64_E                BIT(5)
#define RKVDEC_OUT_ENDIAN                BIT(6)
#define RKVDEC_OUT_SWAP32_E                BIT(7)
#define RKVDEC_OUT_CBCR_SWAP                BIT(8)
#define RKVDEC_RLC_MODE_DIRECT_WRITE            BIT(10)
#define RKVDEC_RLC_MODE                    BIT(11)
#define RKVDEC_STRM_START_BIT(x)            (((x) & 0x7f) << 12)
#define RKVDEC_MODE(x)                    (((x) & 0x03) << 20)
#define RKVDEC_MODE_H264                1
#define RKVDEC_MODE_VP9                    2
#define RKVDEC_RPS_MODE                    BIT(24)
#define RKVDEC_STRM_MODE                BIT(25)
#define RKVDEC_H264_STRM_LASTPKT            BIT(26)
#define RKVDEC_H264_FIRSTSLICE_FLAG            BIT(27)
#define RKVDEC_H264_FRAME_ORSLICE            BIT(28)
#define RKVDEC_BUSPR_SLOT_DIS                BIT(29)
 
#define RKVDEC_REG_PICPAR                0x00C
#define RKVDEC_Y_HOR_VIRSTRIDE(x)            ((x) & 0x1ff)
#define RKVDEC_SLICE_NUM_HIGHBIT            BIT(11)
#define RKVDEC_UV_HOR_VIRSTRIDE(x)            (((x) & 0x1ff) << 12)
#define RKVDEC_SLICE_NUM_LOWBITS(x)            (((x) & 0x7ff) << 21)
 
#define RKVDEC_REG_STRM_RLC_BASE            0x010
 
#define RKVDEC_REG_STRM_LEN                0x014
#define RKVDEC_STRM_LEN(x)                ((x) & 0x7ffffff)
 
#define RKVDEC_REG_CABACTBL_PROB_BASE            0x018
#define RKVDEC_REG_DECOUT_BASE                0x01C
 
#define RKVDEC_REG_Y_VIRSTRIDE                0x020
#define RKVDEC_Y_VIRSTRIDE(x)                ((x) & 0xfffff)
 
#define RKVDEC_REG_YUV_VIRSTRIDE            0x024
#define RKVDEC_YUV_VIRSTRIDE(x)                ((x) & 0x1fffff)
#define RKVDEC_REG_H264_BASE_REFER(i)            (((i) * 0x04) + 0x028)
 
#define RKVDEC_REG_H264_BASE_REFER15            0x0C0
#define RKVDEC_FIELD_REF                BIT(0)
#define RKVDEC_TOPFIELD_USED_REF            BIT(1)
#define RKVDEC_BOTFIELD_USED_REF            BIT(2)
#define RKVDEC_COLMV_USED_FLAG_REF            BIT(3)
 
#define RKVDEC_REG_VP9_LAST_FRAME_BASE            0x02c
#define RKVDEC_REG_VP9_GOLDEN_FRAME_BASE        0x030
#define RKVDEC_REG_VP9_ALTREF_FRAME_BASE        0x034
 
#define RKVDEC_REG_VP9_CPRHEADER_OFFSET            0x028
#define RKVDEC_VP9_CPRHEADER_OFFSET(x)            ((x) & 0xffff)
 
#define RKVDEC_REG_VP9_REFERLAST_BASE            0x02C
#define RKVDEC_REG_VP9_REFERGOLDEN_BASE            0x030
#define RKVDEC_REG_VP9_REFERALFTER_BASE            0x034
 
#define RKVDEC_REG_VP9COUNT_BASE            0x038
#define RKVDEC_VP9COUNT_UPDATE_EN            BIT(0)
 
#define RKVDEC_REG_VP9_SEGIDLAST_BASE            0x03C
#define RKVDEC_REG_VP9_SEGIDCUR_BASE            0x040
#define RKVDEC_REG_VP9_FRAME_SIZE(i)            ((i) * 0x04 + 0x044)
#define RKVDEC_VP9_FRAMEWIDTH(x)            (((x) & 0xffff) << 0)
#define RKVDEC_VP9_FRAMEHEIGHT(x)            (((x) & 0xffff) << 16)
 
#define RKVDEC_VP9_SEGID_GRP(i)                ((i) * 0x04 + 0x050)
#define RKVDEC_SEGID_ABS_DELTA(x)            ((x) & 0x1)
#define RKVDEC_SEGID_FRAME_QP_DELTA_EN(x)        (((x) & 0x1) << 1)
#define RKVDEC_SEGID_FRAME_QP_DELTA(x)            (((x) & 0x1ff) << 2)
#define RKVDEC_SEGID_FRAME_LOOPFILTER_VALUE_EN(x)    (((x) & 0x1) << 11)
#define RKVDEC_SEGID_FRAME_LOOPFILTER_VALUE(x)        (((x) & 0x7f) << 12)
#define RKVDEC_SEGID_REFERINFO_EN(x)            (((x) & 0x1) << 19)
#define RKVDEC_SEGID_REFERINFO(x)            (((x) & 0x03) << 20)
#define RKVDEC_SEGID_FRAME_SKIP_EN(x)            (((x) & 0x1) << 22)
 
#define RKVDEC_VP9_CPRHEADER_CONFIG            0x070
#define RKVDEC_VP9_TX_MODE(x)                ((x) & 0x07)
#define RKVDEC_VP9_FRAME_REF_MODE(x)            (((x) & 0x03) << 3)
 
#define RKVDEC_VP9_REF_SCALE(i)                ((i) * 0x04 + 0x074)
#define RKVDEC_VP9_REF_HOR_SCALE(x)            ((x) & 0xffff)
#define RKVDEC_VP9_REF_VER_SCALE(x)            (((x) & 0xffff) << 16)
 
#define RKVDEC_VP9_REF_DELTAS_LASTFRAME            0x080
#define RKVDEC_REF_DELTAS_LASTFRAME(pos, val)        (((val) & 0x7f) << ((pos) * 7))
 
#define RKVDEC_VP9_INFO_LASTFRAME            0x084
#define RKVDEC_MODE_DELTAS_LASTFRAME(pos, val)        (((val) & 0x7f) << ((pos) * 7))
#define RKVDEC_SEG_EN_LASTFRAME                BIT(16)
#define RKVDEC_LAST_SHOW_FRAME                BIT(17)
#define RKVDEC_LAST_INTRA_ONLY                BIT(18)
#define RKVDEC_LAST_WIDHHEIGHT_EQCUR            BIT(19)
#define RKVDEC_COLOR_SPACE_LASTKEYFRAME(x)        (((x) & 0x07) << 20)
 
#define RKVDEC_VP9_INTERCMD_BASE            0x088
 
#define RKVDEC_VP9_INTERCMD_NUM                0x08C
#define RKVDEC_INTERCMD_NUM(x)                ((x) & 0xffffff)
 
#define RKVDEC_VP9_LASTTILE_SIZE            0x090
#define RKVDEC_LASTTILE_SIZE(x)                ((x) & 0xffffff)
 
#define RKVDEC_VP9_HOR_VIRSTRIDE(i)            ((i) * 0x04 + 0x094)
#define RKVDEC_HOR_Y_VIRSTRIDE(x)            ((x) & 0x1ff)
#define RKVDEC_HOR_UV_VIRSTRIDE(x)            (((x) & 0x1ff) << 16)
 
#define RKVDEC_REG_H264_POC_REFER0(i)            (((i) * 0x04) + 0x064)
#define RKVDEC_REG_H264_POC_REFER1(i)            (((i) * 0x04) + 0x0C4)
#define RKVDEC_REG_H264_POC_REFER2(i)            (((i) * 0x04) + 0x120)
#define RKVDEC_POC_REFER(x)                ((x) & 0xffffffff)
 
#define RKVDEC_REG_CUR_POC0                0x0A0
#define RKVDEC_REG_CUR_POC1                0x128
#define RKVDEC_CUR_POC(x)                ((x) & 0xffffffff)
 
#define RKVDEC_REG_RLCWRITE_BASE            0x0A4
#define RKVDEC_REG_PPS_BASE                0x0A8
#define RKVDEC_REG_RPS_BASE                0x0AC
 
#define RKVDEC_REG_STRMD_ERR_EN                0x0B0
#define RKVDEC_STRMD_ERR_EN(x)                ((x) & 0xffffffff)
 
#define RKVDEC_REG_STRMD_ERR_STA            0x0B4
#define RKVDEC_STRMD_ERR_STA(x)                ((x) & 0xfffffff)
#define RKVDEC_COLMV_ERR_REF_PICIDX(x)            (((x) & 0x0f) << 28)
 
#define RKVDEC_REG_STRMD_ERR_CTU            0x0B8
#define RKVDEC_STRMD_ERR_CTU(x)                ((x) & 0xff)
#define RKVDEC_STRMD_ERR_CTU_YOFFSET(x)            (((x) & 0xff) << 8)
#define RKVDEC_STRMFIFO_SPACE2FULL(x)            (((x) & 0x7f) << 16)
#define RKVDEC_VP9_ERR_EN_CTU0                BIT(24)
 
#define RKVDEC_REG_SAO_CTU_POS                0x0BC
#define RKVDEC_SAOWR_XOFFSET(x)                ((x) & 0x1ff)
#define RKVDEC_SAOWR_YOFFSET(x)                (((x) & 0x3ff) << 16)
 
#define RKVDEC_VP9_LAST_FRAME_YSTRIDE            0x0C0
#define RKVDEC_VP9_GOLDEN_FRAME_YSTRIDE            0x0C4
#define RKVDEC_VP9_ALTREF_FRAME_YSTRIDE            0x0C8
#define RKVDEC_VP9_REF_YSTRIDE(x)            (((x) & 0xfffff) << 0)
 
#define RKVDEC_VP9_LAST_FRAME_YUVSTRIDE            0x0CC
#define RKVDEC_VP9_REF_YUVSTRIDE(x)            (((x) & 0x1fffff) << 0)
 
#define RKVDEC_VP9_REF_COLMV_BASE            0x0D0
 
#define RKVDEC_REG_PERFORMANCE_CYCLE            0x100
#define RKVDEC_PERFORMANCE_CYCLE(x)            ((x) & 0xffffffff)
 
#define RKVDEC_REG_AXI_DDR_RDATA            0x104
#define RKVDEC_AXI_DDR_RDATA(x)                ((x) & 0xffffffff)
 
#define RKVDEC_REG_AXI_DDR_WDATA            0x108
#define RKVDEC_AXI_DDR_WDATA(x)                ((x) & 0xffffffff)
 
#define RKVDEC_REG_FPGADEBUG_RESET            0x10C
#define RKVDEC_BUSIFD_RESETN                BIT(0)
#define RKVDEC_CABAC_RESETN                BIT(1)
#define RKVDEC_DEC_CTRL_RESETN                BIT(2)
#define RKVDEC_TRANSD_RESETN                BIT(3)
#define RKVDEC_INTRA_RESETN                BIT(4)
#define RKVDEC_INTER_RESETN                BIT(5)
#define RKVDEC_RECON_RESETN                BIT(6)
#define RKVDEC_FILER_RESETN                BIT(7)
 
#define RKVDEC_REG_PERFORMANCE_SEL            0x110
#define RKVDEC_PERF_SEL_CNT0(x)                ((x) & 0x3f)
#define RKVDEC_PERF_SEL_CNT1(x)                (((x) & 0x3f) << 8)
#define RKVDEC_PERF_SEL_CNT2(x)                (((x) & 0x3f) << 16)
 
#define RKVDEC_REG_PERFORMANCE_CNT(i)            ((i) * 0x04 + 0x114)
#define RKVDEC_PERF_CNT(x)                ((x) & 0xffffffff)
 
#define RKVDEC_REG_H264_ERRINFO_BASE            0x12C
 
#define RKVDEC_REG_H264_ERRINFO_NUM            0x130
#define RKVDEC_SLICEDEC_NUM(x)                ((x) & 0x3fff)
#define RKVDEC_STRMD_DECT_ERR_FLAG            BIT(15)
#define RKVDEC_ERR_PKT_NUM(x)                (((x) & 0x3fff) << 16)
 
#define RKVDEC_REG_H264_ERR_E                0x134
#define RKVDEC_H264_ERR_EN_HIGHBITS(x)            ((x) & 0x3fffffff)
 
#define RKVDEC_REG_PREF_LUMA_CACHE_COMMAND        0x410
#define RKVDEC_REG_PREF_CHR_CACHE_COMMAND        0x450
 
#endif /* RKVDEC_REGS_H_ */