RK3399平台开发系列讲解(其他篇)1.6、UBOOT 中HDMI默认分辨率的修改【UBOOT上HDMI LOGO 显示代码分析】

本文介绍了在RK3399平台上,如何解决UBOOT阶段HDMI显示不正常的问题。通过分析代码和设备树配置,提出三种修改默认分辨率的方法:一是修改设备树配置,二是直接修改代码指定分辨率,三是通过设备树指定配置。详细解释了hdmi_find_best_mode函数的工作原理,并提供了问题排查和解决步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

平台 内核版本 安卓版本
RK3399 Linux4.4 Android7.1

问题:

我同事的3399开发板外接HDMI显示UBOOT LOGO时不正常。

现象:

显示不正常如下图:
在这里插入图片描述


根据我的上一篇博客的显示诊断:
[px3][Android7.1] 调试笔记display显示屏参设置偏差后现象

结论:

分辨率没有设置正确

修改:


方式一:(修改uboot默认HDMI分辨率配置)

### RK3588 U-Boot 配置 HDMI分辨率显示方法 对于RK3588平台而言,在U-Boot阶段配置HDMI以支持更高分辨率显示涉及多个方面,包括但不限于调整设备树中的设置以及确保所使用的显示器能够接收并正常工作于预期的高分辨率模式下。 #### 修改设备树源文件(DTS) 为了实现更高的分辨率输出HDMI,通常需要编辑对应的DTS文件。具体来说: 1. 找到适用于RK3588芯片组的相关节点,并在此基础上增加或修改有关HDMI输出部分的内容。这一般涉及到`rockchip,rk3588-dw-hdmi`这样的兼容属性节点下的定义[^3]。 2. 设置期望的视频模式参数,比如通过如下方式指定分辨率为4K@60Hz(假设硬件和连接的显示屏均支持此规格)。需要注意的是实际数值可能会有所不同,取决于具体的硬件能力和需求。 ```c &hdmi { status = "okay"; port@0 { hdmi_out: endpoint { remote-endpoint = <&dw_hdmi_in>; /* Specify the desired video mode */ rockchip,mode-name = "4Kx2Kp60"; // Example for 4K @ 60 Hz /* Additional properties may be required depending on your setup */ }; }; dw_hdmi: encoder { compatible = "rockchip,dw-hdmi-rockchip"; /* * Define pixel clock and other timing parameters here. * These values should match those expected by both the source (RK3588) and sink devices. */ pclk_hz = <74250000>; // Pixel Clock Frequency in Hertz hactive = <3840>; // Horizontal Active Pixels vactive = <2160>; // Vertical Active Lines hfront_porch = <48>; hsync_len = <32>; hback_porch = <80>; vfront_porch = <3>; vsync_len = <5>; vback_porch = <21>; ... } }; ``` 上述代码片段展示了如何在DTS中为HDMI接口设定特定的视频模式。请注意这些值应当依据实际情况进行适当调整。 #### 更新环境变量 除了更改DTS之外,还可以利用U-Boot命令行来动态改变某些显示特性而无需重新编译固件。例如可以尝试执行以下指令序列来加载新的EDID信息或者强制应用某个预定义好的模式: ```shell setenv bootargs console=ttyS2,1500000 root=/dev/mmcblk0p2 rw rootwait disp.screen0_output_mode=4Kx2Kp60 saveenv reset ``` 这条命令会告诉内核启动时采用4K×2K逐行扫描每秒60帧作为默认输出格式。当然也可以替换为自己所需的其他模式字符串。 #### 测试与验证 完成以上操作之后重启系统,并观察是否成功实现了目标分辨率。如果遇到任何问题,则建议逐步排查潜在原因——可能是由于外部监视器本身不完全兼容选定的标准;或者是内部寄存器初始化过程中出现了错误等。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

内核笔记

你的鼓励是我的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值