U-Boot hangs while loading kernel?

给你一囗甜甜゛ 提交于 2019-11-30 10:01:50

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.

[By your comment, I'll assume that you have verified that main memory does not exist at physical address 0xAXXXXXXX.]

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

While building 3.20 development kernels for rockchip's rk3288 I found using LZO image compression made the device hang at 'Starting the kernel.' I assume it's because of a version miss-match between the build hosts LZO and the deployed decompression code, so it could probably happen with any of the compression algorithms. In my case switch to gzip fixed it.

This is only my assumption for why changing the compression algorithm gave a bootable kernel. Please correct me if I'm wrong.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!