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:SDR104 在 uboot 中

Guru**** 2810285 points

Other Parts Discussed in Thread: AM62L

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1624152/am62l-sdr104-in-uboot

器件型号: AM62L

您好:

uboot 中的提交(在下方)会在 u-boot 中停止 SD UHS 模式。

u-boot 以低速启动 SD 电压开关,此提交将在此过程中禁用 UHS 模式...

请解决这个问题。

Author: Judith Mendez <jm@ti.com>
Date:   Wed May 14 17:40:46 2025 -0500

    PENDING: mmc: am654_sdhci: Clear UHS_MODE_SELECT
    
    This clears UHS_MODE_SELECT for modes < MMC_HS_52 timing.
    
    When initializing to HS400 mode, the host controller downgrades to non-uhs
    modes so clear UHS_MODE_SELECT at modes < MMC_HS_52.
    
    This fixes eMMC writes on j7200 EVM.
    
    Fixes: ee6c46a606bf8 ("mmc: am654_sdhci: Add am654_sdhci_set_control_reg")
    Signed-off-by: Judith Mendez <jm@ti.com>
    Tested-by: Moteen Shah <m-shah@ti.com>

diff --git a/drivers/mmc/am654_sdhci.c b/drivers/mmc/am654_sdhci.c
index 0df3568f073..d3c8f94dd0c 100644
--- a/drivers/mmc/am654_sdhci.c
+++ b/drivers/mmc/am654_sdhci.c
@@ -527,11 +527,16 @@ static int am654_sdhci_execute_tuning(struct mmc *mmc, u8 opcode)
 void am654_sdhci_set_control_reg(struct sdhci_host *host)
 {
        struct mmc *mmc = host->mmc;
+       u32 reg;
 
+       reg = sdhci_readw(host, SDHCI_HOST_CONTROL2);
+       reg &= ~SDHCI_CTRL_UHS_MASK;
        sdhci_set_voltage(host);
 
        if (mmc->selected_mode > MMC_HS_52)
                sdhci_set_uhs_timing(host);
+       else
+               sdhci_writew(host, reg, SDHCI_HOST_CONTROL2);
 }

 

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

    尊敬的 Boris:

    您能否解释一下您在 AM62L 上看到的此补丁有什么问题?

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

    如标题所述、SD 卡引导期间、在 uboot/spl 中未激活 SDR104

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

    SD 卡的 U-Boot “mc info“命令的输出是什么?

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

    为了防止进一步的问题是,我启用了所有需要启用的东西(并花了很长时间的调试,直到我得到了这一点),并验证了 恢复提交确实使 SR104 正常工作。

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

    不知道 u-boot 命令被禁用。

    它是 SanDisk Extreme Pro SD 卡它支持所有模式,你可以想象。

    是的、它确实支持 SDR104。

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

    这里是为您提供的“MMC 信息“

    => mmc info 
    Device: mmc@fa00000
    Manufacturer ID: 3
    OEM: 5344
    Name: SD64G 
    Bus Speed: 200000000
    Mode: UHS SDR104 (208MHz)
    Rd Block Len: 512
    SD version 3.0
    High Capacity: Yes
    Capacity: 59.5 GiB
    Bus Width: 4-bit
    Erase Group Size: 512 Bytes
    

    此函数的变体的工作原理如下:

    void am654_sdhci_set_control_reg(struct sdhci_host *host)
    {
    	struct mmc *mmc = host->mmc;
    	struct udevice *dev = mmc->dev;
    	struct am654_sdhci_plat *plat = dev_get_plat(dev);
    
    	if (plat->non_removable) {
    		u32 reg;
    
    		reg = sdhci_readw(host, SDHCI_HOST_CONTROL2);
    		reg &= ~SDHCI_CTRL_UHS_MASK;
    		sdhci_set_voltage(host);
    
    		if (mmc->selected_mode > MMC_HS_52)
    			sdhci_set_uhs_timing(host);
    		else
    			sdhci_writew(host, reg, SDHCI_HOST_CONTROL2);
    	} else {
    		sdhci_set_control_reg(host);
    	}
    }

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

    输出中的第 7 行显示了 SDR104 模式。 您如何检查 SD 卡是否未在 SDR104 模式下运行?

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

    这是修复后的“MMC 信息“、而不是之前的信息。 您在之前或之后未指定想要哪一个。

    检查很简单。

    更好地修复:

    In: serial@2800000
    Out: serial@2800000
    Err: serial@2800000
    5858816 bytes read in 250 ms (22.3 MiB/s)

    修复后:

    In:    serial@2800000
    Out:   serial@2800000
    Err:   serial@2800000
    5858816 bytes read in 68 ms (82.2 MiB/s)

    查看传输速度差异。

    22MB/s 不是 SDR104 (200MHz) 模式下的速度、而是 82MB/s 更像它。

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

    请在修复之前提供 sdcard 的 MMC info 命令输出。

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

    抱歉、我没有太多时间处理这个问题。

    我 报告了 TI 产品的一个问题、甚至对提供了修复非常好。我相信我提供了足够的信息来表明问题确实存在。

    你可以把它转发给或不是发展,对你。

    在一天结束时,它是你的产品,你可以保持它的坏,你想要它是.

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

    别担心。 我只是想确保在我重现问题和找出问题根源之前我们都在同一个页面上。

    是的、我现在可以看到 SDR104 模式已被禁用。 我将与我们的软件开发团队进行讨论。 感谢您发送编修。