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.

[参考译文] WL1837MOD:无法探测 wlcore/wl18xx 驱动程序:mmc0 -等待硬件命令中断超时

Guru**** 2573695 points
Other Parts Discussed in Thread: WL18XXCOM82SDMMC

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/885670/wl1837mod-unable-to-probe-wlcore-wl18xx-driver-mmc0---timeout-waiting-for-hardware-cmd-interrupt

器件型号:WL1837MOD
Thread 中讨论的其他器件:WL18XXCOM82SDMMCWL1837

您好!

我在 Xilinx 电路板上使用的是具有 Linux-xlnx 4.19的 Zynq UltraScale+。

已通过 ti 将我的器件树配置为此链接

以下是我的设备树来源:

/{
wlan_en_reg:固定稳压器-MMC{
兼容="稳压器固定";

reguler-name ="wlan-en-regulator ";
稳压器最小微伏=<3300000>;
稳压器最大值微伏=<3300000>;

GPIO =<&GPIO4 0x0 0x0 0x0>;

启动延迟-us =<700000>;
使能端高电平有效;
};
};

pinctrl0{.pinctrl0}
SD1_PINS_DEFAULT:pinmux_SD1_PINS_DEFAULT{
多路复用器{
组="sdio1_0_grp";
函数="sdio1";
};

配置{
组="sdio1_0_grp";
压摆率=<0>;
IO 标准=<1>;
偏置上拉;
};
};

SD1_PINS_SLEEP:pinmux_SD1_PINS_SLEEP{
多路复用器{
组="sdio1_0_grp";
函数="sdio1";
};

配置{
组="sdio1_0_grp";
压摆率=<0>;
IO 标准=<1>;
偏置禁用;
};
};
};

&sdhci1{
最大频率=<50000000>;
总线宽度=<4>;
状态="正常";

TI、不可拆卸;
TI、需要特殊处理;
电容断电卡;
暂停时保持供电; 
VMMC-supply =<&wlan_en_reg>; pinctrl-names ="default"、"sleep"; pinctrl-0 =<&SD1_PINS_DEFAULT>; pinctrl-1 =<&SD1_PINS_SLEEP>; #address-cells =<1>; size-cells =<0>; wlcore@0{ 兼容="ti、wl1837"; reg =<2>; 中断父级=<&GPIO>; 中断=<0x7d 0x0>; }; };

当我运行 Linux 启动时、我可以看到 WL_EN 被驱动为高电平、但未加载驱动程序。 即使在我运行时:

$<>modprobe wl18xx && modprobe wlcore && modprobe wlcore_SDIO 

我可以看到驱动程序已插入、但没有发生任何情况。  

$>lsmod
模块
wlcore_SDIO 使用的大小 16384 0
wl18xx 126976 0
wlcore 245760 1 wl18xx
uio_pdrv_genirq 16384 

内核继续显示此消息:

[797.210594] mmc0:等待硬件 cmd 中断超时。
[797.216255] mmc0:sdhci:==== SDHCI 寄存器转储====
[797.222679] mmc0:sdhci:sys addr:0x00000000 |版本:0x00001002
[797.229102] mmc0:sdhci:blk size:0x00000000 | Blk cnt:0x00000000
[ 797.235526] mmc0:sdhci:参数:0x00000000 | trn
主机:0x00000001| mmc0:0x00000001[790001| mmc0:0x00000001mmdhc0:0x000000010001[mmc0:0x00000001mmc0:0x00000001mmdhc0:0x00000001[790001mmc0:0x0001~0001mm
0x00000000 | Blk GAP:0x00000080
[797.254797] mmc0:sdhci:WAKE-UP:0x00000000 |时钟:0x00004e47
[797.261221] mmc0:sdhci:timeout:0x00000000 | int stat:0x00000000
[ 797.267645] mmc0:s00000000:0x00000000
:0x0000000CC0:0x0000000CCI:0x0000000CCM:0x0000000CC0:0x0000000CCM:0x0000000CCM:0x0000000CCM:0x0000000CCM:0x0000000CCI:0x0000000CCM 000CCM:0x0000000CCM:0x0000000CCM:0x0000000CCM:0x000CCM
电容: 0x35ecc881 | Caps_1:0x00002007
[797.286916] mmc0:sdhci:cmd: 0x0000371a |最大电流:0x00000000
[ 797.293340] mmc0:sdhci:RESP[0]:0x00000000 | Resp[1]:0x00000000
[ 797.299764] mmc0:sdhci:resp[2]:0x00000000 | Resp[3]:0x0000615[ 797.30648=

0x0000000= 0x0000000= 0x0000000=:0000000= 0x0000000= 0x0000000=:0000000= 0x0000000= 0x0000000= 0x0000000=:0000000= 0x0000000= 0x0000000= 0x0000000CC= 0x0000000=:000= 0x0000000= 0x0000000= 0x0000000= 0x0000000= 0x0000000= 0x000000072100000000=:000= 0x0000000= 0x0000000= 0x0000000= ADC=:0000000= 0x0000000= 0x0000000= 0x0000000= 0x0000000= 0x0000000= 0x0000000= 0x0000000= 000

您能帮我调试吗?

谢谢

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

    我想知道、您是否有任何 SDIO/MMC 总线完整性问题。  

    您会在引导控制台日志中看到如下所示的消息吗? 否则、探测将失败。

    地址0001处的新高速 SDIO 卡

    此外、尝试将 SDIO/MMC 总线最大频率降低至1MHz、看看它是否有用。

    谢谢

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

    我在 Linux 日志中看不到与"地址0001处的新高速 SDIO 卡"相关的任何跟踪。

    但 WL18xxCOM82SDMMC 上的 LED 在 Linux 启动后激活。 我认为在启用设备的情况下探测 sshci 驱动程序的时间不正确。

    顺便说一下、我将使用 Yocto 为  WL1837相关配方构建我的 Linux 和 meta-ti 标签 ti2018.02-RC4。

    我将尝试将 最大频率降低至1MHz、请参阅。

    谢谢

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

    你好!

    尝试使用具有固定稳压器的电源序列节点。

    Paweł μ A

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

    您好!

    我添加了  

    /{
    
    SDIO_pwrseq:SDIO-pwrseq{
    compatible ="MMC-pwrseq-eMMC";
    reset-GPIO =<&axi_GPIO_4 0x0 0x0 0x0>;
    post-power-on-delay-ms =<10>;
    };
    };
    
    ssdhci1 {&
    MMC-pwrseq =<&SDIO_pwrseq>;
    }; 

    但没有任何变化。 我的设备未成功探测。

    您能不能帮助我在这个 AXI GPIO 上的场 GPIO 上设置哪些内容、这些 GPIO 可捕获3个电芯。

    --

    谢谢