使用“fw_env.config”和“CONFIG_ENV_OFFSET”配置引导加载程序

Configuring the bootloader with `fw_env.config` and `CONFIG_ENV_OFFSET`

我有一个以前构建的映像,其中 fw_env.config 的内容是(使用 u-boot):

/dev/mmcblk0 0x400000 0x4000
/dev/mmcblk0 0x800000 0x4000

我的理解是否正确,这告诉了 u-boot 分区布局?这也是我想在新图像上使用的布局。

我有一个 libubootenv\%.bbappend 应该将上面的布局复制到新图像的 fw_env.config 中(即使我没有说到重点,但要测试它是否真的有效) .还有 u-boot 有关布局的配置参数,可以使用以下方式设置:

CONFIG_ENV_OFFSET
CONFIG_ENV_OFFSET_REDUND

我是否理解正确,这两个(fw_env.configCONFIG_ENV_OFFSET[_REDUND])定义相同的东西并且它们必须匹配?或者在引导时一个优先于另一个所以它实际上足以设置 u-boot 的 CONFIG_ENV_OFFSET? 除此之外,我不清楚的是:这些是由 bsp 或硬件严格定义的,还是我可以更改这些变量以实现向后兼容性?我问的原因是这些值在从 warriordunfell 时有所不同。这意味着最后一个问题的答案是 'yes, they can be changed'。这对我来说仍然有点难以理解,因此我想在搞砸某些系统之前先确认一下。

也非常欢迎任何关于 material 的进一步阅读和研究的提示。

感谢 yocto IRC 频道的活跃社区支持,我得到了以下答案:

两个定义(fw_env.configCONFIG_ENV_OFFSET[_REDUND])必须匹配。最重要的是 CONFIG_ENV_SIZE 应该被定义。 可以配置参数,因为它们表示存储介质中的地址。因此,它们并没有被 bsp 严格预测。

感谢 qschulz。非常感谢!