IP feature | 2018.1 on wards | 2019.2 | 2020.1 |
---|---|---|---|
IP version | 2.0 | ||
Supports AXI4-Stream, native video and native SDI user interfaces | Supports only AXI4-Stream output interface | ||
Support for 2 pixel per sample | Yes | ||
10-bit per color component | Yes | Added support for 12 bit | |
Supports YUV 4:2:2 and YUV 4:2:0 color space | Yes | Added support for YUV444 in IP. Driver doesn't support | Supports YUV 420 / 422 / 444 and RGB |
HFR (High Frame Rate) Support 96/1.001, 96, 100, 120/1.001 and 120 Hz | NA | Not supported in driver | |
AXI4-Lite interface for register access to configure different subsystem options | Yes | ||
Audio support | Separate driver | ||
Standards compliance
| Yes* |
Other driver features supported are -
yavta -l /dev/v4l-subdev0 #Below is sample output when video is not locked and not streaming root@zcu106-zynqmp:~# yavta -l /dev/v4l-subdev0 Device /dev/v4l-subdev0 opened. --- User Controls (class 0x00980001) --- control 0x0098ca01 `SDI Rx : Enable Framer' min 0 max 1 step 1 default 1 current 1. control 0x0098ca02 `SDI Rx : Video Lock Window' min 0 max -1 step 1 default 12288 current 12288. control 0x0098ca03 `SDI Rx : EDH Error Count Enable' min 0 max 65535 step 0 default 0 current 0. control 0x0098ca04 `SDI Rx : Modes search Mask' min 0 max 63 step 0 default 63 current 63. unable to get control 0x0098ca05: Invalid argument (22). control 0x0098ca05 `SDI Rx : Mode Detect Status' min 0 max 5 step 1 default 0 current n/a. control 0x0098ca06 `SDI Rx : CRC Error status' min 0 max -1 step 1 default 0 current 0. unable to get control 0x0098ca07: Invalid argument (22). control 0x0098ca07 `SDI Rx : EDH Error Count' min 0 max 65535 step 1 default 0 current n/a. unable to get control 0x0098ca08: Invalid argument (22). control 0x0098ca08 `SDI Rx : EDH Status' min 0 max -1 step 1 default 0 current n/a. unable to get control 0x0098ca09: Invalid argument (22). control 0x0098ca09 `SDI Rx : TS is Interlaced' min 0 max 1 step 1 default 0 current n/a. unable to get control 0x0098ca0a: Invalid argument (22). control 0x0098ca0a `SDI Rx : Active Streams' min 1 max 16 step 1 default 1 current n/a. unable to get control 0x0098ca0b: Invalid argument (22). control 0x0098ca0b `SDI Rx : Is 3GB' min 0 max 1 step 1 default 0 current n/a. 11 controls found. Unable to get format: Inappropriate ioctl for device (25). |
yavta -n 3 -c10 -f YUYV -s 1920x1080 --skip 7 -F /dev/video0 |
E.g. “media-ctl –d /dev/media0 –p”
The SI5324_LOL should be toggled to high and then made low. (Default low)
The fmc_init_done line should be toggled to low and then high (Default high).
Q1 - While running yavta for resolution AxB with our source box, we see "Unable to start streaming: Invalid argument (22)." Why is this happening?
Ans - One possible reason is that the resolution that the SDI source is generating and what is being passed to yavta don't match.
Run media-ctl to find out the resolution currently being identified by the SDI Rx IP driver.
Read your SDI source documentation to know how to manipulate the resolutions.
Q2 - The frame rate reported by yavta is significantly lesser than expected.
Ans - Depending on your design and system load, there may be a case where there may be frame drops.
But double check the ST352 payload in SDI Rx to verify if the SDI source connected is correctly generating the required frame rate (fps).
You may have to refer to PG205 to decode the RX FAMILY to get the resolution and RX Frame Rate (in case of zero payload in 2017.3/4)
Family Detection
rx_t_family | Transport Video Format | Active Pixels |
---|---|---|
0000 | SMPTE ST 275 | 1920 x 1080 |
0001 | SMPTE ST 296 | 1280 x 720 |
0010 | SMPTE ST 2048-2 | 2048x1080 |
0011 | SMPTE ST 295 | 1920 x 1080 |
1000 | NTSC | 720 x 486 |
1001 | PAL | 720 x 576 |
1111 | Unknown | |
Others | Reserved |
Frame Rate
rx_t_rate | Frame Rate |
---|---|
0000 | None |
0010 | 23.98 Hz |
0011 | 24 Hz |
0100 | 47.95 Hz |
0101 | 25 Hz |
0110 | 29.97 Hz |
0111 | 30 Hz |
1000 | 48 Hz |
1001 | 50 Hz |
1010 | 59.94 Hz |
1011 | 60 Hz |
Others | Reserved |
Q3 - After boot up, even though there is valid SDI source connected, the IP is unable to detect the source and video is not locked. Why could this happen?
Ans - Check if the IP's registers are not default values after kernel boots up. E.g. MODULE_CTRL register should be 0x3F30. If the registers are in default state, it may mean the clocking to the IP is not correct. Please check device tree to set the correct clock source.
3de732f v4l: xilinx: sdirxss: Uninitialize the subsystem correctly
23b13a3 v4l: xilinx: sdirxss: Check for 10bpc in dt
df18806 v4l: xilinx: sdirxss: Call xsdirx_streamflow_control() directly
1df1d9f v4l: xilinx: sdirxss: Make functions static inline
75b9c47 v4l: xilinx: sdirxss: Fix code formatting and comments
4414443 v4l: xilinx: sdirxss: Correct handling of combined lock/unlock interrupts
784427f v4l: xilinx: sdirxss: Clear processed interrupts only
1c98050 v4l: xilinx: sdirxss: Add support to enumerate media bus formats
b1b4c50 v4l: xilinx: sdirxss: Replace single element array with variable
f3bd12b v4l: xilinx: sdirxss: Use clk_bulk_* apis
b996133 v4l: xilinx: sdirxss: Make structures constant
bd8f87c v4l: xilinx: sdirxss: Add V4L control for 3G Level B support
d9a3b95 v4l: xilinx: sdirxss: Add V4L control for Active streams
79d7896 v4l: xilinx: sdirxss: Add v4l control for transport stream type
3c2b606 v4l: xilinx: sdirxss: Add support for subdev get frame interval
4c3b2e3 v4l: xilinx: sdirxss: Add ST352 decode macros
031a2e1 v4l: xilinx: sdirxss: Decode ST352 in irq context
726f7831 v4l: xilinx: sdirxss: Add source change event support
cba7215 v4l: xilinx: sdirxss: Decode HD mode stream in case of no payload
820df1b v4l: xilinx: sdirxss: Add support to decode 1080 line video in HD mode
f0e5fae v4l: xilinx: sdirxss: Add support to get width,height in SD mode
24ed4f9 v4l: xilinx: sdirxss: Add support to decode more ST352 payloads for 3G mode
4258d83 v4l: xilinx: sdirxss: Support decoding ST352 payload for 6G mode
3c5133a v4l: xilinx: sdirxss: Support decoding ST352 payload for 12G mode
b47af26 v4l: xilinx: sdirxss: Get EDH status only in case of SD mode
865daaa v4l: xilinx: sdirxss: Don't register EDH controls if EDH not enabled in IP core
c4258bf v4l: xilinx: sdirxss: Detect mode based on capability
edd5155 v4l: xilinx: sdirxss: Fix kbuild warning of variable used without initalizing
a5d7bad v4l: xilinx: sdirxss: Update for new register spec
89a7ff0 v4l: xilinx: sdirxss: Initial support for getting video stream properties
eb81908 v4l: xilinx: sdirxss: Add support for Video Unlock event
206948a v4l: xilinx: sdirxss: Add V4L get controls for Modes, CRC, EDH and Video Bridge Status
c9e6857 v4l: xilinx: sdirxss: Add V4L control for Mode detection
fcf25ff v4l: xilinx: sdirxss: Add V4L control for EDH error count
a5c2d98 v4l: xilinx: sdirxss: Add v4l control for Video Lock Window
4eaea74 v4l: xilinx: sdirxss: Add v4l control for Framer
6147fea v4l: xilinx: sdirxss: Streaming is enabled only on video lock
5c64f19 v4l: xilinx: sdirxss: Fix xsdirxss_core for kernel-doc
fcdd729 v4l: xilinx: Driver support for Xilinx UHDSDI Rx subsystem