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.

[参考译文] AM5728:WL1835MOD 出现内核错误

Guru**** 2553260 points
Other Parts Discussed in Thread: WL1835MOD, AM5728

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1054655/am5728-kernel-error-with-wl1835mod

器件型号:AM5728
Thread 中讨论的其他器件:WL1835MODWL1271WL1835

尊敬的香榭丽舍

我的客户在其定制板上连接 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

完整日志如下所示。

e2e.ti.com/.../7652.log.txt

启动后的 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 写入时仍然发现相同的内核错误。

e2e.ti.com/.../5460.log2.txt

当他们检查 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{

 

    //参考 文献1: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/arch/arm/boot/dts/am57xx-evm-common.dtsi?h=ti-linux-4.4.y

    //参考 文献2: https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/557081/wlan-enable-line-in-device-tree-for-wl18xx-device-tree

    //参考 文献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{

  //参考文献1: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/arch/arm/boot/dts/am57xx-evm-common.dtsi?h=ti-linux-4.4.y

    //参考 文献2: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/arch/arm/boot/dts/am335x-boneblack-wireless.dts?h=ti-linux-5.4.y

 

    状态="正常";

 

    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

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

    尊敬的香榭丽舍

    他们在 AM5728 GP EVM (版本1.0、早于 A3a)上进行了测试、并且在通过 SDIO 运行 ifconfig 和 wpa_supplicant 以运行 WL1835MOD 时也发现了问题、如下所示。

    其 SDK 版本为 SDKv6.3.0。

    e2e.ti.com/.../5226.logs.txt

    它们将 WL1835MODCOM8连接到 AM5728 GP EVM、如下所示。

    当他们尝试使用 Linux SDK 的预构建映像进行引导时、他们确认了 MMC、wlcore_SDIO、如下所示。  

    root@am57xx-EVM:~# dmesg | grep mmc2

    [3.377537]    mmc2:使用 PIO 的480ad0.MMC [480ad0.mmc]上的 SDHCI 控制器

    [3.482344]    mmc2:地址0001处的新高速 SDIO 卡

    ~~~~μ A

    root@am57xx-EVM:~# dmesg | grep wl

    [0.490144]    of_get_named_gpio_FLAGS:解析了节点'/fixedreguler-mmcwl[0]的'GPIO'属性-状态(0)

    [14.569465]   wl18xx_driver wl18xx.1.auto: ti-connectivity/wl1271-nvs.bin 的直接固件加载失败、错误-2

    [14.965086]   wlcore:wl18xx 硬件:183x 或180x、PG 2.2 (ROM 0x11)

    [15.050541]   wlcore:已加载

    [15.600205]   wlcore:PHY 固件版本:版本8.2.0.240

    [15.720293]   wlcore:固件已启动(版本8.9.0.0.76)

    ~~~~~~~μ A

    root@am57xx-EVM:~# ifconfig -a

    eth0      Link encap:以太网  HWaddr A0:F6:FD:AA:53:D8

              上广播多播  MTU:1500  公制:1

              RX 数据包:0错误:0丢弃:0超限:0帧:0

              TX 数据包:0错误:0丢弃:0超限:0载波:0

              冲突:0 txqueuelen:1000

              RX 字节:0 (0.0 B)  TX 字节:0 (0.0 B)

              中断:90

     

    ETH1      链路连接:以太网  HWaddr A0:F6:FD:AA:53:D9

              上广播多播  MTU:1500  公制:1

              RX 数据包:0错误:0丢弃:0超限:0帧:0

              TX 数据包:0错误:0丢弃:0超限:0载波:0

              冲突:0 txqueuelen:1000

              RX 字节:0 (0.0 B)  TX 字节:0 (0.0 B)

     

    LO        链路环接:本地环回

              iNet addr:127.0.0.1  掩码:255.0.0.0

              inet6 addr:::1/128范围:Host

              正在运行  MTU:65536  公制:1的上环回

              RX 数据包:107错误:0丢弃:0超限:0帧:0

              TX 数据包:107错误:0丢弃:0超限:0载波:0

              冲突:0 txqueuelen:1000

              RX 字节:221047 (215.8 KiB)  TX 字节:221047 (215.8 KiB)

     

    sit0      Link encap:IPv6-in IPv4

              NOARP  MTU:1480  公制:1.

              RX 数据包:0错误:0丢弃:0超限:0帧:0

              TX 数据包:0错误:0丢弃:0超限:0载波:0

              冲突:0 txqueuelen:1000

              RX 字节:0 (0.0 B)  TX 字节:0 (0.0 B)

     

    wlan0     Link encap:ethernet  HWaddr 50:65:83:F8:1C:CC

              上广播多播  MTU:1500  公制:1

              RX 数据包:0错误:0丢弃:0超限:0帧:0

              TX 数据包:0错误:0丢弃:0超限:0载波:0

              冲突:0 txqueuelen:1000

              RX 字节:0 (0.0 B)  TX 字节:0 (0.0 B)

    ~~~~~~~μ A

    *启动后的 MMC2

    root@am57xx-EVM:~# cat /sys/kernel/debug/mmc2/ios

    时钟:          48000000 Hz

    VDD:            23 (3.5 ~ 3.6V)

    总线模式:       2 (推挽)

    芯片选择:    0 (无关)

    功率模式:     2 (开启)

    总线宽度:      2 (4位)

    时序规格:    2 (SD 高速)

    信号电压:1 (1.80 V)

    驱动程序类型:    0 (驱动程序类型 B)

    谢谢、此致、

    SI

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

    尽管 AM5728 GPEVM 中仍然存在问题、但他们自己在定制板中解决了此问题。

    其中一个根本原因是定制电路板中的 SDIO 信号完整性问题。

    谢谢、此致、

    SI