HDMI enable for Colibri IMX8X

Tried to apply colibri-imx8x_dsihdmi_overlay.dtbo overlay.
No signals were observed on 24 pin connector from colibri.
What is the right procedure to enable DSI/HDMI?

Thanks.

Greetings @Serghey,

It seems you’re running “Torizon 5.2.0-devel-202103+build.9”, or our March monthly build. I did some checking and it appears that we did have a known issue where HDMI wasn’t working after applying colibri-imx8x_dsihdmi_overlay.dtbo. This issue was resolved by this commit here: http://git.toradex.com/cgit/linux-toradex.git/commit/arch/arm64/boot/dts/freescale/imx8qxp-colibri.dtsi?h=toradex_5.4-2.3.x-imx&id=cc21cacf60e4f68fd7fab710ef46d87b93577387

However this commit was added end of March, which would be after the build you’re using. Could you try with a more recent build and see if that resolves it?

Best Regards,
Jeremias

Perfect, it works!. I tried the last one 5.3.0-devel-202106+build.14 . Thank you so much.

The next question: Is it any way to make work colibri-imx8x_parallel-rgb_overlay.dtbo and colibri-
imx8x_dsihdmi_overlay.dtbo together to mirror both displays?

Just to clarify you want to the same graphical content on both the parallel RGB and HDMI displays, yes?

As far as I know the Weston/Wayland part of the graphical stack would be responsible for how content is displayed on any connected display. I believe by default Weston does a extended display configuration when more than one display is connected.

After some research it seems Weston has an option to “clone-from”, which sounds like it might be what you want. But the details around this aren’t very well documented/clear. So I can’t say for sure if Weston supports a “mirroring” mode for multi-displays.

Best Regards,
Jeremias

Yes, we want the same image on parallel TFT display and HDMI. Currently it works just for the splash screen for original and customized images. But when application starts HDMI display does not show anything. In devices folder both fb0 and fb1 exist but application detects just one screen when implement :
QApplication::desktop()->numScreens();

But when application starts HDMI display does not show anything.

Could you clarify a bit on this statement. So do both displays show something and then when the application starts the HDMI display shows nothing? What exactly is the behavior you’re seeing right now?

What happens if you try to just run a simple Weston container: https://developer.toradex.com/knowledge-base/debian-container-for-torizon#Debian_With_Weston_Wayland_Compositor

What do you see on both displays then?

I recall last time I did this the Weston output was extended across the multiple displays I had attached. As I said though I’m unsure if Weston supports true mirroring of display output. Furthermore on the Qt side I don’t know what configurations are necessary for mirroring of applications as well.

Best Regards,
Jeremias

When device is powered on we see the splash screen image on both displays TFT and HDMI. So when kernel boots up displays working in mirror mode. But after that when our container starts only TFT provides the image,
HDMI is dark. We also tried to run resistive touch screen calibration container, but it also provides the picture just to TFT which is /dev/fb0 but no anything on HDMI (/dev/fb1). We are wondering if it is possible to see image on both displays when kernel boots up may be it is also possible to enable the second display for weston and our QT app?

What do the logs for the weston container show? Perhaps the weston container isn’t “seeing” both your displays for whatever reason.

Best Regards,
Jeremias

Just left one image torizon/weston-vivante:2
When implement :
“docker run -e ACCEPT_FSL_EULA=1 -d --rm --name=weston --net=host --cap-add CAP_SYS_TTY_CONFIG
-v /dev:/dev -v /tmp:/tmp -v /run/udev/:/run/udev/
–device-cgroup-rule=‘c 4:* rmw’ --device-cgroup-rule=‘c 13:* rmw’
–device-cgroup-rule=‘c 199:* rmw’ --device-cgroup-rule=‘c 226:* rmw’
torizon/weston-vivante:$CT_TAG_WESTON_VIVANTE --developer weston-launch
–tty=/dev/tty7 --user=torizon”

parallel rgb works normally, but HDMI does not show anything. There in no any messages displayed on the console. Original Torizon splash screen is showing on both displays when kernel starts. Where we can see the weston logs?

To get the logs for any container run docker logs <container ID>. To get the ID for a container run docker ps -a.

In the logs for the weston container you should see all the displays that are detected by weston and how they’re setup for use. We need to find out if it sees both your parallel RGB and HDMI. Or whether there is another issue.

Best Regards,
Jeremias

Thank you,
Please refer to the attachmentlink text.

Hmm there’s no indication of HDMI anywhere in the logs. What happens if you disable parallel RGB and only have HDMI enabled, does your applications how up on HDMI then?

Furthermore what is the output of ls /sys/class/drm on your device?

Weston should really detect both display interfaces by default so perhaps there’s a bug or configuration issue here for us to investigate on oru side.

Best Regards,
Jeremias

If I leave just HDMI it works like a regular display and provides all info like parallel RGB (splash screen, console data and QT application graphics. Of course in this case there is just one frame buffer fb0 in /dev folder.

The output you requested when both displays enabled is:

colibri-imx8x-v10b-06494276:~$ ls /sys/class/drm

card0 card0-DPI-1 card1 card1-HDMI-A-1 card2 renderD128 renderD129 version

Thank you for all the information so far, let me take this up internally with the team and see if we can find the issue here.

I’ll update you with any further information.

Best Regards,
Jeremias

Thank you, Jeremias.

and the next question:

We used Totizon Core 5.2.0 which by default creates the full screen image for our TFT display 800x480.
But current core 5.3.0 which has HDMI issue fixed by default supports TFT 640x480. Is it any possibility to make 5.3.0 to support 800x480 TFT by default without recompile overlay or kernel?

After some discussion it turns out there’s a limitation here. Notice from your /sys/class/drm output how HDMI and DPI (parallel RGB) use different cards. One used card0 and the other uses card1, this is normal and expected.

The issue is Weston itself. Currently Weston has a limitation where it can’t really handle multi-display output if the displays are on different DRM cards such as here. Unfortunately there’s not a good answer here given this limitation. Maybe starting two weston instances where each uses a different display, but then your goal of mirroring the content becomes more difficult. In short this may require a specialized solution.

As for your TFT display resolution. As seen herehttps://developer.toradex.com/knowledge-base/device-tree-overlays-linux#Preenabled_Device_Tree_Overlays

Our images ship with certain overlays pre-enabled, one of these for the Colibri i.MX8X is “display-vga_overlay.dtbo”. Which forces a VGA resolution of 640x480 on the parallel RGB interface. This is probably what you’re seeing. I would suggest removing the default overlay and then applying your own overlay with your display’s timings and resolution.

Best Regards,
Jeremias

Thank you for the information. We were able to change the display resolution when enable the different overlay instead of display_vga_overlay.dtbo.

Regarding the multiple displays support. HDMI can mirror the splash screen, but does not work as the terminal.
Currently we can work with 3 terminals at the same time : dev/ttyLP3(UartA) dev/pts/0 (SSH ethernet) and /dev/tty1 (parallel rgb). Can we make HDMI also work as a terminal? This is not related to Weston.

I’m in discussion internally on how to accomplish this. It seems possible but you would need to handle seat instances as well as getty instances to get the console to show up on both HDMI and parallel RGB. Though this isn’t something we’ve tried so far.

Let’s back up the discussion a bit. What exactly is your use case here? What exactly do you want to do with dual parallel RGB & HDMI displays?

I understood initially that you wanted to mirror your graphical application across both. But as we discussed this will be difficult due to the technical limitations of Weston. So what is your goal now?

Best Regards,
Jeremias

Thank you for the support. We are in design of some product with 800x480 TFT and customer asked to duplicate the same image on the large display. Currently we use VGA with HDMI adapter. Tried to avoid it.
We were satisfied when could duplicate the customized splash screen image on both TFT and HDMI so hardware definitely supports it. But you are right, looks like it does not work with Weston graphics, so we came back to the initial solution with VGA and adapter. This is how the schematics will be designed. Once again, very appreciate your help.
Best regards,
Serghey.

Interesting idea, please let me know how it works out with the adapter. Unfortunately it’s unlikely the limitation with Weston will be resolved soon, so you’ll probably have to workaround this for the time being.

Best Regards,
Jeremias