加载内核时U-Boot挂起?

ASB*_*ASB 5 arm linux-kernel u-boot

我正在飞思卡尔电路板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 ...
Run Code Online (Sandbox Code Playgroud)

saw*_*ust 1

您需要验证您的主板确实在 0xa0008000 处有 RAM,这是内核“加载地址”。当 U-Boot 似乎挂起时,它可能正在尝试将映像复制到该内存区域。

[根据您的评论,我假设您已验证物理地址 0xAXXXXXXX 处不存在主内存。]

您正在使用的 uImage 文件是使用该mkimage实用程序从 zImage 文件创建的。

您可能必须手动编辑看起来像这样的行

zreladdr-y     := 0xa0008000
Run Code Online (Sandbox Code Playgroud)

arch/arm/mach-XXX/Makefile.boot你的董事会。约定是该地址应该是物理 RAM 的基址加上偏移量 0x8000 (32K)。然后调整文件中的其他值。删除该文件并为内核zImage执行另一个make 。