Thread 中讨论的其他器件:WL1835MOD、 WL1271、 WL1835、
尊敬的香榭丽舍
我的客户在其定制板上连接 WL1835MOD 并 使用跳线连接 WL1835MOD 时遇到内核错误、如下所示。
通过参阅 WL18xx 模块硬件集成指南(修订版 B)、它们连接了 GPIO 和 SDIO 线路、如下所示。

它们将10K 上拉电阻器连接到 MMC4_CMD、MMC4_DAT0~3、MMC4_CLK 除外。

它们未连接 BT 相关引脚、因为它们不会使用 BT。

内核 dmesg 如下所示、SDIO 通信中出现错误。
[8.490254] -------- [在此处剪切]-----
[8.494919] 警告:CPU:0 PID:23 at drivers/net/wireless/ti/wlcore/SDIO.c:159 wl12xx_SDIO_raW_WRITE+0x130/0x184 [wlcore_SDIO]
[8.506545] 链接的模块:CDC_ACM wl18xx wlcore mac80211 xhci_plat_hcd xhci_hcd SHA256_generic SHA256_arm usbcore cfg80211 rpc3 UDC_CORE USB_common pru_romap_ae_driver msg_sham omap_wdwdw_wdcrypto_wds_wdwdw_gote_un_gote_remote_une_omap_une_remote_remote_une_mas
[8.537509] CPU:0 PID:23 Comm:kwork/0:1未被污染4.19.94-svn1178 #902
[8.544672] 硬件名称:通用 DRA74X (平展器件树)
[8.550796] 工作队列:事件 Request_firmware_work_func
[8.556127] 回溯:
[8.558586] [ ](dump_backtrace)从[ ](show_stack+0x18/0x1c)
[8.566187] r7:bf07ab28 r6:60010113 r5:00000000 r4:c104eb9c
[8.571870] [ ](show_stack)从[ ](dump_stack+0x9C/b0)
[8.579125] [ ](dump_stack)从[ ](_WARN+0xdc/0xf8)
[8.586026] r7:bf07ab28 r6:00000009 r5:00000000 r4:00000000
[8.591708] [ ](__warn)从[ ](WARN_RASPEK_NULL_0x48/0x50)
[8.599308] R9:dac9f810 R8:00000004 r7:da9b6a00 R6:bf079604 R5:0000009f R4:bf07ab28
[8.607086] [ ](warn_slowpath_null)、来自[ ](wl12xx_SDIO_RAW_WRITE+0x130/0x184 [wlcore_SDIO])
[8.617389] R6:0001ffd4 R5:c1004c48 R4:db61b600
[8.622059] [ ](wl12xx_SDIO_RAW_WRITE [wlcore_SDIO])从[ ](wlcore_set_partition+0x278/0x4c4 [wlcore])
[8.633322] R10:00000000 R9:da94e440 R8:bf354d40 r7:dac9f800 R6:bf0794d4 R5:dc86cd60
[8.641180] R4:bf37808c
[8.643773] [ ](wlcore_set_partition [wlcore])、来自[ ](wl12xx_set_power_on/0x74/0x14c [wlcore])
[8.654338] R6:00000000 R5:00000000 R4:dc86cd60
[8.659020] [ ](wl12xx_set_power_on [wlcore])、来自[ ](wlcore_NVS_CB+0x11c/0xa68 [wlcore])
[8.669059] R5:bf354000 R4:dc86cd60
[8.672674][ ](wlcore_NVS_CB [wlcore])、来自[ ](REQUEST_firmware_work _func+0x58/0x94)
[8.682366] R10:00000000 R9:da9b6a84 R8:00000000 r7:dbd8ef00 R6:dbd8bc80 R5:c1004c48
[8.690224] R4:da9b6a80
[8.692769] [ ](Request_firmware_Work_func)、来自[ ](Process_One_Work+0x1F4/0x404)
[8.702112] R5:dc9cd480 R4:da9b6a80
[8.705702] [ ](Process_One_Work)、来自[ ](worker_thread+0x58/0x568)
[8.713825] R10:dbd8bc80 R9:c1003d00 R8:dbd8bc98 r7:00000008 R6:dbd8bc80 r5:dc9cd494
[8.721683] R4:dc9cd480
[8.724227] [ ](worker_thread)、来自[ ](kthread+0x160/0x168)
[8.731653] R10:dc8a9e74 R9:c024724c R8:dc9cd480 r7:dca10000 R6:00000000 R5:dc9d7880
[8.739512] R4:dc9e0080
[8.742055] [ ](kthread)、来自[ ](RET_FANK_F叉+0x14/0x3c)
[8.749304] 异常堆栈(0xdca11fb0至0xdca11ff8)
[8.754374] 1fa0: 00000000 00000000 00000000
[8.762583] 1fc0:00000000 00000000 00000000 00000000 00000000 00000000 00000000
[8.770792] 1fe0:00000000 00000000 00000000 000000000013 00000000
[8.777431] R10:00000000 R9:00000000 R8:00000000 r7:00000000 R6:00000000 R5:c024c654
[8.785289] R4:dc9d7880
[8.787862] -->末尾迹05006c488094f3fc ]-->
[8.792521] wl1271_SDIO mmc1:0001:2:SDIO 写入失败(-84)
[8.798209] [SDIO.c:162:wl12xx_SDIO_RAW_WRITE]<===
[8.803474] [SDIO.c:225:wl12xx_SDIO_SET_POWER]启用(0)
[8.808896] [SDIO.c:208:wl12xx_SDIO_POWER_OFF]
[8.815268] [SDIO.c:214:wl12xx_SDIO_POWER_OFF]
[9.359234] RTC-ds1307 2-006F:读取:C2 08 01 3b 26 10 21
完整日志如下所示。
启动后的 lsmod。 没有注册任何 wicore_SDIO 模块。
root@am57xx-EVM:~# lsmod
使用的模块 大小
Kisan_USB_notifier 16384 0
xr21v1414 32768 0
cmemk 45056 2.
wl18xx 98304 0
wlcore 196608 1 wl18xx
mac80211 4442368 2 wl18xx、wlcore
xhci_plat_hcd 16384 0
xhci_hcd 143360 1 xhci_plat_hcd
SHA256_generic 20480 0
SHA256_ARM 24576 0
usbcore 217088 4 kisan_USB_notifier、xhci_plat_hcd、xr21v1414、xhci_hcd
cfg80211 270336 3 wl18xx、wlcore、mac80211
dwc3 73728 0
UDC_CORE 28672 1 dwc3
USB_common 16384 3 UDC_CORE、usbcore、dwc3
PRU_rproc 24576 0
OMAP-AES_DRIVER 24576 0
OMAP-SHIM 28672 0
OMA_WDT 16384 0
PHY_OMAP-USB2 16384 4.
wlcore_SDIO 16384 0
dwc3_OMAP 16384 0
OMAP-DES 20480 0
ExtCON_PALMAS 16384 0
DES_generic 28672 1 OMAP-DES
Crypto_engine 16384 2 OMAP-DES、OMAP-AES_DRIVER
OMAP_crypto 16384 2 OMAP_DES、OMAP_AES_DRIVER
RTC_ds1307 28672 1.
omap_remoteproc 20480 0
Virtio_rpmsg_BUS 20480 0
Remoteproc 49152 2 PRU_rproc、OMA_remoteproc
当他们尝试手动注册 wicore_SDIO 时、在 SDIO 写入时仍然发现相同的内核错误。
当他们检查 mmc1处的 SDIO 状态时、他们发现时钟和 VDD 存在问题。
root@am57xx-EVM:~# cat /sys/kernel/debug/mmc1/ios
时钟: 0Hz
VDD: 0 (无效)
总线模式: 2 (推挽)
芯片选择: 0 (无关)
功率模式: 0 (关闭)
总线宽度: 0 (1位)
时序规格: 0 (传统)
信号电压:0 (3.30V)
驱动程序类型: 0 (驱动程序类型 B)
他们修改了 MMC4 (SDIO)的器件树、如下所示。
vmmcwl_fixed:fixedreguler-mmcwl{
//参考 文献3: https://patches.linaro.org/project/lkml/patch/20180427120905.3665-11-kishon@ti.com/
兼容="稳压器固定";
电脑控制器名称="vmmcwl_fixed";
稳压器最小微伏=<1800000>;
稳压器最大值微伏=<1800000>;
启动延迟-us =<70000>;
// f4.vin2a_d5.gpio4_6
GPIO =<&GPIO4 6 GPIO_ACTIVE_HIGH_>;
使能端高电平有效;
};
MMC4{
状态="正常";
VMMC-SUPPLY =<&vmmcwl_fixed>;
总线宽度=<4>;
电容断电卡;
暂停时保持供电;
TI、不可拆卸;
pinctrl-names ="default"、"hs";
pinctrl-0 =<&MMC4_PINS_DEFAULT>;
pinctrl-1 =<&M MMC4_PINS_h>;
#address-cells =<1>;
#size-cells =<0>;
wlcore:wlcore@2{
兼容="ti、wl1835";
reg =<2>;
// d2.vin2a_d4.gpio4_5 (R4379):WL_IRQ
interrupt-parent =<&GPIO4>;
中断=<5 IRQ_TYPE_LEVEL_HIGH_>;
};
};
您能否检查发生此内核错误的原因?
谢谢、此致、
SI
