主题中讨论的其他器件: TWL1200
工具/软件:Linux
我正在尝试让 WL1837MOD 在我们的电路板上工作。 我们仍在使用3.14内核(EZSDK 08.00.00.00)。 我已成功通过 element14 Cape 将驱动程序加载到 BeagleBone Black 上。
我已经在我们的板上加载了驱动程序、并相应地调整了 DTS 文件。 当我们的电路板启动时、它会检测到安装的 SDIO 卡、但似乎从未加载固件。 当我尝试运行 wlconf configure-device.sh 时、系统挂起(CPU 活动 LED 指示灯保持闪烁、但控制台不会返回提示)。 如果我尝试手动卸载 wlcore_SDIO、这也会导致相同的挂起。
BBB Cape 和我们的电路板之间的主要区别是:(1)我们使用的是 mmc3、(2) WLAN_EN 通过 GPIO 扩展器进行控制。
我想知道 MMC3上的 EDMA 是否可能导致问题? 我相信以下是 DTS 的相关内容。
vmmcsd_fixed:fixedregulator@0{ compatible ="reguler-fixed"; reguler-name ="vmmcsd_fixed"; reguler-min-microvolt =<3300000>; reguler-max-microvolt =<3300000>; }; wlan_en_reg:fixedregulator@1{ compatible ="reguler-fixed"; reguler-name ="wlan-en-regulator "; reguler-min-microvolt = <1800000>;gpulator -max-microvolt =<1800000>; gpullpulator =<&gpuloex1 pullex1 9 0>; };mmc3_mctrlup* 默认值0x74_mc3 (mc3)/mc2)/mc2 mctrin_mc2 (mc2)*默认值/mc3)* mc2 (mc2)/mc2 mctrlpull_mc2)*/mc3 (mc2)/mc3 pullu_mc3 (mc2)*默认值/mc2)* mc2 (mc3)/mc3 pullu_mc3 pullu_mc3 (PIN_INPUT_PULLUP | MUX_MODE7)/* GPMC_WPN.GPIO0_31 * / 0x78 (PIN_INPUT_PULLUP | MUX_MODE3)/* GPMC_BEN1.mmc2_DAT3 * 0x88 (PIN_INPUT_PULLUP | MUX_MODE3)/* 0xMC_MMC_PULLUM_3* (0xMC_M0_MMC_PUT_M0_MOCHRESD*) *= 0xMC_PULLUM3*/0xMC_MOCK_PULLUM0_MOCn *(0xMC_MOCK_PULLUM_3*)*/0xMC_MOCK_PULLUM_PULLUM3*(0xMC_M0_MOCK_PUT_MODEx */0xMC_MOCK_PULLUM0_M3*)*/0xMC_MOCK_PULLUM_PULLUM0_M3*(0xMC_MODEx */0xMC_MODEx 引脚= (PIN_INPUT_PULLUX | MUX_MODE7)/* GPMC_A3.mmc2_DAT2 */ 0x74 (PIN_INPUT_PULLUP | MUX_MODE7)/* GPMC_WPN.GPIO0_31 * / 0x78 (PIN_INPUT_PULLUX | MUX_MODE7)/* 0xMC_MCLCULLUM_7* (0xMC_MCLCK_PULLUX)/0xMC_M8_M0_CK_INPUBLDCx *(PIN_M0_M0_M0_MOCx * )*)*(PIN_MMC_MOCK_MOCK_PULLUX *)*/MMCK_PULLUM8_MOCK_PULLUX *(PIN_MOCK_PULLUM0_M pinmux_WLAN_PINS_DEFAULT{ pinctrl-single、PINS =< 0x1e4 (PIN_INPUT_PULLUP | MUX_MODE7)/* emu0.GPIO3_7 - WLAN_IRQ */ >; }; WLAN_PIN_SLEEP:pinmux_WLAN_PIN_SLEEP{ pincti-single-single、GPIO3 - WLAN_IRQ_3* = 0x3*/ EDRQ_3*(在输入上)<x_MOUQ_3*引脚= 0x24_3*引脚2*引脚= 0x3*引脚0_EQ_EDRM0_IN_IN_MOUDIM = 0x7;/EQ_MOUQ_MOUQ_3*引脚3*引脚3*引脚 }; &mmc3{ status ="确定"; VMMC-supply =<&wlan_en_reg>; bus-width =<4>; pinctrl-names ="默认值"、"睡眠"; pinctrl-0 =<&mmc3_PINS_DEFAULT &wlan_PINS_DEFAULT>; pinctrl-1 =<&mmc3_PINS_SLEEP &wlan_PINs_SLEEP>; ti、不可拆卸; ti、需要特殊 hs-handling; cap 断电卡; 保持通电暂停; DMA =<&EDMA 12 &EDMA 13>; dma-names ="TX"、"Rx"; #address-cells =<1>; #size-cells =<0>; wlcore:wlcore@0{ compatible ="ti、wl1835"; reg =<2>; interrupt-parent =<&GPIO3>; interrupts =<7 IRQ_TYPEE_EDGE_RISING >; }; };
并在引导期间获取以下行:
[1.723307] mmc2:排队未知 CIS tuple 0x91 (3字节)
[1.723880] mmc2:地址0001处的新高速 SDIO 卡
[8.117841] wl18xx_driver wl18xx.0.auto:直接固件加载失败,错误-2
[8.125866] wl18xx_driver wl18xx.0.auto:返回到用户帮助程序
[8.153316] wlcore:错误无法获取配置二进制 ti-connectivity/wl18xx-conf.bin:-2
[8.162638] wlcore:警告恢复为默认配置
有什么想法会导致模块卸载挂起?
BTW、wl127x 使用旧版3.2内核处理此硬件(相同的物理 SDIO 接口)。