java drm_Linux DRM那些事-RockPI DRM

article/2025/10/25 3:49:13

一、DRM基本组件

Linux内核DRM框架包括:GEM和KMS。引用网络图片,展示DRM大体框架:

876ef0924fbb8680539d72562debcdcc.png

1、GEM

GEM(Graphic Execution Manager):图形执行管理器,主要是对 FrameBuffer 的管理,如内存的申请、释放、共享和同步(GPU和CPU之间内存)机制等。

GEM常用的Buffer包括:

1)Dumb Buffer:基于cma api实现,只支持连续物理内存,用于小分辨率简单场景。

2)Prime Buffer:基于dma-buf实现的buffer共享机制,支持连续、非连续物理内存,用于大内存复杂场景。

2、KMS

KMS(Kernel Mode Setting):内核显示模式设置,主要元素:Framebuffer、Plane、CRTC、Encoder、Connector。见下图:

f1e12211be9f633dfa6fb5650e7be727.png

1)Framebuffer:单个图层的显示内容,应用层和内核都可访问。

2)Plane:硬件图层,可实现多层合成显示,连接FB和CRTC。包括:Primary、Overlay和Cursor,驱动中至少实现1个Plane。

3)CRTC:对内存Buffer进行扫描,并转换成LCDC Timing信号。

4)Encoder:将CRTC输出的LCDC Timing时序转换成显示屏所需要的接口时序。

5)Connector:对应显示屏接口(HDMI、MIPI DSI、LVDS等)驱动和输出设备的相关状态信息(EDID、热插拔等)。

RockPI 4 DRM驱动其实就是学习上面各个元素的实现及用法。

二、RockPI 4 DRM驱动文件

RockPI 4单板使用RK3399芯片。

Debian系统内核代码下载地址:https://wiki.radxa.com/Rockpi4/dev/Debian。

RK3399 DRM关注文件:

1、内核文档

路径:Documentation/devicetree/bindings/display/rockchip。

2、驱动代码

路径:drivers/gpu/drm/rockchip,涉及到的文件和实现功能如下:

1)驱动文件

root@ubuntu:/home/run/code/rockchip-bsp/kernel/drivers/gpu/drm/rockchip# ls

analogix_dp-rockchip.c cdn-dp-reg.c       inno_hdmi.c rk3066_hdmi.c             rockchip_drm_backlight.h rockchip_drm_fbdev.c rockchip_drm_gem.h rockchip_drm_vop.h rockchip_vop_reg.c

cdn-dp-core.c           cdn-dp-reg.h       inno_hdmi.h rk3066_hdmi.h             rockchip_drm_drv.c       rockchip_drm_fbdev.h rockchip_drm_tve.c rockchip_lvds.c     rockchip_vop_reg.h

cdn-dp-core.h           dw_hdmi-rockchip.c Kconfig     rk618                     rockchip_drm_drv.h       rockchip_drm_fb.h     rockchip_drm_tve.h rockchip_lvds.h

cdn-dp-link-training.c dw-mipi-dsi.c       Makefile     rockchip_drm_backlight.c rockchip_drm_fb.c         rockchip_drm_gem.c   rockchip_drm_vop.c rockchip_rgb.c

2)实现功能

实现功能

文件名称

Core Driver

rockchip_drm_drv.c

GEM Driver

rockchip_drm_gem.c

Framebuffer Driver

rockchip_drm_fb.c、rockchip_drm_fbdev.c

VOP Driver

rockchip_drm_vop.c、rockchip_vop_reg.c

HDMI Driver

dw_hdmi-rockchip.c

inno HDMI Driver

inno_hdmi.c

LVDS Driver

rockchip_lvds.c

MIPI Driver

dw-mipi-dsi.c

TVE Driver

rockchip_drm_tve.c

eDP Driver

analogix_dp-rockchip.c

DP Driver

cdn-dp-reg.c、cdn-dp-core.c、cdn-dp-link-training.c

RGB Driver

rockchip_rgb.c

Backlight Driver

rockchip_drm_backlight.c

rk618 bridge Driver

rk618/

RK3066 HDMI Driver

rk3066_hdmi.c

注:Core、GEM、FB和VOP驱动是必须的,根据单板连接屏的接口类型选择对应的接口驱动或背光驱动。

目前只有HDMI线和HDMI接口的显示屏,后续只介绍HDMI显示驱动。

参考:

1.rockchip_drm_integration_helper-zh.pdf

2.brezillon-drm-kms.pdf

3.graphics-slides.pd


http://chatgpt.dhexx.cn/article/D0OaBsko.shtml

相关文章

Linux DRM(二) --Xorg/DRM

了解xorg 1.前言 GUI作为人机交互的一种方式,通过其承载的大量信息提高了信息交流的效率。这里我们不介绍鼠标、键盘等输入设备,只介绍输出显示这一子模块。生活中大家最常见的图形化界面估计就是图像化界面的桌面环境,即窗口系统。 窗口系统…

Linux DRM 理解

本文从如下几个部分介绍 1. DRM 概念介绍2. 对比HW结构分析3. code分析 1. DRM 概念介绍 DRM 是Direct Render Manager的缩写: Linux 显示子系统结构框架 向上提供标准API给到应用使用管理GPU和Display模块 相较于原来的framebuffer结构,DRM将更多的硬…

直接渲染管理器(Direct Rendering Manager, DRM)

这是一篇来至于wiki的译文,希望对学习DRM的同学有帮助。 目录 概述 软件架构 API DRM-Master and DRM-Auth 图形执行管理器(Graphics Execution Manager) Translation Table Maps DMA Buffer共享和PRIME KMS(Kernel Mode…

java drm_DRM系统工作原理

一、系统工作原理DRM技术是一项加强对音频、视频数字化产品内容版权保护的技术,其基本的工作原理是将音频、视频等文件进行加密编码处理,再建立一个证书授权服务中心;当用户使用这些加密文件时,应用软件会根据其包含在头文件中的有关属性自动链接到相应的站点(证书授权服务…

drm oracle,近距离接触RAC DRM

drm 是Oracle rac中独有的动态资源管理操作, 我们听了很多关于DRM的理论, 但是你是否亲眼见证过DRM, 今天我们就来看一下: SQL> select * from v$version; BANNER ---------------------------------------------------------------------…

菜鸟修炼笔记-音视频开发基础知识-drm简介

音视频开发基础知识-drm简介 前言一。DRM的基础概念1. DRM是什么?2. DRM的组成2.1 libdrm2.2 GEM2.3 KMS 二。KMS各个元素详解1. plane1.1 定义:1.2 类型1.3 功能1.4 使用:1.5 注意: 2. property2.1 定义和作用:2.2 常…

CSS字体的font-family属性和@font-face使用方法

CSS字体的font-family属性: font-family属性一共有5个字体系列,分别是: sans-serif: 包括没有衬线的字体,与serif相比,通常认为sans-serif在计算机屏幕上更容易识别。 serif: 包括有衬线的字…

前端漂亮的字体 font-family

今天在看UI图的时候看到这种字体,给大家分享分享,直接上图 图一 利用字体系列font-family div{font-size: .7rem;color: #ffeb7b;/* 黄色 */font-family: electronicFont; /* 这是重点!!! */ }图二 利用文字阴影text-…

【CSS】font-family的相关字体设置

大家都知道,在不同操作系统、不同游览器里面默认显示的字体是不一样的,并且相同字体在不同操作系统里面渲染的效果也不尽相同,那么如何设置字体显示效果会比较好呢?下面我们逐步的分析一下: 一、字体基础知识 css 中…

Web 字体 font-family 浅谈

前言 最近研究各大网站的font-family字体设置,发现每个网站的默认值都不相同,甚至一些大网站也犯了很明显的错误,说明字体还是有很大学问的,值的我们好好研究。 不同的操作系统、不同浏览器下内嵌的默认字体是不同的,错…

font-faimly字体大全

清 font-size:100px 为例 font-family:“Arial”,“Microsoft YaHei”,“黑体”,“宋体”,sans-serif; font-family:Tahoma,Helvetica,Arial,‘宋体’,sans-serif; font-family: ‘Microsoft YaHei’,arial,tahoma,\5b8b\4f53,sans-serif; font-family:Tahoma,Helvetica,A…

html字体设置font-family

<div ><p style"font-family:STHeiti">1.华文黑体:STHeiti</p><p style"font-family:STKaiti">2.华文楷体&#xff1a;STKaiti</p><p style"font-family:STSong">3.华文宋体&#xff1a;STSong</p>&l…

html常用font-family设置字体样式

<table border"1" cellpadding"0" cellspacing"0" ><tr><td><h3 style"font-family: 黑体;">黑体&#xff1a;SimHei</h3></td><td><h3 style"font-family: 华文黑体;">华…

font-family、font-style、font-weight、font-variant的区别「In CSS」

学习 CSS&#xff0c;看文档的时候总是对 font 的属性搞不清楚或者总是搞混。 这里总结一下这四个经常搞混的&#xff08;特别是前面两个&#xff09;。 font-family 这个属性指的是字体&#xff0c;比如说汉字中常说的行书与草书。 这个属性的值可以有多个&#xff0c;因为…

FontFamily 看这里就够了

TextView中字体设置 typeface 一、配置设置 代码方式设置 fontFamily 文字如何实现加粗、斜体&#xff1f; 三者之间的关系 自定义字体 参考&#xff1a; TextView中字体设置 textView中有三个属性可以设置字体 textStyle&#xff1a;设置样式fontFamily&#xff1…

WPF—WrapPanel布局

WrapPanel布局面板将各个控件从左至右按照行或列的顺序罗列&#xff0c;当长度或高度不够是就会自动调整进行换行&#xff0c;后续排序按照从上至下或从右至左的顺序进行。 Orientation——根据内容自动换行。当 Horizontal选项看上去类似于Windows资源管理器的缩略图视图&…

WrapPanel

WrapPanel将子元素自左向右逐个地排列, 若一个水平行中放不下,就排在下一行。面板的方向可以是水平或垂直的 <Window x:Class"Panel布局.WrapPanelxaml"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.…

WPF中5种内建面板Canvas、StackPanel、WrapPanel、DockPanel、Grid分析

https://blog.csdn.net/weixin_43437202/article/details/88292620 Canvas、StackPanel、WrapPanel、DockPanel和Grid是WPF中主要的5种内建面板&#xff0c;这些面板类都位于System.Windows.Controls命名空间下。 主要布局特点简述 Grid 按行列排列内容&#xff0c;如果没有特…

WPF 改进 WrapPanel 右侧填充

WPF 改进 WrapPanel 右侧填充 本文经原作者授权以原创方式二次分享&#xff0c;欢迎转载、分享。 WPF 改进 WrapPanel 右边缘填充 作者&#xff1a;陈-林-赵-魏|驚鏵 原文链接[1]&#xff1a;https://www.cnblogs.com/wandia/p/17084881.html 目的&#xff1a;改进下WrapPanel,…

WrapPanel 实现虚拟化

WrapPanel 实现虚拟化 控件名&#xff1a;VirtualizingWrapPanel 作者&#xff1a;WPFDevelopersOrg 原文链接&#xff1a; https://github.com/WPFDevelopersOrg/WPFDevelopers 框架使用大于等于.NET40&#xff1b;Visual Studio 2022;项目使用 MIT 开源许可协议&#xff1…