Toradex Ixora + iMX8 not Reading EDID

Hello,

I am currently having an issue with my Apalis iMX8 + Ixora device.

I noticed that when I plug in a custom display (1024x600) via HDMI, the board cannot read the correct EDID and thus defaults to 1024x768. This issue is not exclusive to this custom display. I have also seen the same issue with a generic AOC monitor.

Furthermore, I plugged the same custom display into a desktop PC and it came up in the correct resolution so as far as I can tell, the display is sending through a readable EDID. This seems to be an issue on the device side.

Some other test I have tried (with the same results) are:

  • Using a different HDMI cable
  • Using a different SoC and Carrier board (same model)
  • Reverting my kernel changes
  • A number of different displays

I am trying to run a Wayland/Weston QT application and it keeps coming up with the wrong dimensions resulting black spaces along the bottom.

This is built using Yocto Dunfell with kernel version 5.4.154-5.5.0-devel+git.c65f1622951c
Distro is tdx-xwayland
Service is wayland-app-launch
Qt version is 5.15

The SoC is: Toradex Apalis iMX8QP 2GB WB
The carrier board is: Toradex Ixora V1.2A

I have attached the boot log and the dmesg output.

Thanks!

dmesg.log (37.7 KB)
boot.log (1.6 KB)

Hi @Kim ,

I see in your boot.log,

Loading DeviceTree: imx8qp-apalis-v1.1-eval.dtb

According to this, the Ixora carrier board device tree is not selected. Please test and post the logs after running:

setenv fdt_board ixora-v1.2
saveenv

Cheers, Alvaro.

Hey Alvaro,

I went ahead and set the environment variable.

I have attached the u-boot log and dmesg log again for you.

Cheers,
Kim

dmesg.log (39.0 KB)
uboot.log (1.7 KB)

Hi Kim, I’ve confirmed from my side that setenv fdt_board "ixora-v1.2" doesn’t seem to set the device tree correctly to Ixora… I’m confirming with the BSP team.

Please wait a little longer. Kind regards,
Alvaro.

Thanks Alvaro,

I just had a thought. Another representative gave me these steps a while ago:
In u-boot, fdtfile and fdt_file need to be set.
setenv fdtfile imx8qp-apalis-v1.1-ixora-v1.2.dtb
setenv fdt_file imx8qp-apalis-v1.1-ixora-v1.2.dtb
saveenv

Could the issue be that I am setting fdt_board instead of these environment variables? Or are these actually different variables?

Cheers,
Kim

I went ahead and grabbed a log after setting the previously mentioned environment variables.

dmesg.log (51.1 KB)

Hi Kim,

Sorry for the late reply, I was checking with the BSP team and doing some tests from my side. Here is the info I could gather:

  • All device tree related variables (soc, variant, fdtfile) except fdt_board are locked in Uboot.

  • Also fdt_board is preloaded so you need to overwrite it and reset the board to make it work. This is probably the reason why it didn’t load after the above command. Make sure to reset the board.

  • Between Apalis iMX8 V1.0 and V1.1 there are some changes related to HDMI DDC/EDID, and here we are loading Apalis iMX8 V1.1s, so that is very likely the reason we are not getting EDID working.

  • Unfortunately, there is no Apalis iMX8QP V1.0 device tree added by default, but there is Apalis iMX8QM V1.0. Quickest way to test this is to overwrite the used imx8qp-apalis-v1.1-eval.dtb and/or imx8qp-apalis-v1.1-ixora-v1.2.dtb with imx8qm-apalis-ixora-v1.1.dtb. This would load Apalis iMX8 (QM) V1.0B device tree with the correct EDID settings, and it is a quick workaround to the locked variables in Uboot. If this worked, feel free to create your own Apalis iMX8QP V1.0 device tree and check again.

  • You can quickly make this change through ums: Connect Ixora through the USB OTG port to your PC and run ums 0 mmc 0 in Uboot. You should have access to the BOOT partition of the eMMC.

  • I’m checking if there is another way to access the above because it doesn’t feel right…

  • Moving forward: You should have two different device trees, one for Apalis iMX8 V1.0 and another for V1.1. Unfortunately is the only way to make EDID work for both.

Hope this helps.

Kind regards,
Alvaro.

Hey Alvaro,

Thank you for your reply.

According to the revision history, this 1.0B version was released in Q2 of 2019 so almost 3 years ago.
Since then, there has been the V1.1A, V1.1B and V1.1C the most recent one being released in Q4 of 2020. Why is the V1.1C not the version that you are currently selling?

Is this right? imx8qm-apalis-ixora-v1.1.dtb
How is this different to imx8qm-apalis-v1.1-ixora-v1.1.dtb?

I tried to run the ums 0 mmc 0 command and it has been stuck on Getting phy ctrl for about 30 minutes now.

Just a note on your final point, ideally I won’t want to be using the V1.0B at all moving forward. The shop appears to only have the option for the V1.0B, is there a way I can get the V1.1C?

Warm regards,
Kim

Hi Kim,

Thanks for your quick reply.

According to the revision history, this 1.0B version was released in Q2 of 2019 so almost 3 years ago.
Since then, there has been the V1.1A, V1.1B and V1.1C the most recent one being released in Q4 of 2020. Why is the V1.1C not the version that you are currently selling?

As you might guess, the shortage of key components greatly limited the production output, and since many components are shared among other SoMs, we had to be very picky and manufacture the SoMs based in the most inmediate demand.

In this case, “released” meant “verified to work” but it wasn’t available for the public as we didn’t manufacture any of the new product until very recently. Apalis iMX8 (QM/QP) V1.1B and V1.1C were especially tricky to manufacture given the LVDS issue that NXP faced in the second half of 2020, so the CPUs procurement was especially complicated until not long ago.

I can confirm to you that the very first production batch for 00481102 has just arrived to our stock.

Is this right? imx8qm-apalis-ixora-v1.1.dtb
How is this different to imx8qm-apalis-v1.1-ixora-v1.1.dtb ?

Yes, imx8qm-apalis-ixora-v1.1.dtb
Top one is: Apalis iMX8QM V1.0, Ixora V1.1
Bottom one is: Apalis iMX8QM V1.1, Ixora V1.1

Ideally it should be Ixora V1.2 but that is not available with Apalis iMX8 V1.0 out-of-the-box device trees… However, between Ixora V1.1 and Ixora V1.2 there was no particular change that should affect HDMI DDC/EDID so running Ixora V1.1 device tree should be fine for a quick test.

I tried to run the ums 0 mmc 0 command and it has been stuck on Getting phy ctrl for about 30 minutes now.

Make sure that you have the Mini USB connected and that JP2 is removed (Bottom USB 3.0 and the Mini USB-OTG are shared, the JP2 selects the functionality). The connection should be inmediate and your PC should pick it as soon as you run it if everything is done correctly.

Just a note on your final point, ideally I won’t want to be using the V1.0B at all moving forward. The shop appears to only have the option for the V1.0B, is there a way I can get the V1.1C?

Absolutely agree. Let’s sync through email.

Kind regards,
Alvaro.

Hey Alvaro,

I did follow these steps but it would not get past the Getting phy ctrl

Make sure that you have the Mini USB connected and that JP2 is removed (Bottom USB 3.0 and the Mini USB-OTG are shared, the JP2 selects the functionality). The connection should be inmediate and your PC should pick it as soon as you run it if everything is done correctly.

Do I need to start some sort of script on the host PC?

EDIT: I just realised what I was supposed to be looking for, thanks Alvaro all good!

EDIT 2: Is there any reason I couldn’t do this from the /boot directory on the device after boot?

Cheers,
Kim

1 Like

Actually, no. That should also work. I usually use the UMS so that was just my first thought. Just remember to flush the buffers (run sync before powering off the module or simply turn the module off through SW)

KR,
Alvaro.

1 Like

After renaming the files to use the imx8qm .dtb file, the resolution is coming up correctly now.

Thank you so much!

1 Like

Glad to hear it. Not pretty but it does the trick. Now let’s sync through email to get that V1.1C so you can continue with your development if sounds OK with you.

1 Like