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.

[参考译文] Linux/AM6548:uBoot/AM6548:从 ospi 闪存引导时出现 SD 卡超时错误

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/744359/linux-am6548-uboot-am6548-sd-card-timeout-error-when-boot-from-ospi-flash

器件型号:AM6548

工具/软件:Linux

尊敬的 TI:

从 osi 闪存(MMC0)引导时遇到以下错误、因此无法访问 SD 卡(MMC1)。

MMC:sdhci@0:0、sdhci@0:1
sdhci_send_command:MMC:1忙超时增加到:200ms。
sdhci_send_command:MMC:1忙超时增加至:400ms。
sdhci_send_command:MMC:1忙超时增加到:800ms。
sdhci_send_command:MMC:1忙超时增加至:1600ms。
sdhci_send_command:MMC:1忙超时增加至:3200ms。
sdhci_send_command:MMC:1忙超时。

但当我从 SD 卡引导时、它可以工作。 在这种情况下、MMC0和 MMC1都能正常工作。

我的设置:

AM6548 EVM 板

处理器 SDK 05_01_00_11

谢谢

BS

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

    您能否提供整个启动日志(而不仅仅是其中的一部分)?

    确保您遵循以下用户指南:

    software-dl.ti.com/.../Foundational_Components_U-Boot.html

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

    我使用三个文件创建 flash.bin:tiboot3.bin 和 tispl.bin 以及 u-boot.img、它们的顺序为"mtdparts=47040000.ospi.0:512k (ospi.tiboot3)、2m (ospi.tispl)、5m (ospi.u-boot)、128k (ospi.env)、-@8m (ospi)、然后将 I 刻录到 spiflash.bin 闪存中。 但从 ospi 闪存引导时遇到了以下问题。

    u-boot 的整个启动日志如下所示:

    U-Boot SPL 2018.01-00444-g4b39a3d-脏(2018年11月5日- 16:55:29)
    SYSFW ABI:2.4 (固件版本0x0012 '18.8.2-v2018.08b (好奇心)')
    尝试从 SPI 引导
    在 ARM64内核上启动 ATF...

    注意: BL31:v1.5 (发布):ti2018.03-RC1
    注意: BL31:构建时间:2018年10月 6日02:55:53
    I/TC:
    I/TC:OP-TEE 版本:3.2.0-81-g48952f9-DEV #1 10月6日星期六 03:34:58 UTC 2018 Aarch64
    I/TC:已初始化

    U-Boot SPL 2018.01-00444-g4b39a3d-脏(2018年11月5日- 16:55:25)
    尝试从 SPI 引导


    U-Boot 2018.01-00444-g4b39a3d-脏 污(2018年11月5日- 16:55:25 +0800)

    型号:德州仪器 AM654基板
    I2C:  错误、可能是错误的 i2c 适配器0最大值0
    就绪
    DRAM: 4 GiB
    MMC:  sdhci@0:0、sdhci@0:1
    sdhci_send_command:MMC:1忙超时增加到:200ms。
    sdhci_send_command:MMC:1忙超时增加至:400ms。
    sdhci_send_command:MMC:1忙超时增加到:800ms。
    sdhci_send_command:MMC:1忙超时增加至:1600ms。
    sdhci_send_command:MMC:1忙超时增加至:3200ms。
    sdhci_send_command:MMC:1忙超时。
    sdhci_send_command:MMC:1忙超时。
    **设备 MMC 1 **错误
    使用默认环境

    错误,可能是错误的 i2c 适配器0最大值0
    IN:   串行@2800000
    输出:  串行@2800000
    ERR:  串行@2800000
    网络:
    警告:cpsw_Nuss@046000000、使用 ROM 中的 MAC 地址
    eth0:cpsw_uss@046000000
    按任意键停止自动引导: 0
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_send_command:MMC:1忙超时。
    在器件1上找到 SD/MMC
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_send_command:MMC:1忙超时。
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_send_command:MMC:1忙超时。
    **设备 MMC 1 **错误
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_send_command:MMC:1忙超时。
    **设备 MMC 1 **错误
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_send_command:MMC:1忙超时。
    **设备 MMC 1 **错误
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_send_command:MMC:1忙超时。
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_send_command:MMC:1忙超时。
    **设备 MMC 1 **错误
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_send_command:MMC:1忙超时。
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_set_clock:等待 cmd 和数据禁止超时
    sdhci_send_command:MMC:1忙超时。
    **设备 MMC 1 **错误

     

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

    您好,

    现在、我启用宏'CONFIG_ENV_is_in_SPI_FLASH_y'以将环境变量保存到 SPI 闪存(__LW_AT__以前将其保存在 SD 卡中)、我不会遇到上述问题、引导加载程序可以从 SPI 闪存启动、然后引导内核并从 SD 卡安装 rootfs。 因此、通过这种方式、我们可以绕过陷阱! 但仍然找不到根本原因...

    整个引导加载程序日志如下所示:

    U-Boot SPL 2018.01-00446-g02efeaa (2018年11月15日- 10:19:59)
    SYSFW ABI:2.4 (固件版本0x0012 '18.8.2-v2018.08b (好奇心)')
    尝试从 SPI 引导
    在 ARM64内核上启动 ATF...

    注意: BL31:v1.5 (发布):ti2018.03-RC1
    注意: BL31:构建时间:2018年10月 6日02:55:53
    I/TC:
    I/TC:OP-TEE 版本:3.2.0-81-g48952f9-DEV #1 10月6日星期六 03:34:58 UTC 2018 Aarch64
    I/TC:已初始化

    U-Boot SPL 2018.01-00446-g02efeaa (2018年11月15日- 10:19:38)
    尝试从 SPI 引导


    U-Boot 2018.01-00446-g02efeaa (2018年11月15日- 10:19:38 +0800)

    型号:德州仪器 AM654基板
    I2C:  错误、可能是错误的 i2c 适配器0最大值0
    就绪
    DRAM: 4 GiB
    MMC:  sdhci@0:0、sdhci@0:1
    SF:检测到的 mt35xu512g、页大小为256字节、擦除大小为128 KiB、总共64 MIB
    错误,可能是错误的 i2c 适配器0最大值0
    IN:   串行@2800000
    输出:  串行@2800000
    ERR:  串行@2800000
    NET:  eth0:cpsw_桁 架@046000000
    按任意键停止自动引导: 0

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

    user5772774、

    在发生故障的情况下、您有:OSPI 闪存上的 u-boot、内核和 rootfs 以及 SD 卡(MMC1)上的 boot env、这是正确的吗?

    在良好的情况下、您在 OSPI 闪存上具有 u-boot、boot env、内核和 rootfs、这是正确的吗?

    您的用例中如何涉及 eMMC (MMC0)、您能否提供更多详细信息? 我们有一些与 eMMC/MMC0超时相关的已知问题:

    software-dl.ti.com/.../Release_Specific_Release_Notes.html

    LCPD-13667 -无法将 MMC 0超时和 ENV 保存到单板上的 eMMC (far26)

    LCPD-13666 -在某些电路板上看到 mmc0超时错误

    LCPD-13371 -内核中的 mmc0枚举命令超时




    此致、
    帕维尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果您没有其他与主题相关的问题、请关闭/验证/解决此主题。

    此致、
    帕维尔