Buildroot显示uboot logo

根据之前的开机现象,uboot部分没有开机logo

 1、Makefile配置

查看一下u-boot/tools/Makefile是否都有如下配置

# Enable all the config-independent tools
ifneq ($(HOST_TOOLS_ALL),)
CONFIG_LCD_LOGO = y
CONFIG_CMD_LOADS = y
CONFIG_CMD_NET = y
CONFIG_XWAY_SWAP_BYTES = y
CONFIG_NETCONSOLE = y
CONFIG_SHA1_CHECK_UB_IMG = y
CONFIG_ARCH_SUNXI = y
endif
# Generated LCD/video logo
LOGO_H = $(objtree)/include/bmp_logo.h
LOGO_DATA_H = $(objtree)/include/bmp_logo_data.h
LOGO-$(CONFIG_LCD_LOGO) += $(LOGO_H)
LOGO-$(CONFIG_LCD_LOGO) += $(LOGO_DATA_H)
LOGO-$(CONFIG_VIDEO_LOGO) += $(LOGO_H)
LOGO-$(CONFIG_VIDEO_LOGO) += $(LOGO_DATA_H)# Generic logo
ifeq ($(LOGO_BMP),)
LOGO_BMP= $(srctree)/$(src)/logos/denx.bmp# Use board logo and fallback to vendor
ifneq ($(wildcard $(srctree)/$(src)/logos/$(BOARD).bmp),)
LOGO_BMP= $(srctree)/$(src)/logos/$(BOARD).bmp
else
ifneq ($(wildcard $(srctree)/$(src)/logos/$(VENDOR).bmp),)
LOGO_BMP= $(srctree)/$(src)/logos/$(VENDOR).bmp
endif
endifendif # !LOGO_BMP

 这些都是默认的,并没有修改,而且u-boot显示的logo在kernel/logo.bmp,文件名在kernel的dts配置

2、跑u-boot时没有检测到dsi配置

boot mode: None
Found DTB in boot part
DTB: rk-kernel.dtb
HASH(c): OK
I2c0 speed: 400000Hz
PMIC:  RK808
vdd_center 900000 uV
vdd_cpu_l 900000 uV
vdd_log 1100000 uV
I2c8 speed: 100000Hz
panel_i2c_reg_read fail, i = 0  reg = 80 ret = -121
panel_i2c_reg_read fail, i = 1  reg = 80 ret = -121
panel_i2c_reg_read fail, i = 2  reg = 80 ret = -121
panel_i2c_reg_read fail, i = 3  reg = 80 ret = -121
panel_i2c_reg_read fail, i = 0  reg = 4 ret = -121
panel_i2c_reg_read fail, i = 1  reg = 4 ret = -121
panel_i2c_reg_read fail, i = 2  reg = 4 ret = -121
panel_i2c_reg_read fail, i = 3  reg = 4 ret = -121
rockchip_display_probe rpi_buffer=-121  powertip_buffer=-121
rockchip_display_probe: no dsi panel connected
Could not find baseparameter partition
Model: ASUS Tinker Board 2/2S
read_bmp_header:BMP singature incorrectly 0x9d 0x27load_bmp_logo  42 4d bit_count=8 width=258 height=94 file_size=2d40
Rockchip UBOOT DRM driver version: v1.0.1
hdmi@ff940000 disconnected

 在网上有些源码没有这段代码,先把continue屏蔽一下,继续往下跑

diff --git a/drivers/video/drm/rockchip_display.c b/drivers/video/drm/rockchip_display.c
index 6fcedcdfe6..a70bc02087 100644
--- a/drivers/video/drm/rockchip_display.c
+++ b/drivers/video/drm/rockchip_display.c
@@ -507,6 +507,7 @@ static int display_get_timing_from_dts(struct panel_state *panel_state,struct rockchip_panel *panel = panel_state->panel;int phandle;ofnode timing, native_mode;
+       printf("rpi_panel_connected=%d, powertip_panel_connected=%d\n", rpi_panel_connected, powertip_panel_connected);timing = dev_read_subnode(panel->dev, "display-timings");if (rpi_panel_connected) {
@@ -1776,8 +1777,11 @@ static int rockchip_display_probe(struct udevice *dev)return -ENODEV;ofnode_for_each_subnode(node, route_node) {
-               if (!ofnode_is_available(node))
+               if (!ofnode_is_available(node)) {
+                       printf("rockchip_display_probe node.np->name=%s is not available\n", node.np->name);continue;
+               }
+               printf("rockchip_display_probe node.np->name=%s\n", node.np->name);if (!strncmp(node.np->name, "route-dsi", 9)) {struct udevice *powertip_dev;struct udevice *rpi_dev;
@@ -1789,7 +1793,7 @@ static int rockchip_display_probe(struct udevice *dev)i2c_get_chip_for_busnum(0x8, 0x36, 1, &powertip_dev);//powertippowertip_buffer = panel_i2c_reg_read(powertip_dev, 0x4);
-                       printf("rockchip_display_probe rpi_buffer=%d  powertip_buffer=%d\n",rpi_buffer, powertip_buffer);
+                       printf("rockchip_display_probe rpi_buffer=%x  powertip_buffer=%x\n",rpi_buffer, powertip_buffer);if (rpi_buffer == 0xDE  || rpi_buffer == 0xC3) {rpi_panel_connected = true;
@@ -1799,7 +1803,7 @@ static int rockchip_display_probe(struct udevice *dev)if (!powertip_panel_connected && !rpi_panel_connected) {printf("rockchip_display_probe: no dsi panel connected\n");
-                                       continue;
+                                       //continue;}}

 3、dw_mipi_dsi.c

rockchip_display_probe node.np->name=route-hdmi
rockchip_display_probe node.np->name=route-dsi
I2c8 speed: 100000Hz
panel_i2c_reg_read fail, i = 0  reg = 80 ret = -121
panel_i2c_reg_read fail, i = 1  reg = 80 ret = -121
panel_i2c_reg_read fail, i = 2  reg = 80 ret = -121
panel_i2c_reg_read fail, i = 3  reg = 80 ret = -121
panel_i2c_reg_read fail, i = 0  reg = 4 ret = -121
panel_i2c_reg_read fail, i = 1  reg = 4 ret = -121
panel_i2c_reg_read fail, i = 2  reg = 4 ret = -121
panel_i2c_reg_read fail, i = 3  reg = 4 ret = -121
rockchip_display_probe rpi_buffer=ffffff87  powertip_buffer=ffffff87
rockchip_display_probe: no dsi panel connected
panel_i2c_reg_read fail, i = 0  reg = 80 ret = -121
panel_i2c_reg_read fail, i = 1  reg = 80 ret = -121
panel_i2c_reg_read fail, i = 2  reg = 80 ret = -121
panel_i2c_reg_read fail, i = 3  reg = 80 ret = -121
panel_i2c_reg_read fail, i = 0  reg = 4 ret = -121
panel_i2c_reg_read fail, i = 1  reg = 4 ret = -121
panel_i2c_reg_read fail, i = 2  reg = 4 ret = -121
panel_i2c_reg_read fail, i = 3  reg = 4 ret = -121dw_mipi_dsi_child_pre_probe rpi_buffer=-121  powertip_buffer=-121
rockchip_display_probe node.np->name=route-edp is not available
Could not find baseparameter partition
Model: ASUS Tinker Board 2/2S
read_bmp_header:BMP singature incorrectly 0x9d 0x27load_bmp_logo  42 4d bit_count=8 width=258 height=94 file_size=2d40
Rockchip UBOOT DRM driver version: v1.0.1
hdmi@ff940000 disconnected
rpi_panel_connected=0, powertip_panel_connected=1
Using display timing dts
dsi@ff960000:  detailed mode clock 66800 kHz, flags[a]H: 0720 0728 0783 0838V: 1280 1288 1308 1328
bus_format: 100e
final DSI-Link bandwidth: 504 Mbps x 2
panel_simple_prepaer

看log跑到了dw_mipi_dsi_child_pre_probe

对powertip_buffer的判断不完整导致获取到的timing参数不对,屏幕显示如下

修改powertip_buffer的判断

diff --git a/drivers/video/drm/dw_mipi_dsi.c b/drivers/video/drm/dw_mipi_dsi.c
index 370948a3c8..2c17939363 100644
--- a/drivers/video/drm/dw_mipi_dsi.c
+++ b/drivers/video/drm/dw_mipi_dsi.c
@@ -1732,7 +1732,7 @@ static int dw_mipi_dsi_child_pre_probe(struct udevice *dev)device->lanes = 1;device->format = MIPI_DSI_FMT_RGB888;device->mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST |MIPI_DSI_MODE_LPM;
-       } else if ((powertip_buffer & 0xF0) == 0x80) {
+       } else if ((powertip_buffer > 0) && (powertip_buffer & 0xF0) == 0x80) {powertip_panel_connected = true;powertip_id = powertip_buffer;device->lanes = 2;

4、运行正常

buildroot显示uboot logo

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/243739.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一.初识Linux 1-3操作系统概述Linux初识虚拟机介绍

目录 一.初识Linux 1.操作系统概述 计算机组成 硬件: 软件: 操作系统: 操作系统工作流程 操作系统作用 常见的操作系统 PC端: 移动端:(掌上操作系统) 一.初识Linux 2.Linux初识 linu…

分布式websocket即时通信(IM)系统保证消息可靠性【第八期】

b站上面本期视频版本,观看视频食用更佳!点击即可跳转,找不到视频可以直接搜索我 目前叫 呆呆呆呆梦 目前已经写的文章有。并且有对应视频版本。 git项目地址 【IM即时通信系统(企聊聊)】点击可跳转 sprinboot单体项目升级成sprin…

Ubuntu用gparted重新分配空间

ubuntu系统使用过程中安装系统时预先留的空间不够使用怎么办? 这么办! 首先 使用df -h 查看当前空间使用情况 已经分配的空间重新规划 ? 先将已分配的空间中的多余空间分离出来; 假设我想将挂载点/home下的一部分空间分给挂载…

《WebKit 技术内幕》学习之八(1):硬件加速机制

《WebKit 技术内幕》之八(1):硬件加速机制 1 硬件加速基础 1.1 概念 这里说的硬件加速技术是指使用GPU的硬件能力来帮助渲染网页,因为GPU的作用主要是用来绘制3D图形并且性能特别好,这是它的专长所在,它…

matlab模型变量一般说明,标定和显示量,以及产生a2l文件,自动填充a2l地址,并使用标定工具ati进行标定(推荐重要)

注意我是用的是matlab2019b 1,输入标定量,使用constant,用cal函数包裹 2,输出显示量,在划线上标注,然后用display函数包裹, 第一步和第二步完成以后,生产标定量a2l 3,输入…

常规二分查找中遇到的问题

以前我们写二分查找的时候&#xff0c;是这么写的&#xff1a; public static int binarySearch2(int []a,int target){int i0,ja.length-1;while(i<j){int mid(ij)/2;if(a[mid]target){return mid;}else if(a[mid]<target){imid1;}else {jmid-1;}}return -1;} 这么写&…

conda环境下OSError: We couldn‘t connect to ‘https://huggingface.co‘问题解决

1 问题描述 (dreamtalk) [rootlocalhost dreamtalk]# python inference_for_demo_video.py --wav_path data/audio/acknowledgement_english.m4a --style_clip_path data/style_clip/3DMM/M030_front_neutral_level1_001.mat --pose_path data/pose/RichardShelby_front_neutr…

【分布式技术专题】「分布式技术架构」 探索Tomcat技术架构设计模式的奥秘(Server和Service组件原理分析)

探索Tomcat技术架构设计模式的奥秘 Tomcat系统架构分析Tomcat 整体结构Tomcat总体结构图以 Service 作为“婚姻”1) Service 接口方法列表 2) StandardService 的类结构图方法列表 3) StandardService. SetContainer4) StandardService. addConnector 以 Server 为“居”1) Ser…

性能优化-OpenCL 介绍

「发表于知乎专栏《移动端算法优化》」 本文首先对 GPU 进行了概述&#xff0c;然后着重地对移动端的 GPU 进行了分析&#xff0c;随后我们又详细地介绍了 OpenCL 的背景知识和 OpenCL 的四大编程模型。希望能帮助大家更好地进行移动端高性能代码的开发。 &#x1f3ac;个人简介…

OpenCV——Scharr边缘检测

目录 一、Scharr算法1、算法概述2、主要函数 二、C代码三、python代码四、结果展示1、灰度图2、X方向一阶边缘2、Y方向一阶边缘3、整幅图像的一阶边缘 五、相关链接 OpenCV——Scharr边缘检测由CSDN点云侠原创&#xff0c;爬虫自重。如果你不是在点云侠的博客中看到该文章&…

MODNet 剪枝再思考: 优化计算量的实验历程分享

目录 1 写在前面 2 模型分析 3 遇到问题 4 探索实验一 4.1 第一部分 4.2 第二部分 Error 1 Error 2 4.3 实验结果 ①参数量与计算量 ②模型大小 ③推理时延 5 探索实验二 5.1 LR Branch 5.2 HR Branch 5.2.1 初步分析 5.2.2 第一部分 enc2x 5.2.3 第二部分 en…

【算法分析与设计】二叉树的层序遍历

&#x1f4dd;个人主页&#xff1a;五敷有你 &#x1f525;系列专栏&#xff1a;算法分析与设计 ⛺️稳中求进&#xff0c;晒太阳 题目 给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 &#xff08;即逐层地&#xff0c;从左到右访问所有节点&#xf…

2017年认证杯SPSSPRO杯数学建模B题(第二阶段)岁月的印记全过程文档及程序

2017年认证杯SPSSPRO杯数学建模 B题 岁月的印记 原题再现&#xff1a; 对同一个人来说&#xff0c;如果没有过改变面容的疾病、面部外伤或外科手术等经历&#xff0c;年轻和年老时的面容总有很大的相似性。人们在生活中也往往能够分辨出来两张不同年龄段的照片是不是同一个人…

3D应用开发工具HOOPS引领数字化工厂浪潮:制造业转型的关键角色!

随着科技的迅猛发展&#xff0c;制造业正经历着数字化转型的浪潮。在这一变革的前沿&#xff0c;Tech Soft 3D 的 HOOPS技术正扮演着关键的角色。 本文将深入研究HOOPS技术如何在数字化工作流程中发挥作用&#xff0c;以及它是如何引领制造业朝着更高效、智能的未来迈进的。 …

对读取的Excel文件数据进行拆分并发请求发送到后端服务器

首先&#xff0c;我们先回顾一下文件的读取操作&#xff1a; 本地读取Excel文件并进行数据压缩传递到服务器-CSDN博客 第一步&#xff1a;根据以上博客&#xff0c;我们将原先的handleFile方法&#xff0c;改为以下内容&#xff1a; const handleFile async(e) > {conso…

低代码技术杂谈

一、探讨低代码的定义 “Low-Code”是什么&#xff1f;身为技术人员听到这种技术名词&#xff0c;咱们第一反应就是翻看维基百科 或者其他相关技术论文&#xff0c;咱们想看维基百科的英文介绍&#xff1a; A low-code development platform (LCDP) provides a development env…

HCIA-HarmonyOS设备开发认证-HarmonyOS简介

目录 前言目标一、HarmonyOS简介1.1、初识HarmonyOS1.2、HarmonyOS典型应用场景 二、HarmonyOS架构与安全2.1、HarmonyOS架构2.1.1 内核层2.1.2 系统服务层2.1.3 框架层2.1.4 应用层 前言 本章主要介绍HarmonyOS分布式操作系统的概念、关键技术与能力以及HarmonyOS典型的应用场…

我们从海龟交易法上能够学到什么现货黄金投资技术?

海龟交易法是一种应用于股票和期货市场的交易方法&#xff0c;一度很流行。但后来随着市场参与者水平的变化&#xff0c;还有交易技术的革新&#xff0c;海龟交易法逐渐失效&#xff0c;简单地应用这个方法已经不能盈利了。尽管如此&#xff0c;我们还是可以从这个方法中学习到…

【Linux】vim配置

我们普通用户打开未配置的vim的时候&#xff0c;和Windows中的vs界面差别很大&#xff0c;使用不是很便捷 这里我们可以配置一下vim&#xff0c;便于我们的操作 我们可以在gitee中搜索vimforcpp VimForCpp: 快速将vim打造成c IDE (gitee.com) curl -sLf https://gitee.com/HGt…

vue2面试题:什么是双向数据绑定

vue2面试题&#xff1a;什么是双向数据绑定 回答思路&#xff1a;1.什么是双向绑定-->2.双向数据绑定的原理-->3.如何实现双向数据绑定1.什么是双向绑定2.双向数据绑定的原理3.如何实现双向数据绑定来一个构造函数&#xff1a;执行初始化&#xff0c;对data执行响应化处理…