你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

MIPI DSI从U-BOOT进入LINUX内核刷新问题

[复制链接]
ZTL 提问时间:2024-5-29 13:59 / 未解决
  1. 项目使用STM32MP157D的DSI来驱动屏幕,u-boot会显示开机logo,进入内核后,会显示一个动画,现在碰到问题是,MIPI屏幕没有buffer,完全靠DSI在VIDEO MODE 模式下刷屏,从u-boot启动到内核显示动画会有一段300-500ms时间。目前存在一个瑕疵就是u-boot显示的logo到内核显示动画,这短暂时间会花屏,原因是DSI在这段时间没有刷新屏幕导致。现在解决办法是在这段时间关闭背光,让其出现短暂黑屏。

咨询想解决的问题是,能否在这段时间保持u-boot显示的logo,到内核动画无缝衔接?

收藏 评论7 发布时间:2024-5-29 13:59

举报

7个回答
ZTL 回答时间:2024-6-2 10:57:34

跟踪内核发现,在u-boot装载内核,启动内核,logo都没有问题,在

完成pinctrl的初始化,也没有问题。

stm32mp157-pinctrl soc:pin-controller@50002000: GPIOA bank added

stm32mp157-pinctrl soc:pin-controller@50002000: GPIOB bank added

stm32mp157-pinctrl soc:pin-controller@50002000: GPIOC bank added

stm32mp157-pinctrl soc:pin-controller@50002000: GPIOD bank added

stm32mp157-pinctrl soc:pin-controller@50002000: GPIOE bank added

stm32mp157-pinctrl soc:pin-controller@50002000: GPIOF bank added

stm32mp157-pinctrl soc:pin-controller@50002000: GPIOG bank added

stm32mp157-pinctrl soc:pin-controller@50002000: GPIOH bank added

stm32mp157-pinctrl soc:pin-controller@50002000: GPIOI bank added

stm32mp157-pinctrl soc:pin-controller@50002000: GPIOJ bank added

stm32mp157-pinctrl soc:pin-controller@50002000: GPIOK bank added

stm32mp157-pinctrl soc:pin-controller@50002000: Pinctrl STM32 initialized

stm32mp157-pinctrl soc:pin-controller-z@54004000: GPIOZ bank added

stm32mp157-pinctrl soc:pin-controller-z@54004000: Pinctrl STM32 initialized

插入跟踪发现在执行stm32_pinctrl.c的stm32_pconf_group_set函数之前,屏幕变花屏白屏了,也就是Pinctrl STM32 initialized到stm32_pconf_group_set函数执行中间做了什么动作,导致MIPI的DSI出了问题,加入dump_stack函数,打印函数调用栈,

[<c01126dc>] (unwind_backtrace) from [<c010d7a0>] (show_stack+0x10/0x14)

[<c010d7a0>] (show_stack) from [<c0b2a734>] (dump_stack+0xb0/0xc4)

[<c0b2a734>] (dump_stack) from [<c05c5110>] (stm32_pconf_group_set+0x30/0xc0)

[<c05c5110>] (stm32_pconf_group_set) from [<c05c13b0>] (pinconf_apply_setting+0x54/0x108)

[<c05c13b0>] (pinconf_apply_setting) from [<c05bd87c>] (pinctrl_commit_state+0xf8/0x158)

[<c05bd87c>] (pinctrl_commit_state) from [<c06ec8a8>] (pinctrl_bind_pins+0x200/0x27c)

[<c06ec8a8>] (pinctrl_bind_pins) from [<c06c6aac>] (really_probe+0x90/0x488)

[<c06c6aac>] (really_probe) from [<c06c706c>] (driver_probe_device+0x78/0x154)

[<c06c706c>] (driver_probe_device) from [<c06c4cbc>] (bus_for_each_drv+0x84/0xd0)

[<c06c4cbc>] (bus_for_each_drv) from [<c06c697c>] (__device_attach+0xe0/0x178)

[<c06c697c>] (__device_attach) from [<c06c5a90>] (bus_probe_device+0x84/0x8c)

[<c06c5a90>] (bus_probe_device) from [<c06c5fe4>] (deferred_probe_work_func+0x84/0xc4)

[<c06c5fe4>] (deferred_probe_work_func) from [<c0142644>] (process_one_work+0x1e8/0x588)

[<c0142644>] (process_one_work) from [<c0142c2c>] (worker_thread+0x248/0x528)

[<c0142c2c>] (worker_thread) from [<c01489ac>] (kthread+0x11c/0x144)

[<c01489ac>] (kthread) from [<c01010e8>] (ret_from_fork+0x14/0x2c)

由pinctrl_bind_pins调用pinctrl_commit_state再调用stm32_pconf_group_set,在pinctrl_bind_pins插入程序暂停执行,这个时候屏幕还没有花屏,继续定位pinctrl_bind_pins函数,发现这个pinctrl_bind_pins 是有设备树display-controller@5a001000产生的调用,同时还调用了stm32-ltdc模块,那应该就是ltdc重新初始化导致,如何解决这个问题,能否将u-boot的logo数据加载到内核LTDC对应的显示缓冲区,这个操作如何来做?

//=================================================================

补充:原以为是LTDC初始化问题,具体跟踪发现dw_mipi_dsi_stm_probe最先被调用,只是因为devm_regulator_get(dev, "phy-dsi")失败而返回,紧跟着stm_drm_platform_probe也会因为drm_of_find_panel_or_bridge返回失败。因为stm_drm_platform_probe失败,在花屏的时候,LTDC根本没有初始化。

继续运行,dw_mipi_dsi_stm_probe会再次调用,在花屏的时候,调用成功了!stm_drm_platform_probe会更靠后调用成功,stm_drm_platform_probe成功就可以显示内核LOGO了,针对dw_mipi_dsi_stm_probe调用成功花屏,以为是DSI初始化,就强制让其调用失败。结果发现还是花屏,应该还是有什么影响着?

原来使用RGB888接口屏,这个花屏情况没有,使用DSI就出现了

wgzzz 回答时间:2024-6-3 10:39:18

你好,请问你在使用哪个版本的内核?

ZTL 回答时间:2024-6-3 11:40:56

wgzzz 发表于 2024-6-3 10:39
你好,请问你在使用哪个版本的内核?

目前使用的是5.4.31

wgzzz 回答时间:2024-6-4 14:09:24

patch.zip

你好,附件是基于5.10.10内核的补丁,你可以尝试移植到5.4.31上面。

ZTL 回答时间:2024-6-4 15:16:45

wgzzz 发表于 2024-6-4 14:09
![patch.zip](data/attachment/forum/?imageMogr2/auto-orient/strip%7CimageView2/2/w/300 "patch.zip ...

[md]附件是没有上传成功吗,我无法下载

wgzzz 回答时间:2024-6-4 15:45:09

论坛好像上传不了文件。

你可以给 [email]mpu.china@st.com[/email] 发个信息,我从里面发给你

ZTL 回答时间:2024-6-4 16:02:32

wgzzz 发表于 2024-6-4 15:45
论坛好像上传不了文件。</p>
<p>你可以给 <a href="mailto:mpu.china@st.com"></a> 发个信息,我从里面发给你

[md]邮箱已发

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版