Apalis iMX8 and Ixora Carrier Board HDMI and LVDS Device Tree Overlay together!

Hello All,
We have an iMX8 QM(Apalis Module) and Ixora carrier board.
We are using Apalis-iMX8_Reference-Multimedia

root@apalis-imx8:~# cat /etc/os-release 
ID=tdx-xwayland
NAME="TDX Wayland with XWayland"
VERSION="6.4.0+build.8 (kirkstone)"
VERSION_ID=6.4.0-build.8
PRETTY_NAME="TDX Wayland with XWayland 6.4.0+build.8 (kirkstone)"
DISTRO_CODENAME="kirkstone"

We have hdmi 1920*1080@60 right now and i want to use the LVDS Toch 10.1 panle on the i.mx8qm.

We set overlays display with preinstalled apalis-imx8_panel-cap-touch-10inch-lvds_overlay.dtbo.


root@apalis-imx8:~# ls /boot/overlays
apalis-imx8_ar0521_overlay.dtbo
apalis-imx8_hdmi_overlay.dtbo
apalis-imx8_mezzanine_can_overlay.dtbo
apalis-imx8_mezzanine_ov5640_overlay.dtbo
apalis-imx8_mezzanine_panel-cap-touch-10inch-lvds_overlay.dtbo
apalis-imx8_ov5640_overlay.dtbo
apalis-imx8_panel-cap-touch-10inch-lvds_overlay.dtbo
apalis-imx8_panel-lvds-dual-channel-1080p_overlay.dtbo
apalis-imx8_resistive-touch_overlay.dtbo
apalis-imx8_spi1_spidev_overlay.dtbo
apalis-imx8_spi2_spidev_overlay.dtbo

And then add related device tree overlay to overlays.txt :

root@apalis-imx8:/boot# cat  /boot/overlays.txt 
fdt_overlays=apalis-imx8_hdmi_overlay.dtbo apalis-imx8_spi1_spidev_overlay.dtbo apalis-imx8_spi2_spidev_overlay.dtbo apalis-imx8_panel-cap-touch-10inch-lvds_overlay.dtbo

root@apalis-imx8:/boot# sync
root@apalis-imx8:/boot# reboot

But after reset we found kernel panic problem and dont have output screen HDMI and LVDS Display.

Starting kernel ...
.
.
.

[    7.195790] hdmi_pixel_mux_clk: failed to set clock parent -16
[    7.207269] ahci-imx 5f020000.sata: supply phy not found, using dummy regulator
[    7.216304] clk: failed to reparent hdmi_pixel_mux_clk to hdmi_av_pll_clk: -16
[    7.223687] hdmi_pixel_link_clk: failed to set clock parent -16
[    7.229915] clk: failed to reparent hdmi_pixel_link_clk to hdmi_av_pll_clk: -16
[    7.230534] ahci-imx 5f020000.sata: supply target not found, using dummy regulator
[    7.245597] imx-drm display-subsystem: bound imx-drm-dpu-bliteng.2 (ops dpu_bliteng_ops)
[    7.250044] ahci-imx 5f020000.sata: external osc is used.
[    7.254428] imx-drm display-subsystem: bound imx-drm-dpu-bliteng.5 (ops dpu_bliteng_ops)
[    7.261552] atmel_mxt_ts 4-004a: __mxt_read_reg: i2c transfer failed (-5)
[    7.269450] ahci-imx 5f020000.sata: no ahb clock.
[    7.270799] imx-drm display-subsystem: bound imx-dpu-crtc.0 (ops dpu_crtc_ops)
[    7.271474] imx-drm display-subsystem: bound imx-dpu-crtc.1 (ops dpu_crtc_ops)
[    7.273746] imx-hdmi sound-hdmi: snd_soc_register_card failed (-517)
[    7.274731] atmel_mxt_ts 4-004a: mxt_bootloader_read: i2c recv failed (-5)
[    7.277519] imx-drm display-subsystem: bound imx-dpu-crtc.3 (ops dpu_crtc_ops)
[    7.279371] imx-drm display-subsystem: bound imx-dpu-crtc.4 (ops dpu_crtc_ops)
[    7.279678] ahci-imx 5f020000.sata: AHCI 0001.0301 32 slots 1 ports 6 Gbps 0x1 impl platform mode
[    7.279696] ahci-imx 5f020000.sata: flags: 64bit ncq sntf pm clo only pmp fbs pio slum part ccc sadm sds apst 
[    7.287727] atmel_mxt_ts 4-004a: Trying alternate bootloader address
[    7.294080] scsi host0: ahci-imx
[    7.300637] atmel_mxt_ts 4-004a: mxt_bootloader_read: i2c recv failed (-5)
[    7.325418] SError Interrupt on CPU1, code 0x00000000bf000002 -- SError
[    7.325438] CPU: 1 PID: 263 Comm: kworker/u12:6 Tainted: G         C O      5.15.129-6.4.0+git.67c3153d20ff #1
[    7.325446] Hardware name: Toradex Apalis iMX8QM V1.1 on Apalis Evaluation Board (DT)
[    7.325453] Workqueue: events_unbound deferred_probe_work_func
[    7.325477] pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[    7.325485] pc : mutex_unlock+0x44/0x70
[    7.325499] lr : cdns_mhdp_bus_write+0xa4/0x100 [cdns_mhdp_drmcore]
[    7.325539] sp : ffff80000ba8b910
[    7.325541] x29: ffff80000ba8b910 x28: ffff000801386350 x27: ffff000804ad3100
[    7.325552] x26: 0000000000000000 x25: ffff8000010b01c0 x24: ffff0008058fe120
[    7.325561] x23: ffff0008058fc080 x22: 0000000022222211 x21: ffff0008058fcd88
[    7.325569] x20: 0000000000000004 x19: ffff0008058fc080 x18: 0000000000000000
[    7.325578] x17: ffff800875f9a000 x16: ffff800008008000 x15: 00006544c35ea1a1
[    7.325587] x14: 00000000000001ca x13: 0000000000000001 x12: 0000000000000001
[    7.325595] x11: 0000000000000000 x10: 00000000000009e0 x9 : ffff80000ba8b810
[    7.325604] x8 : ffff000800a28a40 x7 : ffff00087f706440 x6 : 0000000000000000
[    7.325612] x5 : 0000000000220000 x4 : 0000000000000000 x3 : ffff0008058fcd88
[    7.325621] x2 : 0000000000000000 x1 : ffff000800a28000 x0 : ffff000800a28000
[    7.325632] Kernel panic - not syncing: Asynchronous SError Interrupt
[    7.325637] CPU: 1 PID: 263 Comm: kworker/u12:6 Tainted: G         C O      5.15.129-6.4.0+git.67c3153d20ff #1
[    7.325644] Hardware name: Toradex Apalis iMX8QM V1.1 on Apalis Evaluation Board (DT)
[    7.325647] Workqueue: events_unbound deferred_probe_work_func
[    7.325656] Call trace:
[    7.325658]  dump_backtrace+0x0/0x1f0
[    7.325672]  show_stack+0x18/0x40
[    7.325679]  dump_stack_lvl+0x68/0x84
[    7.325689]  dump_stack+0x18/0x34
[    7.325696]  panic+0x18c/0x34c
[    7.325701]  add_taint+0x0/0xc0
[    7.325712]  arm64_serror_panic+0x6c/0x7c
[    7.325717]  do_serror+0x58/0x5c
[    7.325722]  el1h_64_error_handler+0x30/0x50
[    7.325730]  el1h_64_error+0x78/0x7c
[    7.325736]  mutex_unlock+0x44/0x70
[    7.325743]  cdns_mhdp_firmware_write_section+0x74/0xa0 [cdns_mhdp_imx]
[    7.325758]  cdns_mhdp_firmware_init_imx8qm+0xac/0x1c0 [cdns_mhdp_imx]
[    7.325769]  __cdns_hdmi_probe+0x174/0x37c [cdns_mhdp_drmcore]
[    7.325795]  cdns_hdmi_bind+0x28/0x90 [cdns_mhdp_drmcore]
[    7.325820]  cdns_mhdp_imx_bind+0xe4/0x170 [cdns_mhdp_imx]
[    7.325831]  component_bind_all+0x124/0x284
[    7.325840]  imx_drm_bind+0x15c/0x210
[    7.325849]  try_to_bring_up_master+0x228/0x314
[    7.325855]  __component_add+0xa0/0x18c
[    7.325861]  component_add+0x14/0x20
[    7.325868]  cdns_mhdp_imx_probe+0x1c/0x30 [cdns_mhdp_imx]
[    7.325878]  platform_probe+0x68/0xe0
[    7.325885]  really_probe+0xbc/0x46c
[    7.325891]  __driver_probe_device+0x104/0x160
[    7.325897]  driver_probe_device+0x40/0x120
[    7.325904]  __device_attach_driver+0xbc/0x160
[    7.325910]  bus_for_each_drv+0x7c/0xdc
[    7.325920]  __device_attach+0xac/0x1f0
[    7.325926]  device_initial_probe+0x14/0x20
[    7.325932]  bus_probe_device+0x98/0xa0
[    7.325937]  deferred_probe_work_func+0x94/0xe4
[    7.325943]  process_one_work+0x1d0/0x374
[    7.325951]  worker_thread+0x13c/0x490
[    7.325957]  kthread+0x150/0x160
[    7.325966]  ret_from_fork+0x10/0x20
[    7.325975] SMP: stopping secondary CPUs
[    7.330441] Kernel Offset: disabled
[    7.330443] CPU features: 0x4,000820b1,20000846
[    7.330449] Memory Limit: none



[    7.325632] Kernel panic - not syncing: Asynchronous SError Interrupt

Please guide us how to reconfigure the parameters.

Thanks.
Regards,

Hello @hhami,

Thanks for reaching out!
Would you like to have a meeting so that we could remotely debug the issue together?

1 Like

Hello @rudhi.tx
Unfortunate, I cant right now,
The result of the configuration after reset is as bellow:

[    7.019123] Workqueue: events_unbound deferred_probe_work_func
[    7.019145] pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[    7.019154] pc : mutex_lock_io+0xd0/0x2ec
[    7.019164] lr : cdns_mhdp_bus_write+0xa4/0x100 [cdns_mhdp_drmcore]
[    7.019204] sp : ffff80000a09b910
[    7.019207] x29: ffff80000a09b910 x28: ffff000800763350 x27: ffff00080474ae00
[    7.019218] x26: 0000000000000000 x25: ffff8000010b11b8 x24: ffff0008054f6120
[    7.019227] x23: ffff0008054f4080 x22: 0000000022222211 x21: ffff0008054f4d88
[    7.019237] x20: 0000000000000004 x19: ffff0008054f4080 x18: 0000000000000000
[    7.019246] x17: 0000000000000000 x16: 0000000000000000 x15: 0000000000000000
[    7.019256] x14: 0000000000000228 x13: 0000000000000001 x12: 0000000000000000
[    7.019265] x11: 0000000000000000 x10: 00000000000009c0 x9 : ffff80000a09b810
[    7.019274] x8 : ffff0008001b2620 x7 : ffff00087f706400 x6 : 0000000000000000
[    7.019284] x5 : 0000000000220000 x4 : 0000000000000000 x3 : ffff0008054f4d88
[    7.019292] x2 : 0000000000000000 x1 : ffff0008001b1c00 x0 : ffff0008001b1c00
[    7.019305] Kernel panic - not syncing: Asynchronous SError Interrupt
[    7.019309] CPU: 1 PID: 204 Comm: kworker/u12:2 Tainted: G         C O      5.15.77-6.4.0-devel+git.ddc6ca4d76ea #1
[    7.019317] Hardware name: Toradex Apalis iMX8QM/QP on Apalis Evaluation Board (DT)
[    7.019321] Workqueue: events_unbound deferred_probe_work_func
[    7.019332] Call trace:
[    7.019334]  dump_backtrace+0x0/0x1d0
[    7.019347]  show_stack+0x18/0x6c
[    7.019355]  dump_stack_lvl+0x68/0x84
[    7.019362]  dump_stack+0x18/0x34
[    7.019368]  panic+0x160/0x320
[    7.019377]  nmi_panic+0x8c/0x90
[    7.019388]  arm64_serror_panic+0x6c/0x7c
[    7.019394]  do_serror+0x58/0x5c
[    7.019399]  el1h_64_error_handler+0x30/0x50
[    7.019409]  el1h_64_error+0x78/0x7c
[    7.019415]  mutex_lock_io+0xd0/0x2ec
[    7.019421]  cdns_mhdp_firmware_write_section+0x74/0xa0 [cdns_mhdp_imx]
[    7.019437]  cdns_mhdp_firmware_init_imx8qm+0xac/0x1c0 [cdns_mhdp_imx]
[    7.019449]  __cdns_hdmi_probe+0x174/0x37c [cdns_mhdp_drmcore]
[    7.019479]  cdns_hdmi_bind+0x28/0x90 [cdns_mhdp_drmcore]
[    7.019506]  cdns_mhdp_imx_bind+0xe0/0x160 [cdns_mhdp_imx]
[    7.019518]  component_bind_all+0x124/0x284
[    7.019530]  imx_drm_bind+0x15c/0x210
[    7.019538]  try_to_bring_up_master+0x228/0x314
[    7.019547]  __component_add+0xa0/0x18c
[    7.019552]  component_add+0x14/0x20
[    7.019558]  cdns_mhdp_imx_probe+0x1c/0x30 [cdns_mhdp_imx]
[    7.019570]  platform_probe+0x68/0xe0
[    7.019577]  really_probe+0xbc/0x46c
[    7.019585]  __driver_probe_device+0x114/0x190
[    7.019593]  driver_probe_device+0x40/0x100
[    7.019601]  __device_attach_driver+0xbc/0x160
[    7.019609]  bus_for_each_drv+0x7c/0xdc
[    7.019617]  __device_attach+0xac/0x1f0
[    7.019625]  device_initial_probe+0x14/0x20
[    7.019635]  bus_probe_device+0x98/0xa0
[    7.019644]  deferred_probe_work_func+0x94/0xe4
[    7.019654]  process_one_work+0x1d0/0x354
[    7.019663]  worker_thread+0x13c/0x470
[    7.019671]  kthread+0x150/0x160
[    7.019681]  ret_from_fork+0x10/0x20
[    7.019691] SMP: stopping secondary CPUs
[    7.024264] Kernel Offset: disabled
[    7.024267] CPU features: 0x800820b1,20000846
[    7.024273] Memory Limit: none

For Driving touch-10inch-lvds LCD
What do i have to do ??
Thanks.

Thanks for the response.
Actually i want to know how to drive Toradex LVDS LCD with Apalis Imx.8 and Ixora Carrier board.
Please guide me how to fix the problem.

@rudhi.tx
I’m trying to configure the LVDS out on the imx8qm and HDMI together but facing some issues!!
I can’t configure the Toradex LVDS LCD Touch panle!!
Thank you in advance for your help.
Best Regards,

Hello @rudhi.tx
When i just set apalis-imx8_panel-cap-touch-10inch-lvds_overlay.dtb for overlay.txt as bellow

root@apalis-imx8:~# cat /boot/overlays.txt 
fdt_overlays=apalis-imx8_panel-cap-touch-10inch-lvds_overlay.dtb

Loging is ready without Weston as bellow:


         Starting Weston, a Wayland…ositor, as a system service...
[  OK  ] Started Hostname Service.
[    9.191012] audit: type=1334 audit(1702905477.600:10): prog-id=13 op=LOAD
[    9.198167] audit: type=1334 audit(1702905477.608:11): prog-id=14 op=LOAD
         Starting User Database Manager...
[  OK  ] Started User Database Manager.
[  OK  ] Created slice User Slice of UID 0.
         Starting User Runtime Directory /run/user/0...
[  OK  ] Finished User Runtime Directory /run/user/0.
         Starting User Manager for UID 0...
[  OK  ] Started User Manager for UID 0.
[  OK  ] Started Session c1 of User root.
[FAILED] Failed to start Weston, a …mpositor, as a system service.
See 'systemctl status weston.service' for details.
[DEPEND] Dependency failed for Start a wayland application.
[  OK  ] Reached target Graphical Interface.
         Starting Record Runlevel Change in UTMP...
[  OK  ] Finished Record Runlevel Change in UTMP.

TDX Wayland with XWayland 6.4.0+build.8 (kirkstone) apalis-imx8-07306835 -
Apalis-iMX8_Reference-Multimedia-Image

apalis-imx8-07306835 login:

[FAILED] Failed to start Weston, a …mpositor, as a system service.

Hello @hhami,

Thanks for sending the logs.
Regarding the issue with not getting the HDMI and LVDS display working together with your SoM: This is a known issue from our side. To gather more information on that, please get in contact with your account manager.

About the issue with failed Weston service: If you enable just the overlay for LVDS display (apalis-imx8_panel-cap-touch-10inch-lvds_overlay.dtb) as you already did, this service should not fail and you should be able to see the output on the display. This works fine with our reference multimedia image (I tested specifically on version 6.4.0+build.8). I would recommend you try this again from scratch by installing a multimedia image on your module.

Hello @rudhi.tx
Thankyou for your response
It has a error when i use the lvds overlay,

root@apalis-imx8:~# cat /etc/os-release 
ID=tdx-xwayland
NAME="TDX Wayland with XWayland"
VERSION="6.4.0+build.8 (kirkstone)"
VERSION_ID=6.4.0-build.8
PRETTY_NAME="TDX Wayland with XWayland 6.4.0+build.8 (kirkstone)"
DISTRO_CODENAME="kirkstone"
root@apalis-imx8:~# 

and then,

root@apalis-imx8:~# cat /boot/overlays.txt 
fdt_overlays=apalis-imx8_panel-cap-touch-10inch-lvds_overlay.dtb
root@apalis-imx8-07306835:~#

and after reset:

         Starting Weston, a Wayland…ositor, as a system service...
[   10.516479] audit: type=1334 audit(1702913569.284:10): prog-id=13 op=LOAD
[   10.523705] audit: type=1334 audit(1702913569.292:11): prog-id=14 op=LOAD
         Starting User Database Manager...[   10.531992] IPv6: ADDRCONF(NETDEV_CHANGE): usb0: link becomes ready

[  OK  ] Started Hostname Service.
[  OK  ] Started User Database Manager.
[  OK  ] Created slice User Slice of UID 0.
         Starting User Runtime Directory /run/user/0...
[  OK  ] Finished User Runtime Directory /run/user/0.
         Starting User Manager for UID 0...
[  OK  ] Started User Manager for UID 0.
[  OK  ] Started Session c1 of User root.
[FAILED] Failed to start Weston, a …mpositor, as a system service.
See 'systemctl status weston.service' for details.
[DEPEND] Dependency failed for Start a wayland application.
[  OK  ] Reached target Graphical Interface.
         Starting Record Runlevel Change in UTMP...
[  OK  ] Finished Record Runlevel Change in UTMP.

TDX Wayland with XWayland 6.4.0+build.8 (kirkstone) apalis-imx8-07306835 -
Apalis-iMX8_Reference-Multimedia-Image

apalis-imx8-07306835 login:

and end of it tired_face:

root@apalis-imx8:~# systemctl status weston.service
x weston.service - Weston, a Wayland compositor, as a system service
     Loaded: loaded (/lib/systemd/system/weston.service; enabled; vendor >
     Active: failed (Result: exit-code) since Mon 2023-12-18 15:32:50 UTC>
TriggeredBy: * weston.socket
       Docs: man:weston(1)
             man:weston.ini(5)
             http://wayland.freedesktop.org/
    Process: 835 ExecStart=/usr/bin/weston --modules=systemd-notify.so (c>
   Main PID: 835 (code=exited, status=1/FAILURE)

Dec 18 15:32:49 apalis-imx8 systemd[1]: Starting Weston, a Wayla>
Dec 18 15:32:50 apalis-imx8 systemd[1]: weston.service: Main pro>
Dec 18 15:32:50 apalis-imx8 systemd[1]: weston.service: Failed w>
Dec 18 15:32:50 apalis-imx8 systemd[1]: Failed to start Weston, >

root@apalis-imx8:~#

Also can you share dts file of precompiled dtbo(apalis-imx8_panel-cap-touch-10inch-lvds_overlay)??
Please guide me how to fix the problem!
Thanks.

Hi @hhami ,

There is a known issue as @rudhi.tx mentioned.
please check my post about it. LVDS and HDMI works in separate settings but not together.

iMX8QM HDMI plus Touch screen overlays - Technical Support - Toradex Community

I’m also waiting for a resolution for this issue.

Best regards

Hello @hhami,

Are you using an LVDS display you bought from Toradex?

Have you made any customizations to the image (for example, modified the device tree) that you are using? In that case, can you reflash the module with a new multimedia image from the Toradex Easy Installer feeds and test the display with that?

Regarding the sources of our device tree overlays: You should be able to get them here: Build Device Tree Overlays from Source Code | Toradex Developer Center

This issue has already been solved, as you can see on the commit list:
drm/imx: imx8qm-ldb: return EPROBE_DEFER in probedrm: imx8: fix hdmi firmware load boot error
From linux-toradex.git - Linux kernel for Apalis, Colibri and Verdin modules

You can use the latest nightly release of Reference Multimedia Image to test it: Download Links | Toradex Developer Center
Please let us know how it goes.