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.

[参考译文] TDA4VH-Q1:Micron EMMC 适配

Guru**** 2559810 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1350862/tda4vh-q1-micron-emmc-adaption

器件型号:TDA4VH-Q1
主题中讨论的其他器件:TDA4VH

e2e.ti.com/.../start-log.txt

您好:

 目前、我们将 Micron 的 MTFC128GBCAQTC-AAT 芯片用于 TDA4VH 芯片和 SDK 0900版。 在 HS400启动期间、EMMC 速度切换失败、且错误返回-84。 如果我们切换到 DDR52启动,这是正常的,日志显示如下: Micron MTFC32GBCAQTC-AAT 芯片可以正常启动,我们已经正确配置了分区信息,非内存空间问题。 之前,我们遇到了在适应其他 EMMC 时返回-110的问题。 实际测试表明、TDA4VH 平台速度切换功能中对应于 CMD 的 CLK 相位会发生变化、导致 CMD 正确采样失败。 但是、这次返回的错误不同、请提供 TI 团队的支持。 我们如何调整这个 EMMC 芯片?

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

    嗨、 jingle

    有多少主板出现此问题? 只是我认为我们不需要进行任何特定于 eMMC 器件的驱动程序更改。

    您在 U-boot 中使用的速度模式是什么?

    此致
    迪瓦卡尔

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

    目前已生产30种多氯联苯,其中5种存在上述问题。
    系统主板两个 TDA4VH 芯片、布局完全可以重复使用、使用32GB EMMC 就没有问题。 这是因为 EMMC 芯片主控采样应该能够正确地收集 offset cmd 命令。

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

    你好,Diwakar  

    此问题发生在 EMMC 开关速度驱动程序中、由于 eMMC 无法正确识别 TDA4发送的 cmd6命令、有时返回-84、因此该驱动程序有时会返回-110。

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

    Uboot 使用 DDR52

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

    嗨、 jingle

    我们是否也可以在 uBoot 中设置 HS400速度模式、以便确保 Linux 驱动程序不会出现问题。

    您是否在 Linux 中尝试过 HS200速度模式?

    帮助共享您在 HS400测试期间使用的 dtb。

    此致
    迪瓦卡尔

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

    你好,Diwakar  

    我们在 uboot 中使用 HS200和 HS400进行了测试、引导过程运行良好。 一切都正常、直到 EMMC 无法从 HS400切换到 HS200、然后提示读取/写入错误。

    在 TI 中、为何从 HS400切换到 HS200、再切换到 HS400? 如何在 Kernal 中关闭从 HS400到 HS200的切换?

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

    嗨、 jingle

    我们在 uboot 中使用 HS200和 HS400进行了测试,启动过程运行正常。 一切运行正常、直到 EMMC 无法从 HS400切换到 HS200、然后提示读取/写入错误。

    这句话对我来说有点令人困惑您是否认为 HS400在 uBoot 中工作正常?

    为什么在 TI 中从 HS400切换到 HS200、然后再切换到 HS400? 如何在 Kernal 中关闭从 HS400到 HS200的切换?

    这并不是特定于 TI 的,这是根据 JEDEC 规范。为了执行 HS400速度模式的调谐操作,我们需要切换到 HS200。

    此致
    迪瓦卡尔  

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

    你好, Diwakar  

    HS200和 HS400在 Uboot。HS400中工作正常、然后开始、内侧将有 HS400到 HS200、其中 CMD 将返回-110。

    请参阅上面随附的图片、其中 cmd 和 clk 的相位发生了变化。

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

    嗨、 jingle

    您能在 HS400案例中的 uBoot 命令输出以下分享吗?  
    • MMC 开发0
    • MMC 信息  

     在 uboot 中也会发生速度切换。

    此致
    迪瓦卡尔

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

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

    嗨、 jingle

    您能帮助我了解以下详细信息吗:

    • uBoot 和 Linux DTB  
    • 您能否在下面的模块中添加启用更多日志并共享日志?
       斯德奇
       MMC 块
       奇西
       sdhci_am654
       MMC_内核

    此致
    迪瓦卡尔

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

    更新了一些信息:

    我们尝试了以下方法:

    UBoot

    Linux

    系统状态

    ddr52或 hs200或 hs400

    ddr52

    HS200

    hs400

    X

     

    1 μ s uboot、没有问题。

    2当我在 Linux 上保留 HS400设置时,删除其他属性,编译后的映像将应用 DDR52。

    下面是 Linux DTS:

    MMC@4f80000{

                        兼容="ti、j721e-sdhci-8位";

                        REG =<0x0 0x4f80000 0x0 0x1000 0x0 0x4f88000 0x0 0x400>;

                        interrupts =<0x0 0x3 0x4>;

                        电源域=<0x10 0x8c 0x1>;

                        Clocks =<0xF 0x8c 0x1 0xF 0x8c 0x2>;

                        时钟名称="clk_ahb"、"clk_fin";

                        分配的时钟=<0xF 0x8c 0x2>;

                        Assigned-Clock-Parents =<0xF 0x8c 0x3>;

                        总线宽度=<0x8>;

                        ti、otap-del-SEL-legacy =<0x0>;

                        TI、OTAP-DEL-SEL-MMC-hs =<0x0>;

                        ti、otap-del-SEL-hs400 =<0x8>;

                        ti、ITAP-DELL-SEL-STORAGE =<0x10>;

                        TI、ITAP-DEL-SEL-MMC-hs =<0xA+;

                        TI、STROBE-SEL =<0x77>;

                        ti、clkbuf-sel =<0x7>;

                        TI、TRM-ICP =<0x8>;

                        mc-hs400-1_8v;

                        DMA 一致;

                        状态="可以";

                        不可拆卸;

                        TI、驱动强度欧姆=<0x32>;

                        DISABLE-WP;

                        phandle =<0xf0>;

                 };

    3当我将其设置为如下时、系统将不会引导、您可以参考日志文件

    Linux DTS:

    设置 HS400模式

     

     

    uBoot DTS:

    设置 DDR52模式

     

    e2e.ti.com/.../1258.log.txt

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

     xuefei、您好

    我还可以在您共享的日志中看到 n 个恢复数量  

    尝试模式 MMC DDR52 (52MHz)宽度8 (在52 MHz 处)
    选择模式 MMC DDR52 (52MHz)(频率:52 MHz)
    [ 1.912375] mmc0:运行 CQE 恢复
    [ 1.912881] mmc0:CQE 恢复已完成
    [ 1.930659] mmc0:CQE 恢复开始
    [ 1.930663] mmc0:运行 CQE 恢复
    [ 1.931071] mmc0:CQE 恢复完成
    [ 1.975064] mmc0:CQE 恢复开始
    [ 1.975069] mmc0:运行 CQE 恢复
    [ 1.980779] mmc0:CQE 恢复已完成
    [ 1.980918] mmc0:无法启动标签25的 CQE 传输,错误-16
    [ 1.980940] mmc0:CQE 恢复开始
    [ 1.980942] mmc0:运行 CQE 恢复
    [ 2.116900] mmc0:CQE 恢复开始
    [ 2.116906] mmc0:运行 CQE 恢复
    [ 2.117118] mmc0:REQ DONE (CMD12):-110:00000000 00000000 00000000 00000000
    [ 2.117227] mmc0:传输的0字节:-84
    [ 2.117311] mmc0:CQE 恢复完成
    [ 2.120900] mmc0:REQ 失败(CMD13):-84、重试...
    [ 2.120994] mmc0:REQ 失败(CMD13):-84、重试...
    [ 2.121136] mmc0:REQ 失败(CMP6):-84、重试...
    [ 2.121232] mmc0:REQ 失败(CMP6):-110、重试...
    [ 2.121327] mmc0:REQ 失败(CMP6):-84、重试...
    [ 2.121413] mmc0:REQ DONE (CMP6):-110:00000000 00000000 00000000 00000000 00000000
    [ 2.121427] mmc0:mc_hs400_to_hs200失败、错误-110
    [ 2.121437] mmc0:启动针对标签18的 CQE 传输失败、错误-110
    [ 2.121526] mmc0:启动标记19 blkaddr 4149248的 CQE 传输
    [ 2.125498] mmc0:CQE 恢复完成
    [ 2.125624] mmc0:CQE 恢复开始
    [ 2.125626] mmc0:运行 CQE 恢复
    [ 2.125707] mmc0:sdHCI:CQE off、IRQ 屏蔽0xFF0003、IRQ 状态0x0
    [ 2.125886] mmc0:传输的0字节:-84
    [ 2.125893] I/O 错误、dev mmcblk0、扇区1359016 op 0x0:(read) flags 0x0 phys_seg 1 prio class 2
    [ 2.125921] mmc0:CQE 恢复完成

    您能否在 HS400情况下检查 IO 电压是否稳定?

    此致
    迪瓦卡尔

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

    您能否在 HS400情况下检查 IO 电压是否稳定?

    是的、即使系统无法进入 rootfs、IO 电压也稳定在1.8V。

    我在这里测量的。

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

    点击此处查看详情  

    此致
    迪瓦卡尔

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

    相同、全部为1.8V

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

     xuefei、您好

    是否已尝试更改 OTAP 值?

    您能否尝试逐个修改该值、看看是否有任何改进。

    如果我们也能在 uBoot 中获得 HS400的波形、也会很好。

    此致
    迪瓦卡尔