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-Q1:Platform fa0000.mmc:延迟探头待定、SD 系统仅为 3.3V、有任何调试建议?

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1525808/am62p-q1-platform-fa0000-mmc-deferred-probe-pending-the-sd-system-is-3-3v-only-any-debugging-suggestion

器件型号:AM62P-Q1
主题: AM62P 中讨论的其他器件

工具/软件:

硬件:AM62P-Q1 客户电路板

系统现在可以引导至内核、但由于无法装载文件系统而无法完全启动。

日志显示它卡在“platform fa00000.mmc: defered probe pending“(平台 fa00000.mmc:延迟探测器挂起)。 客户电路板的主要区别在于 SD 卡设计。 它仅在 3.3V 电源下运行、因此仅限于低速模式

以下是我们当前的分析和软件修改:

  1. 与 EVM 的正常启动日志相比(请参阅 EVM 和我们定制电路板附带的日志):
    • 正常启动显示 mmc0 (eMMC) 和 mmc1(SD 卡)的初始化
    • 我们的电路板仅显示 mmc0 (eMMC) 初始化、而 mmc1(SD 卡)驱动程序未能安装

  2. 我们基于以下三个类似的 E2E 案例实施了修改:

所做的具体更改:

    • 禁用 UHS 模式
    • 添加了 no-1-8-v 属性
    • 已禁用 eMMC 节点
    • 减小总线宽度
    • 已删除 VMMC-SUPPLY 属性

但是、问题仍然存在、出现相同的症状。 您能否请查看日志并提供进一步的调试建议?  

e2e.ti.com/.../AM62P_2D00_customer_2D00_board_2D00_boot_2D00_abnormal.txte2e.ti.com/.../AM62P_2D00_EVM_2D00_boot_2D00_normal.log

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

    您好:

    您能分享在电路板上启动的内核 DTB 吗?

    谢谢!

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

    您好:

    此外、以下是我的器件树修改以供您参考:

    diff --git a/arch/arm64/boot/dts/ti/k3-am62p-main.dtsi b/arch/arm64/boot/dts/ti/k3-am62p-main.dtsi
    index e46dc1d29..eda7934a0 100644
    --- a/arch/arm64/boot/dts/ti/k3-am62p-main.dtsi
    +++ b/arch/arm64/boot/dts/ti/k3-am62p-main.dtsi
    @@ -629,15 +629,16 @@
                    power-domains = <&k3_pds 58 TI_SCI_PD_EXCLUSIVE>;
                    clocks = <&k3_clks 58 5>, <&k3_clks 58 6>;
                    clock-names = "clk_ahb", "clk_xin";
    -               bus-width = <4>;
    +               //bus-width = <4>;
    +               bus-width = <1>;
                    ti,clkbuf-sel = <0x7>;
                    ti,otap-del-sel-legacy = <0x0>;
                    ti,otap-del-sel-sd-hs = <0x0>;
    -               ti,otap-del-sel-sdr12 = <0xf>;
    -               ti,otap-del-sel-sdr25 = <0xf>;
    -               ti,otap-del-sel-sdr50 = <0xc>;
    -               ti,otap-del-sel-ddr50 = <0x9>;
    -               ti,otap-del-sel-sdr104 = <0x6>;
    +               //ti,otap-del-sel-sdr12 = <0xf>;
    +               //ti,otap-del-sel-sdr25 = <0xf>;
    +               //ti,otap-del-sel-sdr50 = <0xc>;
    +               //ti,otap-del-sel-ddr50 = <0x9>;
    +               //ti,otap-del-sel-sdr104 = <0x6>;
                    ti,itap-del-sel-legacy = <0x0>;
                    ti,itap-del-sel-sd-hs = <0x0>;
                    ti,itap-del-sel-sdr12 = <0x0>;
    diff --git a/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts b/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts
    index 4b8e7964c..bbf82e98c 100644
    --- a/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts
    +++ b/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts
    @@ -582,7 +582,9 @@
     };
     
     &sdhci0 {
    -       status = "okay";
    +       //status = "okay";
    +       status = "disable";
    +       no-1-8-v;
            ti,driver-strength-ohm = <50>;
            disable-wp;
            bootph-all;
    @@ -592,7 +594,8 @@
            /* SD/MMC */
            status = "okay";
            vmmc-supply = <&vdd_mmc1>;
    -       vqmmc-supply = <&vddshv_sdio>;
    +       //vqmmc-supply = <&vddshv_sdio>;
    +       no-1-8-v;
            pinctrl-names = "default";

    下面附上.dtb:

    e2e.ti.com/.../4807.k3_2D00_am62p5_2D00_sk.dtb

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

    您好:

    4807.k3-am62p5-sk.dtb

    我认为这不是在电路板上启动的 dtb。 这已禁用 eMMC 节点、因此理想情况下、内核不应该枚举 eMMC、但它确实是从共享日志中推断出来的。

    要验证是否启动了正确的 dtb、一种简单的方法是修改“model"字符“字符串并查看日志是否具有该修改:

    diff --git a/arch/arm64/boot/dts/ti/k3-am625-sk.dts b/arch/arm64/boot/dts/ti/k3-am625-sk.dts
    index f9b7fa2e8156..47e5dd5d0aae 100644
    --- a/arch/arm64/boot/dts/ti/k3-am625-sk.dts
    +++ b/arch/arm64/boot/dts/ti/k3-am625-sk.dts
    @@ -11,7 +11,7 @@
     
     / {
     	compatible = "ti,am625-sk", "ti,am625";
    -	model = "Texas Instruments AM625 SK";
    +	model = "Custom Board AM625 SK";
     
     	opp-table {
     		/* Add 1.4GHz OPP for am625-sk board. Requires VDD_CORE to be at 0.85V */
    

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

    您好:

    请按如下方式修改“vdd_mmc1":“:

    diff --git a/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts b/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts
    index 4b8e7964ca4d..acfc0a239804 100644
    --- a/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts
    +++ b/arch/arm64/boot/dts/ti/k3-am62p5-sk.dts
    @@ -141,8 +141,7 @@ vdd_mmc1: regulator-2 {
     		regulator-min-microvolt = <3300000>;
     		regulator-max-microvolt = <3300000>;
     		regulator-boot-on;
    -		enable-active-high;
    -		gpio = <&exp1 3 GPIO_ACTIVE_HIGH>;
    +		regulator-always-on;
     		bootph-all;
     	};
     
    

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

    您好:

    现在不确定这是否与 SD 卡有关。 您的电路板上是否设置了可正常工作的 Linux 内核、还是第一次启动 Linux 内核?

    此致、

    Prashant

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

    您好:

    这是我们第一次在定制电路板上启动 Linux 内核。  不过、我们之前在 EVM 上验证过、在修改为使用仅 3.3V 电源运行时、SD 卡可以正常引导。

    此外、我注意到调用跟踪包括 MMC_MQ_QUEUE_rq—这不表示 SD 卡驱动程序有问题吗?  如果此问题与 SD 卡驱动程序无关、能否提供其他调试建议或故障排除方法?  

    谢谢。

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

    您好:

    我的道歉——这是我的疏忽。 我怀疑可能涉及 RAM、因此我重新审视了设备树配置。 结果表明内核的内存节点没有更新以反映实际的 RAM 大小。 更正后、系统成功引导到文件系统。 感谢您的帮助!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我可能涉及到可疑的 RAM、因此我重新访问了设备树配置。 结果表明内核的内存节点尚未更新以反映实际的 RAM 大小。

    这就是我的怀疑。 看起来不像 MMC 问题。

    感谢您的更新!!