My main goal is to be able to display a GUI from an up-to-date petalinux on the Zybo Z7 board.
Are there plans to provide an updated petalinux BSP and hardware design for the Zybo Z7 boards? There are BSPs for 2017.4, https://digilent.com/reference/software/petalinux/start and HDL design here, https://github.com/Digilent/Zybo-Z7-10-base-linux.
in the petalinux 2017.4 there are two drivers in the digilent source tree that make the HDMI display work. clk-dglnt-dynclk.c and digilent_encoder.c. Attached here.
as well as some device tree entries:
&amba_pl {
encoder_0: digilent_encoder {
compatible = "digilent,drm-encoder";
digilent,fmax = <150000>;
digilent,edid-i2c = <&i2c0>;
};
xilinx_drm {
compatible = "xlnx,drm";
xlnx,vtc = <&v_tc_out>;
xlnx,connector-type = "HDMIA";
xlnx,encoder-slave = <&encoder_0>;
clocks = <&axi_dynclk_0>;
planes {
xlnx,pixel-format = "rgb888";
plane0 {
dmas = <&axi_vdma_1 0>;
dma-names = "dma0";
};
};
};
};
&axi_dynclk_0 {
compatible = "digilent,axi-dynclk";
#clock-cells = <0>;
clocks = <&clkc 15>;
};
&axi_vdma_1 {
dma-ranges = <0x00000000 0x00000000 0x40000000>;
};
&v_tc_out {
compatible = "xlnx,v-tc-5.01.a";
};
and two kernel configurations options, enable `CONFIG_COMMON_CLK_AXI_CLKGEN` in the kernel configuration and set the CONFIG_CMA_SIZE_MBYTES kernel parameter to 128.
I found these through looking through the 2017.4 BSP. These additions allow the hdmi output to work with a vanilla petalinux 2017.4 project using the xilinx kernel/u-boot sources.
I tried upgrading the HDL design to 2020.1 and 2021.1 and I am not able to get the HDMI display to work with petalinux. It seems there are two issues, one is that I had to modify the two drivers to compile with the newer kernel and may have broken something (though I don't think so), and two that the v_tc_out device tree node that is auto generated from the hardware file in petalinux is significantly different. The relevant file is components/plnx_workspace/device-tree/device-tree-generation/pl.dtsi.
I would really like to get this functionality working on an up to date tool chain. Any help or support from Digilent would be appreciated.
Thank you
clk-dglnt-dynclk.c
digilent_encoder.c