我使用的就是一个普通的lvds屏幕,对应的驱动在uboot里面文件使用是“simple_panel.c”但是在我的uboot里面会有报错:
CPU: i.MX8MP[6] rev1.1 1600 MHz (running at 1200 MHz)
CPU: Industrial temperature grade (-40C to 105C) at 26C
Reset cause: POR
Model: NXP i.MX8MPlus LPDDR4 EVK board
DRAM: 4 GiB
MMC: FSL_SDHC: 1, FSL_SDHC: 2
Loading Environment from MMC... trying mode widtsignal_voltageh 8 (at 200 MHz)
*** Warning - bad CRC, using default environment
probe video device failed, ret -2
[0] lcd-controller@32e90000, video
[1] lvds-channel@0, display
[2] lvds0_panel, panel
probe video device failed, ret -2
Error: 1 bit/pixel mode, but BMP has 8 bit/pixel
In: serial
Out: serial
Err: serial
这里有一个 probe video device failed, ret -2。 如果这里没有报错,我就会得到对应的vedio设备的分辨率。我自己和同事一起查看这个报错,也尝试去解决,但是并没有什么进度。
对应的报错发现在:
drivers/video/video_link.c文件中
struct udevice *video_link_get_video_device(void)
{
int ret;
if (video_off)
return NULL;
if (curr_video_link >= video_links_num)
return NULL;
if (video_links[curr_video_link].dev_num == 0)
return NULL;
ret = device_probe(video_links[curr_video_link].link_devs[0]);
if (ret) {
printf("probe video device failed, ret %d\n", ret);
return NULL;
}
return video_links[curr_video_link].link_devs[0];
}
另外我试着在uboot的dts中去配置backlight和lvds的供电使能gpio。但是并没有什么作用,于是我在对应的board/freescale/imx8mp_evk/imx8mp_evk.c.里面去拉高gpio,并已经生效。
附件为我的dts配置:imx8mp-evk.dts,我不知道我的dts配置是否会导致上面probe device会有错误。我们之前并没有调试过uboot阶段的dts,请您帮我看看,谢谢!
期待您的回复!