blob: 15b9bee92016cfd85689368c83c7f271f1bd727f (
plain)
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_ */
|