2014-02-13 48 views
1

下面是U-Boot的帮助bootm命令的摘录:bootm没有设备树BLOB

bootm [addr [arg ...]] 

- boot application image stored in memory 
    passing arguments 'arg ...'; when booting a Linux kernel, 
    'arg' can be the address of an initrd image 
    When booting a Linux kernel which requires a flat device-tree 
    a third argument is required which is the address of the 
    device-tree blob. To boot that kernel without an initrd image, 
    use a '-' for the second argument. If you do not pass a third 
    a bd_info struct will be passed instead 

,我可以看到在上面bootm [addr]应该做工精细,arg是可选的。
所以像bootm 0x1000000应该工作。
tftp把linux内核的uImage改为0x1000000,然后想用上面的命令。
难道不可能吗?

它工作正常,当我使用bootm 0x1000000 - 0x3000000,其中第三个参数是dtb的地址。
但是当我尝试不DTB启动,它停在 “解压缩内核映像”

+1

尽管您的描述看起来足够清晰,但实际的控制台文字会更好(以防万一您忽略了某些内容)。您还应该提供更多信息,例如内核版本和SoC。一些SoC依赖于来自U-Boot的数据来解压其他的不是,例如[Freescale](http://stackoverflow.com/questions/18378563/how-do-i-find-arm-linux-entry-point - 当-IT-失败到解压/ 18392238#18392238)。尽管我见过这个问题的十多个实例通常与不正确的加载地址有关。 – sawdust

回答

0

您正在使用可能只支持设备树BLOB(DTB)根据启动时的内核。您将不得不确保将内核配置设置为支持传统引导。确保您的u-boot也支持传统引导至关重要。就像锯屑一样,提供SoC,内核,u-boot信息总是有帮助的。

+0

“您正在使用的内核可能仅支持基于设备树blob(dtb)的启动”,对于我的情况,内核已由menuconfig配置。我实际上从中间接管了这个项目,并没有意识到内核是这样配置的,而是有这样一个menuconfig选项可用!谢谢。 – mdsingh

+0

你能告诉内核配置以支持在新内核中的传统引导吗?说3.10 – zappy