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.

[参考译文] AM3352:MMC2未初始化

Guru**** 2589245 points
Other Parts Discussed in Thread: AM3352

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/630749/am3352-mmc2-is-not-initialized

器件型号:AM3352
Thread 中讨论的其他器件: WL1835WL1271

大家好、

我使用的是基于 AM3352的定制板、并在 mmc2接口上使用 Wi-Fi 芯片。 我将使用 TI   PROCESSOR-SDK-04.00.04 进行开发。

问题:

我已正确配置器件树以支持 mmc2上的 WL1835。 我可以在内核启动时看到 WL_EN 函数。

问题是、内核在引导时未检测到 mmc2接口。 我没有看到任何 mmc2初始化日志。 以下是我在 mmc2上的 WL1835芯片的器件树信息:

wlan_en_reg:fixedregator@2{
兼容="稳压器固定";
电脑控制器名称="wlan_en_reg";
稳压器最小微伏=<1800000>;
稳压器最大值微伏=<1800000>;

/*此板的 WLAN_EN GPIO -组3、引脚4 */
GPIO =<&GPIO3 4 0>;

/* WLAN 卡特定延迟*/
启动延迟-us =<70000>;
使能端高电平有效;
};

mmc3_pins:pinmux_mmc3_pins{
pinctrl-single、pins =<
0x30 (PIN_INPUT_PULLUP | MUX_MODE3)/* GPMC_AD12.mmc2_DAT0、INPUT_PULLUP | MODE3 */
0x34 (PIN_INPUT_PULLUP | MUX_MODE3)/* GPMC_AD13.mmc2_DAT1、INPUT_PULLUP | MODE3 */
0x38 (PIN_INPUT_PULLUP | MUX_MODE3)/* GPMC_AD14.mmc2_DAT2、INPUT_PULLUP | MODE3 */
0x3c (PIN_INPUT_PULLUP | MUX_MODE3)/* GPMC_AD15.mmc2_dat3、INPUT_PULLUP | MODE3 */
0x88 (PIN_INPUT_PULLUP | MUX_MODE3)/* GPMC_csn3.mmc2_cmd、INPUT_PULLUP | MODE3 */
0x8C (PIN_INPUT_PULLUP | MUX_MODE3)/* GPMC_clk.mmc2_clk、INPUT_PULLUP | MODE3 */
>;
};

wlan_pins:pinmux_wlan_pins{
pinctrl-single、pins =<
0x118 (PIN_OUTPUT 下拉| MUX_MODE7)/* gmii1_rxdv.GPIO3_4 WL_EN *
0x98 (PIN_INPUT | MUX_MODE7)/* GPMC_WN.GPIO2_4 WL_IRQ *
>;
};

mmc3{(&M)
/*这些位于纵横制上,并在中进行了概述
Xbar-event-map 元素*/
DMA =<&EDMA 12.
EDMA 13>;
dma-names ="TX"、"Rx";
状态="正常";
VMMC-supply =<&wlan_en_reg>;
总线宽度=<4>;
pinctrl-names ="default";
pinctrl-0 =<&mmc3_pins &wlan_pines>;
TI、不可拆卸;
TI、需要特殊处理;
电容断电卡;
暂停时保持供电;

#address-cells =<1>;
#size-cells =<0>;
wlcore:wlcore@2{
兼容="ti、wl1835";
reg =<2>;
interrupt-parent =<&GPIO2>;
中断=<4 IRQ_TYPE_LEVEL_HIGH_>;
};
};

我已尝试修改上述延迟、但没有成功。  

另一个发现是、如果我将  wlan_en_reg 保持在 启用/低电平状态、或者如果我提供 mmc3和固定的"VMMC-supply"、内核可以检测到 mmc2接口、当然 WL1835不起作用、但我可以看到内核尝试探测 wlcore。

请向我推荐我的问题所在。

谢谢、此致、

Divyeshkumar M

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    软件团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、Divyeshkumar、

    您是否遵循 WL18xx 平台集成指南、该指南可在以下位置找到:
    processors.wiki.ti.com/.../WL18xx_Platform_Integration_Guide
    如果不是、则执行所有步骤。

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

    您能用以下命令显示 dmesg 日志吗:
    "wlan_en_reg 处于启用/低电平有效状态、或者如果我提供 mmc3和固定的"VMMC-supply"

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

    Yordan、您好!

    这是当我为 mmc3提供"vmmcsd_fixed"的固定 VMMC 电源时的 dmesg 日志

    e2e.ti.com/.../mmc2_5F00_issue_5F00_dmesg.txt

    从日志中可以看出、内核检测到 mmc2接口、但由于我提供了稳定的 VMMC 电源、WL185无法通电、并且无法通过 SDIO 驱动程序进行通信。

    Shulev、您好!

    是的、我已经介绍了您共享的集成指南。

    谢谢、

    Divyeshkumar M

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

    是否已检查 dmesg 日志?

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

    我是 ooo。 我今天将介绍这一点。

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

    了解如何在 AM335x-EVM.dts 中定义 wlan_en_reg:
    wlan_en_reg:fixedregulator2{
    兼容="稳压器固定";
    reguler-name ="wlan-en-regulator ";
    稳压器最小微伏=<1800000>;
    稳压器最大值微伏=<1800000>;

    /*此板的 WLAN_EN GPIO -组1、pin16 */
    GPIO =<&GPIO1 16 0>;

    /* WLAN 卡特定延迟*/
    启动延迟-us =<70000>;
    使能端高电平有效;
    };


    AM335x-evmsk.dts 的情况类似:
    wl12xx_VMMC:fixedregulator2{
    pinctrl-names ="default";
    pinctrl-0 =<&wl12xx_GPIO>;
    兼容="稳压器固定";
    电脑控制器名称="vwl1271";
    稳压器最小微伏=<1800000>;
    稳压器最大值微伏=<1800000>;
    GPIO =<&GPIO1 29 0>;
    启动延迟-us =<70000>;
    使能端高电平有效;
    };

    您可以看到、它是一个固定稳压器。 您能否重新访问 VMMC_FIXED 定义?

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

    Yordan、您好!

    我使用相同的技术让驾驶员控制电压调节(我已将 DTS 粘贴到螺纹中)。 我使用了固定 VMMC_FIXED 如下:

    vmmcsd_fixed:fixedregulator@0{

    兼容="稳压器固定";

    reguler-name ="vmmcsd_fixed";

    稳压器最小微伏=<3300000>;

    稳压器最大值微伏=<3300000>;

    };

    无论如何

    我在这一问题上取得了很大进展、详情如下:

    由于我们将逆变器用于 WL EN 引脚、因此我必须 使 WLAN_en_reg 保持低电平有效状态、这现在使我能够按预期切换 WL EN。 驱动程序可以将其切换为正常、内核会检测到 mmc2。 我还检查了 SDIO 数据引脚、发现这些引脚根本不传输任何数据(引脚复用是干净的、我不知道原因)。 我更改了引脚多路复用、并在 SDIO 引脚上进行了一些更改。

    问题:

    现在我遇到另一个问题、我无法从 WL1835芯片读取、内核会中断驱动程序、并出现以下错误(我启用了 MMC_DEBUG):

    [42.189315] mmc2:请求完成(CMD53):0:00001000 00000000 00000000 00000000
    [42.189328] mmc2:传输的4个字节:0
    [42.189388] mmc2:启动 CMD53 arg a7ffb004标志000001b5
    [42.189405] mmc2:blksz 4 blocks 1 flags 00000100 TSAC 1000ms NSAC 0
    [42.189792] mmc2:请求完成(CMD53):0:00001000 00000000 00000000 00000000
    [42.189807] mmc2:传输的4字节:0
    [42.189878] mmc2:启动 CMD52 arg 83fff801标志00000195
    [42.190151] mmc2:请求完成(CMD52):0:00001001 00000000 00000000 00000000
    [42.190225] mmc2:启动 CMD53参数266e7004标志000001b5
    [42.190242] mmc2:blksz 4 blocks 1 flags 00000200 TSAC 1000ms NSAC 0
    [43.239106] mmc2:请求完成(CMD53):0:00001000 00000000 00000000 00000000
    [43.239138] mmc2:传输的0字节:-110
    [43.288214] wl1271_SDIO mmc2:0001:2:SDIO 读取失败(-110)
    [43.288245] SDIO:正在禁用器件 mmc2:0001:2...
    [43.288266] mmc2:启动 CMD52参数00000400标志00000195
    [43.319294] mmc2:请求完成(CMD52):0:00002001 00000000 00000000 00000000
    [43.319485] mmc2:启动 CMD52参数80000401标志00000195
    [43.319766] mmc2:请求完成(CMD52):0:00002001 00000000 00000000 00000000
    [43.319813] SDIO:禁用器件 mmc2:0001:2
    [43.319833] mmc2:MMC_POWER_SAVE_HOST:关闭电源
    [43.319856] mmc2:时钟0Hz 总线模式2功率模式0 cs 0 Vdd 0宽度1计时0

    这可能是什么原因? 我认为它在某种程度上属于硬件级别、就好像我将 mmc2接口更改为与1个 SDIO 引脚配合使用一样、我可以将 WL 驱动程序加载好、并且可以启动 wlan0接口并运行正常。 虽然速度相当慢、但我可以关联到基站并从中 ping 通。

    请说明后续问题的可能原因。

    谢谢、此致、

    Divyeshkumar M

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

    [引述](引脚复用是干净的、我不知道原因)。 我更改了引脚多路复用、并在 SDIO 引脚上进行了一些更改。 [/报价]
    您的意思是 pinmux 干净??? 您是否说 DTS pinmux 设置不适用?

    您是否也尝试在 u-boot 中添加 mmc2 pinmux 设置? 您是否验证了这些引脚未在系统中的其他任何位置进行配置?

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

    根据 pinmux 这个术语、我的意思是在 pinmux 中没有问题或者交叉复用。 是的、我在 u-boot 中使用的同一器件树很好。

    我尚未在 u-boot 的 mux.c 文件中添加 mmc2的 pinmux、我只将其添加到 u-boot 的 DTS 中。 我真的需要在 mux.c 中添加这些引脚多路复用器吗?

    我已经检查了引脚、pinmux 唯一可能的位置是 u-boot 的 mux.c 文件、u-boot 的器件树和内核的器件树。 引脚多路复用是否还有其他可能的位置?

    谢谢、
    Divyeshkumar
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    不、SDK 中没有任何其他引脚多路复用配置。

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

    然后、是的、所有引脚均已正确配置。 您从这里有什么想法? 您是否知道我为什么会获得:

    wl1271_SDIO mmc2:0001:2:SDIO 读取失败(-110)

    wl1271:错误无法获取硬件信息


    谢谢、
    Divyeshkumar

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是否可以验证:
    e2e.ti.com/.../264939

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

    我已经检查过该线程、我们的 WL EN 为1.8V。 正如我提到过的、如果我将 SDIO 总线宽度从4更改为1、那么 Wlcore 驱动器会正常加载。 我甚至可以连接到 Wi-Fi 基站并对其执行 ping 操作。 在这种情况下、通信速度要慢得多。 这意味着、我的 WL1835芯片处于开启状态且响应迅速、但 SDIO 数据线存在一些问题。

    谢谢、
    Divyeshkumar
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的、我需要一些时间来深入探究问题的根源、并尝试找出问题的根本原因。

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

    非常感谢您的帮助。

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

    您看到的错误来自:
    drivers/net/wireless/ti/wlcore/main.c:wl12xx_get_hw_info
    代码中断位于 ret = wlcore_read_reg (WL、REG_CHIP_ID_B、&WL->CHIP.id);或位于 ret = wlcore->ops->get_WL_ver(WL、&WL->HW_pg_ver);这与"wl1271:错误无法获取硬件信息"消息有关。 "wl1271_SDIO mmc2:0001:2:SDIO 读取失败(-110)"消息来自 drivers/net/wireless/ti/wlcore/SDIO.c:wl12xx_SDIO_raW_READ () fuction。
    如果您可以检查天气、您的 WiFi 模块上会有时钟信号、这会很好。

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

    WiFi 芯片的时钟正常。

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

    这是一次漫长的尝试、但您能否尝试切换到:
    兼容="ti、am33xx-hsmmc"
    甚至
    .compatible ="ti、dra7-hsmmc"(如果 amm33xx-hsmmc 不起作用)。

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

    问题现已解决。 我们对未正确配置的 mmc2_data3进行了返工。 Ping 响应缓慢是由于射频天线侧出现硬件问题。

    非常感谢您为解决该问题提供的帮助。

    谢谢、此致、
    Divyeshkumar