Seamless switch between Android/Linux and M4 core using dpu on imx8qxp/qm.

Showing results for 
Search instead for 
Did you mean: 

Seamless switch between Android/Linux and M4 core using dpu on imx8qxp/qm.

No ratings

Seamless switch between Android/Linux and M4 core using dpu on imx8qxp/qm.

This document is aimed to introduce seamless switch on rear view camera function in android P9 auto, and this can also be referenced for sharing dpu(display process unit) between A core and m4 core on imx8qxp/qm platform.


  • Android p9 auto beta. (linux needs some modifies).
  • SDK_2.5.1_MEK-MIMX8QX for m4 core.

Hardware platform:

  • imx8qxp/qm mek board
  • IT6263 lvds to hdmi cable.
  • max9286 deserializer board.
  • ov16035 camera.

Hardware block:


Imx8qxp dpu block, for imx8qm there are two dpus:


Android/Linux and M4 shared dpu path:


The switch function is done by framegen0 unit in dpu, framegen unit can select 7 modes:

  • primary src only
  • second src only
  • primary on second
  • second on primary
  • .....etc.

for more details, please refer to the kernel codes at include/video/dpu.h, fgdm_t type.

Seamless switch booting flow:


Patches contain three main parts:

  1. Linux kernel: remove init or configure codes of dpu units and lvds used by m4 core, add ui ready rpmsg pipe.
  2. M4 code: modify dpu pipes, add ui ready rpmsg handle.
  3. AOSP init.rc scripts: add sending ui ready message scripts.





Please provide info below:

1: OS version, android or linux

2: What the drm_plane crtc you are using for modetest

3: What's the platform you are using, 8qxp/qm, and the display connection, different connection needs some modifies.

And modetest using drm/kms, and drm/kms only allows one master, if android has start ui, you can not use modetest at the same time.


2.modetest -P33@32:1280x720@XR24

3.8qxp  ldb0

4.执行完stop后,执行modetest -P33@32:1280x720@XR24显示不正常,停止后白屏,无法恢复.

"stop" may deinit the dpu and ldb, as mentioned this patch has removed some initializations of dpu and ldb from Android side since these functions have been initialized by the M4 core, you need to modify the codes this case.

问题是补丁已经从android中删除了dpu的初始化,这是一个巨大的变化。所以我们需要修改代码 myschoolbucks


seamless ui switch between m4 and AP on imx8qxp android ga.  try this, in android ga, it is impossible for m4 and a core to access dpu resource at the same time, so before switching to android ui, m4 will keep the last static frame.

Are there any specific document for DPU? Like what is the difference between fetchdecode/fetchlayer, etc.

And Can this patch use on kenerl 4.19.35 for linux OS?

Is there any patch for MIPI-DSI port?

Thank you!

Version history
Revision #:
1 of 1
Last update:
‎03-04-2019 04:09 AM
Updated by: