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.

[参考译文] AM3358:MMC3检测失败

Guru**** 2548280 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/917172/am3358-mmc3-detect-fails

器件型号:AM3358

您好!

我使用 mmc3连接 SDIO wifi 模块 Marvell、sd8997。 引导时  、MMC 驱动程序发送 CMD5以检测 SDIO 时始终没有响应。

我在中提到了这个主题

https://e2e.ti.com/support/processors/f/791/t/590036?Linux-AM3358-MMC3-fails 

并修改我的设备树。 但是、仍然没有检测到 SDIO 器件。

SDK 版本为06.00.00.07。 相关器件树如下所示

(笑声)      
mmc3: MMC@47810000 {
            兼容 = "ti、omAP4-hsmmc";
            ti、hwmds = "mmc3";
            TI,需要特殊重置;
            中断 = <29>;
            REG = <0x47810000 0x1000>;
            STATUS = "禁用";
        };
(笑声) 
wlan_en_reg:fixedregulator4{ 兼容="稳压器固定"; reguler-name ="wlan-en-regulator "; 稳压器最小微伏=<3300000>; 稳压器最大值微伏=<3300000>; /*此板的 WLAN_EN GPIO -组2、pin12 (WIFI_WDIS)*/ GPIO =<&GPIO2 12 GPIO_ACTIVE_HIGH_>; /* WLAN 卡特定延迟*/ 启动延迟-us =<70000>; 使能端高电平有效; }; ... wlan_pins:pinmux_wlan_pins{ pinctrl-single、pins =< AM33XX_IOPAD (0x8B8、PIN_OUTPUT_PULLUP | MUX_MODE7)/*(T3) WIFI_wds.GPIO2[12]*/ AM33XX_IOPAD (0x858、PIN_INPUT_PULLUP | MUX_MODE7)/*(U15) MMc2_CDN.GPIO1[22]* >; }; ... mmc3{(&M) 状态="正常"; // VMMC-supply =<&VMMC_reg>; VMMC-supply =<&wlan_en_reg>; // VMMC-supply =<&vmmcsd_fixed>; 总线宽度=<4>; pinctrl-names ="default"; pinctrl-0 =<&mmc3_pins &wlan_pines>; // pinctrl-0 =<&mmc3_PINs>; /*这些位于纵横制上,并在中进行了概述 Xbar-event-map 元素*/ DMA =<&EDMA_Xbar 12 0 1 EDMA_Xbar 13 0 2>; dma-names ="TX"、"Rx"; // ti,不可移动; 光盘损坏; TI、需要特殊处理; 电容断电卡; 暂停时保持供电; NO-1-8-v; #address-cells =<1>; #size-cells =<0>; mwifex:wifi@0{ // compatible ="ti、wl1835"; compatible ="Marvell、sd8997"; reg =<2>; //interrupt-parent =<&PIO>; //interrupts =<tx28_TYPE_LEVEL_LOW>;0x08/ 0x0008;0x000_0x000_012_c= 0x000/ 0x000_0x000/ 0x000/ 0x000/ 0x0001;0x000/ 0x000_000/ 0x000/ 0x000/ 0x000/ 0x000/ 0x000/ 0x000/ 0x000/ 0x000/ 0x000/ 0x000/ 0x000/ 0x000_000

我修改了驱动程序代码以打印相关日志。以下是启动时的相关日志

[1.171930] sdhci:安全数字主机控制器接口驱动程序
[1.178225] sdhci:版权所有(c) Pierre Osman
[1.183436] mmc0 reg 开始:0x48060000、偏移量:0x00000100、基地址:0xfa060100
[1.183928] omap_hsmmc 48060000.mmc:作为消费类产品链接到 regular.4
[1.223288] mmc0:MMC_rescan_try_freq:尝试以400000Hz 的频率初始化卡
[1.229941] mmc0:MMC_rescan_try_freq:SDIO_reset
[1.234723] omap_hsmmc 48060000.mmc:omap_hsmmc_probe 完成。
[1.240859] mmc1 reg start:0x47810000、偏移量:0x00000100、基地址:0xe08cf100
[1.241296] OMAP_hsmmc 4781000.MMC:以消费类产品身份链接到 regular.5
[1.259990] mmc0:扫描开始(SDIO->SDO->MMC)...
[1.266014] mmc0:MMC_ATE_SDIO:MMC_SEND_IO_OP_COND 失败。
[1.272548] mmc0:MMC_attach_SD:MMC_SEND_APP_OP_COND 成功
[1.278059] mmc0:MMC_ATE_SD:MMC_SELECT_VOLTAGE 成功
[1.283462] OMAP_hsmmc 4781000.MMC:OMAP-hsmmc_probe Done。
[1.289285] sddhci-pltfm:SDHCI 平台和驱动程序助手
[1.296069] ledtrig-CPU:已注册以指示 CPU 上的活动
[1.302249] mmc1:MMC_rescan_try_freq:尝试以400000Hz 的频率初始化卡
[1.3089] mmc1:MMC_rescan_try_freq:SDIO_reset
[1.317505] NET:注册协议系列10.
[1.322434] mmc1:CMD52、参数0x00000c00
[1.327466] mmc1:CMD52、参数0x80000c08
[1.33269]使用 IPv6的段路由
[1.336772] SIT:IPv6、IPv4和 MPLS over IPv4隧道驱动程序
[1.343864] NET:注册协议系列17.
[1.348426] mmc1:CMD0、参数0x00000000
[1.353150]注册的密钥类型 DNS_旋 变传感器
[1.357828] OMA_VOLTGE_LARD_INIT:未添加电压驱动器支持
[1.36444] mmc0:主机不支持只读开关、假设已启用写入
[1.372430] mmc1:CMD8、参数0x000001aa
[1.377684]正在加载已编译的 X.509证书
[1.382582] mmc1:扫描开始(SDIO->SDO->MMC)...
[1.387144] mmc1:CMD5、参数0x00000000
[1.393596] mmc0:MMC_ATE_SD:MMC_SD_INIT_CARD 成功
[1.398793] mmc0:地址0260处的新高速 SD 卡
[1.412262] mmc1:CMD5、参数0x00000000
[1.417096] mmc1:CMD5、参数0x00000000
[1.421844] GPMC 探头
[1.424373] OMAP-GPMC baseaddr = e08de000
[1.428537] OMAP-GPMC 50000000。GPMC:GPMC 版本6.0
[1.434482] mmcblk0:mmc0:0260 SD 977 MIB
[1.439334] mmc1:CMD5、参数0x00000000
[1.444410] GPMC_mem_init:禁用映射在0x0-0x1000000的 CS 0
[1.450635] mmc1:MMC_ATE_SDIO:MMC_SEND_IO_OP_COND 失败。
[1.456525] mmcblk0:P1 P2 P3
[1.460317] GPMC GPMC_PROBLE_dt_children、用于'afe'
[1.466221] mmc0:MMC_attach_SD:MMC_add_card 成功
[1.471046] mmc0:MMC_ATE_SD:完成。
[1.474874] mmc1:CMD55、参数0x00000000
[1.479253] GPMC_READ_SETTINGS_dt:设置了页/突发长度、但未使用!
[1.485926] mmc1:CMD55、参数0x00000000
[1.490237] mmc0:MMC_rescan_try_freq:SD 卡。
[1.494871] mmc1:CMD55、参数0x00000000
[1.500125]针对'FPGA'的 GPMC GPMC_PROBLE_dt_children
[1.505082] mmc1:CMD55、参数0x00000000
[1.510870] mmc1:MMC_attach_SD:MMC_SEND_APP_OP_COND 失败。
[1.517755] omap_i2c 44e0b000.i2c:400kHz 时的总线0版本0.11
[1.523470] mmc1:CMD1、参数0x00000000
[1.528999] i2c i2c-2:for_i2c:/ocp/i2c 上的 MODALIAS 故障@4819c000/TPS@48
[1.536088] mmc1:MMC_attach_MMC:MMC_SEND_OP_COND 失败。
[1.541428] mmc1:MMC_rescan_try_freq:MMC_attach_bus 失败。

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

    结果是 Wi-Fi 模块未复位。

    我在 mmc3中的器件树中添加了"broken CD;"、此外  、我还在系统引导后手动复位 Wi-Fi 模块。

    现在、SDIO 驱动程序成功了。

    [ 1182.194060] mmc1:CMD52、参数0x01018e00
    [ 1182.198423] mmc1:CMD52、参数0x01019000
    [ 1182.203003] mmc1:CMD52、参数0x01019200
    [ 1182.207315] mmc1:CMD52、参数0x0102127619400
    [ 1182.20300] mmc1
    
    :参数0x0101952] mmc2、参数0x021652]
    CMD52、参数0x01019c00
    [ 1182.229470] mmc1:CMD52、参数0x01019e00
    [ 1182.234048] mmc1:CMD52、参数0x0101a000
    [ 1182.2383838382] mmc1:地址为
    [ 1182.244565]的新高速 SDIO 卡 mmc1:MMC_freq_rescan。 

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

    您好 Qiling、

    [引用用户="qiling Wu"]

    结果是 Wi-Fi 模块未复位。

    我在 mmc3中的器件树中添加了"broken CD;"、此外  、我还在系统引导后手动复位 Wi-Fi 模块。

    [/报价]

    感谢您在此处分享您的解决方案、它可能会帮助其他人。

    此致、
    Andreas