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.

[参考译文] AM62P:我正在调查 AM62Px 上的 SDIO DAT1 中断问题。

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1660503/am62p-i-am-investigating-an-sdio-dat1-interrupt-issue-on-am62px

部件号: AM62P

TI 团队大家好、
我正在调查 AM62Px 上的 SDIO DAT1 中断问题。
■环境
器件:AM62Px
操作系统: Linux
接口:SDIO
SDIO 从器件:Kyocera Orini
主机控制器:SDHCI

■问题摘要
为 SDIO 器件重复复位/重新探测/打开序列后、AM62Px 主机控制器有时会停止检测到 SDIO DAT1 中断。
为了进行调试、我添加了以下日志:
sdhci.c
SDHCI_INT_CARD_INT 处理
SDIO_IRQ.c
SDIO_SIGNAL_IRQ ()
SDIO_CLARE_IRQ ()

■从日志中观察到
以下操作成功:
SDIO_CLARE_IRQ ()
CCCR.IENx 写入/读回
IRQ 注册
CCCR.IENx 可正确读回为 0x03。
但是、在故障情况下、不再检测到 SDHCI_INT_CARD_INT。
■正常情况
以下日志将反复继续:
“mmc2:SDIO DAT1 IRQ“
“SDIO_SIGNAL_IRQ 挂起= true “
■故障情况
出现以下情况之一:
仅检测 1-2 个 DAT1 IRQ
IRQ 注册后根本不会发生 DAT1 IRQ
■测试序列
释放从器件复位
复位从器件
sdio_open()
激活序列
关闭 SDIO 句柄
等待重新探测/重新初始化
再次打开
配置从寄存器
■观察到的模式
第一次运行:正常
第二次运行:部分失败
第三次运行:DAT1 IRQ 丢失
第四次跑步:再次正常
■电流理解
根据日志:
Linux SDIO IRQ 注册本身显示成功
但是、SDHCI 主机控制器内可能会丢失 DAT1 中断检测
另一种可能性是与以下方面有关的问题:
DAT1 线路状态
挂起中断处理
复位/重新探测期间的时序
■问题
 
AM62Px 上的 SDIO DAT1 中断处理是否有任何已知问题或时序要求?
 
是否有建议的顺序:
SDIO 复位
重新探测
中断重新使能
DAT1 中断恢复?
 
当 DAT1 IRQ 检测停止时、是否应检查任何 SDHCI 寄存器? (例如 INT_STATUS / SIGNAL_ENABLE / PRESIENT_STATE)
 
此行为是否与以下内容相关:
SDHCI 中断锁存状态
运行时 PM
时钟门控
DAT1 电平检测状态机?
如有任何关于软件端调试或建议的恢复处理的建议、将不胜感激。

谨致问候 Izawa

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

    正常情况
    [ 771.674714] SDIO:FUNC=1 IENx 写入=0x03 读取=0x03 ret=0
    [771.680033] kcits_sdo2:IRQ 已注册
    [771.680036] mmc2:SDIO DAT1 IRQ
    [ 771.686987] mmc2:sdio_signal_irq pending=true

    [775.287046] mmc2:SDIO DAT1 IRQ
    [775.290204] mmc2:sdio_signal_irq pending=true
    [775.295172] mmc2:SDIO DAT1 IRQ
    [ 775.298313] mmc2:sdio_signal_irq pending=true
    ...

    部分故障情况
    [ 863.474622] SDIO:func=1 IENx 写入=0x03 读取=0x03 ret=0
    [ 863.479948] kcits_sdo2:IRQ 已注册
    [863.479957] mmc2:SDIO DAT1 IRQ
    [ 863.491331] mmc2:sdio_signal_irq pending=true

    [867.094344] mmc2:SDIO DAT1 IRQ
    [ 867.097504] mmc2:sdio_signal_irq pending=true

    (未检测到进一步的 DAT1 IRQ)

    完成故障情况
    [ 900.228862] SDIO:func=1 IENx 写入=0x03 读取=0x03 ret=0
    [900.234178] kcits_sdo2:IRQ 已注册

    (未发生 SDIO DAT1 IRQ)

    基于以下日志:

    - SDIO IRQ 注册成功
    - CCCR IENx 配置成功
    -然而,SDHCI_INT_CARD_INT 检测最终停止

    这似乎表明:
    - SDHCI 主机控制器内的 DAT1 中断检测问题、或
    -复位和重新探测序列期间的 DAT1 线路状态/挂起的中断处理问题。

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

    您好:

    您是否也看到最新 SDK 的问题?

    由于问题是零星的、因此问题很可能是由硬件引起的。

    • 您是否在具有不同 SDIO 卡的不同电路板上看到该问题?
    • TI 是否审查了原理图?

    谢谢!

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

    您好 Prashant、

    感谢您的答复。

    我们目前正在使用:

    - ti-processor-sdk-linux-rt-am62pxx-evm-11.00.09.04

    重复多次重置/重新探测/打开序列后、此问题在我们的设置中重现。

    从当前日志中:

    - SDIO_CLARE_IRQ() 成功
    - CCCR IENx 读回正确 (0x03)
    - IRQ 注册成功
    -然而,SDHCI_INT_CARD_INT 最终停止发生

    目前、该问题仅通过我们的 Kyocera ITS SDIO 模块进行了测试。

    我们计划尽快检查硬件侧的 DAT1 信号波形、以确认是否:
    - DAT1 线路本身停止切换,或
    - SDHCI 主机控制器停止检测中断。

    如有任何建议、请告知我们:
    -要监控的 SDHCI 寄存器
    -调试方法
    -已知的时间考虑因素
    与 AM62Px 上的 SDIO DAT1 中断处理相关。

    此致、

    Izawa

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

    您好 Prashant、

    下面是与 Kyocera 的 SDIO 模块配合使用的 sdhci2 的当前器件树配置。

    ```dts
    mymmc2_pins_default:mymmc2-default-pins{
    pinctrl-single、pins =<
    AM62Px_IOPAD (0x0120、PIN_INPUT_PULLUP、0)/* MMC2_CMD */
    AM62Px_IOPAD (0x0118、PIN_OUTPUT、0)/* MMC2_CLK *
    AM62Px_IOPAD (0x011C、PIN_INPUT、0)/* MMC2_CLKLB */
    AM62Px_IOPAD (0x0114、PIN_INPUT_PULLUP、0)/* MMC2_DAT0 */
    AM62Px_IOPAD (0x0110、PIN_INPUT_PULLUP、0)/* MMC2_DAT1 */
    AM62Px_IOPAD (0x010c、PIN_INPUT_PULLUP、0)/* MMC2_DAT2 */
    AM62Px_IOPAD (0x0108、PIN_INPUT_PULLUP、0)/* MMC2_DAT3 */
    >;
    };

    &sdhci2{
    状态=“正常“;
    VMMC-SUPPLY =<&VDD_mmc1>;
    vqmmc-supply =<&VDD_mmc1>;
    pinctrl-names =“default“;
    pinctrl-0 =<&mymmc2_pins_default>;
    总线宽度=<4>;
    CAP-SDIO-IRQ;
    保持电源处于挂起状态;
    disable-WP;
    唤醒源;
    全部引导;
    };

    当前:

    启用 CAP-SDIO-IRQ
    启用保持通电暂停功能
    唤醒源已启用
    不可拆卸未启用

    此致、

    Izawa

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

    由于我们无法及时回复、因此我们已为此问题开了一个新 TT。

    您能否关闭此 TT?

    新票证: AM62P:AM62PX SDIO 问题:DAT1 IRQ 停止后“SDIO_write (475) insufficient free area“