AJA NTV2 SDK  17.5.0.1242
NTV2 SDK 17.5.0.1242
ntv2registers2022.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: MIT */
8 #ifndef REGISTERS_2022_H
9 #define REGISTERS_2022_H
10 
11 #include "ntv2registersmb.h"
12 
14 //
15 // General memory map definitions
16 //
18 
19 #define SAREK_2022_6_TX_CORE_0 (0x103000/4)
20 #define SAREK_2022_6_RX_CORE_0 (0x104000/4)
21 #define SAREK_2022_6_TX_CORE_1 (0x105000/4)
22 #define SAREK_2022_6_RX_CORE_1 (0x106000/4)
23 
24 #define SAREK_2022_2_TX_CORE_0 (0x10a000/4)
25 #define SAREK_2022_2_RX_CORE_0 (0x10b000/4)
26 #define SAREK_2022_2_TX_CORE_1 (0x10c000/4)
27 #define SAREK_2022_2_RX_CORE_1 (0x10d000/4)
28 
29 #define SAREK_J2K_ENCODER_1 (0x140000/4)
30 #define SAREK_TS_ENCODER_1 (0x150000/4)
31 #define SAREK_J2K_ENCODER_2 (0x1C0000/4)
32 #define SAREK_TS_ENCODER_2 (0x1D0000/4)
33 
34 #define SAREK_IPX_J2K_DECODER_1 (0x160000/4)
35 #define SAREK_IPX_TS_DECODER_1 (0x170000/4)
36 
38 //
39 // 2022-6 RX Registers (expressed as address)
40 //
42 
43 // common
44 #define kReg2022_6_rx_control 0 // 0x0000
45 #define kReg2022_6_rx_reset 1 // 0x0004
46 #define kReg2022_6_rx_channel_access 3 // 0x000C
47 
48 #define kReg2022_6_rx_sys_conf 8 // 0x0020
49 #define kReg2022_6_rx_version 9 // 0x0024
50 #define kReg2022_6_rx_network_path_differential 10 // 0x0028
51 #define kReg2022_6_rx_fec_processing_delay 12 // 0x0030
52 #define kReg2022_6_rx_fecBuf_base_addr 13 // 0x0034
53 #define kReg2022_6_rx_fecBuf_pool_size 14 // 0x0038
54 #define kReg2022_6_rx_pri_recv_pkt_cnt 15 // 0x003C
55 #define kReg2022_6_rx_sec_recv_pkt_cnt 16 // 0x0040
56 #define kReg2022_6_rx_pri_err_pkt_cnt 17 // 0x0044
57 #define kReg2022_6_rx_sec_err_pkt_cnt 18 // 0x0048
58 #define kReg2022_6_rx_pri_discard_pkt_cnt 19 // 0x004C
59 #define kReg2022_6_rx_sec_discard_pkt_cnt 20 // 0x0050
60 #define kReg2022_6_rx_gen_stat_reset 21 // 0x0054
61 
62 // channel
63 #define kReg2022_6_rx_id_hdr_param 33 // 0x0084
64 #define kReg2022_6_rx_match_vlan 34 // 0x0088
65 #define kReg2022_6_rx_match_dest_ip_addr 35 // 0x008C
66 #define kReg2022_6_rx_match_src_ip_addr 39 // 0x009C
67 #define kReg2022_6_rx_match_src_port 43 // 0x00AC
68 #define kReg2022_6_rx_match_dest_port 44 // 0x00B0
69 #define kReg2022_6_rx_match_sel 45 // 0x00B4
70 #define kReg2022_6_rx_link_reordered_pkt_cnt 46 // 0x00B8
71 #define kReg2022_6_rx_link_stat_reset 47 // 0x00BC
72 #define kReg2022_6_rx_link_valid_media_pkt_cnt 48 // 0x00C0
73 #define kReg2022_6_rx_link_valid_fec_pkt_cnt 49 // 0x00C4
74 
75 // channel shared
76 #define kReg2022_6_rx_chan_enable 64 // 0x0100
77 #define kReg2022_6_rx_chan_timeout 65 // 0x0104
78 #define kReg2022_6_rx_chan_stat_reset 67 // 0x010C
79 #define kReg2022_6_rx_match_ssrc 68 // 0x0110
80 #define kReg2022_6_rx_sdi_pkt_status 69 // 0x0114
81 #define kReg2022_6_rx_vid_src_fmt 70 // 0x0118
82 #define kReg2022_6_rx_playout_delay 71 // 0x011C
83 #define kReg2022_6_rx_fec_param 73 // 0x0124
84 #define kReg2022_6_rx_seamless_protect 74 // 0x0128
85 #define kReg2022_6_rx_media_buf_base_addr 75 // 0x012C
86 #define kReg2022_6_rx_media_pkt_buf_size 76 // 0x0130
87 #define kReg2022_6_rx_chan_valid_media_pkt_cnt 77 // 0x0134
88 #define kReg2022_6_rx_rec_pkt_cnt 78 // 0x0138
89 #define kReg2022_6_rx_dup_pkt_cnt 79 // 0x013C
90 #define kReg2022_6_rx_cur_pkt_buffered 80 // 0x0140
91 #define kReg2022_6_rx_pkt_interval 81 // 0x0144
92 #define kReg2022_6_rx_chan_valid_fec_cnt 82 // 0x0148
93 #define kReg2022_6_rx_media_buffer_ov 85 // 0x0154
94 #define kReg2022_6_rx_unrec_pkt_cnt 86 // 0x0158
95 #define kReg2022_6_rx_oor_pkt_cnt 88 // 0x0160
96 
98 //
99 // 2022-6 TX Registers
100 //
102 
103 // general
104 #define kReg2022_6_tx_control 0 // 0x0000
105 #define kReg2022_6_tx_reset 1 // 0x0004
106 #define kReg2022_6_tx_channel_access 3 // 0x000C
107 #define kReg2022_6_tx_pri_mac_low_addr 4 // 0x0010
108 #define kReg2022_6_tx_pri_mac_hi_addr 5 // 0x0014
109 #define kReg2022_6_tx_sec_mac_low_addr 6 // 0x0018
110 #define kReg2022_6_tx_sec_mac_hi_addr 7 // 0x001C
111 #define kReg2022_6_tx_sys_conf 8 // 0x0020
112 #define kReg2022_6_tx_version 9 // 0x0024
113 #define kReg2022_6_tx_sys_mem_conf 10 // 0x0028
114 #define kReg2022_6_tx_hitless_config 11 // 0x0030
115 
116 //channel
117 #define kReg2022_6_tx_ip_header 32 // 0x0080
118 #define kReg2022_6_tx_vlan_tag_info 33 // 0x0084
119 #define kReg2022_6_tx_dest_mac_low_addr 34 // 0x0088
120 #define kReg2022_6_tx_dest_mac_hi_addr 35 // 0x008C
121 #define kReg2022_6_tx_dest_ip_addr 36 // 0x0090
122 #define kReg2022_6_tx_src_ip_addr 40 // 0x00A0
123 #define kReg2022_6_tx_udp_src_port 44 // 0x00B0
124 #define kReg2022_6_tx_udp_dest_port 45 // 0x00B4
125 #define kReg2022_6_tx_tx_pkt_cnt 48 // 0x00C0
126 #define kReg2022_6_tx_channel_stat_reset 51 // 0x00CC
127 #define kReg2022_6_tx_link_enable 52 // 0x00D0
128 #define kReg2022_6_tx_ip_header_fec 54 // 0x00D8
129 
130 // channel common
131 #define kReg2022_6_tx_chan_enable 64 // 0x0100
132 #define kReg2022_6_tx_video_para_config 68 // 0x0110
133 #define kReg2022_6_tx_media_stream_status 69 // 0x0114
134 #define kReg2022_6_tx_ssrc 70 // 0x0118
135 #define kReg2022_6_tx_fec_config 71 // 0x011C
136 #define kReg2022_6_tx_fec_L_value 73 // 0x0124
137 #define kReg2022_6_tx_fec_D_value 74 // 0x0128
138 
140 //
141 // 2022-2 RX Registers
142 //
144 
145 #define kReg2022_2_rx_control 0 // 0x0000
146 #define kReg2022_2_rx_reset 1 // 0x0004
147 #define kReg2022_2_rx_channel_access 3 // 0x000C
148 
149 #define kReg2022_2_rx_sys_conf 8 // 0x0020
150 #define kReg2022_2_rx_version 9 // 0x0024
151 #define kReg2022_2_rx_network_path_differential 10 // 0x0028
152 #define kReg2022_2_rx_fec_processing_delay 12 // 0x0030
153 #define kReg2022_2_rx_fecBuf_base_addr 13 // 0x0034
154 #define kReg2022_2_rx_fecBuf_pool_size 14 // 0x0038
155 #define kReg2022_2_rx_pri_recv_pkt_cnt 15 // 0x003C
156 #define kReg2022_2_rx_sec_recv_pkt_cnt 16 // 0x0040
157 #define kReg2022_2_rx_pri_err_pkt_cnt 17 // 0x0044
158 #define kReg2022_2_rx_sec_err_pkt_cnt 18 // 0x0048
159 #define kReg2022_2_rx_pri_discard_pkt_cnt 19 // 0x004C
160 #define kReg2022_2_rx_sec_discard_pkt_cnt 20 // 0x0050
161 #define kReg2022_2_rx_gen_stat_reset 21 // 0x0054
162 
163 #define kReg2022_2_rx_id_hdr_param 33 // 0x0084
164 #define kReg2022_2_rx_match_vlan 34 // 0x0088
165 #define kReg2022_2_rx_match_dest_ip_addr 35 // 0x008C
166 
167 #define kReg2022_2_rx_match_src_ip_addr 39 // 0x009C
168 
169 #define kReg2022_2_rx_match_src_port 43 // 0x00AC
170 
171 #define kReg2022_2_rx_match_dest_port 44 // 0x00B0
172 #define kReg2022_2_rx_match_sel 45 // 0x00B4
173 #define kReg2022_2_rx_link_reordered_pkt_cnt 46 // 0x00B8
174 #define kReg2022_2_rx_link_stat_reset 47 // 0x00BC
175 #define kReg2022_2_rx_link_valid_media_pkt_cnt 48 // 0x00C0
176 #define kReg2022_2_rx_link_valid_fec_pkt_cnt 49 // 0x00C4
177 
178 #define kReg2022_2_rx_chan_enable 64 // 0x0100
179 
180 #define kReg2022_2_rx_chan_stat_reset 67 // 0x010C
181 #define kReg2022_2_rx_match_ssrc 68 // 0x0110
182 
183 #define kReg2022_2_rx_playout_delay 71 // 0x011C
184 #define kReg2022_2_ts_status 72 // 0x0120
185 #define kReg2022_2_rx_fec_param 73 // 0x0124
186 #define kReg2022_2_rx_seamless_protect 74 // 0x0128
187 #define kReg2022_2_rx_media_buf_base_addr 75 // 0x012C
188 #define kReg2022_2_rx_media_pkt_buf_size 76 // 0x0130
189 #define kReg2022_2_rx_chan_valid_media_pkt_cnt 77 // 0x0134
190 #define kReg2022_2_rx_rec_pkt_cnt 78 // 0x0138
191 #define kReg2022_2_rx_dup_pkt_cnt 79 // 0x013C
192 #define kReg2022_2_rx_cur_pkt_buffered 80 // 0x0140
193 #define kReg2022_2_rx_pkt_interval 81 // 0x0144
194 
195 #define kReg2022_2_rx_media_buffer_ov 85 // 0x0154
196 #define kReg2022_2_rx_unrec_pkt_cnt 86 // 0x0158
197 #define kReg2022_2_rx_oor_pkt_cnt 88 // 0x0160
198 
199 
201 //
202 // 2022-2 TX Registers
203 //
205 
206 #define kReg2022_2_tx_control 0 // 0x0000
207 #define kReg2022_2_tx_reset 1 // 0x0004
208 #define kReg2022_2_tx_channel_access 3 // 0x000C
209 #define kReg2022_2_tx_pri_mac_low_addr 4 // 0x0010
210 #define kReg2022_2_tx_pri_mac_hi_addr 5 // 0x0014
211 #define kReg2022_2_tx_sec_mac_low_addr 6 // 0x0018
212 #define kReg2022_2_tx_sec_mac_hi_addr 7 // 0x001C
213 #define kReg2022_2_tx_sys_conf 8 // 0x0020
214 #define kReg2022_2_tx_version 9 // 0x0024
215 
216 #define kReg2022_2_tx_hitless_config 12 // 0x0030
217 
218 #define kReg2022_2_tx_ip_header 32 // 0x0080
219 #define kReg2022_2_tx_vlan_tag_info 33 // 0x0084
220 #define kReg2022_2_tx_dest_mac_low_addr 34 // 0x0088
221 #define kReg2022_2_tx_dest_mac_hi_addr 35 // 0x008C
222 #define kReg2022_2_tx_dest_ip_addr 36 // 0x0090
223 
224 #define kReg2022_2_tx_src_ip_addr 40 // 0x00A0
225 
226 #define kReg2022_2_tx_udp_src_port 44 // 0x00B0
227 #define kReg2022_2_tx_udp_dest_port 45 // 0x00B4
228 
229 #define kReg2022_2_tx_tx_pkt_cnt 48 // 0x00C0
230 
231 #define kReg2022_2_tx_channel_stat_reset 51 // 0x00CC
232 
233 #define kReg2022_2_tx_tx_enable 52 // 0x00D0
234 #define kReg2022_2_tx_transport_max_gap 53 // 0x00D4
235 #define kReg2022_2_tx_ip_header_fec 54 // 0x00D8
236 
237 #define kReg2022_2_tx_chan_enable 64 // 0x0100
238 
239 #define kReg2022_2_tx_ts_config 68 // 0x0110
240 #define kReg2022_2_tx_ts_status 69 // 0x0114
241 #define kReg2022_2_tx_ssrc 70 // 0x0118
242 #define kReg2022_2_tx_fec_config 71 // 0x011C
243 #define kReg2022_2_tx_fec_L_value 73 // 0x0124
244 #define kReg2022_2_tx_fec_D_value 74 // 0x0128
245 #define kReg2022_2_tx_fec_base_addr 75 // 0x012C
246 
248 //
249 // J2K Encoder/Decoder Registers
250 //
252 
253 // Encoder
254 #define kRegJ2kT0MainCsr 0
255 #define kRegJ2kT0FIFOCsr 1
256 #define kRegJ2kT0CmdFIFO 4
257 #define kRegJ2kT0StatusFIFO 6
258 #define kRegJ2kT0Framecount 7
259 
260 #define kRegJ2kT1MainCsr 64 //0x0100/4
261 #define kRegJ2kT1FIFOCsr 65 //0x0104/4
262 #define kRegJ2kT1CsfCsr 66 //0x0108/4
263 #define kRegJ2kT1DebugInfo 67 //0x010C/4
264 #define kRegJ2kT1StatusFIFO 70 //0x0118/4
265 #define kRegJ2kT1Framecount 71 //0x011C/4
266 
267 #define kRegJ2kT2MainCsr 128 //0x0200/4
268 #define kRegJ2kT2FIFOCsr 129 //0x0204/4
269 #define kRegJ2kT2CmdFIFO 132 //0x0210/4
270 #define kRegJ2kT2StatusFIFO 134 //0x0218/4
271 #define kRegJ2kT2Framecount 135 //0x021C/4
272 
273 // Decoder
274 #define kRegJ2kPrpMainCsr 0
275 #define kRegJ2kPrpFIFOCsr 1
276 #define kRegJ2kPrpLastTc 2
277 #define kRegJ2kPrpCmdFIFO 4
278 #define kRegJ2kPrpStatusFIFO 6
279 
280 #define kRegJ2kPopMainCsr 64 //0x0100/4
281 #define kRegJ2kPopFIFOCsr 65 //0x0104/4
282 #define kRegJ2kPopUllCsr 66 //0x0108/4
283 #define kRegJ2kPopCmdFIFO 68 //0x0110/4
284 #define kRegJ2kPopStatusFIFO 70 //0x0118/4
285 
286 #define kRegJ2kBuffCsr 128 //0x0200/4
287 #define kRegJ2kBuffStatus0 160 //0x0280/4
288 #define kRegJ2kBuffImginfos0 161 //0x0284/4
289 #define kRegJ2kBuffTimecode0 162 //0x0288/4
290 #define kRegJ2kBuffUserdata0 163 //0x028C/4
291 #define kRegJ2kBuffStatus1 164 //0x0290/4
292 #define kRegJ2kBuffImginfos1 165 //0x0294/4
293 #define kRegJ2kBuffTimecode1 166 //0x0298/4
294 #define kRegJ2kBuffUserdata1 167 //0x029C/4
295 #define kRegJ2kBuffStatus2 168 //0x02A0/4
296 #define kRegJ2kBuffImginfos2 169 //0x02A4/4
297 #define kRegJ2kBuffTimecode2 170 //0x02A8/4
298 #define kRegJ2kBuffUserdata2 171 //0x02AC/4
299 #define kRegJ2kBuffStatus3 172 //0x02B0/4
300 #define kRegJ2kBuffImginfos3 173 //0x02B4/4
301 #define kRegJ2kBuffTimecode3 174 //0x02B8/4
302 #define kRegJ2kBuffUserdata3 175 //0x02BC/4
303 
304 
306 //
307 // MPEG2 TS Registers
308 //
310 
311 // TS Timer Registers
312 #define kRegTsTimerJ2kTsLoad 0
313 #define kRegTsTimerJ2kTsGenTc 1
314 #define kRegTsTimerJ2kTsPtsMux 2
315 
316 // TS J2k Encoder Interface Registers
317 #define kRegTsJ2kEncoderHostEn 0
318 #define kRegTsJ2kEncoderInterlacedVideo 1
319 #define kRegTsJ2kEncoderFlushTimeout 2
320 #define kRegTsJ2kEncoderVideoFrmCnt 3
321 #define kRegTsJ2kEncoderVideoByteCnt 4
322 #define kRegTsJ2kEncoderEgressFrmCnt 5
323 #define kRegTsJ2kEncoderEgressByteCnt 6
324 
325 // TS J2k Decoder Interface Registers
326 #define kRegTsJ2kDecoderInsertHdr 0
327 #define kRegTsJ2kDecoderFrameCount 1
328 #define kRegTsJ2kDecoderByteCount 2
329 
330 // TS MPEG2 Encapsulator Registers
331 #define kRegTsMpeg2EncapPesHdrLookup 0 //0x0000 // table 0x000 - 0x0BB
332 #define kRegTsMpeg2EncapPesHdrLen 192 //0x00C0
333 #define kRegTsMpeg2EncapPtsOffset 193 //0x00C1
334 #define kRegTsMpeg2EncapJ2kTsOffset 194 //0x00C2
335 #define kRegTsMpeg2EncapAuf1Offset 195 //0x00C3
336 #define kRegTsMpeg2EncapAuf2Offset 196 //0x00C4
337 #define kRegTsMpeg2EncapPacketRate 202 //0x00CA
338 #define kRegTsMpeg2EncapPesMax 201 //0x00C9
339 #define kRegTsMpeg2EncapTsTxHostEn 224 //0x00E0
340 #define kRegTsMpeg2EncapInterlacedVideo 225 //0x00E1
341 #define kRegTsMpeg2EncapPayloadParams 226 //0x00E2
342 #define kRegTsMpeg2EncapPatTableLookup 256 //0x0100 // table 0x100 - 0x1BB
343 #define kRegTsMpeg2EncapPatPmtPeriod 496 //0x01F0
344 #define kRegTsMpeg2EncapPmtTableLookup 512 //0x0200 // table 0x200 - 0x2BB
345 #define kRegTsMpeg2EncapApplicationLookup 768 //0x0300 // table 0x300 - 0x3BB
346 #define kRegTsMpeg2EncapAdaptationHdrLen 1008 //0x03F0
347 
348 // TS MPEG2 Decapsulator Registers
349 #define kRegTsMpeg2DecapCaptureRam 0 //0x0000
350 #define kRegTsMpeg2DecapHostEn 192 //0x00C0
351 #define kRegTsMpeg2DecapHeaderCompare 193 //0x00C1
352 #define kRegTsMpeg2DecapHeaderMask 194 //0x00C2
353 #define kRegTsMpeg2DecapCaptureDone 195 //0x00C3
354 #define kRegTsMpeg2DecapPidFilter 196 //0x00C4
355 #define kRegTsMpeg2DecapFrmPayloadOffset 208 //0x00D0
356 #define kRegTsMpeg2DecapFrmAuf1Offset 209 //0x00D1
357 #define kRegTsMpeg2DecapFrmAuf2Offset 210 //0x00D2
358 #define kRegTsMpeg2DecapFrmPtsOffset 211 //0x00D3
359 #define kRegTsMpeg2DecapFrmJ2kTsOffset 212 //0x00D4
360 #define kRegTsMpeg2DecapInterlacedSz16b 213 //0x00D5
361 
362 // MPEG2 TS AES Encapsulator Registers
363 #define kRegTsAesEncapNumChannels 0
364 #define kRegTsAesEncapTsRatePeriod 1
365 #define kRegTsAesEncapAudioExtractVidStd 2
366 #define kRegTsAesEncapAudioExtractErrRst 3
367 #define kRegTsAesEncapAudioExtractChEn 4
368 #define kRegTsAesEncapAudioExtractErrStat 5
369 #define kRegTsAesEncapAudioExtractClkStat 6
370 #define kRegTsAesEncapRxSdiStatus 7
371 #define kRegTsAesEncapHostEn 8
372 #define kRegTsAesEncapFrameCount 9
373 #define kRegTsAesEncapByteCount 10
374 
375 // MPEG2 TS AES Decapsulator Registers
376 #define kRegTsAesDecapHostEn 0
377 #define kRegTsAesDecapLockedBit 1
378 #define kRegTsAesDecapNumChannels 2
379 #define kRegTsAesDecapSdiTxVidStd 3
380 #define kRegTsAesDecapAudioEmbedControl 4
381 #define kRegTsAesDecapSineFrequencies 5
382 #define kRegTsAesDecapAudioEmbedVidStat 6
383 #define kRegTsAesDecapFrameCount 7
384 #define kRegTsAesDecapByteCount 8
385 
386 #endif // REGISTERS_2022_H
ntv2registersmb.h
Defines the KonaIP/IoIP registers.