TI中文支持网
TI专业的中文技术问题搜集分享网站

TDA4VM-Q1: uboot中环境变量默认存储到SD卡,如何修改

Part Number:TDA4VM-Q1Other Parts Discussed in Thread:TDA4VM

您好

     我们在尝试emmc启动TDA4,方法如下:

一、使用sd卡启动UBoot,然后在u-boot 下执行如下操作将boot刷新到emmc boot0分区

二、poweroff,然后设置启动模式为emmc(boot)模式

三、poweron,再次进入UBoot(emmc启动正常),修改环境变量并保存时报错

四、尝试了插入SD,此操作成功。发现saveenv默认保存到SD卡下,SD卡boot分区出现bBoot.env文件

所以问题是如何保存环境变量到默认环境,而不是到SD卡下

Nancy Wang:

我建议您查一下board-support/u-boot-2021.01/configs/j721e_evm_a72_defconfig下的配置,看一下能否修改。

+#CONFIG_ENV_IS_IN_FAT=y+#CONFIG_ENV_FAT_DEVICE_AND_PART="1:1"+CONFIG_ENV_IS_IN_MMC=y

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1098798/tda4vm-tda4vm-evm-cannot-save-env-to-ospi-flash

e2e.ti.com/…/tda4vm-save-environment-variables-on-the-uboot-command-line

,

zhang xuelong:

你好,是按照上述方法修改的,但是最终没有生效。怀疑是操作流程有问题,操作流程如下

一、TDA4 UBoot模式下emmc为mmc 0设备,下面宏是否需要修改为0:1

CONFIG_ENV_FAT_DEVICE_AND_PART="1:1"

二、修改后重新编译UBoot,编译方法如下教程:

https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-jacinto7/08_05_00_08/exports/docs/linux/Foundational_Components/U-Boot/UG-General-Info.html#build-u-boot

三、编译过程中需要参数CONFIG_ENV_OFFSET

在board-support/u-boot-2021.01/configs/j721e_evm_a72_defconfig中添加

CONFIG_ENV_OFFSET=0x680000

该值参考为emmc boot0模式下的偏移值

三、编译成功后,将out/a72/目录下找到u-boot.img复制到emmc UDA分区

四、UBoot启动成功,UBoot模式下saveenv还是有问题

,

zhang xuelong:

此外,我们希望修改default envirment为emmc启动,目前考虑修改j721e_evm_a72_defconfig中CONFIG_BOOTCOMMAND,您这边有什么好的建议么

,

Nancy Wang:

确认一下,您使用的SDK版本是多少?目前是希望将环境变量默认存储到emmc是吗?我需要详细信息升级到英文论坛,会有相关专家帮您详细分析看看。

,

zhang xuelong:

当前使用SDK版本08_06_00_11,emmc保存问题已解决,在其他帖子里看到相关的问题,CONFIG_ENV_FAT_DEVICE_AND_PART="1:1"需去掉。

是的,我们希望将启动相关全部移到emmc,默认启动选项也设置成emmc

,

Cherry Zhou:

您好,

我们升级到英文论坛看下,链接如下,请持续关注(note:如果问题有描述不清晰或不完整的情况请及时告知我):

e2e.ti.com/…/tda4vm-q1-how-to-store-environment-variables-to-emmc-by-default

,

Cherry Zhou:

您好,

如果您希望默认将环境数据保存到 eMMC,请参阅以下帖子:

e2e.ti.com/…/4560775

,

zhang xuelong:

您好,环境变量保存到EMMC已解决,多谢!现在的问题如何修改UBoot使启动选项默认为emmc。

看到有帖子说SDK8.0之前的版本都是默认EMMC启动,即default envd的启动选项为emmc,我们参考了之前的版本尝试修改CONFIG_BOOTCOMMAND暂时没有生效。

,

Cherry Zhou:

您好,

可以看下下面的SDK文档,其中有关于如何启用从 EMMC boot:

https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-jacinto7/08_06_00_11/exports/docs/linux/Foundational_Components/U-Boot/UG-Memory.html

,

zhang xuelong:

您好,按照这个流程操作,UBoot启动后找不到kernel文件,需要重新设置mmcdev 和bootpart的值,才能正常启动。

所以想知道如何在UBoot中修改default env中mmcdev和bootpart这两个值,我们使用的SDK版本08.06.00.11

,

Cherry Zhou:

好的我们向工程师再询问下。

,

Cherry Zhou:

您好,

抱歉回复晚了,工程师这两天会做一些实验,看下是否可以获得一组经过验证的指令来设置 U-Boot 中的环境。 目前,假设的方法有以下两种:

1. 运行"saveenv",这是默认 u-boot 的一部分命令。 可能有一组命令用于为保存默认环境的位置指定偏移量,这些命令需要设置为 eMMC 布局部分中"environment"的文档中指定的偏移量: https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-jacinto7/08_06_00_11/exports/docs/linux/Foundational_Components/U-Boot/UG-Memory.html#booting-tiboot3-bin-tispl-bin-and-u-boot-img-from-emmc-boot-partition-for-k3-class-of-socs

2. 修改和刷写 uEnv.txt。 我们可以创建一个 uEnv.txt 文件并在此文件中定义这些默认值。 然后使用与闪存 u-boot.img 和其他引导二进制文件时类似的命令将其刷写到 eMMC 布局部分的"environment"位置。

工程师会试下上述两种方法。 如果您有带宽的话,也可以试一试。

,

zhang xuelong:

好的,多谢。uEnv.txt内容格式是什么样的,如果你们测试成功了,麻烦发一份demo。

,

Cherry Zhou:

好的我们会尽量在这周五前给您答复。

,

Cherry Zhou:

您好,

请看下以下答复:

工程师这边能够设置 eMMC boot,以下是一些可能会卡住的地方:

1. 要从 eMMC boot,请确保将 DIP 开关从 microSD 卡引导模式设置为 eMMC 引导模式。 eMMC boot应该是这样:SW8 1000_0000 sw9 0100_0000 

2. 要将环境变量保存到 eMMC:

A. 可以参考以下帖子,添加行更改:

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1185260/tda4vm-why-emmc-boot-does-not-take-effect/4464968#4464968

B. 运行 "make u-boot"

C. 在使用新增配置构建 u-boot 时,会要求提供"Environment offset"。 对于 TDA4VM,eMMC 上环境变量的偏移量为0x680000。 示例:Environment offset (ENV_OFFSET) [] (NEW) 0x680000

D. 将 u-boot 二进制文件重新刷新到 microSD 卡,示例: sudo cp board-support/u-boot_build/a72/u-boot.img board-support/u-boot_build/a72/tispl.bin board-support/u-boot_build/r5/tiboot3.bin /media/$USER/boot

E. 根据section 3.1.1.5重新刷新 eMMC: https://software-dl.ti.com/jacinto7/esd/processor-sdk-linux-jacinto7/08_06_00_11/exports/docs/linux/Foundational_Components/U-Boot/UG-Memory.html

F. 将 DIP 开关切换到 eMMC boot mode后,应该能够运行"setenv xxxx y"来设置环境变量,并在结尾运行"saveenv"将环境变量保存到 eMMC。 示例:setenv mmcdev 0 

G. 为了进行验证,请将电路板重新启动至 eMMC boot mode并使用 printenv 查看环境变量。 示例:printenv mmcdev 

如果尚未建议使用 eMMC,建议您可以查看以下app note: 

https://www.ti.com/lit/an/spracy5/spracy5.pdf?ts=1679291807661&ref_url=https%253A%252F%252Fwww.google.com%252F

AppNote 介绍了 DIP 开关设置以及每个引导二进制文件应转到的偏移量。

您先试下以上步骤,看下是否会卡住,如果有卡住,还请分享下错误的log。

赞(0)
未经允许不得转载:TI中文支持网 » TDA4VM-Q1: uboot中环境变量默认存储到SD卡,如何修改
分享到: 更多 (0)

© 2024 TI中文支持网   网站地图 鲁ICP备2022002796号-1