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:如何让 AM62 sdhci0 (eMMC0)仅在强制 SDR 模式下工作?

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1521925/am623-how-to-let-am62-sdhci0-emmc0-works-on-force-sdr-mode-only

器件型号:AM623

工具/软件:

您好、专家

遵循标题说明、这是一个仔细检查。

如何让 AM62x sdhci0 (eMMC0)仅在 SDR 模式下工作?  

因为我们希望"阻止"eMMC 在 DDR 模式下工作、即使 eMMC 也支持 DDR。

这是采用 AM62x 的规格

eMMC0支持旧 SDR、高速 SDR 和 HS200

基于 SDK 10.00.07.04、

Linux DTS 应符合以下要求。

/home/gibbs/work/am62/ti-processor-sdk-linux-am62xx-evm-10.00.07.04/board-support/ti-linux-kernel-6.6.32 + git-ti/arch/arm64/boot/dts/ti/k3-am62-main.dtsi

	sdhci0: mmc@fa10000 {
		compatible = "ti,am62-sdhci";
		reg = <0x00 0x0fa10000 0x00 0x1000>, <0x00 0x0fa18000 0x00 0x400>;
		interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
		power-domains = <&k3_pds 57 TI_SCI_PD_EXCLUSIVE>;
		clocks = <&k3_clks 57 5>, <&k3_clks 57 6>;
		clock-names = "clk_ahb", "clk_xin";
		assigned-clocks = <&k3_clks 57 6>;
		assigned-clock-parents = <&k3_clks 57 8>;
		bus-width = <8>;
		/* mmc-ddr-1_8v; */
		mmc-hs200-1_8v;
		ti,clkbuf-sel = <0x7>;
		ti,otap-del-sel-legacy = <0x0>;
		ti,otap-del-sel-mmc-hs = <0x0>;
		/* ti,otap-del-sel-ddr52 = <0x5>; */
		ti,otap-del-sel-hs200 = <0x5>;
		ti,itap-del-sel-legacy = <0xa>;
		ti,itap-del-sel-mmc-hs = <0x1>;
		status = "disabled";
	};

UBoot DTS 应符合以下要求。

TI-PROCESSOR-SDK-LINUX-am62xx-evm-10.00.07.04/board-support/ti-u-boot-2024.04+git/arch/arm/dts/k3-am62-main.dtsi

	sdhci0: mmc@fa10000 {
		compatible = "ti,am62-sdhci";
		reg = <0x00 0x0fa10000 0x00 0x1000>, <0x00 0x0fa18000 0x00 0x400>;
		interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>;
		power-domains = <&k3_pds 57 TI_SCI_PD_EXCLUSIVE>;
		clocks = <&k3_clks 57 5>, <&k3_clks 57 6>;
		clock-names = "clk_ahb", "clk_xin";
		assigned-clocks = <&k3_clks 57 6>;
		assigned-clock-parents = <&k3_clks 57 8>;
		bus-width = <8>;
		/* mmc-ddr-1_8v; */
		mmc-hs200-1_8v;
		ti,clkbuf-sel = <0x7>;
		ti,otap-del-sel-legacy = <0x0>;
		ti,otap-del-sel-mmc-hs = <0x0>;
		/* ti,otap-del-sel-ddr52 = <0x5>; */
		ti,otap-del-sel-hs200 = <0x5>;
		ti,itap-del-sel-legacy = <0xa>;
		ti,itap-del-sel-mmc-hs = <0x1>;

		status = "disabled";
	};

 

您能帮我们仔细检查一下吗?

我有什么遗漏吗?

非常感谢

Gibbs

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

    您好:

    要在特定模式下配置、您必须禁用所有更高模式的 OTAP 设置、如对于 U-Boot:

    diff --git a/arch/arm/dts/k3-am62-main.dtsi b/arch/arm/dts/k3-am62-main.dtsi
    index 4d8ad7bd47e..d563190cf66 100644
    --- a/arch/arm/dts/k3-am62-main.dtsi
    +++ b/arch/arm/dts/k3-am62-main.dtsi
    @@ -589,8 +589,8 @@
     		ti,clkbuf-sel = <0x7>;
     		ti,otap-del-sel-legacy = <0x0>;
     		ti,otap-del-sel-mmc-hs = <0x0>;
    -		ti,otap-del-sel-ddr52 = <0x5>;
    -		ti,otap-del-sel-hs200 = <0x5>;
    +		// ti,otap-del-sel-ddr52 = <0x5>;
    +		// ti,otap-del-sel-hs200 = <0x5>;
     		ti,itap-del-sel-legacy = <0xa>;
     		ti,itap-del-sel-mmc-hs = <0x1>;
     		status = "disabled";
    

    Linux 也是如此。

    此致、

    Prashant

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

    您好、 Prashant

    仔细检查。

    我们只想删除任何"DDR"模式、因为带有 eMMC 的 SDIO0 可能在支持任何 DDR 模式方面遇到问题

    我感到困惑、因为您尝试禁用 HS200

    据我所知、HS200属于 SDR 模式、对吧?

    谢谢你。

    Gibbs

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我们只想删除任何"DDR"模式、因为带 eMMC 的 SDIO0 在支持任何 DDR 模式时可能会出现问题

    在这种情况下、删除"ti、otap-del-sel-ddr52"属性就足够了。 这就是在 SDK v11.0中禁用 DDR52模式的方式。