“线程”中讨论的其它部件 :WL1271
内核:从 RT 树中5.14.2
平台:埃尔哈特湖
内核参数:root=/dev/ram0/rw idle=poll CMA=160M@0-2G PCI=PCIe_bus_perf sdhci_pci.max_freq=50 console=ttyS6,115200 console=tty0 dyndebug
我的任务是在我们的主板上安装 WL1831MOD。 它通过 SDIO 与 GPIO INT 线路连接以实现 WiFi。 BT_EN 和 WIFI_INT 线路通过 BIOS 连接到 GPIO。 我不知道 SDIO 是如何识别的,尽管 MMC 消息(见下文)似乎暗示它是 mmc1。
我在网上找到的大多数信息都基于 ARM 设备,并使用 DTS 配置 Linux 驱动程序。 它也主要用于较旧的内核,例如4.14 (我认为)。 5.14.2内核中的 wl18xx 驱动程序似乎需要启用 config_of。 我以为这只适用于 DTS,但即使启用了 DTS,我加载驱动程序时也不会发生任何情况。 我正在使用指定内核的常用驱动程序。
我按此顺序手动加载驱动程序(最终可能需要静态链接这些驱动程序,但它们是可加载的模块,可在此时进行测试):
cfg80211.ko
mac80211.ko
wlcore.ko
wl18xx.ko
wlcore_SDIO.ko
我不清楚 compat.ko 的作用是什么,也不知道它在这个内核中是否仍然需要,但我们的内核配置中有一个 config_COMPAT=y。 即使启用了 Dynamic_debug,日志消息也很少。 我也启用了 CONFIG_MMC_DEBUG,但没有其他信息。
$ dmesg | grep MMC
[5.052218] mmc0:CQHCI 版本5.10
[5.052347] mmc0:PCI 上的 SDHCI 控制器[0000:00:1a.0],使用 ADMA 64位
[5.054059] mmc1:使用 ADMA 64位的 PCI [0000:00:1a.1]上的 SDHCI 控制器
[5.228212] mmc1:地址0001处的新高速 SDIO 卡
[195.716791] wl1271_SDIO:mmc1:0001:2的探测失败,错误-61
来自 config80211的唯一其他相关消息:
[150.821627] cfg80211:为管制数据库加载已编译的 X.509证书
[150.822251] cfg80211:加载的 X.509证书“标题:00b28ddf47aef9cea7”
我怀疑 wl1271_SDIO 消息是因为我启用了平台驱动程序,如果我正在正确读取,它似乎不支持 wl18xx。 但是,禁用平台驱动程序似乎无关紧要。
我安装了以下固件:
$ ls -l /lib/firmware/ti-connectivity
共计746
-rw-r--r-1根根18343 22022年 TIInit_12.10.28.bts
rw-r--r-1根745180 Feb.2022 wl18xx-fw-4.bin
我还没有运行 wlconf。 这是我的待办事项列表中的一项。
我们有一家供应商正在为我们处理 ACPI (BIOS)更新,但我不知道该要求什么。 在 MMC 总线上可能看不到 WL1831MOD,但我尚不清楚如何验证。
此时,我开始向探测器函数添加调试,以查看它们是否被调用,但我怀疑它们没有被调用,因为没有设备(通过 DTS 或 ACPI)请求它们。 我还在考虑为 wl18xx 编写一个平台驱动程序来配置设备驱动程序,但这样做的正确方法似乎是通过 ACPI。 我只是不清楚这些驱动程序实际上是否支持 ACPI。
希望能有任何关于如何开始调试的提示或指针。