ZHCAEZ2 February 2025 AM62P
为了实现从 U-Boot 次级程序加载器 (SPL) 到 U-Boot 阶段的无闪烁切换,需保持图像帧缓冲区并且不要关闭显示子系统 (DSS) 驱动程序。为了将帧缓冲区从 SPL 阶段传递到 U-Boot 正常阶段,首先在内存中保留一块区域,并通过 video_post_probe 函数中的 bloblist 将该区域从 SPL 阶段传递到 U-Boot 正常阶段。在 SPL 阶段,帧缓冲区区域、大小、像素列数 (xsize) 以及像素行数 (ysize) 等各种参数都存储在一个 blob 中。Blob 是预留的内存区域,其中包含从一个阶段传递到另一个阶段的信息。当初始设置序列在 U-Boot 正常阶段运行时,会调用 reserve_video API,该 API 会检查视频 blob 是否存在。如果视频 blob 存在,应用程序编程接口 (API) 将使用来自前一个阶段的 blob 数据,确保设置相同的帧缓冲区区域和参数,从而保持启动画面不受任何闪烁影响,顺利过渡到下一个阶段。如果找到 blob,则不会再次探测 DSS 驱动程序,从而防止屏幕刷新。