Jump to content
  • 0

HDMI Drivers for embedded linux in the Arty Z7


JCer

Question

Hello everyone,

 

I have been working in the arty z7, working to output HDMI video from a camera conencted by ethernet .

While the ehternet hardware, driver and code are fully functional. I have yet to make the hdmi function on the OS.

Currently, i have follow succesfully the following tutorial, that means that i have the hardware for HDMI in and out and can use through the provided Bare metal application.

Now, i have to move this functional hardware form a bare metal application to a OS application, for that i need some drivers to control the Axi Stream conected to the VDMA and to the HDMI output.

To be honest I dont even know where to start with this task, do any of you have any pointers, are there pre-developed drivers for this situation?.

 

Thanks for any information

PD: the current version of OS i am using is linaro, i dont think it changes anything but just in case.

 

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

Hi JCer,

To tell you the truth we have also tried but with no success, sadly it is not a priority project so I don't think we have a good answer for you. There where some previous kernel versions on which we had a HDMI working on the ZedBoard but that board has a dedicated HDMI controller on it. If you are determined to have it working and you manage to build one could you please post it? As far as pointers go:

1. consult the older versions of ZedBoard linux projects.

2. focus on the DRM driver from xilinx which is the main output driver (as far as I know)

3. be patient, this is not an easy project

Good luck,

Ciprian

Link to comment
Share on other sites

Sorry for the late respond. 

I have been looking more into it and yeahh its seems dificult.

I have decided to start interfacing with the vdma using the mmap() method, once that is working and i have adquire more kwonledge on the VDMA i will try with the drivers.

DO you know of any links that have good information on this topic, mostly because it seems that there needs to be a lot of configuration of the VDMA registers and the documentatio on it seems really sparse. Mostly i am trying to use the mm2s part of the VDMA.

In any case, thanks for the previous response

Link to comment
Share on other sites

@Ciprian @JCer Actually, we have been able to tie our video output pipeline into the DRM framework for a while now. We had to write a very simple encoder driver to make this work (see drivers/gpu/drm/xilinx/digilent-encoder.c at linux-digilent on our github), but our petalinux example projects include this and implement the proper device tree. Our officially released petalinux project and a guide to use it are linked from the Arty Z7 resource center on our wiki.

As for HDMI input, I just got this working last week using a mmap hack as you described above. If you want to give it a try, you can use a pre-release version of the 2017.1 Arty-Z7 petalinux project here: https://github.com/sbobrowicz/Petalinux-Arty-Z7-20 . It doesn't include the HDMI input capability yet, I will push it up tomorrow, and post a demo userspace program here that DMAs the HDMI input directly onto the HDMI output.

Link to comment
Share on other sites

On 2017/7/26 at 9:07 AM, sbobrowicz said:

@Ciprian @JCer Actually, we have been able to tie our video output pipeline into the DRM framework for a while now. We had to write a very simple encoder driver to make this work (see drivers/gpu/drm/xilinx/digilent-encoder.c at linux-digilent on our github), but our petalinux example projects include this and implement the proper device tree. Our officially released petalinux project and a guide to use it are linked from the Arty Z7 resource center on our wiki.

As for HDMI input, I just got this working last week using a mmap hack as you described above. If you want to give it a try, you can use a pre-release version of the 2017.1 Arty-Z7 petalinux project here: https://github.com/sbobrowicz/Petalinux-Arty-Z7-20 . It doesn't include the HDMI input capability yet, I will push it up tomorrow, and post a demo userspace program here that DMAs the HDMI input directly onto the HDMI output.

Hi, I've been trying to setup HDMI output in PetaLinux with Digilint linux version 4.4 on arty z7 20.

I recompiled hw platform with vivado 2016.4, and I'm using petalinux 2016.4.

 

The digilent kernel compiles and boots OK, but there is no HDMI output like the one in the demo. "dmesg" shows two "[drm] load() is defered & will be called again" messages.

What could be the problem? 

Thx!

Link to comment
Share on other sites

Honestly, it could be a number of things. Everything has to be perfect and setup a specific way: the vivado project needs to have the VDMA and other video pipeline IP cores correctly configured, the device tree needs to have very specific nodes and properties, and the kernel needs to include proper versions of the Xilinx DRM drivers and our clock and DRM driver.

I know it is a pain to install another version of Petalinux/Vivado, but I'd recommend jumping to 2017.2 and using the project I linked above (I recently updated it to 2017.2). It is documented and nearly released (the only remaining tasks are listed in the TODO section of the README).

If you start with that project and just make changes as needed your life is going to be much easier. If you need to modify the block diagram, it is available here:

https://github.com/sbobrowicz/Arty-Z7-20-base

Just download it (you have to use git clone --recursive in order to get the vivado-library submodule) and then make the changes as needed and export the HDF. You can then import the HDF with "petalinux-config --get-hw-description".

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...