This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
我正在使用基于 am62xx 的定制电路板。 我使用08.05.00.00 SDK 为其他供应商的定制电路板移植和验证了 u-boot 源代码。
我在具有单分区的 EMMC 闪存上获得了具有 rootfs 的电路板。
我需要创建一个分区架构来支持 RFS Upgrade、它包含用于分区(boot、rootfs1、rootfs2、Upgrade)。
我执行了 USB DFU 引导并 执行以下步骤来创建两个分区(即 Boot、Rootfs)。
software-dl.ti.com/.../UG-Memory.html
=> setenv uuuid_gpt_disk 714a8708-1c94-4c89-97a7-b2f2ad5256e1
=> setenv uuuid_gpt_rootfs 10b6fe01-dfcd-4efd-baad-ea9a256d4dc5
=> GPT 写 MMC 0 ${partitions}
写 GPT:成功!
MMC 部分 命令不显示新创建的分区,但显示旧分区。
=>MMC 部件
MMC 设备0的分区映射 -- 分区类型:EFI
零件 开始 LBA 结束 LBA 名称
属性
类型 GUID
分区 GUID
1 0x00000022 0x01d59fde "rootfs"
attrs: 0x000000000000
类型: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
GUID: 10b6fe01-dfcd-4efd-baad-ea9a256d4dc5
=>
如果 我执行 MMC 擦除 并再次创建仍显示旧分区的分区。
需要有关从 u-boot 创建 eMMC 分区的帮助。
如何更新/扩展 dfu_alt_info_eMMC 环境变量、以使用主机中的 DFU 工具更新 eMMC。
您好!
software-dl.ti.com/.../UG-Memory.html
您是否按顺序运行了所有命令?
此致!
-洪
是的、我不允许所有命令按顺序执行。 我没有看到 MMC 部件命令的两个分区。
基于 Am62xx 的定制板已经具有一个 rootfs 映像。
您好!
在 eMMC UDA 中通过"GPT..."创建多个分区需要进行一些定制。 这里有一个参考。
github.com/.../README.gpt
请注意、"GPT..." 由社区、而不是 TI 进行维护。
此致!
-洪
Hong、
您能否为我提供任何参考 、即提供一些示例命令的 e2e 论坛/链接。
此致、
Siva.
您好、Hong:
请帮我
如何根据我的当前分区架构更新/扩展 dfu_alt_info_eMMC 环境变量。
此致、
Siva.
Hong、
我在"include/configs/am62x_evm.h"文件中进行了以下更改。
/* Linux 分区*/\
"UID_DISC=${uuid_gpt_disk};"\
"name=boot、size=100Mib、可引导、uuuid=${uuid_gpt_boot};"\
"name=rootfs_a、size=2000Mib、uuid=${uuid_gpt_rootfs_a};"\
"name=rootfs_B、size=2000Mib、uuid=${uuid_gpt_rootfs_B};"\
"name=Upgrade、size=0、uuuid=${uuuid_gpt_up};"\
在 configs/am62x_EVM_A53_defconfig 中、添加了标志 CONFIG_RANMP_UUUIDE=y。
在重新构建和加载 u-boot 二进制文件后、我可以清楚地看到更新的 env 变量。
=> GPT 写 MMC 0 $partitions
写入 GPT:分区列表不完整
错误!
=> printenv uuid_gpt_disk
UUUID_GPT_DISC=46c418bb-5012-7f40-ab73-f7c32aa8c29d
=> printenv uuid_gpt_rootfs_a
UUUID_GPT_rootfs_a=49755608-dd92-9540-b380-d95e542d35b7
=> printenv uuid_gpt_rootfs_b
UUID_GPT_rootfs_B=8008da4e-aa2e-f34b-990e-eb43adde2f67
=> printenv uuid_gpt_up
UUID_GPT_UP=7190bce0-7326-a74d-9a4c-cf36b405d034
=>
请查看我的更改、并让我们知道出现了什么问题。
通过"GPT..."在 eMMC UDA 内创建多个分区时需要进行一些自定义。 这里有一个参考。
github.com/.../README.gpt
请注意、"GPT..." 由社区而不是 TI 进行维护。
我们没有根据您的请求提供 TI SDK 开箱即用示例。 您可以针对您的用户案例执行定制工作。
Hong、
在 "include/configs/am62x_evm.h"文件中、在我的最后一部分中将大小称为-1。 我将";"替换为"\0"。
/* Linux 分区*/\
"UID_DISC=${uuid_gpt_disk};"\
"name=boot、size=100Mib、可引导、uuuid=${uuid_gpt_boot};"\
"name=rootfs_a、size=2000Mib、uuid=${uuid_gpt_rootfs_a};"\
"name=rootfs_B、size=2000Mib、uuid=${uuid_gpt_rootfs_B};"\
"name=Upgrade、size=-1、uuuid=${uuuid_gpt_up};\0"
删除了下面的一个、因为我遇到构建错误。
- /* Android 分区*/\
- "partitions_android="\
- "uuuid_disk=${uuid_gpt_disk};"\
- "name=bootloader、start=5M、size=8M、uuuid=${uuuid_gpt_bootloader};"\
- "name=tiboot3、start=4M、size=1M、uuid=${uuuid_gpt_tiboot3};"\
- "name=uboot-env、start=13m、size=512k、uuid=${uuuid_gpt_env};"\
- "name=misc、start=138k,size=512k,uuid=${uuuid_gpt_misc};"\
- "name=boot_a、size=40m、uuid=${uuid_gpt_boot_a};"\
- "name=boot_b、size=40m、uuid=${uuid_gpt_boot_b};"\
- "name=dtbo_a、size=8M、uuid=${uuid_gpt_dtbo_a};"\
- "name=dtbo_b、size=8M、uuid=${uuid_gpt_dtbo_b};"\
- "name=vbmeta_a、size=64K、uuid=${uuid_gpt_vbmeta_a};"\
- "name=vbmeta_b、size=64k、uuid=${uuid_gpt_vbmeta_b};"\
- "name=super、size=4608M、uuid=${uuid_gpt_super};"\
- "name=metadata、size=16m、uuid=${uuid_gpt_metadata};"\
- "name=persistent,size=32m,uuid=${uuid_gpt_persistent};"\
- "name=userdata、size=-、uuid=${uuuid_gpt_userdata}\0"
通过此更改、我可以获得所需的分区架构。
=>MMC 部件
MMC 设备0的分区映射 -- 分区类型:EFI
零件 开始 LBA 结束 LBA 名称
属性
类型 GUID
分区 GUID
1 0x00000022 0x00032021"BOOT"
attr: 0x000000000004
类型: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
GUID: d9b7d8e1-df34-7746-ac2c-312abec431fb
2 0x00032022 0x0041a021 "rootfs_a"
attrs: 0x000000000000
类型: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
GUID: 9f7b99fe-d45c-6441-9914-05975efd4b84
3 0x0041a022 0x00802021 "rootfs_B"
attrs: 0x000000000000
类型: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
GUID: f689013d-872a-0347-8362-c581699d379f
4 0x00802022 0x01d59fde "升级"
attrs: 0x000000000000
类型: ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
GUID: a1c1066-17f9-8b4e-b179-7363bfb4f687
现在、我要使用 DFU 实用程序将所有二进制文件发送并写入相应分区。
如何更新下面的 env 变量来执行此操作。
printenv dfu_alt_info_mc dfu_alt_info=boot part 0 1;rootfs part 0 2;mlo fat 0 1;u-boot.img fat 0 1;uEnv.txt fat 0 1"
此致、
Siva.
您好 Siva:
您需要从"Dfu_alt_info_eMMC"开始、并自定义它以通过 DFU 刷写 eMMC。
此致!
-洪
是否可以从 uboot 创建 fat/ext4分区?
在 include/environment/ti/k3_dfu.h 中
#define DFU_ALT_INFO_MMC \
"Dfu_alt_info_mc="\
"启动部件1 1;"\
"rootfs part 1 2;"\
" tiboot3.bin fat 1 1;"\
" tispl.bin fat 1 1;"\
"u-boot.img fat 1 1;"\
" uEnv.txt fat 1 1;"\
" sysfw.itb fat 1\0"
我可以将与我的分区相同的内容更新到 DFU_ALT_INFO_MMC 吗?
#define DFU_ALT_INFO_MMC \
"Dfu_alt_info_mc="\
"启动部件0 1;"\
"rootfs_a part 0 2;"\
"rootfs_B 部分0 2;"\
" tiboot3.bin fat 0 1;"\
" tispl.bin fat 0 1;"\
"u-boot.img fat 0 1;"\
" uEnv.txt fat 0 1;"\
" sysfw.itb fat 01\0"
我尝试过这种方法、但 dfu-util 失败了。 我的理解是使用 GPT 而不是基于文件系统创建了一个分区。
如果不可能,如果 Linux 出现,可以使它至少在启动时作为胖分区。
您需要以"Dfu_alt_info_eMMC"开始,并自定义它以通过 DFU 刷写 eMMC。
它是"Dfu_alt_info_eMMC"