setup_arch()函数中的内核恐慌问题

1 人关注

我面临着一个内核恐慌的问题,当启动一个新产品的时候。 armv7 板上有 linux-3.0 kernel 。错误信息如下。 Memory policy: ECC disabled, Data cache writealloc <0>Kernel panic - not syncing: ERROR: Failed to allocate 0x1000 bytes below 0x0.

我认为这个问题与menuconfig中的一些配置有关,但不能确定是哪一个配置导致了这个问题。当我试图追踪导致这个问题的函数时,我得到了以下调用追踪。

paging_init -> early_alloc.clone.2 -> memblock_alloc -> memblock_alloc_base -> __memblock_alloc_base -> memblock_align_up -> memblock_find_base -> __memblock_alloc_base -> panic .

通过uboot启动参数。

bootargs=console=ttyS1,115200n8 root=/dev/nfs ip=1.2.3.4 nfsroot=10.22.33.27:/tftpboot/arm/ rootwait rw

linux
linux-kernel
arm
linux-device-driver
arceus
arceus
发布于 2017-01-23
1 个回答
vinod maverick
vinod maverick
发布于 2017-01-24
已采纳
0 人赞同

看起来你的内核试图在比实际分配的更高的地址上加载。所以你需要研究一下DTS文件(如果使用设备树的话)或者你在u-boot提示下传递的启动参数。

You can check the memory allocation from kernel menuconfig,