MMCSD: HS200 and SDR104 Command Timeout Window Too Small

XMLWordPrintable

    • Type: Bug
    • Resolution: Fixed
    • Priority: Medium
    • Linux Core SDK
    • LCPD-32351
    • TBD
    • Hide
      10.00
      11.00
      10.01
      Show
      10.00 11.00 10.01
    • 11.01
    • Hide
      am62axx_sk-fs
      am62axx_sk-se
      am62pxx_sk-fs
      am62pxx_sk-se
      am62xx-sk
      am62xx_lp_sk-fs
      am62xx_lp_sk-se
      am62xx_sk-fs
      am62xx_sk-se
      am62xxsip_sk-fs
      am62xxsip_sk-se
      am64xx-hsevm
      Show
      am62axx_sk-fs am62axx_sk-se am62pxx_sk-fs am62pxx_sk-se am62xx-sk am62xx_lp_sk-fs am62xx_lp_sk-se am62xx_sk-fs am62xx_sk-se am62xxsip_sk-fs am62xxsip_sk-se am64xx-hsevm
    • Hide
      Details:
      Under high speed HS200 and SDR104 modes, the functional clock for MMC modules will
      reach up to 192 MHz. At this frequency, the maximum obtainable timeout through of MMC
      host controller using MMCSD_SYSCTL[19:16] DTO = 0xE is (1/192MHz)*2^27 = 700ms.
      Commands taking longer than 700ms may be affected by this small window frame.

      Workaround:
      If the command requires a timeout longer than 700ms, then the MMC host controller
      command timeout can be disabled (MMCSD_CON[6] MIT=0x1) and a software
      implementation may be used in its place. Detailed steps as follows (in Linux):
      1. During MMC host controller probe function (omap_hsmmc.c:omap_hsmmc_probe()),
      inform processor that the host controller is incapable of supporting all the necessary
      timeouts.
      2. Modify the MMC core software layer functionality so the core times out on its own when
      the underlying MMC host controller is unable to support the required timeout.

      Fix:
      https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/commit/drivers/mmc/host/sdhci_am654.c?h=ti-linux-6.12.y&id=76f3499bb60993e02f0e36adb568bf65be10b264
      Show
      Details: Under high speed HS200 and SDR104 modes, the functional clock for MMC modules will reach up to 192 MHz. At this frequency, the maximum obtainable timeout through of MMC host controller using MMCSD_SYSCTL[19:16] DTO = 0xE is (1/192MHz)*2^27 = 700ms. Commands taking longer than 700ms may be affected by this small window frame. Workaround: If the command requires a timeout longer than 700ms, then the MMC host controller command timeout can be disabled (MMCSD_CON[6] MIT=0x1) and a software implementation may be used in its place. Detailed steps as follows (in Linux): 1. During MMC host controller probe function (omap_hsmmc.c:omap_hsmmc_probe()), inform processor that the host controller is incapable of supporting all the necessary timeouts. 2. Modify the MMC core software layer functionality so the core times out on its own when the underlying MMC host controller is unable to support the required timeout. Fix: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/commit/drivers/mmc/host/sdhci_am654.c?h=ti-linux-6.12.y&id=76f3499bb60993e02f0e36adb568bf65be10b264

      Under high speed HS200 and SDR104 modes, the functional clock for MMC modules will reach up to 192 MHz. At this frequency, the maximum obtainable timeout through of MMC host controller using MMCSD_SYSCTL[19:16] DTO = 0xE is (1/192MHz)*2^27 = 700ms. Commands taking longer than 700ms may be affected by this small window frame.

      Workaround:

      If the command requires a timeout longer than 700ms, then the MMC host controller command timeout can be disabled (MMCSD_CON[6] MIT=0x1) and a software implementation may be used in its place. Detailed steps as follows (in Linux):

      1. During MMC host controller probe function (omap_hsmmc.c:omap_hsmmc_probe()), inform processor that the host controller is incapable of supporting all the necessary timeouts.

      2. Modify the MMC core software layer functionality so the core times out on its own when the underlying MMC host controller is unable to support the required timeout.

            Assignee:
            TI User
            Reporter:
            TI User
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved:

                Connection: Intermediate to External PROD System
                EXTSYNC-5027 - MMCSD: HS200 and SDR104 Command Tim...
                SYNCHRONIZED
                • Last Sync Date: