【问题标题】:setup environment in u-boot SPL在 u-boot SPL 中设置环境
【发布时间】:2021-10-19 05:46:47
【问题描述】:

u-boot SPL 中是否有加载环境变量的选项? 我有一个设备(Arria10 SoC),其中一部分 FPGA 固件通过使用固件加载程序 API 加载到 u-boot SPL 中。 这允许使用环境变量 storage_interfacefw_dev_part 来定义存储。

我能够在 u-boot 中设置变量并将它们存储到 MMC 设备。 u-boot 也能正确读取变量。但在 SPL 中,环境变量并未初始化。

是否可以在 SPL 中加载它并使用 MMC 中的值?

感谢任何提示!

【问题讨论】:

    标签: embedded-linux bootloader u-boot


    【解决方案1】:

    通过调用 env_init() 初始化环境。其他板在板或架构特定的 spl.c 文件中通过以下任一函数调用此函数:

    • board_boot_order()
    • board_init_f()
    • board_init_r()
    • spl_start_uboot()

    只需 grep for 'env_init(' 即可找到代码位置。

    您必须实现其中一项功能。

    【讨论】:

    • 感谢您的信息!我能够专门为我们的开发板调用“spl_board_init()”函数中的“env_init()”函数。我还必须调用 'mmc_initialize(gd->bd);' 进行 MMC 初始化,调用 'env_load()' 来从 mmc 加载环境。
    • 如果您认为这对所有 arria10 板的用户都有用,您介意向上游发送补丁吗?
    • 是的,也许它对其他 arria10 用户有用。我认为默认情况下它应该没有 MMC 和 SPL u-boot 中的环境初始化,但一个额外的配置选项可以处理这个问题。现在,我正在开发以下分支:github.com/altera-opensource/u-boot-socfpga,而且很长一段时间以来,这些更改都没有被推回source.denx.de/u-boot/u-boot。不幸的是,我不确定谁是我可以向其发送补丁的 socfpga 存储库的维护者。你有什么想法或建议吗?
    • 我不知道 Rocketboards.org 的幕后黑手。 Upstream U-Boot 带有 scripts/get_maintainer.pl,它决定谁应该收到带有补丁的电子邮件。请使用 'git send-email' 进行发送,以避免电子邮件客户端出现格式问题。
    猜你喜欢
    • 1970-01-01
    • 2020-06-26
    • 2019-01-19
    • 1970-01-01
    • 2011-06-28
    • 1970-01-01
    • 2011-06-02
    • 2016-08-27
    • 2020-02-20
    相关资源
    最近更新 更多