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.

[参考译文] AM625:从 u-boot 进行 AM625 EMMC 分区。

Guru**** 2017950 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1299989/am625-am625-emmc-partitioning-from-u-boot

器件型号:AM625

我正在使用基于 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"