Screen Support for NXP and Toradex i.MX8MP: Release Notes

This document lists the details, updates, and issues associated with this screen board support release.


Date of this edition: March 21, 2024

A screen support package contains the display and GPU libraries and drivers needed to extend the general base screen package for a particular board support package (BSP). For compatibility, all three support packages: board, base screen, and extended screen support, should be based on the QNX Software Development Platform 8.0 (SDP 8.0).

QNX SDP is a cross-compiling and debugging environment, including an IDE and command-line tools, for building binary images and programs for ARM v8 and x86_64 targets running the QNX OS 8.0.

Throughout this document, you may see reference numbers associated with particular issues or changes. When corresponding with our Technical Support staff about an issue, use the relevant reference number. You might also find the reference numbers useful for tracking issues as they become fixed.

To access the most up-to-date version of these release notes, go to the QNX Software Center, right-click on the Screen Board Support for Screen Support for NXP and Toradex i.MX8MP package, choose Properties, and use the link provided.

Package version

This package contains the display and GPU libraries and drivers to support the SDP 8.0 base screen package when used with board support package (BSP): QNX SDP 8.0 BSP for NXP i.MX 8M Plus.

This screen board support package, and the base screen package it has been validated with are:

Name Package ID Build Link version
Screen Support for NXP and Toradex i.MX8MP com.qnx.qnx800.target.screen.board.imx8mp 113
Screen base support for SDP 8.0 com.qnx.qnx800.target.screen.base 106

To see the exact contents of the package, right-click it in the QNX Software Center, choose Properties, then click Package Contents in the Properties window.

Board support

The following platform is supported in this update:

Platform Type Configuration Configuration
Board Supplier NXP Toradex
Board Name i.MX8M Plus Verdin i.MX8MP
CPU
  • 4 - ARM Cortex-A53
  • 1 - ARM Cortex-M7
  • 4 - ARM Cortex-A53
  • 1 - ARM Cortex-M7
GPU GC7000UL GC7000UL
GPU Stack Vivante-6.x Vivante-6.x
Display Controller LCDIF LCDIF
Display Interface
  • MIPI DSI
  • LVDS
  • on-board HDMI supported
on-board HDMI
Number of Displays
  • 1 LVDS-to-HDMI
  • 1 MIPI-to-HDMI
  • HDMI
1 HDMI
Display Resolution
  • MIPI: 1080p (1920 x 1080 @60)
  • LVDS: 720p (1280 x 720 @60)
  • HDMI: 1080p (1920 x 1080 @60)
  • HDMI: 1080p (1920 x 1080 @60)
  • 720p (1280 x 720 @60)
Monitor Name Lilliput Lilliput
Touch HID via Lilliput HID via Lilliput
Video Capture Interface
  • MIPI CSI2
  • Parallel (base card)
TBD
Video Decoder
  • OV5640 (both MIPI CSI2 and parallel)
  • OV10635
  • MAX9286 (only MIPI CSI2)
TBD

i.MX8 SoC variants

Screen Board Support i.MX8 can be used on the i.MX8 Toradex Verdin board. If you want to use a Toradex Verdin board, make the modifications below to your graphics.conf file.

  • Switch the WFD port1 and port2, to disabled:
    #Setting for WFD port 1 (LCDIF1/MIPI0)
                        wfd-port-lcdif1-mipi = disabled
                        #Setting for WFD port 2 (LCDIF2/LVDS0,LVDS1,DUAL)
                        wfd-port-lcdif2-lvds = disabled
  • Comment out or remove the begin display 1 and begin display 2 sections.
  • Comment out or remove the For display #1 and For display #2 sections.

Known issues

  • Verdin only - Screen crashes when attempting to use the HDMI port. (Ref. J2953676)

    Workaround: Perform the following changes in the BSP:

    • In the startup/boards/imx8mp/verdin/init_pads.c BSP file, add the following lines to the imx_init_display_pads() function:
      /* Configure HDMI pins */
      /* DDC_SCL */
      out32(IMX_IOMUXC_BASE + IMX_IOMUXC_SW_MUX_CTL_PADx(IMX_IOMUXC_SW_MUX_CTL_PAD_HDMI_DDC_SCL), IMX_MUX_CTL_MUX_MODE_ALT0);
      out32(IMX_IOMUXC_BASE + IMX_IOMUXC_SW_PAD_CTL_PADx(IMX_IOMUXC_SW_PAD_CTL_PAD_HDMI_DDC_SCL), IMX8MP_PAD_SETTINGS_I2C);
      /* DDC_SDA */
      out32(IMX_IOMUXC_BASE + IMX_IOMUXC_SW_MUX_CTL_PADx(IMX_IOMUXC_SW_MUX_CTL_PAD_HDMI_DDC_SDA), IMX_MUX_CTL_MUX_MODE_ALT0);
      out32(IMX_IOMUXC_BASE + IMX_IOMUXC_SW_PAD_CTL_PADx(IMX_IOMUXC_SW_PAD_CTL_PAD_HDMI_DDC_SDA), IMX8MP_PAD_SETTINGS_I2C);
      /* CEC */
      out32(IMX_IOMUXC_BASE + IMX_IOMUXC_SW_MUX_CTL_PADx(IMX_IOMUXC_SW_MUX_CTL_PAD_HDMI_CEC), IMX_MUX_CTL_MUX_MODE_ALT0);
      out32(IMX_IOMUXC_BASE + IMX_IOMUXC_SW_PAD_CTL_PADx(IMX_IOMUXC_SW_PAD_CTL_PAD_HDMI_CEC), IMX_PAD_CTL_SRE_FAST);
      /* HPD */
      out32(IMX_IOMUXC_BASE + IMX_IOMUXC_SW_MUX_CTL_PADx(IMX_IOMUXC_SW_MUX_CTL_PAD_HDMI_HPD), IMX_MUX_CTL_MUX_MODE_ALT0);
      out32(IMX_IOMUXC_BASE + IMX_IOMUXC_SW_PAD_CTL_PADx(IMX_IOMUXC_SW_PAD_CTL_PAD_HDMI_HPD), IMX_PAD_CTL_SRE_FAST);
                              
    • In the startup/boards/imx8mp/verdin/init_clock.c BSP file, add the following lines to the imx_init_dc_clock() function:
      /* Enable power domain for HDMI */
      {
      /* Enable HDMIMIX power domain */
      (void)imx_sec_firmware_psci(IMX_FSL_SIP_GPC, IMX_FSL_SIP_CONFIG_GPC_PM_DOMAIN, ATF_PU_HDMIMIX, 0x01, 0x00);
      /* Enable HDMI_PHY power domain */
      (void)imx_sec_firmware_psci(IMX_FSL_SIP_GPC, IMX_FSL_SIP_CONFIG_GPC_PM_DOMAIN, ATF_PU_HDMI_PHY, 0x01, 0x00);
      }
                                  

Technical support

To obtain technical support for any QNX product, visit the Support area on our website: https://blackberry.qnx.com/en/support. You'll find a range of support options.

For product experience and roadmap information, please contact QNX Product Management.

Page updated: