cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
shahan.a
Observer
Observer
430 Views
Registered: ‎06-25-2019

Video Processing Subsystem is not providing output

Jump to solution

Hi,

In our custom design, we are trying to scale the YUV 422 image from 1080p to 3840x2160 using VPSS in scaler only mode. Input to scaler is coming from PLDDR through VDMA and the output is going to an HDMI video interface and the input and output axistream clock is 150 MHZ.
After VPSS is configured we are starting the VDMA to send data to VPSS. VPSS is receiving the data on its streaming slave interface and we are not seeing any output from the master streaming interface of VPSS.

We also tested Passthrough mode with VPSS in Full-fledged mode and we received the expected output. But when we try to scale incoming data in Full-fledged mode we were not getting any output at the output of VPSS.

We have attached the pictures of the VPSS configuration.

 
We tested with two drivers:-
A) The bare-metal driver as userspace driver 
We tried the bare-metal driver ported to work in Linux space as a UIO device driver. Tested the full-fledged IP  in the passthrough mode from this UIO driver made out of the baremetal driver code for full-fledged VPSS, verified the register writes. 
Upscaling or downscaling is not working as mentioned with this driver, also tried in the scaler only IP mode.
 
 
B) The stock linux scaler driver (petalinux 2019.1 )
 
Added the support for 4PPC from the successive driver version from 2019.2 version (https://github.com/Xilinx/linux-xlnx/blob/master/drivers/media/platform/xilinx/xilinx-vpss-scaler.c ) to the  https://github.com/Xilinx/linux-xlnx/blob/master/drivers/gpu/drm/xlnx/xlnx_scaler.c (2019.1) with the debug interface for Input /output.
 

NOTE: While we are following the register write sequence of the Linux driver, observed that the H-scaler registers are getting altered ( checked the address offsets are not overlapping). 
With this driver, data is passing through VSCALAR reaching till HSCALAR but not coming out of HSCALAR
 
NOTE: But with the sequence as per the bare-metal driver, the Hphase setting is done before hscaler register unlike in Linux driver sequence where it is done after h-scaler configuration.  
With this test, the Hscaler registers are not getting altered, but seeing the data not getting into h-scaler.
 
The IP version we are currently using is 2.1. 
Use case : upscaling 1920x1080@60 to 3840x2160@60, format: YUV4:2:2

Thanks in advance.
Edit: Added more details

 
vpss_config_2.png
vpss_config_1.png
0 Kudos
Reply
1 Solution

Accepted Solutions
florentw
Moderator
Moderator
336 Views
Registered: ‎11-09-2015

Hi @shahan.a 

It depends which driver you are using and which version.

If you are using baremetal driver, then yes 4 ppc is supported for any vivado version for which it can be enabled in the IP GUI. If you have issues with the baremetal driver you might want to use the journal fonction which I mentioned at the end of the following article:

https://forums.xilinx.com/t5/Design-and-Debug-Techniques-Blog/Video-Series-27-Getting-started-with-the-Video-Processing/ba-p/960896

If you are using the V4L2 driver, then 4 ppc is supported only if you use vivado/petalinux from 2019.2 as per following wiki page:

https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842427/Xilinx+V4L2+VPSS+Scaler+driver

Patching the driver to support in earlier version is not supported


Florent
Product Application Engineer - Xilinx Technical Support EMEA
**~ Don't forget to reply, give kudos, and accept as solution.~**

View solution in original post

4 Replies
florentw
Moderator
Moderator
367 Views
Registered: ‎11-09-2015

Hi @shahan.a 

When debugging a video design it might be useful to get ILA data to see what is going on in detail. You might want to look for the tready and tvalid signals on both the AXI4-Stream interface of the VPSS.

This is something I go through in the following blog article:

Video Series 35 – Oh no! My video design does not work! What should I do?

The scaling you are trying to achieve from 1080p to 3840x2160 is a scaling by 4. Thus this needs that the output will need to go 4 times faster than the input but as well that the input needs to provide the data fast enough so the output can be generated.

I would recommend you to start with a smaller scaling ratio. See if that works. Then if it starts failing when you increase to much, this means that the rate is to low.

As the data is coming from a VDMA I assume you can run the input as fast a you want. So you might want to increase the frequency clocking the VPSS as the start if that the case that smaller ratio work.

Regards


Florent
Product Application Engineer - Xilinx Technical Support EMEA
**~ Don't forget to reply, give kudos, and accept as solution.~**
0 Kudos
Reply
shahan.a
Observer
Observer
341 Views
Registered: ‎06-25-2019

Hi @florentw.

Thanks for your reply.

Is 4PPC supported in VPSS v2.1. Or only 2PPC is supported?

We checked the ILA data. At the input TREADY and TVALID are proper. And within VPSS we are recieving output from Vscalar block. But when this data is fed to Hscalar block it is not providing any output. TREADY at output was high but TVALID was not going high.

We configured VPSS at 4PPC and the clock frequency at input and output was 150MHz. 

Thanks in advance

0 Kudos
Reply
florentw
Moderator
Moderator
337 Views
Registered: ‎11-09-2015

Hi @shahan.a 

It depends which driver you are using and which version.

If you are using baremetal driver, then yes 4 ppc is supported for any vivado version for which it can be enabled in the IP GUI. If you have issues with the baremetal driver you might want to use the journal fonction which I mentioned at the end of the following article:

https://forums.xilinx.com/t5/Design-and-Debug-Techniques-Blog/Video-Series-27-Getting-started-with-the-Video-Processing/ba-p/960896

If you are using the V4L2 driver, then 4 ppc is supported only if you use vivado/petalinux from 2019.2 as per following wiki page:

https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842427/Xilinx+V4L2+VPSS+Scaler+driver

Patching the driver to support in earlier version is not supported


Florent
Product Application Engineer - Xilinx Technical Support EMEA
**~ Don't forget to reply, give kudos, and accept as solution.~**

View solution in original post

shahan.a
Observer
Observer
280 Views
Registered: ‎06-25-2019

Hi @florentw,

Our project is completely based on the petalinux 2019.1. Our use-case with VPSS requires the full-fledged mode since there is only a bare-metal driver for full-fledged mode. We have done basic porting of the bare-metal source as UIO ( userspace IO ) driver.
To keep it simple we started with scaler only mode, we checked the register writes from this ported bare-metal driver or even the Linux scaler driver. 
 
Since 4ppc is not supported in 2019.1 We will try to recreate the design in 2019.2.
0 Kudos
Reply