当前位置:网站首页>u-boot调试定位手段
u-boot调试定位手段
2022-08-05 04:48:00 【IT张先生】
开启调试信息参考
https://blog.csdn.net/zwjzwj108108/article/details/126147584
调试显示下面的信息
initcall: 040152e4
initcall: 04068584
initcall: 0401e9a8
initcall: 04015344
initcall: 04001510
initcall: 04015304
initcall: 0401552c
malloc_simple: size=18, ptr=18, limit=400: ffff0b30
malloc_simple: size=54, ptr=6c, limit=400: ffff0b48
malloc_simple: size=4, ptr=70, limit=400: ffff0b9c
uclass_find_device_by_seq: 0 -1
uclass_find_device_by_seq: 0 0
- -1 -1
- not found
malloc_simple: size=18, ptr=88, limit=400: ffff0ba0
malloc_simple: size=54, ptr=dc, limit=400: ffff0bb8
Bound device mod_exp_sw to root_driver
initcall: 04015354
initcall: 04015518
initcall: 04001478
initcall: 040177ec
initcall: 040154ec
initcall: 040445c0 //该值是一个符号地址,通过u-boot.map可以查看到具体符号
malloc_simple: size=18, ptr=f4, limit=400: ffff0c0c
bind node [email protected]
- attempt to match compatible string 'xlnx,xuartps'
- found match at 'serial_zynq'
malloc_simple: size=54, ptr=148, limit=400: ffff0c24
Looking for 'serial' at 2876, name [email protected]
- serial0, /amba/[email protected]
Found seq 0
Bound device [email protected] to root_driver
malloc_simple: size=4, ptr=14c, limit=400: ffff0c78
malloc_simple: size=4, ptr=150, limit=400: ffff0c7c
uclass_find_device_by_seq: 0 0
- 0 -1
- not found
OF: ** translation for device [email protected] **
OF: bus is default (na=1, ns=1) on amba
OF: translating address: 001000e0
OF: parent bus is default (na=1, ns=1) on
OF: no ranges, 1:1 translation
OF: parent translation for: 00000000
OF: with offset: 3758100480
OF: one level translation: 001000e0
OF: reached root nodeclk_get_by_index(dev=ffff0c24, index=0, clk=ffff0990)
fdtdec_get_int: #clock-cells: 0x1 (1)
malloc_simple: size=18, ptr=168, limit=400: ffff0c80
clk_get_by_index: uclass_get_device_by_of_offset failed: err=-19
failed to get clock
uclass_find_device_by_seq: 0 0
- 0 -1
- not found
uclass_find_device_by_seq: 1 0
- 0 -1
- found
malloc_simple: size=4, ptr=16c, limit=400: ffff0c98
malloc_simple: size=4, ptr=170, limit=400: ffff0c9c
uclass_find_device_by_seq: 0 0
- 0 -1
- not found
OF: ** translation for device [email protected] **
OF: bus is default (na=1, ns=1) on amba
OF: translating address: 001000e0
OF: parent bus is default (na=1, ns=1) on
OF: no ranges, 1:1 translation
OF: parent translation for: 00000000
OF: with offset: 3758100480
OF: one level translation: 001000e0
OF: reached root nodeclk_get_by_index(dev=ffff0c24, index=0, clk=ffff0968)
fdtdec_get_int: #clock-cells: 0x1 (1)
clk_get_by_index: uclass_get_device_by_of_offset failed: err=-19
failed to get clock
malloc_simple: size=4, ptr=174, limit=400: ffff0ca0
malloc_simple: size=4, ptr=178, limit=400: ffff0ca4
uclass_find_device_by_seq: 0 0
- 0 -1
- not found
OF: ** translation for device [email protected] **
OF: bus is default (na=1, ns=1) on amba
OF: translating address: 001000e0
OF: parent bus is default (na=1, ns=1) on
OF: no ranges, 1:1 translation
OF: parent translation for: 00000000
OF: with offset: 3758100480
OF: one level translation: 001000e0
OF: reached root nodeclk_get_by_index(dev=ffff0c24, index=0, clk=ffff0970)
fdtdec_get_int: #clock-cells: 0x1 (1)
clk_get_by_index: uclass_get_device_by_of_offset failed: err=-19
failed to get clock
malloc_simple: size=4, ptr=17c, limit=400: ffff0ca8
malloc_simple: size=4, ptr=180, limit=400: ffff0cac
uclass_find_device_by_seq: 0 0
- 0 -1
- not found
OF: ** translation for device [email protected] **
OF: bus is default (na=1, ns=1) on amba
OF: translating address: 001000e0
OF: parent bus is default (na=1, ns=1) on
OF: no ranges, 1:1 translation
OF: parent translation for: 00000000
OF: with offset: 3758100480
OF: one level translation: 001000e0
OF: reached root nodeclk_get_by_index(dev=ffff0c24, index=0, clk=ffff0970)
fdtdec_get_int: #clock-cells: 0x1 (1)
clk_get_by_index: uclass_get_device_by_of_offset failed: err=-19
failed to get clock
No serial driver found
resetting ...
Error, wrong i2c adapter 0 max 0 possible
Error, wrong i2c adapter 0 max 0 possible
itcall: 040445c0 //该值是一个符号地址,通过u-boot.map可以查看到具体符号。所以可以定位到再函数中出现了问题。

显示的错误信息:查看serial_init函数,可以看到是和串口相关。
OF: ** translation for device [email protected] **
OF: bus is default (na=1, ns=1) on amba
OF: translating address: 001000e0
OF: parent bus is default (na=1, ns=1) on
OF: no ranges, 1:1 translation
OF: parent translation for: 00000000
OF: with offset: 3758100480
OF: one level translation: 001000e0
OF: reached root nodeclk_get_by_index(dev=ffff0c24, index=0, clk=ffff0990)
fdtdec_get_int: #clock-cells: 0x1 (1)
malloc_simple: size=18, ptr=168, limit=400: ffff0c80
clk_get_by_index: uclass_get_device_by_of_offset failed: err=-19
failed to get clock
最后定位到serial_zynq.c文件中的打印。在获取时钟的时候出现问题。
int zynq_serial_setbrg(struct udevice *dev, int baudrate)
{
struct zynq_uart_priv *priv = dev_get_priv(dev);
unsigned long clock;
#if defined(CONFIG_CLK) || defined(CONFIG_SPL_CLK)
int ret;
struct clk clk;
ret = clk_get_by_index(dev, 0, &clk);
if (ret < 0) {
dev_err(dev, "failed to get clock\n");
return ret;
}
clock = clk_get_rate(&clk);
if (IS_ERR_VALUE(clock)) {
dev_err(dev, "failed to get rate\n");
return clock;
}
debug("%s: CLK %ld\n", __func__, clock);
ret = clk_enable(&clk);
if (ret && ret != -ENOSYS) {
dev_err(dev, "failed to enable clock\n");
return ret;
}
#else
clock = get_uart_clk(0);
#endif
_uart_zynq_serial_setbrg(priv->regs, clock, baudrate);
return 0;
}
边栏推荐
- 炎炎夏日教你利用小米智能家居配件+树莓派4接入Apple HomeKit
- 商业智能BI业务分析思维:现金流量风控分析(一)营运资金风险
- mutillidae download and installation
- The production method of the powered small sailboat is simple, the production method of the electric small sailboat
- upload upload pictures to Tencent cloud, how to upload pictures
- dedecms dream weaving tag tag does not support capital letters fix
- 8.04 Day35-----MVC three-tier architecture
- Event parse tree Drain3 usage and explanation
- [SWPU2019]Web1
- LeetCode:1403. 非递增顺序的最小子序列【贪心】
猜你喜欢
How to identify false evidence and evidence?

如何解决复杂的分销分账问题?

Four-digit display header design

浅析主流跨端技术方案

What is the function of industrial-grade remote wireless transmission device?

Detailed explanation of each module of ansible

how to measure distance from point to face in creo

mutillidae下载及安装

How do newcomers get started and learn software testing?

4T硬盘剩余很多提示“No space left on device“磁盘空间不足
随机推荐
overloaded operator
BI业务分析思维:现金流量风控分析(二)信用、流动和投资风险
动力小帆船制作方法简单,电动小帆船制作方法
[MRCTF2020] PYWebsite
不看后悔,appium自动化环境完美搭建
creo怎么测量点到面的距离
Detailed explanation of each module of ansible
Mysql的undo log详解
Talk about 20 common problems in data governance
Homework 8.4 Interprocess Communication Pipes and Signals
小程序_动态设置tabBar主题皮肤
[BJDCTF2020] EasySearch
What is ASEMI photovoltaic diode, the role of photovoltaic diode
[CISCN2019 South China Division]Web11
mutillidae下载及安装
[informix] Resolving startup errors and solutions
C++ core programming
ansible各个模块详解
No regrets, the appium automation environment is perfectly built
[8.3] Code Source - [meow ~ meow ~ meow~] [tree] [and]