ROCKCHIP DRM 显示驱动开发指南
前言
本文主要介绍 Rockchip 平台处理器基于 DRM 显示框架 VOP 以及相关显示接口的基本特性、工作流程和常见问题分析。目的是为了相关工程师能对 DRM 显示驱动框架和硬件接口有更好的理解,并通过常见问题的分析能快速定位问题、解决问题。
目录
文章目录
- ROCKCHIP DRM 显示驱动开发指南
-
- @[toc]
- DRM 概述
-
- 驱动文件和加载流程
-
- Display feature
-
- 硬件相关
-
- 扫描时序说明
-
- 带宽的计算方法
-
- 常用的 debug 手段
-
- FAQ
-
- 如何开关 U-Boot logo 显示
- 如何配置 U-Boot logo 全屏或者居中显示
- U-Boot logo 要求
- U-Boot logo 切换到内核 logo 出现闪屏/无法显示问题
- VOP POST_BUF_EMPTY
- 显示效果调节
- 屏无法点亮/休眠唤醒显示异常/不显示问题
- RK3308 如何打开显示功能
- 关闭 iommu 的方法
- 各种接口屏配置
- RGB/MCU 屏帧率计算问题
- 如何编写第三方转换芯片驱动
- VOP2 绑定每个 VP 所使用的图层
- RK3588 DSC 支持几个 slice,slice width 最大支持多少
- RK3568 VP 和各显示接口的连接关系
- RK3588 VP 和各显示接口的连接关系
- 超过 4kP60 对 aclk 的要求
- 参考文档
文章目录
- ROCKCHIP DRM 显示驱动开发指南
-
- @[toc]
- DRM 概述
- 驱动文件和加载流程
- Display feature
- 硬件相关
- 扫描时序说明
- 带宽的计算方法
- 常用的 debug 手段
- FAQ
-
- 如何开关 U-Boot logo 显示
- 如何配置 U-Boot logo 全屏或者居中显示
- U-Boot logo 要求
- U-Boot logo 切换到内核 logo 出现闪屏/无法显示问题
- VOP POST_BUF_EMPTY
- 显示效果调节
- 屏无法点亮/休眠唤醒显示异常/不显示问题
- RK3308 如何打开显示功能
- 关闭 iommu 的方法
- 各种接口屏配置
- RGB/MCU 屏帧率计算问题
- 如何编写第三方转换芯片驱动
- VOP2 绑定每个 VP 所使用的图层
- RK3588 DSC 支持几个 slice,slice width 最大支持多少
- RK3568 VP 和各显示接口的连接关系
- RK3588 VP 和各显示接口的连接关系
- 超过 4kP60 对 aclk 的要求
- 参考文档
DRM 概述
DRM 全称是 Direct Rendering Manager,进行显示输出管理、buffer 分配、帧缓冲。对应 userspace 库为 libdrm,libdrm 库提供了一系列友好的控制封装,使用户可以方便的进行显示的控制和 buffer 申请。DRM 的设备节点为 “/dev/dri/cardX”, X 为 0-15 的数值,默认使用的是 /dev/dri/card0。
Rockchip 平台从 Linux 4.4 内核开始,显示驱动全部切到 DRM 显示框架。
基本概念
为了方便管理显示通路上的各种硬件模块,DRM 定义了以下几个概念:
基本概念 | 说明 |
---|---|
CRTC | 显示控制器,在 rockchip 平台是 SOC 内部 VOP(部分文档也称为 LCDC)模块或者 VOP2 中 Video Port 的抽象 |
Plane | 图层,在 rockchip 平台是 SOC 内部 VOP(LCDC)模块 win 图层的抽象 |