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.

[参考译文] AM623:将文件复制到 eMMC 触发 CQE 错误

Guru**** 2434440 points
Other Parts Discussed in Thread: SK-AM62B-P1

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1513257/am623-copy-files-to-emmc-trigger-cqe-error

器件型号:AM623
主题中讨论的其他器件:SK-AM62B-P1

工具/软件:

在下文的 SDK11.0.9 发行说明中、有 SDK10 报告的新问题是从 SDK10 开始出现还是存在很长时间?  

EXT_EP-12076

将文件复制到 eMMC 会触发 CQE 错误

是软件驱动程序问题还是与硬件有关? 它是否有更多的分析结果?

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

    您好、SIR 或 JIRA 没有任何可用信息 、因此我必须联系团队获取信息。

    https://sir.ext.ti.com/jira/browse/EXT_EP-12076

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

    尊敬的 Tony:

    原始问题 EXT_EP-12086 已在 SDK10 中关闭。 现在、内核日志在某些情况下仍显示“CQE 恢复“消息、但不再发生 MMC 寄存器转储。 这个新的 JIRA EXT_EP-12076 用于跟踪导致“CQE 恢复“消息的原因。

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

    客户的问题之一与  EXT_EP-12086 几乎相同、可能通过将特定文件作为 TI 测试结果通过 SDK8.x 复制到最新的 SDK11.0 来触发 CQE 错误。

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

    大家好、我将在接下来的两周内离职。 请期待响应延迟。  

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

    嗨、Tony

    我看到您也在积极与 JIRA 上的开发人员讨论这个问题。

    回答有关 9.01.00.08 和 9.02.01.09 之间发生了什么变化的未决问题、以解决内核崩溃问题。 在开发团队的最后一条评论中、可以在内部 JIRA 上找到此信息。 内部 Linux 增补程序审查中发布了一些增补程序集、您可以检查这些增补程序集。

    jira.itg.ti.com/.../LCPD-34059 / EXT_EP-12086

    Bin 提到的 CQE 恢复消息仍在调试中、并在 jira.itg.ti.com/.../LCPD-40996 / EXT_EP-12076 下进行跟踪

    此致

    Karan

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

    Tony、

    1.打开“ 客户的问题之一与  EXT_EP-12086“

    请分享 CQE 错误/恢复的完整日志(包括是否出现内核崩溃,推断未发生恢复)

    希望与当前未完成的调查任务(基准 10.1/11.0 和从旧代码库注入特定的测试模式)进行比较。

     2. https://sir.ext.ti.com/jira/browse/EXT_EP-12086 记录已更新,以显示 10.1 基线中的所有重要修复( Uboot 和内核中的“调优算法“修复,更新的 TAP 设置)  

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

    您好 Praneeth、

    通过引用内核更新来修复 eMMC 内核崩溃问题、该更新正在访问超出绑定问题、 与此类问题无关。

    复制文件期间失败时的 SDK8.3 日志“Buffer I/O error“:

    I/O error on device mmcblk0gp0p3, logical block 29696
    [   68.026112] Buffer I/O error on device mmcblk0gp0p3, logical block 29697
    [   68.026122] Buffer I/O error on device mmcblk0gp0p3, logical block 29698
    [   68.026130] Buffer I/O error on device mmcblk0gp0p3, logical block 29699
    [   68.026138] Buffer I/O error on device mmcblk0gp0p3, logical block 29700
    [   68.026151] Buffer I/O error on device mmcblk0gp0p3, logical block 29701
    [   68.026161] Buffer I/O error on device mm[   68.026003] blk_update_request: I/O error, dev mmcblk0gp0, sector 933904 op 0x1:(WRITE) flags 0x4000 phys_seg 8 prio class 0
    [   68.026032] EXT4-fs warning (device mmcblk0gp0p3): ext4_end_bio:345: I/O error 10 writing to inode 12 starting block 117250)
    [   68.026070] Buffer cblk0gp0p3, logical block 29702
    [   68.026169] Buffer I/O error on device mmcblk0gp0p3, logical block 29703
    [   68.026176] Buffer I/O error on device mmcblk0gp0p3, logical block 29704
    [   68.026191] Buffer I/O error on device mmcblk0gp0p3, logical block 29705
    [   68.037820] JBD2: Detected IO errors while flushing file data on mmcblk0gp0p3-8
    

    在 SDK9.2 中有两种错误类型:调整 CEQ 恢复和/或缓冲区 I/O 错误

    下面是包含每种错误类型的 5 轮文件复制的日志。

    • 第 1 轮、第 2 轮、仅触发运行 CQE 恢复。
    • 第 3 轮、第 4 轮触发两种错误类型。
    • 第 5 轮:无错误、“exe (1099): drop_caches: 3“是复制结束时 echo 3 >/proc/sys/vm/drop_caches 的日志。

    ==USB COPY ROUND 1==
    [   29.585040] mmc0: running CQE recovery
    [   29.594630] mmc0: running CQE recovery
    [   29.990018] exe (1099): drop_caches: 3
    
    ==USB COPY ROUND 2==
    [   34.658565] mmc0: running CQE recovery
    [   35.382460] exe (1099): drop_caches: 3
    
    ==USB COPY ROUND 3==
    [   40.010500] mmc0: running CQE recovery
    [   40.052957] mmc0: running CQE recovery
    [   40.093203] mmc0: running CQE recovery
    [   40.103971] I/O error, dev mmcblk0gp0, sector 1324048 op 0x1:(WRITE) flags 0x4000 phys_seg 9 prio class 2
    [   40.326743] EXT4-fs warning (device mmcblk0gp0p3): ext4_end_bio:343: I/O error 10 writing to inode 28 starting block 166274)
    [   40.338162] Buffer I/O error on device mmcblk0gp0p3, logical block 75776
    [   40.345023] Buffer I/O error on device mmcblk0gp0p3, logical block 75777
    [   40.351834] Buffer I/O error on device mmcblk0gp0p3, logical block 75778
    [   40.358636] Buffer I/O error on device mmcblk0gp0p3, logical block 75779
    [   40.365438] Buffer I/O error on device mmcblk0gp0p3, logical block 75780
    [   40.372240] Buffer I/O error on device mmcblk0gp0p3, logical block 75781
    [   40.379040] Buffer I/O error on device mmcblk0gp0p3, logical block 75782
    [   40.385813] Buffer I/O error on device mmcblk0gp0p3, logical block 75783
    [   40.392620] Buffer I/O error on device mmcblk0gp0p3, logical block 75784
    [   40.399458] Buffer I/O error on device mmcblk0gp0p3, logical block 75785
    [   40.642028] JBD2: Detected IO errors while flushing file data on mmcblk0gp0p3-8
    [   40.870965] exe (1099): drop_caches: 3
    
    ==USB COPY ROUND 4==
    [   45.377435] mmc0: running CQE recovery
    [   45.439714] mmc0: running CQE recovery
    [   45.652207] mmc0: running CQE recovery
    [   45.662183] I/O error, dev mmcblk0gp0, sector 1324048 op 0x1:(WRITE) flags 0x4000 phys_seg 8 prio class 2
    [   45.923407] EXT4-fs warning (device mmcblk0gp0p3): ext4_end_bio:343: I/O error 10 writing to inode 28 starting block 166274)
    [   45.934807] buffer_io_error: 6134 callbacks suppressed
    [   45.934831] Buffer I/O error on device mmcblk0gp0p3, logical block 75776
    [   45.946869] Buffer I/O error on device mmcblk0gp0p3, logical block 75777
    [   45.953767] Buffer I/O error on device mmcblk0gp0p3, logical block 75778
    [   45.960622] Buffer I/O error on device mmcblk0gp0p3, logical block 75779
    [   45.967447] Buffer I/O error on device mmcblk0gp0p3, logical block 75780
    [   45.974289] Buffer I/O error on device mmcblk0gp0p3, logical block 75781
    [   45.981108] Buffer I/O error on device mmcblk0gp0p3, logical block 75782
    [   45.987925] Buffer I/O error on device mmcblk0gp0p3, logical block 75783
    [   45.994758] Buffer I/O error on device mmcblk0gp0p3, logical block 75784
    [   46.001566] Buffer I/O error on device mmcblk0gp0p3, logical block 75785
    [   46.198519] JBD2: Detected IO errors while flushing file data on mmcblk0gp0p3-8
    [   46.444361] exe (1099): drop_caches: 3
    
    ==USB COPY ROUND 5==
    [   57.098847] exe (1099): drop_caches: 3
    

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

    尊敬的 Tony:

    您能否提供更多背景信息、您要向 MMC 刷写什么文件? 每次写入 eMMC 时是否会出现问题? 它是触发 am62x SK 上 CQE 恢复的相同 8.6 tar 文件还是不同的数据模式?  

    Judith

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

    此外、

    CQE 错误恢复被触发后、是否可以显示/sys/kernel/debug/mmc0 /*的输出? 例如:

    > cat /sys/kernel/debug/mmc0 /*

    谢谢。

    ~ Judith

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您正在向 MMC 刷写什么文件? [/报价]

    将客户自己的文件系统 tar 文件从 U-Flash 复制到 eMMC。

     它们是两种不同的文件系统 tar 文件、适用于基于 SDK8.3 和 SDK9.2 的项目/电路板。  

    每次写入 eMMC 时是否会发生问题?

    日志位于上方。 不会在每次下电上电时都发生这种情况、不会在每个电路板上发生、但某些电路板非常容易发生、甚至 100%都是如此。

    它是同一个 8.6 tar 文件触发 am62x SK 上的 CQE 恢复还是一个不同的数据模式?  [/报价]

    客户使用自己的文件系统 tar 文件、而不是 SDK8.6 tar 文件。

    客户没有在 AM62-SK 上复制该问题、只是在自己的电路板上使用自己的文件系统 tar 文件复制该问题。  

    触发 CQE 错误恢复后、是否可以显示/sys/kernel/debug/mmc0 /*
    的输出?

    e2e.ti.com/.../1663.SDK8.3_5F00_cat-mmc0-log

    e2e.ti.com/.../SDK9.2_5F00_cat-mmc0-log

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

    尊敬的 Tony:

    似乎您也有数据超时。 我们还在 am62x SK(具有 8.6 tar 文件)上看到数据超时。 这一问题目前仍在调查中。

    电流波形没有显示任何不同寻常的情况、但仍不确定控制器报告如此多的数据超时并触发 CQE 恢复的原因。

    ~ Judith

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

    尊敬的 Judith:

    以区分是读取还是写入操作触发了错误。 客户进行了如下实验。

    Linux SDK8.3、定制电路板、已在数据线上安装了 22 Ω 串行电阻器。 有关串联电阻器背景、请参阅此文章:  

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1507836/am623-why-can-serial-resistor-eliminate-emmc-io-error

    实验方法: 重复对~12MB 大小的文件执行 md5sum、比较每次的结果以确保只执行读取操作。

    实验条件:在温度室中、温度为 65°C。 捕获的 I/O 错误日志、错误在触发后持续存在。

    e2e.ti.com/.../dmesg_5F00_IO_5F00_error_5F00_of_5F00_eMMC_5F00_md5sum_5F00_operation.log

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

    Tony、

    感谢您分享日志。 我不确定客户问题是否与 SK-AM62B-P1 EVM 上的问题相同。 EVM 上的 CQE 消息仅在 eMMC 写入时出现、但不在读取时出现。

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

    Tony、

    已经理解并解决了 SK-AM62B-P1 EVM 上的问题、因此不再发生 CQE 恢复。

    当失败的数据传输范围为 0xFF00 模式时、这个问题被缩小、这样我们就可以可靠地重新创建失效。 该模式会导致数据在每次转换时从 0->1 转换、从而对 IO 电源造成应力。 确定这一点后、重点转移到 EVM PDN。 值得注意的是,这种模式只有在 1480B 及以上的大小传输时才会失败。

    SK-AM62B-P1 EVM 的 SOC_DVDD1V8 去耦电容器放置不良。 这些元件应放置在 SOC 引脚附近、但在 SK-AM62B-P1 EVM 上、它们远离 SOC。

    EVM 已按照随附的返工说明进行了修改:

    /cfs-file/__key/communityserver-discussions-components-files/791/ECN-SK_2D00_AM62B_2D00_P1-_2800_PROC142A_2900_-_1320_-add-capacitor-to-VDDSHV4-pin-T7.pdf

    经过这些改进后、0xFF00 模式传输不再失败。

    为了让客户确定他们是否受到类似的影响、他们可以做两件事:

    1. 传输 0xFF00 模式并查看其是否始终再现失败
    2. 检查电路板布局布线、以确定高频去耦电容器的放置位置是否靠近 SOC 或是否与 EVM 实现类似。

    谢谢、

    Chris

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

    尊敬的 Tony:

    如果客户想要对 0xFF00 模式文件进行测试、请参见下面的附件。

    e2e.ti.com/.../ff00_2D00_3k.dat

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

    您好、Chris、

    在定制电路板上使用 ff00-3K.dat 文件进行测试、可以 100%触发 IO 错误、即使在电路板上也是如此、该错误本身并不是由测试数据文件触发的。

    然后修改电路板电容器:

    硬件:在定制板上、VDDSHV4 引脚电容器作为快照放置:2mm 布线至过孔、 0201 10V 1uF 和 0402 6.3V 4.7uF。

    由于过孔周围的空间限制、请在原始电容器焊盘上添加额外的电容器:

    #1。 添加一个 0402 0.1uF 和一个 0402 1uF:仍为 100% IO 误差

    #2. 添加两个 0402 4.7uF:仍为 100% IO 错误。

    客户在测试期间未观察到 VDDSH4V 1V8 超出建议范围、在应力测试期间 AM62-SK-P1 上的 VDDSHV4 电源波动如何?

    对定制电路板的进一步建议?

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

    尊敬的 Tony:

    这是使用 SDK8.3 还是使用 SDK9.1 对项目进行测试?

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

    进一步测试:使用 SDK8.3 和 SDK9.2 在任一电路板上添加 0.1uF 电容、无改进、仍然 100%触发。

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

    尊敬的 Tony:

    您能否分享 eMMC 器件的电容器和电容器放置信息? 如果读取 ff00 模式时出现问题、则可能表明 eMMC 电源有问题。

    是否可以私下共享布局文件?

    此外、软件团队希望专注于 SDK9.2 电路板、而不是 SDK8.3。

    此致、
    标记

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

    Tony、

    由于我们已根本导致 AM62x EVM 出现 MMC IO 电源问题并在 EVM 上解决了此问题、因此我们借此机会重点关注此客户解决方案、看看其根本原因是否相同。

    我们无法使用客户共享的布局文件对环路电感进行仿真。 Mark 将通过电子邮件跟进其他尝试获取此信息的请求。 这将帮助我们定量测量客户电路板上的 PDN 性能。

    我们还要求客户使用其目前必须尝试测量读取和写入方向上的电源噪声的测试设置来执行实验。

    估算电源噪声影响的一种方法是:

    • 将一个数据信号保持为高电平、切换所有其他数据信号 0->1->0->1... 探测保持的高电平信号并查看电压电平是否波动。
    • 将一个数据信号保持为低电平、切换所有其他数据信号 0->1->0->1... 探测保持的高电平信号并查看电压电平是否波动。

    作为参考、在故障 EVM 上、该测试仅在写入方向执行、静态高电平信号显示出从 1.4V 到 2V(标称电压为 1.8V)的波动。

    客户必须注意在理想情况下分别测量读取和写入的影响、因为他们会在两个方向上看到问题。 这将有助于确认电源噪声会产生一些影响、以便查看故障是与 EVM 相同、还是这是单独的问题。

    如果对设置或数据模式有任何疑问、请跟进。

    谢谢、

    Chris

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

    尊敬的 Tony:

    以下是 eMMC 控制器寄存器信息:

    内核器件树 k3-am62-main.dtsi、sdhci0 节点具有:

      REG =<0x00 0x0fa10000 0x00 0x1000>、<0x00 0x0fa18000 0x00 0x400>;

    这用于指定 MMC0 控制器 MMR 区域的基地址和大小:

    区域 1:基地址 0x0fa10000、大小 0x1000。 MMR 的详细信息位于 TRM(修订版 B)表 14-18888 中;

    区域 2:基地址 0x0fa18000、大小为 0x400。 MMR 的详细信息位于 TRM(修订版 B)表 14-1889 中。

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

    更新在故障过程中捕获的波形。  

    #1。 该故障发生在传输过程中、因此与信号完整性或 eMMC 器件兼容性无关。  

    #2. 在故障块中以块为基础对 eMMC 进行访问、尽管停止了~128 时钟、但总长度仍然是 512 时钟、尽管信号停止输出、eMMC 控制器似乎不会停止发送。  

    #3. 需要 从 IP、SOC 结构级别进行分析、而不是从应用级别进行分析。  

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

    Tony、

    感谢您的更新。 通信继续脱机。