li_freedom 发表于 2016-05-03 11:09

uboot不能启动内核,大神帮忙分析下

使用tftp把uImage文件下载到内存中,执行bootm 30000000启动内核,具体输出信息如下:

=> tftp 30000000 uImage.bin
Using FM1@DTSEC2 device
TFTP from server 192.168.0.11; our IP address is 192.168.0.98
Filename 'uImage.bin'.
Load address: 0x30000000
Loading: #################################################################
         #################################################################
         #################################################################
         #################################################################
         ##################################
         8.2 MiB/s
done
Bytes transferred = 4308384 (41bda0 hex)
=> bootm 30000000
WARNING: adjusting available memory to 30000000
## Booting kernel from Legacy Image at 30000000 ...
   Image Name:   Linux-3.12.37-rt51+g43cecda
   Image Type:   PowerPC Linux Kernel Image (gzip compressed)
   Data Size:    4308320 Bytes = 4.1 MiB
   Load Address: 00000000
   Entry Point:00000000
   Verifying Checksum ... OK
   Uncompressing Kernel Image ... OK

执行到上面打印之后就串口就没有反应了,也不响应键盘了。是不是uboot没有去启动kernel。
明白的大神麻烦帮忙分析下问题吧,万分感谢!!!!

lazyrose 发表于 2016-05-03 16:48

键盘不能使用(无法进入u-boot命令行),也无法引导内核,可能有两种情况:1,内核起始地址不匹配,30000000可能不是内核在内存中的起始地址;2,内核本身有问题,你要确认内核是不是正确的回复 1# li_freedom


   

问枫 发表于 2016-05-05 11:46

同意楼上的意见,比较大可能是地址搞错了,uboot的mkimage在打包内核时会在前面加上uboot的头,好像是64字节,所以,如果你的内核入口地址是30000000,那下载到ram时起始地址就不要写30000000,应该向前偏移64字节。
页: [1]
查看完整版本: uboot不能启动内核,大神帮忙分析下