Verdin imx8m Plus WB 4GB on Dahlia dev board failed to start weston on any Upstream reference images

We are trying to evaluate galcore vs etnaviv gpu drivers on IMX8M Plus on dahlia board, but weston always fails to start
on any upstream reference images with etnaviv gpu driver.

[FAILED] Failed to start Weston, a Wayland compositor, as a system service.
See 'systemctl status weston.service' for details.
[DEPEND] Dependency failed for Start a wayland application.
root@verdin-imx8mp-15678795:~# tdx-info 

Software summary
------------------------------------------------------------
Bootloader:               U-Boot
Kernel version:           6.12.59-7.5.0-devel #1 SMP PREEMPT Mon Nov 24 09:36:08 UTC 2025
Kernel command line:      root=PARTUUID=d0713e5a-02 ro rootwait console=tty1 console=ttymxc2,115200
Distro name:              NAME="TDX Wayland with XWayland Upstream"
Distro version:           VERSION_ID=7.5.0-devel-202512-build.16
Distro variant:           -
Hostname:                 verdin-imx8mp-15678795
------------------------------------------------------------

Hardware info
------------------------------------------------------------
HW model:                 Toradex Verdin iMX8M Plus on Dahlia Board
Toradex version:          0058 V1.1B
Serial number:            15678795
Processor arch:           aarch64
------------------------------------------------------------
verdin-imx8mp-15678795 login: root
root@verdin-imx8mp-15678795:~# dmesg | grep -iE "etnaviv|galcore|gpu|drm"
[    3.893116] systemd[1]: Starting Load Kernel Module drm...
[    5.881158] etnaviv etnaviv: bound 38000000.gpu (ops gpu_ops [etnaviv])
[    5.904396] etnaviv etnaviv: bound 38008000.gpu (ops gpu_ops [etnaviv])
[    5.911648] etnaviv etnaviv: bound 38500000.npu (ops gpu_ops [etnaviv])
[    5.918463] etnaviv-gpu 38000000.gpu: model: GC7000, revision: 6204
[    5.932008] etnaviv-gpu 38008000.gpu: model: GC520, revision: 5341
[    5.945694] etnaviv-gpu 38500000.npu: model: GC8000, revision: 8002
[    5.952043] etnaviv-gpu 38500000.npu: etnaviv has been instantiated on a NPU, for which the UAPI is still experimental
[    6.009800] [drm] Initialized etnaviv 1.4.0 for etnaviv on minor 0
[    6.136300] [drm] Initialized imx-lcdif 1.0.0 for 32fc6000.display-controller on minor 1
[    6.335719] imx-lcdif 32fc6000.display-controller: [drm] fb0: imx-lcdifdrmfb frame buffer device
[    6.569756] samsung-dsim 32e60000.dsi: [drm:samsung_dsim_host_attach [samsung_dsim]] Attached lt8912 device (lanes:4 bpp:24 mode-flags:0xa01)
[    6.630612] [drm] Initialized imx-lcdif 1.0.0 for 32e80000.display-controller on minor 2
[    6.638894] imx-lcdif 32e80000.display-controller: [drm] Cannot find any crtc or sizes
root@verdin-imx8mp-15678795:~# ls /sys/kernel/debug/dri/ -al
total 0
drwxr-xr-x  5 root root 0 May 29 19:05 .
drwx------ 47 root root 0 Jan  1  1970 ..
lrwxrwxrwx  1 root root 0 May 29 19:05 0 -> etnaviv
lrwxrwxrwx  1 root root 0 May 29 19:05 1 -> 32fc6000.display-controller
lrwxrwxrwx  1 root root 0 May 29 19:05 128 -> etnaviv
lrwxrwxrwx  1 root root 0 May 29 19:05 2 -> 32e80000.display-controller
drwxr-xr-x  5 root root 0 May 29 19:05 32e80000.display-controller
drwxr-xr-x  5 root root 0 May 29 19:05 32fc6000.display-controller
drwxr-xr-x  2 root root 0 May 29 19:05 etnaviv
root@verdin-imx8mp-15678795:~# cat /sys/kernel/debug/dri/32e80000.display-controller/state                                                                                                                                                                                                                                  
plane[32]: plane-0
        crtc=(null)
        fb=0
        crtc-pos=0x0+0+0
        src-pos=0.000000x0.000000+0.000000+0.000000
        rotation=1
        normalized-zpos=0
        color-encoding=ITU-R BT.601 YCbCr
        color-range=YCbCr limited range
        color_mgmt_changed=0
crtc[36]: crtc-0
        enable=0
        active=0
        self_refresh_active=0
        planes_changed=0
        mode_changed=0
        active_changed=0
        connectors_changed=0
        color_mgmt_changed=0
        plane_mask=0
        connector_mask=0
        encoder_mask=0
        mode: "": 0 0 0 0 0 0 0 0 0 0 0x0 0x0
connector[38]: HDMI-A-2
        crtc=(null)
        self_refresh_aware=0
        max_requested_bpc=0
        colorspace=Default
        broadcast_rgb=Automatic
        is_limited_range=n
        output_bpc=0
        output_format=RGB
        tmds_char_rate=0
root@verdin-imx8mp-15678795:~# cat /sys/kernel/debug/dri/32fc6000.display-controller/state
plane[32]: plane-0
        crtc=crtc-0
        fb=41
                allocated by = [fbcon]
                refcount=2
                format=XR24 little-endian (0x34325258)
                modifier=0x0
                size=1920x1080
                layers:
                        size[0]=1920x1080
                        pitch[0]=7680
                        offset[0]=0
                        obj[0]:
                                name=0
                                refcount=3
                                start=00100000
                                size=8294400
                                imported=no
                                dma_addr=0x00000000cb900000
                                vaddr=000000005afc3189
        crtc-pos=1920x1080+0+0
        src-pos=1920.000000x1080.000000+0.000000+0.000000
        rotation=1
        normalized-zpos=0
        color-encoding=ITU-R BT.601 YCbCr
        color-range=YCbCr limited range
        color_mgmt_changed=0
crtc[36]: crtc-0
        enable=1
        active=1
        self_refresh_active=0
        planes_changed=1
        mode_changed=0
        active_changed=0
        connectors_changed=0
        color_mgmt_changed=0
        plane_mask=1
        connector_mask=1
        encoder_mask=1
        mode: "1920x1080": 60 148500 1920 2008 2052 2200 1080 1084 1089 1125 0x48 0x5
connector[38]: HDMI-A-1
        crtc=crtc-0
        self_refresh_aware=0
        max_requested_bpc=0
        colorspace=Default
        broadcast_rgb=Automatic
        is_limited_range=n
        output_bpc=0
        output_format=RGB
        tmds_char_rate=0
root@verdin-imx8mp-15678795:~# cat /var/log/weston.log
Date: 2025-05-29 UTC
[19:05:10.613] weston 13.0.1
               https://wayland.freedesktop.org
               Bug reports to: https://gitlab.freedesktop.org/wayland/weston/issues/
               Build: 13.0.1
[19:05:10.614] Command line: /usr/bin/weston --modules=systemd-notify.so --debug --log=/var/log/weston.log
[19:05:10.614] OS: Linux, 6.12.59-7.5.0-devel, #1 SMP PREEMPT Mon Nov 24 09:36:08 UTC 2025, aarch64
[19:05:10.614] Flight recorder: enabled
[19:05:10.614] Using config file '/etc/xdg/weston/weston.ini'
[19:05:10.615] Output repaint window is 7 ms maximum.
[19:05:10.616] Loading module '/usr/lib/libweston-13/drm-backend.so'
[19:05:10.630] initializing drm backend
[19:05:10.630] Trying libseat launcher...
[19:05:10.630] [c/debug/seatd/0.8.0/libseat/backend/seatd.c:64] Could not connect to socket /run/seatd.sock: No such file or directory
[19:05:10.630] [c/debug/seatd/0.8.0/libseat/libseat.c:76] Backend 'seatd' failed to open seat, skipping
[19:05:10.654] [c/debug/seatd/0.8.0/libseat/libseat.c:73] Seat opened with backend 'logind'
[19:05:10.655] libseat: session control granted
[19:05:10.668] using /dev/dri/card2
[19:05:10.668] DRM: supports atomic modesetting
[19:05:10.668] DRM: supports GBM modifiers
[19:05:10.668] DRM: does not support async page flipping
[19:05:10.668] DRM: supports picture aspect ratio
[19:05:10.760] Loading module '/usr/lib/libweston-13/gl-renderer.so'
[19:05:10.789] Using rendering device: /dev/dri/renderD128
[19:05:10.789] EGL version: 1.4
[19:05:10.789] EGL vendor: Mesa Project
[19:05:10.790] EGL client APIs: OpenGL OpenGL_ES 
[19:05:10.790] EGL features:
               EGL Wayland extension: yes
               context priority: no
               buffer age: yes
               partial update: no
               swap buffers with damage: no
               configless context: yes
               surfaceless context: yes
               dmabuf support: modifiers
[19:05:10.811] GL version: OpenGL ES 2.0 Mesa 24.0.7
[19:05:10.811] GLSL version: OpenGL ES GLSL ES 1.0.16
[19:05:10.811] GL vendor: Mesa
[19:05:10.811] GL renderer: Vivante GC7000 rev 6204
[19:05:10.812] warning: Disabling render GPU timeline due to missing GL_EXT_disjoint_timer_query extension
[19:05:10.852] GL ES 2.0 - renderer features:
               read-back format: ARGB8888
               glReadPixels supports y-flip: yes
               wl_shm 10 bpc formats: yes
               wl_shm 16 bpc formats: no
               wl_shm half-float formats: no
               internal R and RG formats: yes
               OES_EGL_image_external: yes
[19:05:10.852] Using GL renderer
[19:05:10.869] event0  - gpio-keys: is tagged by udev as: Keyboard
[19:05:10.869] event0  - gpio-keys: device is a keyboard
[19:05:10.874] event1  - 30370000.snvs:snvs-powerkey: is tagged by udev as: Keyboard
[19:05:10.874] event1  - 30370000.snvs:snvs-powerkey: device is a keyboard
[19:05:10.879] event2  - audio-hdmi HDMI Jack: is tagged by udev as: Switch
[19:05:10.880] event2  - not using input device '/dev/input/event2'
[19:05:10.911] libinput: configuring device "gpio-keys".
[19:05:10.911] libinput: configuring device "30370000.snvs:snvs-powerkey".
[19:05:10.912] DRM: head 'HDMI-A-2' found, connector 38 is disconnected.
[19:05:10.912] Registered plugin API 'weston_drm_output_api_v1' of size 40
[19:05:10.912] Color manager: no-op
[19:05:10.913] event0  - gpio-keys: device removed
[19:05:10.914] event1  - 30370000.snvs:snvs-powerkey: device removed

Any help is appreciated, thanks in advance

Hi, I’m the Toradex AI Assistant.

I might make mistakes or occasionally get you wrong. Our support team will step in if needed.


Weston Failure with Etnaviv on Verdin iMX8M Plus

Based on your logs, I can see that you’re running TDX Wayland with XWayland Upstream version 7.5.0-devel-202512-build.16 on a Verdin iMX8M Plus with Dahlia Board. The etnaviv driver is loading correctly, but Weston is failing to start.

Analysis of the Issue

From your Weston log, the key issue appears to be that Weston successfully initializes the DRM backend and GL renderer with etnaviv, but then encounters a problem. The log shows:

  • Etnaviv driver loads correctly with GC7000, GC520, and GC8000 GPUs detected (1)
  • GL renderer initializes with “Vivante GC7000 rev 6204” (1)
  • Only one HDMI output (HDMI-A-2) is detected as disconnected

Graphics Backend Support

According to the Toradex documentation, for embedded Linux offerings, both X11 and Wayland graphics back-ends are supported (1). Specifically:

  • X11: Supported on pre-i.MX 8 Series modules on older BSPs including 4.0, but dropped on BSP 5.0 onwards (1)
  • Wayland: Supported on i.MX 8 Series modules as well as BSPs starting from 5.0 (1)

The documentation states that you should “prefer to use Wayland whenever possible” (1).

Troubleshooting Steps

  1. Check HDMI Connection: Ensure your HDMI display is properly connected and powered on before starting Weston.

  2. Force Connector State: You can try forcing the HDMI connector state as documented in the Weston configuration guide (2):

echo on > /sys/class/drm/card2-HDMI-A-2/status

(2)

  1. Check Display Configuration: Since you’re seeing “HDMI-A-2” as disconnected, verify your display setup according to the multi-display documentation (2).

  2. Weston Configuration: Review your /etc/xdg/weston/weston.ini file for any configuration issues specific to your display setup (2).

Known Issues

There are documented issues with Weston stability on iMX8M Plus, particularly related to HDMI hotplug events (3). While your issue is different (Weston failing to start rather than crashing during operation), it’s worth noting that the graphics stack can be sensitive to display connectivity states.

Recommendation

Since you’re evaluating galcore vs etnaviv, I’d recommend:

  1. Test with a known working display connection first
  2. Try the galcore-based images to establish a baseline
  3. Compare the behavior with etnaviv under identical hardware conditions

The etnaviv driver should work with Weston on iMX8M Plus, but display connectivity issues can prevent proper initialization.

Best regards, Toradex AI Assistant.


Did you like my answer? :+1: :-1:

If I answered your question, please tick the “Solution” checkbox.

For follow-up questions to me, please use @ToradexAI in your post.

  1. Test with a known working display connection first
    Try the galcore-based images to establish a baseline
    Compare the behavior with etnaviv under identical hardware conditions

The same setup works with any downstream multimedia reference images which are using galcore driver, so there is no display connection issue. One thing to clarify is that in both cases, galcore and etnaviv, native HDMI is used, not DSI to HDMI.

echo on > /sys/class/drm/card2-HDMI-A-2/status

I can start weston without errors after enabling HDMI-A-2, but there is nothing on the LCD display, no display-shell. If I start

systemctl start wayland-app-launch.service after weston, no changes on the display, it stays blank.

card1-HDMI-A-1 is present, and its status is connected right from the boot.

Wondering if this issue is related to 2 HDMIs, and the one that is already connected is supposed to be used?

Multi-Display Configuration Issue

You’re correct that this appears to be related to having two HDMI outputs. Based on your system information, you have:

  • card1-HDMI-A-1 (connected and active)
  • card2-HDMI-A-2 (disconnected by default)

The issue is that Weston is trying to use the wrong HDMI output.

Multi-Display Setup on iMX8M Plus

According to the Weston documentation, when multiple displays are available on the same DRM interface, Weston extends its surface to all connected displays (1). Your Verdin iMX8M Plus has both displays on the same DRM interface, as evidenced by your debug output showing both card1-HDMI-A-1 and card2-HDMI-A-2.

Solution: Configure Weston for the Correct Display

Since card1-HDMI-A-1 is already connected and working, you need to configure Weston to use this output instead of HDMI-A-2. You can do this by modifying the weston.ini file (1):

[output]
name=HDMI-A-1

(1)

Alternative: Disable the Unused Output

You can also disable the specific output that’s causing issues by adding this to your weston.ini file (1):

[output]
name=HDMI-A-2
mode=off

(1)

Wayland Application Display

For Wayland client applications, the documentation notes that “on multi-display setup, the Wayland client application will be by default displayed on the top left output or depending on the position of the mouse cursor” (1). Since you have multiple outputs, the application might be trying to display on the wrong output.

Recommended Configuration

Try creating or modifying /etc/xdg/weston/weston.ini with:

[output]
name=HDMI-A-1

[output]
name=HDMI-A-2
mode=off

(1)

This should force Weston to use only the connected HDMI-A-1 output and disable the problematic HDMI-A-2 output.

After making these changes, restart Weston and test your wayland applications again.

Best regards, Toradex AI Assistant.


Did you like my answer? :+1: :-1:

If I answered your question, please tick the “Solution” checkbox.

For follow-up questions to me, please use @ToradexAI in your post.

root@verdin-imx8mp-15678795:~# grep -v "^$\|#" /etc/xdg/weston/weston.ini 
[core]
idle-time=0
require-input=false
[shell]
locking=false
[output]
name=HDMI-A-1
[output]
name=HDMI-A-2
mode=off
[libinput]
enable_tap=true
touchscreen_calibrator=true
calibration_helper=/usr/bin/toradex-save-touchscreen-calibration
root@verdin-imx8mp-15678795:~# grep DRM /var/log/weston.log
[22:03:04.318] DRM: supports atomic modesetting
[22:03:04.318] DRM: supports GBM modifiers
[22:03:04.318] DRM: does not support async page flipping
[22:03:04.318] DRM: supports picture aspect ratio
[22:03:04.559] DRM: head 'HDMI-A-2' found, connector 38 is disconnected.

Weston fails May 29 22:14:58 verdin-imx8mp-15678795 systemd[1]: Failed to start Weston, a Wayland compositor, as a system service.

It is seems that HDMI-A-1 is connected to a monitor, and when HDMI cable is connected, then root@verdin-imx8mp-15678795:~# cat /sys/class/drm/card1-HDMI-A-1/status
connected, but when it is disconnected root@verdin-imx8mp-15678795:~# cat /sys/class/drm/card1-HDMI-A-1/status
disconnected.

The same goes with root@verdin-imx8mp-15678795:~# cat /sys/class/drm/card1-HDMI-A-1/modes
1920x1080
1920x1080

and when disconnected root@verdin-imx8mp-15678795:~# cat /sys/class/drm/card1-HDMI-A-1/modes
root@verdin-imx8mp-15678795:~#

Removing verdin-imx8mp_dsi-to-hdmi_overlay.dtbo entry from /boot/overlays.txt removes dsi to hdmi, HDMI-A-2, and now weston starts with wayland app running as well. output entries in weston.ini are not required either as there is only one HDMI present.

Hi @aandreev!

Please correct me if I’m wrong.

After disabling the DSI to HDMI overlay, you can see the demo app and proceed with evaluating etnaviv and galcore.

Can I consider this topic solved?

Best regards.