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.

[参考译文] AM62L-PROCESSOR-SDK:随机 eMMC 错误

Guru**** 2645475 points

Other Parts Discussed in Thread: AM62L

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1572388/am62l-processor-sdk-random-emmc-panics

器件型号: AM62L-PROCESSOR-SDK
主题中讨论的其他器件: AM62L

工具/软件:

您好、

以下是  关于勘误表的后续内容:AM62L-PROCESSOR-SDK:AM62L:关于 mmc0 超时打印 

我们在 AM62L SR1.0 硬件上的~250 启动中仍然看到这些问题。

这是使用最新的内核/u-boot/cla-a/firmware tf(标签为 11.01.16)的日志:

[    1.633563] mmc0: CQHCI version 5.10^M
[    1.633994] mmc1: CQHCI version 5.10^M
[    1.646319] [drm] Initialized tidss 1.0.0 for 30200000.dss on minor 0^M
[    1.675640] mmc0: SDHCI controller on fa10000.mmc [fa10000.mmc] using ADMA 64-bit^M
[    1.683090] mmc1: SDHCI controller on fa00000.mmc [fa00000.mmc] using ADMA 64-bit^M
[    1.716208] mmc1: new high speed SDHC card at address 59b4^M
[    1.717465] mmcblk1: mmc1:59b4 USDU1 28.3 GiB^M
[    1.717930] Console: switching to colour frame buffer device 160x50^M
[    1.720691]  mmcblk1: p1 p2^M
[    1.768014] tidss 30200000.dss: [drm] fb0: tidssdrmfb frame buffer device^M
[    1.776334] clk: Disabling unused clocks^M
[    1.784792] PM: genpd: Disabling unused power domains^M
[    1.790014] ALSA device list:^M
[    1.793138]   No soundcards found.^M
[    1.827149] usb 1-1: new high-speed USB device number 2 using xhci-hcd^M
[    1.834004] mmc0: Got data interrupt 0x00600000 even though no data operation was in progress.^M
[    1.842612] mmc0: sdhci: ============ SDHCI REGISTER DUMP ===========^M
[    1.849036] mmc0: sdhci: Sys addr:  0x00000000 | Version:  0x00001004^M
[    1.855460] mmc0: sdhci: Blk size:  0x00007080 | Blk cnt:  0x00000001^M
[    1.861884] mmc0: sdhci: Argument:  0x00000000 | Trn mode: 0x00000013^M
[    1.868308] mmc0: sdhci: Present:   0x01ff00f0 | Host ctl: 0x0000003d^M
[    1.874736] mmc0: sdhci: Power:     0x0000000f | Blk gap:  0x00000080^M
[    1.881160] mmc0: sdhci: Wake-up:   0x00000000 | Clock:    0x00000007^M
[    1.887585] mmc0: sdhci: Timeout:   0x00000000 | Int stat: 0x00000000^M
[    1.894009] mmc0: sdhci: Int enab:  0x03ff000b | Sig enab: 0x03ff000b^M
[    1.900433] mmc0: sdhci: ACmd stat: 0x00000000 | Slot int: 0x00000000^M
[    1.906857] mmc0: sdhci: Caps:      0x7decc801 | Caps_1:   0x18002407^M
[    1.913281] mmc0: sdhci: Cmd:       0x0000153a | Max curr: 0x00000000^M
[    1.919705] mmc0: sdhci: Resp[0]:   0x00000800 | Resp[1]:  0xffffffff^M
[    1.926133] mmc0: sdhci: Resp[2]:   0x328f5903 | Resp[3]:  0x00d00f00^M
[    1.932557] mmc0: sdhci: Host ctl2: 0x00000003^M
[    1.936988] mmc0: sdhci: ADMA Err:  0x00000000 | ADMA Ptr: 0x00000000847ab200^M
[    1.944106] mmc0: sdhci: ============================================^M
[    1.951187] usb 2-1: new high-speed USB device number 2 using xhci-hcd^M
[    1.962870] mmc0: Command Queue Engine enabled^M
[    1.967427] mmc0: new HS200 MMC card at address 0001^M
[    1.973348] mmcblk0: mmc0:0001 DG4016 14.7 GiB^M
[    1.979712]  mmcblk0: p1 p2^M
[    1.983563] mmcblk0boot0: mmc0:0001 DG4016 4.00 MiB^M
[    1.989912] mmcblk0boot1: mmc0:0001 DG4016 4.00 MiB^M
[    1.996376] mmcblk0rpmb: mmc0:0001 DG4016 4.00 MiB, chardev (239:0)^M
[    2.047966] EXT4-fs (mmcblk1p2): recovery complete^M
[    2.056602] EXT4-fs (mmcblk1p2): mounted filesystem eac08a2d-ff82-4864-b571-fe91c6e16a09 r/w with ordered data mode. Quota mode: none.^M
[    2.068805] VFS: Mounted root (ext4 filesystem) on device 179:2.^M
[    2.076020] devtmpfs: mounted^M

https://gist.github.com/dominiknh90/9d17277978c5c33e65f8e0d3ebf3d504

eMMC 没有功能问题、并且所有信号都符合 JEDEC 规范。

原来的票在没有结论的情况下关闭,问题仍然没有得到答复。

是否对此有任何更新?

此致

Dominik

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

    您好:

    我们 eMMC 没有功能问题、并且所有信号都符合 JEDEC 规范。

    TI 是否审查了您的原理图?

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

    您好、Prashant、

    是的、TI 审查了 SoM 原理图。

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

    尊敬的 Dominik:

    此问题可能是由 i2493 引起的。

    请应用下面附加的内核补丁、仍然会出现“正在运行 CQE 恢复“消息、但补丁将确保写入 eMMC 的数据不会损坏。

    e2e.ti.com/.../0001_2D00_mmc_2D00_use_2D00_single_2D00_block_2D00_write_2D00_when_2D00_CQE_2D00_recovery_2D00_happene.diff

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

    Bin Liu 

    我应用了您的补丁、可以确认它在我们这边有效。

    一些后续问题:

    1) 您是否默认将此要求添加到 TI 内核/SDK 中?

    2) 是否有其他可以在软件中完成的工作,或者对于 i2493 来说,唯一的解决方法是在硬件布局时要格外小心?

    谢谢

    Dominik

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

    尊敬的 Dominik:

    很高兴听到补丁可以解决问题。

    我已经向我们的软件开发团队提供了补丁、作为 i2493 中提到的软件解决方案的建议实施。 在 SDK 内核中进行最终实现取决于开发团队和内核上游接受情况。

    除了 i2493 中的硬件/电路板设计注意事项外、该补丁应该是在当前 SDK 内核 (6.12.y) 之上唯一需要的软件更改。

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

    尊敬的 Bin:

    只是、我们无法在 AM62L EVM 上重现问题。

    我使用 DDR52 速度模式作为备用,以防我们无法解决硬件中的问题。

    您是否看到对 AM62L 使用该模式时出现任何问题、因为器件树中默认未启用该模式?

    谢谢

    Dominik

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

    尊敬的 Dominik:

    我没有看到 DDR52 列在 AM62L 数据表 eMMC 接口部分。

    如果您无法在硬件中解决问题,我认为还有另一种软件权变措施 — 通过减少 eMMC 控制器 REFCLK 来减少来自 200MHz 的 eMMC 总线时钟。 如果你不知道如何改变它,我将尝试在未来几天看看.

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

    尊敬的 Bin:

    root@am62lxx-libra-fpsc-1:~# cat /sys/kernel/debug/mmc0/ios 
    clock:        52000000 Hz
    actual clock:    50000000 Hz
    vdd:        21 (3.3 ~ 3.4 V)
    bus mode:    2 (push-pull)
    chip select:    0 (don't care)
    power mode:    2 (on)
    bus width:    3 (8 bits)
    timing spec:    8 (mmc DDR52)
    signal voltage:    1 (1.80 V)
    driver type:    0 (driver type B)

    我认为 DDR52 就是 Linux 所说的。 在 JEDEC 规范和 AM62L TRM 中、它称为“高速 DDR“:

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

    尊敬的 Dominik:

    以下器件树补丁应禁用 eMMC HS200 模式、并使其仅在 HS DDR 模式下运行。

    diff --git a/arch/arm64/boot/dts/ti/k3-am62l3-evm.dts b/arch/arm64/boot/dts/ti/k3-am62l3-evm.dts
    index 3d12a9fa30b5..c5c3f6ebf94e 100644
    --- a/arch/arm64/boot/dts/ti/k3-am62l3-evm.dts
    +++ b/arch/arm64/boot/dts/ti/k3-am62l3-evm.dts
    @@ -645,6 +645,7 @@ &sdhci0 {
            pinctrl-0 = <&main_mmc0_pins_default>;
            status = "okay";
            bootph-all;
    +       /delete-property/ ti,otap-del-sel-hs200;
     };
     
     &sdhci1 {

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

    尊敬的 Bin:

    需要首先添加 HS DDR 模式。 否则、回退将为 SDR 模式。

    +++ b/arch/arm64/boot/dts/ti/k3-am62l-main.dtsi
    @@ -310,11 +310,12 @@ sdhci0: mmc@fa10000 {
                    assigned-clocks = <&scmi_clk 125>;
                    assigned-clock-parents = <&scmi_clk 124>;
                    bus-width = <8>;
    -               mmc-hs200-1_8v;
    +               mmc-ddr-1_8v;
                    ti,clkbuf-sel = <0x7>;
                    ti,otap-del-sel-legacy = <0x0>;
                    ti,otap-del-sel-mmc-hs = <0x0>;
    -               ti,otap-del-sel-hs200 = <0x6>;
    +               ti,otap-del-sel-ddr52 = <0x6>;
    +               ti,itap-del-sel-ddr52 = <0x3>;
                    status = "disabled";
            };
    


    我想知道您这边是否需要进行任何验证以支持 HS DDR 模式。

    当然、我们会进行自己的 EMC 和气候室测试。

    谢谢

    Dominik

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

    尊敬的 Dominik:

    是的、我做的补丁适用于 HS SDR 模式。 很抱歉。

    + ti、OTAP-del-sel-ddr52 =<0x6>;
    + ti、ITAP-DEL-SEL-ddr52 =<0x3>;

    但是、 DDR52 的 OTAP/ITAP 延迟值 似乎与 AM62L 数据表不匹配。

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

    谢谢、我刚才复制了另一个 SoC 的值...
    即使延迟设置错误、显示 HS200 错误的同一测试也可以正常运行。

    在我这边、现在没有任何未决问题。 我们只需看看是否能够在硬件中实现稳定的 HS200。

    如果不是、我们将由您的(届时)审核解决方案、或者我们必须降级速度模式。

    此致

    Dominik

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

    尊敬的 Dominik:

    听起来不错的计划。 我现在正在关闭此 TT。