ENV2
Q1:目前Ikayaki中ENV支持了备份分区吗?
支持,但是需手动开启,默认关闭。
Q2:目前Ikayaki的ENV备份机制是怎么样的?
-
nand flash的ENV分为两个分区:ENV0/ENV1 两个分区分别占用两个block(2*128K),实际数据使用的长度是4K,分区内支持跳一个坏块
参考
image/configs/p3/spinand.ubifs.partition.dualenv.dispcam.config
ENV分区配置 -
nor flash因为不会出现坏块,UBOOT_ENV 分区大小为2*4K
参考
image/configs/p3/nor.squashfs.partition.dualenv.dispcam.config
ENV分区配置
Q3:如何打开ENV备份?
1.Uboot需要打开CONFIG_MS_NAND_ENV_BACKUP/CONFIG_MS_NOR_ENV_BACKUP (NAND / NOR)
NAND: ![](media/env2_1.png) NOR: ![](media/env2_2.png) 参考:configs/pioneer3_dualenv_defconfig / configs/pioneer3_dualenv_spinand_defconfig
2.project 分区配置需要增加备份的ENV分区,参考:Q:目前Ikayaki的ENV备份机制是怎么样的?
Q3:ENV的两个备份分区,数据是否完全一致?
除了第一次烧录是完全一致之外,后面每次saveenv都是交替保存,所以两个ENV之间会相差一次saveenv的结果,如果想要保持完全一致,setenv之后需要做两次saveenv动作即可
Q4: 目前Ikayaki在kernel起来后,支持通过user mode去设置ENV变量吗?
支持,通过uboot util提供的fw_printenv的bin即可完成设置
Q5:通过fw_printenv去设置ENV支持env备份机制吗?
支持,直接使用即可