1

我已经使用 meta-tegra 层使用 yocto 为我的 Jetson Nano 构建了一个图像。

此版本使用 u-boot 作为引导加载程序,它被设置为将环境保存在 MMC 分区 (mmcblk0p14) 上。

gdisk -l /dev/mmcblk0显示以下内容:

Number  Start (sector)    End (sector)  Size       Code  Name
...
  14        20996096        20998143   1024.0 KiB  8300  UBOOTENV
...

扇区大小为 512。

然后我配置u-boot-tegra/include/configs/p3450-porg.h了:

...
/* Env is located in it's own partition */
#define CONFIG_ENV_IS_IN_MMC
#define CONFIG_SYS_MMC_ENV_DEV      1
#define CONFIG_ENV_OFFSET       (20996096 * 512)
...

其中CONFIG_ENV_OFFSET= Start_Sector * Block_Size

这很好用(据我所知),因为当我使用saveenv.

但是,我在 u-boot shell 中打印它时得到的环境与我使用fw_printenvu-boot 工具打印环境时得到的环境不同。我已将其设置/etc/fw_env.config为:

# Device name   Device offset   Env size
/dev/mmcblk0p14       0          0x2000

所以我收集到的是,要么fw_env.config设置错误,要么 u-boot 环境保存在 MMC 上的其他地方,没有分区 14。

有人对我可以尝试的建议有什么建议吗?

****************************************************** ***编辑:********************************************* ********

执行dd if=/dev/mmcblk0p14 of=tmp.txt和阅读 tmp.txt 文件显示了所显示的环境,fw_printenv而不是我在 u-boot shell 中看到的环境。

所以配置中一定有问题u-boot-tegra/include/configs/p3450-porg.h。我只是想知道当我执行saveenv...时它实际上将环境写入何处

知道我可以尝试改变什么吗?

4

1 回答 1

2

正如对问题的评论所述,偏移量是一个 32 位整数,因此试图给它的值超过 4,294,967,295(即 20996096 * 512)是行不通的。

为了解决这个问题,我重新安排了我的分区方案,将我的 uboot 环境分区作为分区 1 而不是 14,并相应地更改了fw_env.configp3450-porg.h补丁。

于 2019-10-25T09:41:42.047 回答