Jump to content

tkuraku

Members
  • Posts

    8
  • Joined

  • Last visited

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

tkuraku's Achievements

Newbie

Newbie (1/4)

0

Reputation

  1. @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?
  2. Fantastic. This is exactly what I wanted. I will test it out this weekend. thank you
  3. 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
  4. You need to get the device tree modifications from the digilent BSP. specifically you need teh following in `project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi` in your petalinux project. &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"; }; Then you need to enable `CONFIG_COMMON_CLK_AXI_CLKGEN` in the kernel configuration and set the CONFIG_CMA_SIZE_MBYTES kernel parameter to 128. Finally you need to get two drivers from the 2017.4 petalinux kernel source as used in the digilient BSP. The digilent_encoder and digilent dynamic clock. I have included the source files. Then you need to add the drivers as modules in petalinux. petalinux-create -t modules --name clk-dglnt-dynclk --enable petalinux-create -t modules --name digilent-encoder --enable copy the contents of `clk-dglnt-dynclk.c` into `project-spec/meta-user/recipes-modules/clk-dglnt-dynclk/files/clk-dglnt-dynclk.c` copy the contents of `digilent_encoder.c` to `project-spec/meta-user/recipes-modules/digilent-enconder/files/digilent-enconder.c` Then rebuild and it should work. Tested on 2017.4 digilent_encoder.c clk-dglnt-dynclk.c
×
×
  • Create New...