EMMC中存储的UBOOT环境变量在哪里?

发布于 2025-01-23 10:42:55 字数 1275 浏览 4 评论 0原文

我正在尝试了解Uboot将环境变量存储在emmc中的位置。我在Uboot Config File -uboot中有以下设置 -

CONFIG_ENV_IS_NOWHERE=y
CONFIG_ENV_IS_IN_MMC=y
CONFIG_SYS_MMC_ENV_DEV=2
CONFIG_SYS_MMC_ENV_PART=0
CONFIG_ENV_SIZE=0x4000
CONFIG_ENV_OFFSET=0x400000
CONFIG_ENV_SECT_SIZE=0x10000

UBOOT能够将ENV变量保存在EMMC中,并且可以从Linux读取它们。从Linux设置的变量也可以在Uboot中读取。我不明白哪个分区具有环境变量?

来自Linux的输出LSBLK -MMCBLK2BOOT0

NAME         MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
mtdblock0     31:0    0   16M  0 disk 
mmcblk2      179:0    0  7.3G  0 disk 
|-mmcblk2p1  179:1    0 83.2M  0 part /run/media/mmcblk2p1
|-mmcblk2p2  179:2    0  1.7G  0 part /
|-mmcblk2p3  179:3    0 83.2M  0 part /run/media/mmcblk2p3
|-mmcblk2p4  179:4    0    1K  0 part 
|-mmcblk2p5  179:5    0  1.7G  0 part /run/media/mmcblk2p5
`-mmcblk2p6  179:6    0    1G  0 part /run/media/mmcblk2p6
mmcblk2boot0 179:32   0    4M  1 disk 
mmcblk2boot1 179:64   0    4M  1 disk 

是尤布特所在的位置,其大小为4MB,考虑到环境在MMCBLK2设备中保存在0x400000的偏移量中,应在MMCBLK2BOOT0之后放置在MMCBLK2BOOT0之后,但如果我丢弃了MMCBLK2BOOT1的点字符串“字符串 /dev /mmcblk2boot1”,我什么都没有。

我提供了一个文件/etc/fw_config,该文件由fw_printenv和fw_saveenv使用,此文件包含“/dev/mmcblk2 0x400000 0x10000”。所有设置都表明,Uboot环境位于MMCBLK2设备中的0x400000的偏移。 LSBLK输出中列出的哪个分区中有任何指针保存了施托级环境变量。

谢谢, Vinay

I'm trying to understand where uboot stores the environment variables in emmc. I have the following set in the uboot config file -

CONFIG_ENV_IS_NOWHERE=y
CONFIG_ENV_IS_IN_MMC=y
CONFIG_SYS_MMC_ENV_DEV=2
CONFIG_SYS_MMC_ENV_PART=0
CONFIG_ENV_SIZE=0x4000
CONFIG_ENV_OFFSET=0x400000
CONFIG_ENV_SECT_SIZE=0x10000

uboot is able to save the env variables in emmc and I can read them from Linux. Variables set from Linux are also readable in uboot. I fail to understand which partition has the environment variables?

Output lsblk from Linux -

NAME         MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
mtdblock0     31:0    0   16M  0 disk 
mmcblk2      179:0    0  7.3G  0 disk 
|-mmcblk2p1  179:1    0 83.2M  0 part /run/media/mmcblk2p1
|-mmcblk2p2  179:2    0  1.7G  0 part /
|-mmcblk2p3  179:3    0 83.2M  0 part /run/media/mmcblk2p3
|-mmcblk2p4  179:4    0    1K  0 part 
|-mmcblk2p5  179:5    0  1.7G  0 part /run/media/mmcblk2p5
`-mmcblk2p6  179:6    0    1G  0 part /run/media/mmcblk2p6
mmcblk2boot0 179:32   0    4M  1 disk 
mmcblk2boot1 179:64   0    4M  1 disk 

mmcblk2boot0 is where uboot is located which is 4MB in size, considering the environment is saved at an offset of 0x400000 in mmcblk2 device, it should be located just after mmcblk2boot0 which points to the parition mmcblk2boot1, but if I dump the strings "strings /dev/mmcblk2boot1", I get nothing.

I have provided a file /etc/fw_config which is used by fw_printenv and fw_saveenv, this file contains "/dev/mmcblk2 0x400000 0x10000". All the settings point to the fact that uboot environment is located at an offset of 0x400000 in mmcblk2 device. Any pointers on which partition listed in output of lsblk holds the uboot environment variables..?

Thanks,
Vinay

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

近箐 2025-01-30 10:42:55

令人困惑的是,config_sys_mmc_env_part不参考您在linux下看到的/dev/dev/mmcblk2p1之类的sofware分区,而是/ dev/mmcblk2(分区0)或/dev/mmcblk2boot0(分区1)。

The confusing thing here is that CONFIG_SYS_MMC_ENV_PART does not refer to sofware partitions, such as /dev/mmcblk2p1 that you see under Linux, but rather hardware partitions such as /dev/mmcblk2 (partition 0) or /dev/mmcblk2boot0 (partition 1).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文