RK3568平台显示子系统Bring-up与多接口调试

在RK3568平台上,系统性地调试并使能LVDS、MIPI-DSI及HDMI显示接口,实现与FPGA及标准显示器的视频流稳定对接,并成功输出超越官方手册规格的分辨率。

  • 作者: Potter White
  • 日期: 2025年8月

项目概述 (Project Overview)

背景 (Situation): 在一个基于Rockchip RK3568 SoC的定制化项目中,需要同时或独立地使能LVDS、MIPI-DSI和HDMI 2.0三大显示接口。其中,LVDS接口需向FPGA输出超越官方规格的1920x1080@30Hz视频流;HDMI与MIPI则需要绕过EDID检测,强制输出固定的1080p@60Hz信号。初始BSP中这些通路均未配置,需要从零开始进行Bring-up。

我的职责与贡献 (My Role & Contributions): 作为项目的BSP工程师,我独立负责整个显示子系统的Bring-up与对接任务。我的核心贡献在于通过对数据手册和内核源码的深度挖掘,完成了纯软件层面的配置与调试

  • 深入研究并梳理了RK3568显示子系统的数据流,清晰地描绘了从内存(Memory) -> VOP -> 各接口控制器 -> Combo PHY的完整硬件链路。
  • 主导并完成了设备树(DTS)的精确配置,为LVDS、MIPI-DSI、HDMI三大接口正确设置了VOP路由、时序参数(Timings)以及PHY复用关系。
  • 通过精密的DTS配置,成功驱动SoC物理层(PHY)输出正确的数字视频信号,为后续与FPGA的信号握手及HDMI显示器的点亮奠定了坚实基础。
  • 成功实现了超越官方规格的视频流输出,在满足时钟频率限制的前提下,稳定实现了LVDS接口1920x1080@30Hz的信号输出,并获得FPGA端的成功接收。
  • 将整个调试过程提炼并撰写成一套标准作业程序(SOP)与技术文档,为团队未来所有显示接口的调试工作提供了清晰、高效的指导框架。

我的方法论:显示接口调试标准作业程序 (SOP)

为了系统性地解决此类“点屏”或“信号对接”问题,我沉淀了一套分为四个阶段的SOP。该流程将模糊的调试任务分解为清晰、可验证的步骤,能够快速定位问题是在SoC软件配置侧,还是在对端设备(FPGA/屏幕)侧。


项目成果与验证 (Results & Verification)

遵循SOP,我成功使能了RK3568的所有目标显示接口。所有配置均通过软件工具和对端设备的反馈得到验证。

内核模式验证 (modetest)

modetest工具的输出确认内核已为各个接口成功创建并应用了我们强制指定的模式,绕过了EDID检测。以下是LVDS接口的示例:

Connectors:
id      encoder status          name            size (mm)       modes   encoders
172     171     connected       LVDS-1          0x0             1       171
  modes:
        index name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot
  #0 1920x1080 29.41 1920 1968 2000 2040 1080 1083 1088 1111 66660 flags: nhsync, nvsync; type: preferred, driver
  ...

174     173     connected       HDMI-A-1        0x0             1       173
  modes:
        index name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot
  #0 1920x1080 60.00 1920 2008 2052 2200 1080 1084 1089 1125 148500 flags: phsync, pvsync; type: preferred
  ...

190     189     connected       DSI-1           68x121          1       189
  modes:
        index name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot
  #0 1920x1080 60.00 1920 2008 2052 2200 1080 1084 1089 1125 148500 flags: nhsync, nvsync; type: preferred, driver
  ...

结论: 内核DRM框架已按DTS预期工作,clock-frequency与时序参数均正确加载。HDMI与MIPI接口也通过类似方式得到验证。

最终成果

  • 多接口Bring-up成功: LVDS、MIPI-DSI、HDMI 2.0均可按需输出指定分辨率的视频流。
  • FPGA对接成功: FPGA开发人员确认已稳定接收到来自RK3568的1920x1080@30Hz LVDS视频流,无丢帧或花屏现象。
  • 超越手册规格: 本次调试验证了RK3568的LVDS接口在满足特定时钟约束下,具备输出高于官方手册规格分辨率的能力,为未来产品设计提供了宝贵的数据支持。

技术栈与工具 (Tech Stack & Tools)

  • 硬件平台: Rockchip RK3568 SoC, FPGA (作为三屏幕的接收端)
  • 软件环境: Linux Kernel 5.10, U-Boot, Device Tree
  • 核心技术: Embedded Linux BSP, DRM (Direct Rendering Manager), VOP2, LVDS/MIPI D-PHY Combo, HDMI 2.0, Device Tree (DTS)
  • 调试工具:
    • 硬件: 串口调试器
    • 软件: dmesg, sysfs, modetest, 内核源码阅读与分析