Skip to main content
Visitor II
October 10, 2026
Question

STM32MP257F-DK: MPI7001 800x480 HDMI panel shows test patterns but no stable image/video (ADV7535, Yocto)

  • October 10, 2026
  • 0 replies
  • 7 views

Subject: STM32MP257F-DK - How to get the MPI7001 800x480 HDMI panel working (EDID override gives test patterns, but no stable image/video)
SETUP
- Board: STM32MP257F-DK
- OS: OpenSTLinux (Yocto build), Weston 13.0.1, kernel 6.6.129 (-dirty)
- Panel: MPI7001, 7inch HDMI Display-B (800x480)
- Display path: LTDC -> DSI host -> ADV7535 (i2c0, 0x3d, adv7511 driver) -> HDMI -> panel
- stm_drm and dw_mipi_dsi_stm are built as modules (=m) and loaded via /etc/modules-load.d

PROBLEM
The display never shows a stable image or video from the DK board. With the panel attached, and before loading any EDID:
    modetest -M stm -c
    32  0  disconnected  HDMI-A-1  0x0  0  31      (0 modes)
dmesg shows "EDID block 0 is all zeroes", and Weston logs "connector 32 is disconnected" and exits.

WHAT WE DID
1. Copied the panel's EDID from a PC (cat /sys/class/drm/card1-HDMI-A-2/edid > panel.bin) to /lib/firmware/edid/panel.bin on the board.
2. Loaded it on the board:
    mount -t debugfs none /sys/kernel/debug
    echo -n reset > /sys/kernel/debug/dri/0/HDMI-A-1/edid_override
    cat /lib/firmware/edid/panel.bin > /sys/kernel/debug/dri/0/HDMI-A-1/edid_override
    echo on > /sys/kernel/debug/dri/0/HDMI-A-1/force
    modetest -M stm -c
   The connector then reports connected with modes 800x480 59.98 (preferred) and 720x400 70.08.
   Adding drm.edid_firmware=HDMI-A-1:edid/panel.bin to the kernel cmdline was not enough on its own. Only debugfs "force" made the connector connected.
3. Test patterns:
    echo 1 > /sys/kernel/debug/48000000.dsi/vpg
        -> colour bars appear on the panel

KERNEL STATE WHILE THE PANEL SHOWS NOTHING
- /sys/kernel/debug/dri/0/state:
    crtc[41]: enable=1 active=1, mode "800x480": 60 29570 800 816 896 992 480 481 484 497
    transfer_error=0, fifo_underrun_error=0, fifo_underrun_warning=0
    plane[34]: framebuffer attached (XR24, 800x480), connector[32] linked to crtc-0
- ADV7535 is bound at i2c 0-003d, and i2cget -f -y 0 0x3d 0x42 reads 0x78 continuously.
- All ADV7535 supplies are enabled (v1v8 at 1.8 V, v3v3, v5v_hdmi).

WHAT WORKS
- The same panel with the same HDMI cable works on a PC (Intel iGPU) at 800x480.
- The same panel works on a Raspberry Pi 1A+ with this config.txt:
    max_usb_current=1
    hdmi_force_hotplug=1
    config_hdmi_boost=7
    hdmi_group=2
    hdmi_mode=87
    hdmi_drive=1
    hdmi_cvt 800 480 60 6 0 0 0

QUESTION
How can we get this 800x480 HDMI panel (MPI7001) to display a stable image and video on the STM32MP257F-DK?