U-Boot 在加载内核时挂起? [英] U-Boot hangs while loading kernel?

查看:17
本文介绍了U-Boot 在加载内核时挂起?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在研究飞思卡尔开发板 imx50evk.我已经使用 LTIB(Linux 目标映像生成器)构建了 uboot.bin 和 uImage.在 U-Boot 提示符下我输入 bootm addr 命令,然后它在显示消息Loading Kernel..."后挂起

I am working on Freescale board imx50evk. I have built the uboot.bin and uImage using LTIB (linux target image builder). At the U-Boot prompt I enter the bootm addr command, and then it hangs after showing the message "Loading Kernel..."

> 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 ...

推荐答案

你需要验证你的板子在 0xa0008000 处真的有 RAM,也就是内核的加载地址".U-Boot 可能会在图像挂起时尝试​​将图像复制到该内存区域.

You need to verify that your board really has RAM at 0xa0008000, which is the kernel "load address". U-Boot is probably trying to copy the image to that region of memory when it appears to hang.

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

您使用的 uImage 文件是使用 mkimage 实用程序从 zImage 文件创建的.

The uImage file that you are using was made from the zImage file using the mkimage utility.

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

You probably have to manually edit the line that looks like

zreladdr-y     := 0xa0008000

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

in arch/arm/mach-XXX/Makefile.boot for your board. The convention is that this address should be the base of physical RAM plus an offset of 0x8000 (32K). Then adjust the other values in the file. Delete the zImage file and perform another make for the kernel.

这篇关于U-Boot 在加载内核时挂起?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆