LVDS display doesn't show Wayland desktop

tdx-info:
Software summary

Bootloader: U-Boot
Kernel version: 5.15.148-6.7.0-devel+git.94979392529c #1 SMP PREEMPT Fri Apr 26 07:54:49 UTC 2024
Kernel command line: root=PARTUUID=65c6f7cd-02 ro rootwait console=tty1 console=ttymxc2,115200 consoleblank=0 earlycon
Distro name: NAME=“TDX Wayland with XWayland”
Distro version: VERSION_ID=6.7.0-devel-20240603150603-build.0
Distro variant: -
Hostname: -

Hardware info

HW model: Toradex Verdin iMX8M Plus on Verdin Development Board
Toradex version: 0063 V1.1B
Serial number: 15335618
Processor arch: aarch64

I have the following display I am trying to integrate with the Mallow board:
https://newhavendisplay.com/10-1-inch-ips-capacitive-tft-lcd-display-with-lvds-interface/

I have modified the device tree overly “verdin-imx8mp_panel-cap-touch-10inch-lvds_overlay.dtbo” for this display (I have used this display successfully using these values on a different board). I set this overlay in /boot/overlays.txt. Based on “wayland-info” and “cat /sys/class/drm/card0-LVDS-1/modes”, it appears my changes are being implemented. Unfortunately, the display shows a portion of the boot log (as does the HDMI display when it is being used), but the Wayland desktop is not shown (the screen is black). Any suggestions on why this would occur?

Thanks

Hey @Sutter99,

To clarify, with the mallow + verdin imx8mp + LVDS screen, you get the same results as the mallow + verdin imx8mp + HDMI screen, which is bootlogs on the display?

Also:

What do you mean a portion? Have you corrected for resolution change between the screen and our device tree overlay? (among the other values that the overlay may differ from your screen).

It might be quicker to test with a Torizon OS image + overlay and evaluation containers.

-Eric

Hi Eric,

The HDMI display shows a portion of the boot log during startup before correctly showing the Wayland desktop. The LVDS display stops after showing a portion of the boot log although the backlight stays lit. The boot log is progressing quickly enough that I can’t describe what is being shown.
I did correct for the resolution, clock frequency, display height/width, vback/hback-porch, vfront/hfront-porch, and hsync/vsync length in the device tree overlay.

Thank you,
Aaron

Hey @Sutter99,

Are you able to shell into the device with the LVDS screen?
If so can you look for some wayland logs with commands such as: journalctl | grep -i wayland*:

-Eric

Hi @eric.tx,

I ran “journalctl | grep -i wayland*” on the UART terminal and received the following:

root@verdin-imx8mp-15335618:~# journalctl | grep -i wayland*
Apr 28 17:52:41 verdin-imx8mp-15335618 systemd[1]: Starting Weston, a Wayland compositor, as a system service…
Apr 28 17:52:42 verdin-imx8mp-15335618 weston[506]: https://wayland.freedesktop.org
Apr 28 17:52:42 verdin-imx8mp-15335618 weston[506]: Bug reports to: https://gitlab.freedesktop.org/wayland/weston/issues/
Apr 28 17:52:42 verdin-imx8mp-15335618 systemd[1]: Failed to start Weston, a Wayland compositor, as a system service.
Apr 28 17:52:42 verdin-imx8mp-15335618 systemd[1]: Dependency failed for Start a wayland application.
Apr 28 17:52:42 verdin-imx8mp-15335618 systemd[1]: wayland-app-launch.service: Job wayland-app-launch.service/start failed with result ‘dependency’.

This output is without modifying overlays.txt to include the DSI display overlay as the boot process stalls after the error I mentioned when overlays.txt is modified to include the DSI overlay.

Thanks

Hey @Sutter99,

When you include the overlay, the module will not boot to a point where you can shell into it?

-Eric

Hi @eric.tx,

My apologies, I thought you were responding to a newer thread I had created concerning the 10.1" inch MIPI-DSI display that Toridex sells. I ordered that display because I couldn’t get the LVDS display running. I have the board and firmware setup to troubleshoot the DSI display now but I can say that it would not be possible to run commands on a shell within Weston on the LVDS display because I cannot make out the Weston desktop.

Thanks

Hi @eric.tx,

Now that we are happy with the MIPI-DSI display, I would like to try again to get the Newhaven LVDS display working to make that an option for the project. I have made progress but I am stuck with a the Wayland desktop still not displaying correctly. Strangely, I setup the default Toradex Plymouth splash screen and that looks fine during boot.

I have patched the kernel as described on the following page for native LVDS with the i.MX8M Plus:

I am modifying the verdin-imx8mp_panel-cap-touch-10inch-lvds_overlay.dtsi file. My current panel-lvds-native node is as follows:

                    panel-lvds-native {
                            compatible = "panel-lvds";
                            backlight = <0x01>;
                            data-mapping = "vesa-24";
                            height-mm = <125>;
                            width-mm = <223>;

                            panel-timing {
                                    clock-frequency = <51428571>;
                                    de-active = <0x01>;
                                    hactive = <1024 1024 1024>;
                                    hback-porch = <160 160 160>;
                                    hfront-porch = <16 160 216>;
                                    hsync-active = <0x00>;
                                    hsync-len = <1 70 140>;
                                    pixelclk-active = <0x01>;
                                    vactive = <600 600 600>;
                                    vback-porch = <23 23 23>;
                                    vfront-porch = <1 12 127>;
                                    vsync-active = <0x00>;
                                    vsync-len = <1 10 20>;
                            };

                            port {

                                    endpoint {
                                            remote-endpoint = <0xffffffff>;
                                            phandle = <0x04>;
                                    };
                            };
                    };

The LVDS display is:

I will post the output to a number of commands below. Any suggestions will be appreciated.

The output for “journalctl | grep -i wayland*”.
Jul 03 19:19:25 verdin-imx8mp-15335618 systemd[1]: Starting Weston, a Wayland compositor, as a system service…
Jul 03 19:19:26 verdin-imx8mp-15335618 weston[800]: https://wayland.freedesktop.org
Jul 03 19:19:26 verdin-imx8mp-15335618 weston[800]: Bug reports to: Issues · wayland / weston · GitLab
Jul 03 19:19:27 verdin-imx8mp-15335618 systemd[1]: Started Weston, a Wayland compositor, as a system service.
Jul 03 19:19:27 verdin-imx8mp-15335618 weston[800]: [19:19:27.195] Loading module ‘/usr/lib/libweston-10/xwayland.so’
Jul 03 19:19:27 verdin-imx8mp-15335618 weston[800]: [19:19:27.259] Registered plugin API ‘weston_xwayland_v1’ of size 32
Jul 03 19:19:27 verdin-imx8mp-15335618 weston[800]: [19:19:27.259] Registered plugin API ‘weston_xwayland_surface_v1’ of size 16

The output for “cat /sys/kernel/debug/clk/clk_summary | grep -C 5 video”.
dram_pll 1 1 0 1000000000 0 0 50000 Y
dram_pll_bypass 1 1 0 1000000000 0 0 50000 Y
dram_pll_out 1 1 0 1000000000 0 0 50000 Y
dram_core_clk 2 2 0 1000000000 0 0 50000 Y
dram1_root_clk 1 1 0 1000000000 0 0 50000 Y
video_pll1_ref_sel 1 1 0 24000000 0 0 50000 Y
video_pll1 1 1 0 360000000 0 0 50000 Y
video_pll1_bypass 1 1 0 360000000 0 0 50000 Y
video_pll1_out 2 2 0 360000000 0 0 50000 Y
media_disp2_pix 1 1 0 51428572 0 0 50000 Y
media_disp2_pix_root_clk 1 1 0 51428572 0 0 50000 Y
lcdif2_pixel_clk 1 1 0 51428572 0 0 50000 Y
media_ldb 1 1 0 360000000 0 0 50000 Y
media_ldb_root_clk 1 1 0 360000000 0 0 50000 Y

The output for “modetest -M imx-drm”.
Encoders:
id crtc type possible crtcs possible clones
34 33 LVDS 0x00000001 0x00000001

Connectors:
id encoder status name size (mm) modes encoders
35 34 connected LVDS-1 223x125 1 34
modes:
index name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot
#0 1024x600 56.39 1024 1184 1254 1414 600 612 622 645 51428 flags: nhsync, nvsync; type: preferred, driver
props:
1 EDID:
flags: immutable blob
blobs:
value:
2 DPMS:
flags: enum
enums: On=0 Standby=1 Suspend=2 Off=3
value: 0
5 link-status:
flags: enum
enums: Good=0 Bad=1
value: 0
6 non-desktop:
flags: immutable range
values: 0 1
value: 0
4 TILE:
flags: immutable blob
blobs:
value:

CRTCs:
id fb pos size
33 38 (0,0) (1024x600)
#0 1024x600 56.39 1024 1184 1254 1414 600 612 622 645 51428 flags: nhsync, nvsync; type: preferred, driver
props:
24 VRR_ENABLED:
flags: range
values: 0 1
value: 0

Planes:
id crtc fb CRTC x,y x,y gamma size possible crtcs
31 33 38 0,0 0,0 0 0x00000001
formats: XR24 AR24 RG16 XB24 AB24 AR15 XR15
props:
8 type:
flags: immutable enum
enums: Overlay=0 Primary=1 Cursor=2
value: 1
32 zpos:
flags: immutable range
values: 0 0
value: 0

Frame buffers:
id size pitch

@Sutter99,

It looks like from the screen datasheet there is a specific driver that you should use rather than the default panel-lvds, can you attempt to try with this driver? Info is on page 5 of the datasheet.

-Eric

Hi @eric.tx,

Thank you for pointing that out. I missed that partly because I hadn’t needed to use more than “panel-lvds” to run this display with a different board which also uses the i.MX8M Plus. I don’t see the driver for the Himax chip in my Yocto project files or kernel menu. I have contacted Newhaven Display about how to add this driver to my project.

Thanks

Hey @Sutter99,

How are you doing with this? Have you gotten in touch with the vendor?

-Eric

Hi @eric.tx,

Unfortunately, Newhaven Display has not responded to my email request for information about including the display driver in my Yocto build.