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.

[参考译文] J7200XSOMXEVM:无法从 SD/eMMC 引导 DRA821 评估板;I2C 错误

Guru**** 2652575 points

Other Parts Discussed in Thread: J721EXCPXEVM

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1584022/j7200xsomxevm-unable-to-boot-dra821-eval-board-from-sd-emmc-i2c-errors

器件型号:J7200XSOMXEVM
主题中讨论的其他器件: J721EXCPXEVM

我有 J7200XSOMXEVM SOM 和 J721EXCPXEVM CPB。 插入提供的 SD 卡并引导时、引导会在 Linux 尝试挂载 rootfs 的位置挂起。 完整引导日志位于以下位置: TI 引导日志 orig.txt 

我不确定它是否相关、但您可以在 0x20/21/22 处与 pca953x i2c 器件相关的日志中看到许多故障。 这些似乎可以控制 SD 卡启用/检测。 例如:

__omap24_i2c_xfer_msg: error waiting for ACK (status=0x116)
omap_i2c_xfer: errored out at msg 0: -121
pca953x gpio@22: Error reading output register
switch to partitions #0, OK
mmc1 is current device
__omap24_i2c_xfer_msg: error waiting for ACK (status=0x116)
omap_i2c_xfer: errored out at msg 0: -121
pca953x gpio@22: Error reading output register
SD/MMC found on device 1
574 bytes read in 1 ms (560.5 KiB/s)
Loaded env from uEnv.txt
Importing environment from mmc1 ...
__omap24_i2c_xfer_msg: error waiting for ACK (status=0x116)
omap_i2c_xfer: errored out at msg 0: -121
pca953x gpio@20: Error reading output register
__omap24_i2c_xfer_msg: error waiting for ACK (status=0x116)
omap_i2c_xfer: errored out at msg 0: -121
pca953x gpio@22: Error reading output register
__omap24_i2c_xfer_msg: error waiting for ACK (status=0x116)
omap_i2c_xfer: errored out at msg 0: -121
pca953x gpio@20: Error reading output register
GPIO: 'gpio@22_17' not found
Command 'gpio' failed: Error -22
__omap24_i2c_xfer_msg: error waiting for ACK (status=0x116)
omap_i2c_xfer: errored out at msg 0: -121
pca953x gpio@20: Error reading output register
__omap24_i2c_xfer_msg: error waiting for ACK (status=0x116)
omap_i2c_xfer: errored out at msg 0: -121
pca953x gpio@22: Error reading output register
__omap24_i2c_xfer_msg: error waiting for ACK (status=0x116)
omap_i2c_xfer: errored out at msg 0: -121
pca953x gpio@20: Error reading output register
GPIO: 'gpio@22_16' not found
Command 'gpio' failed: Error -22

[    0.983224] omap_i2c 42120000.i2c: bus 0 rev0.12 at 400 kHz
[    0.989853] pca953x 1-0021: supply vcc not found, using dummy regulator
[    0.996700] pca953x 1-0021: using no AI
[    1.015456] pca953x 1-0020: supply vcc not found, using dummy regulator
[    1.022284] pca953x 1-0020: using no AI
[    1.026267] pca953x 1-0020: failed writing register: -121
[    1.031849] pca953x 1-0020: probe with driver pca953x failed with error -121
[    1.039262] pca953x 1-0022: supply vcc not found, using dummy regulator
[    1.046085] pca953x 1-0022: using AI
[    1.049803] pca953x 1-0022: failed writing register: -121
[    1.055386] pca953x 1-0022: probe with driver pca953x failed with error -121
[    1.062641] omap_i2c 2000000.i2c: bus 1 rev0.12 at 400 kHz
[    1.068898] pca953x 2-0020: supply vcc not found, using dummy regulator
[    1.075734] pca953x 2-0020: using no AI
[    1.095016] pca953x 2-0020: failed writing register: -121
[    1.100591] pca953x 2-0020: probe with driver pca953x failed with error -121

我确实通过添加.dtbo 叠加层来禁用芯片检测并覆盖内核认为 SD 的电源电压、并假设 0x22 处的 i2c 扩展器(原理图中的 U31)未通信、从而成功引导设备。 我确实确认芯片正在 SD 使能信号 (GPIO_uSD_PWR_EN) 上提供 3.3V 电压、SD 卡正在获取 3.3V 电源 (VCC_MMC1)。 添加此覆盖项会引导以下内容:

/dts-v1/;
/plugin/;
/ {
    compatible = "ti,j7200-evm", "ti,j7200";
    fragment@0 {
            target-path = "/";
            __overlay__ {
                        vmmc1_fix: regulator-vmmc1-fix {
                                        compatible = "regulator-fixed";
                                        regulator-name = "vmmc1-fix";
                                        regulator-min-microvolt = <3300000>;
                                        regulator-max-microvolt = <3300000>;
                                        regulator-always-on;
                                        regulator-boot-on;
                        };
           };
    };
    fragment@1 {
            target-path = "/bus@100000/mmc@4fb0000";
            __overlay__ {
                        broken-cd;
                        no-1-8-v;
                        vmmc-supply = <&vmmc1_fix>;
                        status = "okay";
                        /delete-property/ cd-gpios;
                        /delete-property/ vqmmc-supply;
            };
    };
};

但这不是一个很好的解决方案,如果 i2c 扩展器没有通信,它将阻止所有其他功能(以太网, eMMC 等)正常工作。 我曾尝试将 uboot 切换到 eMMC、结果出现以下故障:

=> mmc dev 0

am654_sdhci mmc@4f80000: No passing ITAPDLY, return 0 unable to select a mode: -5 mmc_init: -524, time 384

我还尝试了以下网站上的最新 PROCESSOR-SDK-LINUX: https://www.ti.com/tool/download/SDK-J7200/11.01.08.01 、结果相同。

我很想知道 I2C 错误是否与我们看到的 SD/eMMC 问题有关、以及它们是否可能是配置问题还是电路板有缺陷。 如果它们不相关、那么关于如何启动 SD/eMMC 的任何其他想法。

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

    尊敬的 Daniel:

    我会仔细研究一下、然后回复您。

    此致

    Gokul

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

    尊敬的 Daniel:

    真的很抱歉耽误了回复。

    但这不是一个很好的解决方案、如果 i2c 扩展器无法通信、它将阻止所有类型的其他功能(以太网,eMMC 等)正常工作。 我确实尝试了将 uboot 切换到 eMMC、失败原因为:

    这可能会导致 SOM 未以正确方式连接到 eh cpb 或某种松动的连接、从而导致 i2c 扩展器出现故障。 您是否可以再次尝试将 SOM 重新连接到 CPB 并查看其是否正常工作?

    就我而言、这不是软件问题。

    此致

    Gokul

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

    谢谢! 就是这样。 板已正确安装(我已仔细检查)、但肯定有一个脏的针脚/连接不好 — 拆卸并重新拔插固定它。