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:MMC I/O 错误问题

Guru**** 2551170 points
Other Parts Discussed in Thread: AM625

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1388902/am625-mmc-i-o-error-issue

器件型号:AM625

工具与软件:


您好、TI 专家:

我们将 AM625与 SDK9.1搭配使用、并且存在 MMC I/O 错误问题。
我们已尝试了 SDK9.0和 SDK 9.1、得到相同的错误 msg。


有时在 MMC 初始化时发生。
[ 1.311075] I/O 错误、dev mmcblk0、扇区0 op 0x0:(读取)标志0x0 phys_seg 1 prio class 2
[1.311087]开发 mmcblk0、逻辑块0、异步页读取上出现缓冲器 I/O 错误

大部分时间都发生在挂载文件系统时。
[ 7.170226] I/O 错误、dev mmcblk0、扇区1071440 op 0x0:(读取)标志0x80700 phys_seg 1 prio class 2
[ 7.170621] I/O 错误、dev mmcblk0、扇区667832 op 0x0:(读取)标志0x80700 phys_seg 2 prio 类2
[ 7.170981] I/O 错误、dev mmcblk0、扇区154472 op 0x0:(读取)标志0x3000 phys_seg 1 prio class 2
[ 7.171017] exT4-fs 错误(器件 mmcblk0p3):__ext4_find_entry:1678:inode #1796:Comm (spawn):正在读取目录 lblock 0


您对此有什么看法吗?
您能帮助检查一下吗?

目前、至少有3或4个器件存在此问题。

e2e.ti.com/.../1581.putty2.loge2e.ti.com/.../0842.putty3.log


谢谢!
Allen

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

    您好、Allen:

    您能否试用最新的 SDK? 在最近的版本中、MMC 有一些改进。

    https://www.ti.com/tool/download/PROCESSOR-SDK-LINUX - AM62X/09.02.01.10

    此致、

    Prashant

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

    Prashant、您好!


    这是 SDK9.1上的一个已知问题吗?


    但我们使用的是定制电路板、并且出于某种原因必须保留 SDK9.1。  
    我检查了发布的信息

    • 内核:MMC 高速调优和性能改进  


    您能否提供相关补丁?


    谢谢!
    Allen

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

    您好、Allen:

    我不想说这是 SDK v9.1上的一个已知问题

    请允许我检查是否有现成的补丁系列、然后回复您。

    此致、

    Prashant

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

    Prashant、您好!

    感谢您的澄清。
    如果有任何更新、请告知我。

    谢谢!
    Allen

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

    您好、Allen:

    我要求提供补丁系列。 一旦我收到任何回复、我将通知您。

    感谢您的耐心!!

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

    您好、Allen:

    这是 SDK9.1上的一个已知问题吗?


    但我们使用的是定制电路板、并且出于某种原因必须保留 SDK9.1。  
    我检查了已发布信息[/报价]

    让我来提示一下。 我不知道补丁系列的创建需要多长时间,但我非常想鼓励你继续尝试 eMMC/SD 相关的更改部分的最新(!)PROCESSOR-SDK-LINUX v9.2 (https://www.ti.com/tool/download/Prashant-AM62X/09.02.01.10)、检查它是否可以解决您的问题。 然后、我们将有信心并确认、将所做的更改向后移植到 SDK v9.1实际上可能是有效路径。

    虽然我知道您可能不想在该测试中切换整个 SDK、但实际上不需要。 要做的最重要的事情是以下,你应该能够做到这一点而不改变"一切":

    1. 将映像的内核映像("映像")替换为 SDK v9.2随附的映像(无需重新构建)
    2.  使用 SDK v9.2随附的内容替换/lib/modules 映像的内核模块("sdk/*") (无需重新构建)
    3. `s您的设备树文件以吸收 SDK v9.2中与 v í` dhci0 相关的更改、特别是如何在 k3-am62-main.dtsi 中定义它、请参阅 https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/arch/arm64/boot/dts/ti/k3-am62-main.dtsi?h=ti-linux-6.1.y#n541  了解定义各种设置和延迟的最新更改 ti、*属性至关重要

    您应该可以很容易地执行1-3而不必重新构建您的 rootfs 或重做所有您的板端口。 您能试一下吗?

    此致、Andreas

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

    尊敬的 Andreas:

    很抱歉回复延迟、我们知道我们可以更改"映像和模块"来替换内核版本。 (#我们仍尝试此操作 )
    但根据所说、我们使用的是自定义(板和驱动器)、因此替换图像和模块可能不是适合我们的解决方案。

    如果可能、请提供 补丁系列、 或者您可以提供相关补丁的标题、我们可以尝试从官方 SDK 中挑选合适的补丁并解决冲突。

    谢谢!
    Allen

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

    您好、Allen:

    提供相关补丁程序标题、我们可以尝试从官方 SDK

    您可以尝试挑选以下补丁:

    $ git log --oneline 09.01.00.008...09.02.00.010 drivers/mmc/host/sdhci_am654.c
    33d51c6543d2 mmc: sdhci_am654: Fix ITAPDLY for HS400 timing
    060fba7aae22 mmc: sdhci_am654: Update comments in sdhci_am654_set_clock
    6407768788cb mmc: sdhci_am654: Fix itapdly/otapdly array type
    eb3366da5d30 mmc: sdhci_am654: Add OTAP/ITAP delay enable
    6acffb678dde mmc: sdhci_am654: Write ITAPDLY for DDR52 timing
    bb6735b35988 mmc: sdhci_am654: Add tuning algorithm for delay chain
    314e069b5933 Revert "mmc: sdhci_am654: Add tuning algorithm for delay chain"
    e254b65f1fbe Revert "mmc: sdhci_am654: Write ITAPDLY for DDR52 timing"
    8d54e9a61d92 Revert "mmc: sdhci_am654: Add missing OTAP/ITAP enable"
    d8c2c635e860 Revert "mmc: sdhci_am654: Fix itapdly/otapdly array type"
    c61cfd90d13d Revert "mmc: sdhci_am654: Fix comments in set_clock functions"
    9aa31caa685b Revert "mmc: sdhci_am654: Fix ITAPDLY for HS400 timing"
    107c4496529e Revert "mmc: sdhci_am654: Add ret to sdhci_am654_get_otap_delay function"
    ec32d54f7450 mmc: sdhci_am654: Add ret to sdhci_am654_get_otap_delay function
    77aa27cbdca3 (tag: cicd.kirkstone.202402152125, tag: 09.02.00.005) mmc: sdhci_am654: Fix ITAPDLY for HS400 timing
    5a5ca1779438 mmc: sdhci_am654: Fix comments in set_clock functions
    1b476bac1eb8 mmc: sdhci_am654: Fix itapdly/otapdly array type
    14951df5ad99 mmc: sdhci_am654: Add missing OTAP/ITAP enable
    e9a4b5e8f7ed mmc: sdhci_am654: Write ITAPDLY for DDR52 timing
    846c33371e3f mmc: sdhci_am654: Add tuning algorithm for delay chain

    您   ``将 TI 内核存储库(有关 Git 远程 URL、请参阅 git.ti.com/gitweb Git 远程添加到存储库、并在其上执行"git fetch 操作、以使这些提交 ID 可访问。

    请注意、这可能只有95%的解决方案、因为整个 MMC 子系统(而不仅仅是 TI 驱动程序)上有其他补丁/更改、这些补丁/更改是通过 SDK v9.x 系列的官方 Linux LTS 树的更新引入的。

    此致、Andreas

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

    尊敬的  Andreas:

    我们合并了这些补丁并进行了长期测试。

    我们仍然存在此问题、我为跟踪添加了一些调试日志。
      
    访问 rpmb 时发生大多数 MMC 错误。  
    您对此有什么建议吗?

    [ 7.118658][BSP] mc_rpmb_ioctl
    [17.155890] mmc0:卡一直忙! __MMC_POLL_FOR_BUSY
    [17.155909][BSP]_mmc_blk_ioctl_cmd : by RPMB
    [ 17.157045] I/O 错误、dev mmcblk0、扇区5803008 op 0x0:(读取)标志0x80700 phys_seg 2 prio 类2
    [ 17.157435] I/O 错误、dev mmcblk0、扇区5230728 op 0x0:(读取)标志0x80700 phys_seg 1 prio class 2
    [ 17.157880] I/O 错误、dev mmcblk0、扇区6495640 op 0x1:(写入)标志0x3000 phys_seg 1 prio class 2

    谢谢!
    Allen