Other Parts Discussed in Thread: J721EXCPXEVM
器件型号: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: -121pca953x gpio@22: Error reading output registerswitch to partitions #0, OKmmc1 is current device__omap24_i2c_xfer_msg: error waiting for ACK (status=0x116)omap_i2c_xfer: errored out at msg 0: -121pca953x gpio@22: Error reading output registerSD/MMC found on device 1574 bytes read in 1 ms (560.5 KiB/s)Loaded env from uEnv.txtImporting environment from mmc1 ...__omap24_i2c_xfer_msg: error waiting for ACK (status=0x116)omap_i2c_xfer: errored out at msg 0: -121pca953x gpio@20: Error reading output register__omap24_i2c_xfer_msg: error waiting for ACK (status=0x116)omap_i2c_xfer: errored out at msg 0: -121pca953x gpio@22: Error reading output register__omap24_i2c_xfer_msg: error waiting for ACK (status=0x116)omap_i2c_xfer: errored out at msg 0: -121pca953x gpio@20: Error reading output registerGPIO: 'gpio@22_17' not foundCommand 'gpio' failed: Error -22__omap24_i2c_xfer_msg: error waiting for ACK (status=0x116)omap_i2c_xfer: errored out at msg 0: -121pca953x gpio@20: Error reading output register__omap24_i2c_xfer_msg: error waiting for ACK (status=0x116)omap_i2c_xfer: errored out at msg 0: -121pca953x gpio@22: Error reading output register__omap24_i2c_xfer_msg: error waiting for ACK (status=0x116)omap_i2c_xfer: errored out at msg 0: -121pca953x gpio@20: Error reading output registerGPIO: 'gpio@22_16' not foundCommand '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 的任何其他想法。