我在飞思卡尔电路板imx50evk工作。我已经使用LTIB (linux目标映像构建器)构建了uboot.bin和uImage。在U-Boot提示符下,我输入bootm addr命令,然后在显示消息“正在加载内核...”后挂起。
> MX50_RDP U-Boot > boot
MMC read: dev # 0, block # 2048, count 6290 partition # 0 ...
6290 blocks read: OK
## Booting kernel from Legacy Image at 70800000 ...
Image Name: Linux-2.6.35.8
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1323688 Bytes = 1.3 MB
Load Address: a0008000
Entry Point: a0008000
Verifying Checksum ... OK
Loading Kernel Image ...发布于 2012-09-24 14:37:27
您需要验证您的主板在0xa0008000处是否真的有RAM,这是内核的“加载地址”。U-Boot可能试图在映像挂起时将其复制到该内存区域。
根据您的评论,我将假设您已经验证了物理地址0xAXXXXXXX处不存在主内存。
您正在使用的uImage文件是使用mkimage实用程序从zImage文件生成的。
您可能需要手动编辑如下所示的行
zreladdr-y := 0xa0008000在您的主板的arch/arm/mach-XXX/Makefile.boot中。按照惯例,该地址应该是物理RAM的基址加上0x8000 (32K)的偏移量。然后调整文件中的其他值。删除zImage文件并对内核执行另一个make。
发布于 2015-04-01 16:24:53
在为rockchip的rk3288构建3.20开发内核时,我发现使用LZO图像压缩会使设备在“启动内核”时挂起。我认为这是因为构建主机LZO和部署的解压缩代码之间的版本不匹配,所以任何压缩算法都可能发生这种情况。在我的例子中,切换到gzip修复了这个问题。
这只是我的假设,为什么改变压缩算法会得到一个可引导的内核。如果我说错了,请纠正我。
https://stackoverflow.com/questions/12543122
复制相似问题