繁体   English   中英

U-Boot:影响在SPL中加载哪个内核映像

[英]U-Boot: Influence which kernel image to load in SPL

在U-Boot(来自Denx)中,是否有可能影响SPL部分中从u-Boot部分加载的uImage文件?

对的,这是可能的。 您提供的信息很多,所以我无法确切地说出如何做,但我将举一个示例,说明使用存储多个图像的NAND磁盘在am335x板上执行的操作。

1)查找您的主板正在使用的启动脚本。 通常它们位于./configs/yourboardname.h中 。感兴趣的行应类似于:

    #define CONFIG_EXTRA_ENV_SETTINGS \
<..>
    "nandsrcaddr=0x280000\0" \
    "nandimgsize=0x500000\0" \
    "nandboot=echo Booting from nand ...; " \
        "run nandargs; " \
        "nand read ${loadaddr} ${nandsrcaddr} ${nandimgsize}; " \
        "bootm ${loadaddr}\0" \
<...>

...转换为“从NAND上的nandsrcaddr位置复制内核映像到ram,然后尝试从那里运行它”。

2)由于环境变量存储在NAND的静态位置,因此您可以轻松地在SPL中编写一个简单的函数,该函数使用其地址手动覆盖nandsrcaddr (我不详细介绍如何查找该地址,这取决于您的配置)。 之后,重新计算CRC并将其写入。 请参阅环境的struct environment_s

3)在SPL board_init_r函数( ./common/spl/spl.c )中添加一个开关,以便在满足特定条件时(启动过程中按下按钮,设置跳线等),调用函数(请参见2),并且地址为内核映像已更改。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM