Linux kernel 无法在zedboard上安装rootfs

Linux kernel 无法在zedboard上安装rootfs,linux-kernel,embedded-linux,kernel,u-boot,Linux Kernel,Embedded Linux,Kernel,U Boot,我在加载我的根fs时遇到问题,在检查内核日志后,它会说 “INITRD:0x1f8ca000+0x0028ac63不是内存区域-禁用INITRD” 这是什么意思 背景 我在ARMCortex A9的一个核心上运行linux,并试图在另一个核心上运行另一个裸机应用程序。我已经改变了设备树以反映这一点,我保留了部分SDRAM用于Linux,另一部分用于裸机应用程序。我正在使用Uboot。这和uboot有关吗 干杯, 由于您没有将整个RAM专用于主内核上的Linux内核,因此需要确保引导参数中指定的i

我在加载我的根fs时遇到问题,在检查内核日志后,它会说

“INITRD:0x1f8ca000+0x0028ac63不是内存区域-禁用INITRD”

这是什么意思

背景

我在ARMCortex A9的一个核心上运行linux,并试图在另一个核心上运行另一个裸机应用程序。我已经改变了设备树以反映这一点,我保留了部分SDRAM用于Linux,另一部分用于裸机应用程序。我正在使用Uboot。这和uboot有关吗

干杯,
由于您没有将整个RAM专用于主内核上的Linux内核,因此需要确保引导参数中指定的intrd加载地址可以从主内核访问

接下来,该信息通常以从u-boot传递的bootargs形式传递到Linux内核

initrd=<initrd-start-addr>,<initrd-size>
initrd=,
根据您的自定义内存映射修改它


最后,在u-boot中,在您刚刚指定的新的正确地址加载initrd并引导Linux内核。

您可以发布您的Uboot配置和Linux内核版本吗?该消息来自arch/arm/mm/init.c。memblock_is_region_memory()失败。您好,感谢您为我指出该文件。这确实是因为我的内核试图在设备树中为我的linux分配的地址范围之外加载Ramdisk(这是由uboot完成的),通过设置变量initrd_highHi修复了它,我没有这样做就修复了它。但是你提到的原因是正确的。问题是我的Ramdisk被加载到了linux可以看到的RAM内存之外。因此,我只是将env变量initrd_设置为high,以指定linux可以使用的最大地址。在u-boot的bootargs(或DTS,在您的情况下)中定义的限制整个RAM使用的内存映射是针对linux内核的。当您使用u-boot将
initrd
映像加载到RAM中时,还需要将RAM限制通知u-boot。正如您所提到的,您使用u-bbot中的
initrd\u high
实现了这一点,u-boot确实使用它来决定在何处加载映像。:-)哦,是的,我打了一个更大的评论,问了一个问题,但后来意识到你刚才提到的:D。谢谢