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。