Jump to content
  • 0

Petalinux support for Zybo Z710/Z720 with HDMI output petalinux >=2020.1



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

Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0

@thinkthinkthink, thanks for your help on this. It I tried to built the petalinux project from your link. I wasn't able to get a frame buffer device to show a GUI like was done on the 2017.4 version. It seemed that the project-spec/meta-user/recipes-kernel/linux/linux-xlnx/0001-drm-xilinx-Add-encoder-for-Digilent-boards-new.patch is not set to be applied by default. Is this still a work in progress then?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Create New...