display error when run Linux with HDMI output with zc702

I designed my project with zc702, and passed the test using the ADI no-OS test program.

For making HDMI work on Linux, I download the kernel source and build it, just same to Building the Zynq Linux kernel and devicetrees from source(link: https://wiki.analog.com/resources/tools-software/linux-build/generic/zynq), the only difference is not using Linaro Ubuntu destop as root file, system, but a simple file system based on busybox(support fbset cmd). the Linux can boot up without error priinted, and the /dev/fb is created, however the HDMI output can not work well:

1. the boot log can not display. the penguin in screen is incomplete, but pieces not in order.

2. I write a test program to fill fb with some color, the image in screen is different with program writed, and the image keep flashing just like repeatly display two different image.

3. I can change resolution by fbset and verify the setting by readback current mode by command of cat /xxx/xxx/mode, but when test hdmi_clk signal by OSC, it always run at 148.5Mhz, even when I change fb to 1280*768.

I also found that the screen is not stable at startup until I choose a resolution when I do the no-OS test experiment.

So, what should I do to fix it? did I make some mistakes?


Parents Reply
  • 0
    •  Analog Employees 
    on Oct 22, 2020 7:27 AM 2 months ago in reply to Simon

    Hi Simon,

    If I correctly understood you have a custom HDL but kept the adi_dma and adi_axi_hdmi_tx IP. Please try, just for validation purposes your setup with our official linux Linaro or Kuiper rootfs. Of course with adapted devicetree to suit your HDL memory mapping.

    I'm asking this because we had problems on some projects with HDMI at high resolutions/framerates because of some HDL timing errors and timing constrains.