Custom HDMI mode for special display possible?

I’m using an 8.9" LZT display (YongXing) which requires special timings. It also only works at 2560x1600@50Hz
I got it working on my RPI4 with the following options, but I dont know how to convert these for the Radxa Zero/uEnv.txt :
hdmi_pixel_freq_limit=300000000
max_framebuffer_width=2560
max_framebuffer_height=1600
hdmi_cvt=2560 1600 50 5 0 0 1
hdmi_group=2
hdmi_mode=87

It looks like its EDID is not parsed correctly, /sys/class/drm/card0-HDMI-A-1/modes is empty. Xorg never starts, complaining that it doesn’t have any modes. I tried to add several modelines by parsing the EDID manually but that didn’t work either.
Running latest DietPi Bullseye image.

Any tips to troubleshoot this would be appreciated, not sure what to do at this point.

Can you check this guide including changing resolution?
https://wiki.radxa.com/Zero/hardware/display

Thanks for the tip.
Did some more testing, I get the feeling this is a gpu driver issue.

On the x86 box the display works fine. I parsed the EDID and it has a few modes, but all those modes share the same modeline:
“Mode 8” 216.68 2560 2620 2640 2675 1600 1612 1616 1620 -hsync -vsync
This is also the preferred modeline.

So on x86, adding and setting this mode works fine:
xrandr --newmode “Mode 8” 216.68 2560 2620 2640 2675 1600 1612 1616 1620 -hsync -vsync
xrandr --addmode HDMI-1 “Mode 8”
xrandr --output HDMI-1 --mode “Mode 8”

But on the Zero I get:
$ xrandr --output HDMI-1 --mode “Mode 8”
xrandr: Configure crtc 0 failed

Xorg.0.log says:
[ 292.620] (II) modeset(0): Modeline "2560x1600"x0.0 216.68 2560 2620 2640 2675 1600 1612 1616 1620 -hsync -vsync (81.0 kHz eP)
[ 292.632] (II) modeset(0): Allocate new frame buffer 2560x1600 stride
[ 292.663] (EE) modeset(0): failed to set mode: Invalid argument

It appears to be using the modesetting driver:
[ 61.625] (II) modesetting: Driver for Modesetting Kernel Drivers: kms
[ 61.625] (II) modeset(0): using drv /dev/dri/card0
[ 62.812] (II) modeset(0): [DRI2] Setup complete
[ 62.812] (II) modeset(0): [DRI2] DRI driver: meson
[ 62.812] (II) modeset(0): [DRI2] VDPAU driver: meson

But it also seems to detect another card(?) on the zero:
[ 61.602] (II) xfree86: Adding drm device (/dev/dri/card0)
[ 61.603] (II) systemd-logind: got fd for /dev/dri/card0 226:0 fd 11 paused 0
[ 61.604] (II) xfree86: Adding drm device (/dev/dri/card1)
[ 61.606] (II) systemd-logind: got fd for /dev/dri/card1 226:1 fd 12 paused 0

Not sure how to continue troubleshooting at this point.

EDIT:
Also tried ctv to create some custom modes, but none of them are working (on both x86 or the zero).

Can anyone confirm the board can handle 2560x1600@50Hz? I dont have any other monitor with this resolution and my project is now stuck on this problem. :frowning:

Have you checked https://wiki.radxa.com/Zero/hardware/display?

Another user reported to me that any resolution other than 1080p is not working properly. I’ll see if I can reproduce this issue once my microSD order is delivered. Currently all my devices are running headless.

Did some tests on a Dell 23-inch FHD display and a AOC 27-inch 4K with our official Debian image. Out of all supported resolution and refresh rate combinations I only had display issue with 1080 30/25p and 720 50p. Everything else from VGA to 4K60p is fine. Unfortunately I don’t have your resolution available on those 2 devices. My suggestion for now is to see if you can bump the refresh rate to 60Hz. None of the resolutions I tested had any issue at 60Hz.

Also I think your modeline is incorrect. Try running cvt 2560 1600 50 on your Zero to get the correct modeline.

Thanks for testing this.
Did some more testing myself today, hooked the Zero up to a Samsung TV (1080p). Tested resolutions from 640x480 up to 1920x1080 at 50Hz and 60Hz, everything works fine.
Testing the 8.9" display failed. I can get lower resolutions to display an image, but its completely garbled with red/blue and lines:

I can basically set any resolution that is 1920x1080 or lower, but as soon as I go above that it just errors out with: xrandr: Configure crtc 0 failed
“cvt 2560 1600 50” Gives me Modeline “2560x1600_50.00” 286.00 2560 2744 3016 3472 1600 1603 1609 1649 -hsync +vsync
But setting that results in above error.
The kernel is also logging an error:
[11166.371277] meson-drm ff900000.vpu: [drm] Cannot find any crtc or sizes

Also tried some “reduced blanking” modes, which i think the display needs. You can generate them at https://tomverbeure.github.io/video_timings_calculator
Everything above 1920x1080 fails. Its as if higher resolutions are blocked by something.

Is there a way to force a custom EDID binary or resolution via uEnv.txt?