01-15-2020 12:21 PM
Ultra96V1 (Ultrascale Zynq)
Im basically trying to use the xilinx test pattern generator and timing controller to show color bars on the displayport output of the device.
I following Adam Taylors recipe to do this with some additions (like an adder HLS block just to test axi read/writes).
I then followed the recipe to for poking the tgp and vtc blocks according to:
tpg = overlay.v_tpg_0
vtc = overlay.v_tc_0
vtc.write(0x00,0x01) <- this is the go signal
I set the tpg output to be the same as that dervived by the tpg & vtc, i.e. 1280x720. Theres a 74.25MHz pixel clock in the FPGA fabric to do this.
Heres what i have checked:
I also rebuilt the Linux kernel to allow kernel access via command line for setting live feeds according to the following, and with the intention of calling this via a putty ssh terminal.
echo "set_input 1280 720 0x100e" > /sys/kernel/debug/xlnx-bridge/xlnx_bridge-vid-layer
echo "enable" > /sys/kernel/debug/xlnx-bridge/xlnx_bridge-vid-layer
Issue is that the desktop has remained and there are no colour bars
Has anyone trying to use the PL fabric to control the hard displayport section of the Ultrascale ZYnq part?
I have tinkered, double checked kernel settings / configuration and rebuilt soo many times now.
Ive posted on Pynq site as well, but no feedback.
Much appreciated if anyone can help! I cant loose anymore hair :)
01-22-2020 08:25 AM
Let's start from the beginning:
If you have the desktop, it is also a good point. It means that the monitor is working. But this might also mean the Xorg is controlling the display. Maybe you should try to kill Xorg
01-22-2020 11:42 AM
Thanks for getting back.
Answering your questions,
(1) Yes i started with AT project and it worked with baremetal drivers.
(2) Yes it is still working with custom IP using baremetal drivers.
In summary i am confident the vivado part of the project is fine.
I tried your suggestion. I kill xorg and the monitor lost the desktop and went blank. I ran dmesg , please see attached screenshot
TPG is set to create pattern with a 1280 x720 output; axi clock is set to 74.25Mhz
Any help greatly received and appreciated.
01-23-2020 12:26 AM
Can you try to run a modetest command to set the correct output resolution:
modetest -M xlnx -s 38:1280x720@RG16
01-23-2020 12:59 AM
01-24-2020 01:01 AM
01-24-2020 01:10 AM
Still trying to work out how to get modetest installed.
I know i have a DRM KMS framework installed, and am getting debug messages from the kernel.
Do you know the path / location of modetest on the petalinux system.
Sorry for not being very profficent with petalinux... still learning
01-24-2020 02:41 AM
I think you need to enable the libdrm in your file system.
petalinux-config -c rootfs
File Systems Packages > X11 > base > libdrm
01-26-2020 02:24 PM
Another frustrating weekend tryring to get this working... but no joy
Please see attached..
image 1: showing i had the config rootfs set accordingly
image 2: showing i had libdrm-tests included in bb and configs
image 3: showing contens of the bb file
image 4: showing contents of build/config.log
I still can not find any trace of modetest.
01-26-2020 03:03 PM
HDMI-Tx can be manually configured to generate the required mode. An open source utility like modetest can be used to configure the display pipeline.
Note: Since 2018.1 introduces a new Xilinx drm driver, below test procedure will cover details for 2018.1 and later versions.
2018.1 and onwards: xlnx
Look for "xlnx" in petalinux kernel and rootfs to add the modetest tool.
01-27-2020 12:09 AM
Im trying to use displayport interface. I believe modetest is compatible with it and other display adapters.
Do you have any screen shots or descrption of where those settings are in the menu. Im pretty convinced that ive have the right kernel settings... but ill check again.
01-29-2020 07:56 AM
Do you have any update on this?
One other option might be to start back from the Ultra96 BSP. I would guess modetest is enabled in it
01-29-2020 08:06 AM
Still working on it... apologies for being very slow to pick things up. I am hardware engineer trying to learn Petalinux etc.
I have been working on this in a separate thread on Pynqs website.
I didn't appreciate fully the architecture of pynq. Petalinux is used for the boot systems and Ubuntu for the rootfs. When i modified the petalinx rootfs to include libdrm-tests (which contains modetest) nothing got picked in the Pynq build.
Painfully trying to understand how to do this... so still work in progress.
Really appreciate you continued support :)
01-29-2020 09:00 AM
Yeah i can't help you too much on this. I haven't done much on PYNQ