1. RK3588 显示子系统概述

RK3588 是瑞芯微推出的旗舰级 SoC,其显示子系统采用多显示控制器 + 多输出接口的异构架构,支持最高 8K@60fps 或 4K@120fps 的显示输出,可同时驱动多达 7 个独立显示通道。理解该子系统的模块划分与数据流是进行驱动故障排查的第一步。

1.1 整体架构与数据流

显示数据从 GPU/VPU 生成后,依次经过 显示控制器 (VOP/DPU) → 内部连接 (Internal Bridge) → 显示接口 (HDMI/DP/MIPI DSI/eDP) → 外部显示器。其中 VOP 负责图层合成与时序生成,DPU 负责图像处理与增强,接口模块负责协议转换与物理层传输。

RK3588 显示子系统架构图 RK3588 显示子系统架构图 GPU / VPU 渲染 & 视频解码 VOP (Video Output Processor) 图层合成 · 缩放 · 时序生成 DPU (Display Processing Unit) HDR · 色彩管理 · 图像增强 内部连接桥 (Internal Bridge) HDMI TX DP / USB-C MIPI DSI eDP 数据源 显示控制器 图像处理 内部连接 输出接口

1.2 显示控制器:VOP 与 DPU

RK3588 内部集成两个显示控制器核心:VOP (Video Output Processor) 和 DPU (Display Processing Unit)。两者在功能上各有侧重,共同完成从帧缓冲区到显示接口的数据处理。

特性 VOP DPU
主要功能 图层合成、缩放、时序生成 HDR 处理、色彩管理、图像增强
支持图层数 最多 8 个硬件图层 (Win0~Win7) 输入来自 VOP 合成后的单路信号
输出分辨率 单通道最高 8K@60fps 与 VOP 输出分辨率一致
关键特性 AFBC 解压缩、YUV/RGB 转换、dither PQ (画质) 调节、HDR10/HLG、3D LUT
驱动文件 drivers/gpu/drm/rockchip/rockchip_drm_vop2.c drivers/gpu/drm/rockchip/rockchip_drm_dpu.c
🔍 故障排查要点: 当出现画面撕裂 (tearing) 或图层顺序错误时,优先检查 VOP 的图层配置与 vblank 中断;当出现色彩异常或 HDR 无法开启时,重点排查 DPU 的 PQ 参数与色彩空间转换设置。

1.3 显示输出接口模块

RK3588 提供了丰富的显示输出接口,每个接口对应一个独立的 DRM encoder/connector。下表列出了各接口的关键参数与典型应用场景。

接口 最大分辨率 协议版本 典型用途 驱动模块
HDMI TX 8K@60fps (HDMI 2.1) HDMI 2.1 / HDCP 2.3 电视、显示器、投影 dw-hdmi-qp
DP / USB-C 8K@30fps (DP 1.4) DP 1.4 / USB-C Alt Mode 电脑显示器、扩展坞 cdn-dp
MIPI DSI 4K@60fps (4-lane) MIPI DSI 1.3 平板、车载显示屏 dw-mipi-dsi2
eDP 4K@120fps (eDP 1.4) eDP 1.4 / PSR 笔记本内置屏、工业屏 analogix_dp

1.4 内部连接与时钟拓扑

VOP/DPU 与各显示接口之间通过 内部连接桥 (Internal Bridge) 进行数据交换。每个显示通道可以动态路由到任意一个物理接口,这种灵活性使得 RK3588 支持多种显示组合(如双屏同显、三屏异显)。

时钟拓扑方面,RK3588 拥有独立的 CRTC (VOP/DPU) 时钟域和 PHY 时钟域。常见的时钟路径为:

  1. PLL (如 CPLL、GPLL) 产生参考时钟
  2. 参考时钟输入 VOP CRTC 生成像素时钟 (pixel clock)
  3. 像素时钟通过内部桥传递给 接口 PHY 生成链路时钟 (link clock)
  4. PHY 输出时钟驱动外部显示器
⚠️ 常见时钟故障: 如果 modetest 无法设置特定分辨率,通常是因为 VOP 的像素时钟与接口 PHY 的链路时钟不匹配。例如,HDMI 2.1 的 8K@60 需要 594MHz 像素时钟,若 PLL 配置错误会导致无显示或闪屏。排查时使用 clk_summary 查看各时钟使能状态。

1.5 显示通道与多屏支持

RK3588 内部包含 3 个独立的显示通道 (Display Channel),每个通道包含一个完整的 VOP+DPU 流水线。这意味着 SoC 可以同时驱动最多 3 个不同的显示内容(异显),或者通过内部桥接实现更多物理接口的输出。

RK3588 显示通道与多屏路由 显示通道与多屏路由 显示通道 0 VOP0 + DPU0 最高 8K@60 显示通道 1 VOP1 + DPU1 最高 4K@120 显示通道 2 VOP2 + DPU2 最高 4K@60 内部交叉开关 (Crossbar) HDMI / DP MIPI DSI eDP
💡 多屏调试技巧: 使用 modetest -M rockchip 可以列出所有可用的 CRTC (显示通道) 和 encoder/connector。如果某个接口没有输出,先确认对应的显示通道是否已绑定到正确的 encoder。例如:
# 查看 CRTC 与 encoder 的绑定关系
cat /sys/kernel/debug/dri/0/state

1.6 驱动层次结构

RK3588 显示驱动基于 Linux DRM/KMS 框架,驱动层次从上到下依次为:

  • DRM Core:提供 /dev/dri/card0 设备文件,管理 framebuffer、CRTC、encoder、connector、plane 等核心对象。
  • Rockchip DRM 驱动:rockchip_drm_drv.c 作为平台驱动入口,注册 component 框架,协调各子模块。
  • VOP2 驱动:实现 CRTC 和 plane 的硬件控制,包括图层配置、中断处理、带宽计算。
  • DPU 驱动:实现 HDR 和色彩管理相关的属性 (property) 控制。
  • 接口驱动:每个接口 (HDMI/DP/DSI/eDP) 各自实现 encoder 和 connector 的回调函数,包括 EDID 读取、模式验证、链路训练等。
  • PHY 驱动:负责物理层时钟生成与信号调理,通常通过 phy 子系统与接口驱动交互。
🔧 故障排查入口: 当显示完全无输出时,首先检查 dmesg | grep rockchip-drm 确认驱动是否 probe 成功;然后检查 ls /sys/class/drm/ 确认 card0 和各个 connector 是否创建。如果 connector 缺失,通常是接口驱动 probe 失败或 PHY 初始化出错。

1.7 本章小结