For the complete documentation index, see llms.txt. This page is also available as Markdown.

Known Software Issue — MIPI-DSI Display

Affected hardware: Hailo-15 SOM mounted on the HB-IOT carrier board Interface: MIPI-DSI display output Status: Open — still present in Hailo BSP 1.12.1, pending fix in a future Hailo-15 SDK release

Issue

On the Hailo-15 SOM paired with the HB-IOT carrier board, the MIPI-DSI display does not reliably come up on the first initialization attempt. This is a known software bug in the current Hailo-15 SDK DSI driver and is expected to be resolved in an upcoming SDK release from Hailo. It is unchanged in BSP 1.12.1.

Workaround

Until an official fix is provided by Hailo, the display can be brought up reliably by retrying modetest several times before letting it run persistently. The steps below describe how to reproduce this workaround on the board.

The display comes up after a number of short mode-set attempts. The function below unbinds the kernel console from the frame buffer (so it does not compete with modetest), makes up to nine short attempts, then a final one in the foreground, and binds the console back afterwards so the panel keeps showing the console.

1. Find the DSI connector ID

bash

modetest -M hailo-drm -c | awk '/DSI-1/ { print $1 }' | tr -d :

2. Run modetest in a retry loop

Start modetest, kill it quickly, retry, and on the final attempt let it stay alive. The following shell function implements this sequence:

bash

display_test() {
    for vt in /sys/class/vtconsole/vtcon*/bind; do echo 0 > "$vt" 2>/dev/null; done
    ATTEMPTS=0
    MAX_ATTEMPTS=9
    CONNECTOR=$(modetest -M hailo-drm -c | awk '/DSI-1/ { print $1 }' | tr -d :)
    while [ $ATTEMPTS -lt $MAX_ATTEMPTS ]; do
        ATTEMPTS=$((ATTEMPTS + 1))
        setsid modetest -M hailo-drm -s ${CONNECTOR}:1024x600-60@RG24 </dev/null >/dev/null 2>&1 &
        MPID=$!
        sleep 0.2
        kill -9 $MPID 2>/dev/null
        wait $MPID 2>/dev/null
    done

    # Final attempt in the foreground; press ENTER to exit and continue
    modetest -M hailo-drm -s ${CONNECTOR}:1024x600-60@RG24

    # After modetest exits, restore the console on the frame buffer so the panel keeps displaying it
    for vt in /sys/class/vtconsole/vtcon*/bind; do echo 1 > "$vt" 2>/dev/null; done
}

3. Run the function

bash

Expected Result

After the final attempt the display shows modetest's built-in colour-bar test pattern. Press ENTER on the serial console to end modetest; the function then binds the kernel console back to the frame buffer, and the panel shows the console from there on. The mode 1024x600-60@RG24 matches the 7" panel of the HB-IOT kit; adjust it for another panel (modetest -M hailo-drm -c lists the modes the panel reports).

Success: If the color-bar test pattern appears on the MIPI-DSI panel, the workaround has been applied successfully and the display path is operational.

Notes

ℹ Note: This workaround is a temporary measure. The root cause lies in the Hailo-15 SDK MIPI-DSI drivers and should be addressed by Hailo in a future software release. SolidRun will update this guide once an official fix is available.

Last updated