2024-10-04 06:29 AM
I aim TO drive a mipi display screen on STM32MP257F-EV1, so I have to understand the DRM framework.
After flash the new firmware, I found that the modetset always shows errors, so I want to confirm whether the support in this aspect is OK? But watching your previous video, it can drive LVDS screen, so I feel very strange, is there anything else I need to pay attention to?
STM32_Programmer_CLI -c port=usb1 -w ./flashlayout_st-image-weston/optee/FlashLayout_sdcard_stm32mp257f-ev1-ca35tdcid-ostl-m33-examples-optee.tsv
root@stm32mp2:~# modetest -M stm
failed to open device 'stm': No such file or directory
as you can see, all are failed.
root@stm32mp2:~# modetest
trying to open device 'i915'...failed
trying to open device 'amdgpu'...failed
trying to open device 'radeon'...failed
trying to open device 'nouveau'...failed
trying to open device 'vmwgfx'...failed
trying to open device 'omapdrm'...failed
trying to open device 'exynos'...failed
trying to open device 'tilcdc'...failed
trying to open device 'msm'...failed
trying to open device 'sti'...failed
trying to open device 'tegra'...failed
trying to open device 'imx-drm'...failed
trying to open device 'rockchip'...failed
trying to open device 'atmel-hlcdc'...failed
trying to open device 'fsl-dcu-drm'...failed
trying to open device 'vc4'...failed
trying to open device 'virtio_gpu'...failed
trying to open device 'mediatek'...failed
trying to open device 'meson'...failed
trying to open device 'pl111'...failed
trying to open device 'stm'...failed
trying to open device 'sun4i-drm'...failed
trying to open device 'armada-drm'...failed
trying to open device 'komeda'...failed
trying to open device 'imx-dcss'...failed
trying to open device 'mxsfb-drm'...failed
trying to open device 'simpledrm'...failed
trying to open device 'imx-lcdif'...failed
no device found
by the way,
the part
the added log never success for me.
static int stm_drm_platform_probe(struct platform_device *pdev)
{
struct device *dev = &pdev->dev;
struct drm_device *ddev;
int ret;
[...]
DRM_INFO("Simple example - %s\n", __func__);
return 0;
[...]
}
Solved! Go to Solution.
2024-10-08 06:20 AM - edited 2024-10-08 06:23 AM
Hello, Erwan:
Thanks, I have solved this problem, it was because I used the wrong device tree configuration, now I upload my device tree and panel-ilitek-ili9881c.c so that others can see it in the future.
I don't connect a real panel, so it is always timeout.
the hardware design is in progress.
2024-10-06 05:27 AM
Hello @mteaching ,
Can you explain me a little bit more your current setup ? I understand you have the STM32MP257F-EV kit, but you try to use a specific display right ? Do you have the reference of this last one ?
By default, the software delivered for the STM32MP257F-EV1 board is set to be used with a specific LVDS panel. You can see its configuration in the kernel board device tree : stm32mp257f-ev1.dts
In this device tree, you can see 2 nodes that can interest you :
The thing is that the DRM driver will be able to load if the complete graphic drivers chain is able to probe. In your case, if you use a MIPI DSI panel, but the driver is not configured or probed, you will fall on a such issue.
In summary :
Kind regards,
Erwan.
2024-10-06 06:57 AM - edited 2024-10-06 06:59 AM
Hello,Erwan:
The thing is that the DRM driver will be able to load if the complete graphic drivers chain is able to probe.
This is something I didn't expect, so it means that if the kernel wants to print this sentence,it must have your LVDS display.
But I don't know if DSI or LVDS can automatically detect whether a display screen is connected? It is amazing.
static int stm_drm_platform_probe(struct platform_device *pdev)
{
struct device *dev = &pdev->dev;
struct drm_device *ddev;
int ret;
[...]
DRM_INFO("Simple example - %s\n", __func__);
return 0;
[...]
}
So now back to my question, I think this function should run here when kernel trying to mount the display module, but in reality it does not, so how the kernel can reach here(ili9881c_dsi_probe)? I think there is no problem with the device tree, and this display can also be found in the kernel log.
CONFIG_DRM_PANEL_ILITEK_ILI9881C=y
root@stm32mp2:~# dmesg | grep ili98
[ 0.315353] platform 48000000.dsi: Fixed dependency cycle(s) with /soc@0/rifsc@42080000/dsi@48000000/ports/panel-ili9881c@0
root@stm32mp2:~# ls /dev/dri/ -a
. ..
2024-10-08 06:00 AM
Hello @mteaching ,
What I wanted to say is that the modetest command will work only if the complete graphic driver chain is well probed, with our panel or with your own one anyway.
In your case, I think you have probe issue for your panel that you need to solve first.
Can you share your complete boot logs here (dmesg) here ?
By the way, you can also activate drm dynamic debug to get some additional information. To do it, you need to add the following in your kernel bootcmd : loglevel=8 drm.debug=0x1ff
Kind regards,
Erwan.
2024-10-08 06:20 AM - edited 2024-10-08 06:23 AM
Hello, Erwan:
Thanks, I have solved this problem, it was because I used the wrong device tree configuration, now I upload my device tree and panel-ilitek-ili9881c.c so that others can see it in the future.
I don't connect a real panel, so it is always timeout.
the hardware design is in progress.