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:AM625:eMMC:需要帮助从 eMMC 独立启动器件

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1256657/am625-am625-emmc-need-help-to-boot-device-from-emmc-as-a-standalone

器件型号:AM625
主题中讨论的其他器件: TPS65219TMP100TLV755

您好,Expert,

我们有 AM62x SK EVM 目标。

说明使用 DFU 方法完成 eMMC 刷写。

我们每次需要提供以下命令来引导内核时、都在 u-boot 控制台的 eMMC 引导上观察到。

在 U-boot 命令提示符中

#=> setenv mmcdev 0

#=>setenv bootpart 0

#=>引导

这是不是以独立的方式获得 eMMC 引导? (不使用上述命令)

请查看以下 日志。

停止自动引导的任意关键:0
=> setenv mmcdev 0
=> setenv bootpart 0
=>引导
切换到分区#0,确定
mmc0 (第0部分)是当前器件
在器件0上找到 SD/MMC
加载"boot.scr"失败
**无法识别的文件系统类型**
在102ms (172MiB/s)内读取18395648字节
58972字节在3ms 内读取(18.7MiB/s)
##平展设备树 Blob、88000000
在0x88000000使用 FDT Blob 引导
正在将设备树加载到000000008feee000,结束00008fffff...确定

正在启动内核...

谢谢。

苏拉杰

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

    嗨、Suraj、

    从 eMMC 引导需要上述命令。 如果要保存 设置了这些变量的环境、请发出以下命令:

    setenv mmcdev 0
    setenv bootpart 0
    saveenv

    这将确保在启动时不需要发出上述命令。

    此致、

    兰道夫

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

    您好  

    感谢您的答复!

    我们尝试了相同的操作、但收到以下 U-boot 控制台上的错误消息。

    正在将环境保存到 MMC... 写入到 MMC(0 )... mmc:块 号0x3500 eceeds max (2000 )

    失败

    失败

    我们需要额外提供什么? 或者 别的吗?

    谢谢。

    Suraj.

     

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

    您好、Suraj、

    我会将您的问题发送给我们的 U-Boot 专家以征求意见。

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

    您好!

    写入 eMMC 时似乎会越界。 您能否将实验更改保存到 eMMC 并更改为 boot1:

    diff --git a/configs/am62x_evm_a53_defconfig b/configs/am62x_evm_a53_defconfig
    index d9bf9a5b7d..f3af0a6e51 100644
    --- a/configs/am62x_evm_a53_defconfig
    +++ b/configs/am62x_evm_a53_defconfig
    @@ -82,7 +82,7 @@ CONFIG_MULTI_DTB_FIT=y
     CONFIG_SPL_MULTI_DTB_FIT=y
     CONFIG_SPL_MULTI_DTB_FIT_NO_COMPRESSION=y
     CONFIG_ENV_IS_IN_MMC=y
    -CONFIG_SYS_MMC_ENV_PART=1
    +CONFIG_SYS_MMC_ENV_PART=2
     CONFIG_NET_RANDOM_ETHADDR=y
     CONFIG_DM=y
     CONFIG_SPL_DM=y
    


    ~朱迪斯

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

    您好!

    感谢您的答复!

    刚刚应用了以上更改并进行了测试。

    显示相同的误差。  

    您可以交叉检查一次吗?  未保存环境

    谢谢。

    Suraj.

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

    或者、您 也可以直接在 U-Boot 源码树中进行这些更改。 无需仅仅依靠存储在某个位置的 ENV 来使系统启动。

    安德烈

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

    感谢您的答复!

    我们可以精确地应用这些更改。

     CONFIG_SYS_MMC_ENV_PART=2 变革是否足够?  

    谢谢。

    Suraj.

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

    您好、Suraj、

    您是否可以在 u-boot 中尝试以下更改:

    diff --git a/include/configs/am62x_evm.h b/include/configs/am62x_evm.h
    index 97bd7c1fd7..641ad8cd92 100644
    --- a/include/configs/am62x_evm.h
    +++ b/include/configs/am62x_evm.h
    @@ -137,8 +137,8 @@
     /* U-Boot MMC-specific configuration */
     #define EXTRA_ENV_AM625_BOARD_SETTINGS_MMC                             \
            "boot=mmc\0"                                                    \
    -       "mmcdev=1\0"                                                    \
    -       "bootpart=1:2\0"                                                \
    +       "mmcdev=0\0"                                                    \
    +       "bootpart=0:2\0"                                                \
            "bootdir=/boot\0"                                               \
            "rd_spec=-\0"                                                   \
            "init_mmc=run args_all args_mmc\0"                              \
    jmende27@judy-hp:~/src/ti-uboot/ti-08.06-emmc-boot-no-nitin-fix$ 
    
    

    然后、您构建的 tiboot3.bin、tispl.bin 和 u-boot.img 将刷写到 eMMC。 请告诉我这是否起作用。

    ~朱迪斯

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

    Judith、您好!

    未在更改后应用并进行了测试。

    -CONFIG_SYS_MMC_ENV_PART=1
    +CONFIG_SYS_MMC_ENV_PART=2

    #define EXTRA_ENV_AM625_Board_SETTINGS_MMC \
    "引导=MMC\0"\
    -"mmcdev=1\0"\
    -"bootpart=1:2\0"\
    +"mmcdev=0\0"\
    +"bootpart=0:2\0"\
    "bootdir=/boot\0"\
    "RD_SPEC=-\0"\
    "init_mmc=run args_all args_mc\0"

    观察到了同样的情况。 即将出现相同的错误。

    香港特区政府

    Saving Environment to MMC... Writing to MMC(0) ...  MMC: block number 0x3500 eceeds max(2000)

    Failed

    Failed

    *****************************************************************************************

    Above changes not supporting for that so.

    Thanks,

    Suraj.

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

    您好、Suraj、

    您是否尝试执行以下命令:

    => saveenv

    或者在引导时是否会在引导日志中打印此信息?
    请显示引导日志、以便更好地了解您在什么位置看到此错误。

    ~朱迪斯

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

    您好!

    理解当您执行以下操作时会发生这种情况:

    => saveenv

    您说即使未执行 saveenv 命令、仍会看到错误?

    我之所以这样说、是因为如果您是在 u-boot 环境中编译的、就不需要执行 saveenv 命令。

    另一个问题是、您如何构建 u-boot?

    ~朱迪斯

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

    Judith、您好!

    感谢您的答复!

    这是我们针对独立启动而获得的日志。

    U-Boot SPL 2021.01-g999 (8月21 2023 - 01:48:31 +0000)
    SYSFW ABI:3.1 (固件版本0x0008'8.6.1--v08.06.01 (Chill Capybar')
    尝试从 MMC1引导


    U-Boot 2021.01-g999 (8月21 2023 - 01:48:31 +0000)

    SoC:AM62X SR1.0 GP
    型号:载波控制 am625开发板
    DRAM:2 GiB
    MMC@fa10000: 0, MMC@fa00000: 1, MMC@fa20000: 2
    正在从 MMC 加载环境... MMC:块编号0x3500超过 max (0x2000)
    ***警告-!读取失败,使用默认环境

    输入:串行@2800000
    输出:串行@2800000
    ERR:串行@2800000
    net:am65_cpsw_nuss_port Ethernet@8000000port@1:无效的 PHY 模式'rmsII-rxid'、端口1
    未找到以太网。

    按任意键以停止自动引导:0
    I2C_WRITE:等待数据 ACK 时出错(状态= 0x116)
    pca953x GPIO@22:读取输出寄存器时出错
    卡片未对电压选择作出响应! :-110
    卡片未对电压选择作出响应! :-110
    I2C_WRITE:等待数据 ACK 时出错(状态= 0x116)
    pca953x GPIO@22:读取输出寄存器时出错
    卡片未对电压选择作出响应! :-110
    I2C_WRITE:等待数据 ACK 时出错(状态= 0x116)
    pca953x GPIO@22:读取输出寄存器时出错
    卡片未对电压选择作出响应! :-110
    I2C_WRITE:等待数据 ACK 时出错(状态= 0x116)
    pca953x GPIO@22:读取输出寄存器时出错
    卡片未对电压选择作出响应! :-110
    libfdt FDT_check_header ():FDT_ERR_BADMAGIC
    未配置 FDT 存储器地址。 请配置
    通过"FDT addr "添加 FDT 地址

    "命令。
    正在中止!
    错误的 Linux ARM64图像魔法!
    =>


    另一个问题是、您如何构建 u-boot?

    -->

     我们正在构建 Yocto seteup。

    使用 DevTool 创建工作区、应用补丁后进行编译。

    如果需要更多信息、请告诉我。

    谢谢。

    Suraj.

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

    您好!

    您是否在 u-boot 中修改了以下任何环境变量?


    配置_ENV_大小
    CONFIG_ENV_OFFSET
    CONFIG_ENV_SECT_SIZE

    "将环境保存到 MMC... 正在写入 MMC (0)... MMC:块编号0xxx 超过 max (0xxx)"通常在这些 u-boot 环境变量不正确时出现。

    ~朱迪斯

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

    如果 saveenv 命令不起作用、另一种方法是使用 uEnv.txt:

    写入 MMC/EMMC
      => env export–t $loadaddr
      => fatwrite mmc ${mmcdv}${loadaddr}${bootenvfile}${fileSize}

    从 MMC/EMMC 读取
    默认情况下、运行 envboot 将从 MMC/EMMC 分区(基于
    mmcdev)并设置环境。

    如果需要手动完成、则可以从
    然后导入文件系统

      => fatload MMC ${mmcdv}${loadaddr}${bootenvfile}
      => env import–t ${loadaddr}${filesize}

    ~朱迪斯