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)
您需要验证您的主板确实在 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 。