CM3+ with LT070ME0500 DSI display

  • Hello Guys,

    I would like to support you with testing on a custom hardware.

    I have my own designed hardware basing on CM3+ and LT070ME05000 DSI display and of course a lot of additional perpherals.

    Now the system already works close to fine using Raspberry OS with the latest firmware. (kernel 5.10.46).

    Today, I have dowloaded the latest nightly build from here (LibreELEC-RPi2.arm-10.0-nightly-20210628-f904c2e.img.gz).

    Added the same lines in my config.txt:

    ignore_lcd=1

    dtoverlay=vc4-kms-v3d

    dtoverlay=vc4-kms-dsi-lt070me05000,reset=39,enable=38,dcdc-en=41

    Unfortunately, my LCD remains dark wathever I do, although I have tried many parameter changes.

    Using HDMI everythig works fine, but the final target would be this huge LCD screen.

    Please let me help to give life to this screen with your nice LibreELEC.

    In hardware staff I have a lot of experiences as an electrical development engineer, but to be honest, for Linux, KODI, LE, RPi software staff I am really newbie.

    dmesg says this:

    [ 3.167778] [drm:vc4_dsi_bind] *ERROR* Failed to get DMA channel: -19

    [ 3.167819] vc4-drm soc:gpu: failed to bind 3f700000.dsi (ops 0x80c5eb40): -19

    Which is from here: "ret = PTR_ERR(dsi->reg_dma_chan);" from "vc4_dsi.c" line 1514.

    So please handle me as a 5-year-old kid :)

    Thanks for your great help and keep on!

  • Please test with the latest nightly (currently 20210704). If that doesn't work please provide a full "pastekodi" log - ssh in, run "pastekodi" and post the URL

    so long,

    Hias

  • You're still at log level 0, so we are missing some info. Activate debug logging at GUI (HUD will appear), and do it again.

    PS: Reboot before running pastekodi.

    OK, so I commented out "dtoverlay=vc4-kms-dsi-lt070me05000,reset=39,enable=38,dcdc-en=41" in config.txt to be able to log in using HDMI.

    Then log level set for debug >>> HUD appeared >>> power off >>> revert config.txt changes >>> power up >>> log in SSH >>> run pastekodi

    Here are the results: LINK

    Thanks Da Flex, HiassofT.

  • Thanks for the logs!

    I just noticed our kernel configs don't include CONFIG_DRM_PANEL_JDI_LT070ME05000 - so the dtoverlay can't work.

    I'll have a look at what other options might be needed, this will take a bit (not sure if I find time this week), but I'll get back to you when I have something for you to test.

    so long,

    Hias

  • Thanks guys,

    Good to hear that you found my issue this quickly.

    Please also help with the Goodix GT911 touchscreen attached.

    CONFIG_TOUCHSCREEN_GOODIX

    Should I use the procedure to add modules as it is readable on RPi website or is it different for LE?

  • deltasjimmy can you test if the display is working on RPi OS with the latest rpi-update kernel (currently 5.10.46-v7+)?

    I built an LE image with the missing drivers included, but it just locks up on my RPi3B+ when I add the vc4-kms-dsi-lt070me05000 dtoverlay - and the same happens on RPiOS with latest kernel as well. I don't have any DSI displays here so not sure if that's the cause - the DSI driver is still under heavy development so it could be an issue in latest kernel, too.

    so long,

    Hias

  • deltasjimmy can you test if the display is working on RPi OS with the latest rpi-update kernel (currently 5.10.46-v7+)?

    I built an LE image with the missing drivers included, but it just locks up on my RPi3B+ when I add the vc4-kms-dsi-lt070me05000 dtoverlay - and the same happens on RPiOS with latest kernel as well. I don't have any DSI displays here so not sure if that's the cause - the DSI driver is still under heavy development so it could be an issue in latest kernel, too.

    so long,

    Hias

    Hi HiassofT,

    As you can read my first post, the display already tested out with the latest RPi OS (kernel 5.10.46-v7+) using these additions in the config.txt:

    ignore_lcd=1

    dtoverlay=vc4-kms-v3d

    dtoverlay=vc4-kms-dsi-lt070me05000,reset=39,enable=38,dcdc-en=41

    This way the display works fine.

    LibreELEC:

    Yesterday, I have also compiled the latest nightly build with the next modifications in the "http://LibreELEC.tv/projects/RPi/devices/RPi2/linux/linux.arm.conf":

    CONFIG_TOUCHSCREEN_GOODIX=m

    CONFIG_DRM_PANEL_JDI_LT070ME05000=m

    (I don't know if anything else is needed or not, please let me know if something more are required)

    This way I have the same experiences as you have, the board does not boot, no logs within KODI or LE files.

    For me , it means that the kernel can handle the display, so the problem is within KODI or LE.

    To help you to figure out the problem, maybe I should activate the kernel UART debug feature then using a FTDI-FT232 cable I can log everything using my notebook.

    If it helps then please let me know how can I activate this feature.

    Here can see two photos of the board if interested.

    Thanks for your great support, please keep on. :)

  • The lockup seems to be HDMI related, it happens both on LE and RPiOS with latest rpi-update kernel/firmware kernel: drm/vc4: More CPU Stall Fixes · Hexxeh/rpi-firmware@9dbcd6d · GitHub (LE uses the same fw/kernel version as this rpi-update commit) when booting without a HDMI monitor connected.

    I already chatted with RPi devs, they'll look at it next week (popcornmix and I also confirmed it still happens with current rpi-5.10.y kernel which contains some fixes in that area).

    Concerning LE kernel config changes: it'd be best if you change the panel driver to "y", so it's available right after boot (otherwise you won't get splash and update notifications on screen).

    Also drop the gpu_mem change from config.txt (that's not needed and only wastes memory) and you can also drop the vc4-kms-v3d dtoverlay line (that's already in distroconfig.txt).

    Better wait with further testing until RPi devs have a kernel fix, serial console won't help too much ATM as you'll only see the kernel is locking up before the vc4 hdmi line should appear (other than that a serial console is really helpful).

    so long,

    Hias

  • Good point HiassofT.

    Suggested changes are made then image is re-compiled.

    Then I could reproduce the behaviour.

    1) When the board starts up with HDMI connected then the board boots up with LE GUI on the HDMI display.

    2) When the board starts up with no HDMI connected then the LCD remains dark.

    3) When HDMI is connected and the board is powered; after like 4-5 seconds the HDMI cable is removed then the board starts with LE GUI on the LCD.

    So it looks that you and RPi devs can solve this issue next week. Good to hear :)

    The next question is, how can I rotate the screen?

    By the way the touch screen also works, but that one is oriented right.

    (touchscreen-inverted-x and touchscreen-swapped-x-y in it's dtoverlay.)

    Thanks guys this great job.

  • Display rotation should be possible by using the rotate and/or panel_orientation options of the video kernel command line parameter.

    eg add something like video=DSI-1:1920x1080@60,panel_orientation=left_side_up

    See the kernel documentation for infos about the video parameter: modedb default video mode support — The Linux Kernel documentation

    The RPi forums might be a better place to ask about DSI/DPI panels and KMS details (I never used DSI/DPI displays myself), I found eg this post there rotate display with DPI and vc4-kms-v3d - Raspberry Pi Forums

    so long,

    Hias

  • I have tried this line with different parameters today in cmdline.txt:

    1) video=DSI-1:1200x1920@60,panel_orientation=left_side_up >>> nothing rotated

    2) video=DSI-1:1200x1920@60,panel_orientation=right_side_up >>> nothing rotated

    Then just for playing around:

    3) video=DSI-1:1200x1920@60,panel_orientation=upside_down >>> LE logo is upside down, but GUI reversed back to original orientation

    4) video=DSI-1:1200x1920@60,reflect_x=y >>> LE logo is mirrored on x axis, but GUI reversed back to original orientation

    5) video=DSI-1:1200x1920@60,rotate=270 >>> nothing rotated

    Also tried to use 'lcd_rotate' and'display_rotate' additionally in config.txt but nothing help.

  • Thanks for testing!

    I checked the driver code and noticed it only supports 180° rotation and x/y mirroring, but not 90/270° rotation. And I vaguely remember one of the RPi devs stating that 90/270° rotation was only possible with the help of videocore code in the firmware of the old, proprietary RPi0-3 driver.

    So this will be quite a bit more involved, kodi's GBM windowing code would need to be extended to support rotation, direct-to-plane rendering probably won't work but egl rendering should be possible.

    so long,

    Hias