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.

[参考译文] WL1831MOD:将常用驱动程序与 ACPI 配合使用(无 DTS)

Guru**** 2390765 points
Other Parts Discussed in Thread: WL1831MOD

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1074279/wl1831mod-using-stock-drivers-with-acpi-no-dts

部件号:WL1831MOD
“线程”中讨论的其它部件 :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。

希望能有任何关于如何开始调试的提示或指针。

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

    迈克尔:

    您提到了 BT_EN 引脚,因此我希望 WL_EN 引脚也能正确配置和设置。  

    您还多次提到 BIOS,因此我相信您没有使用嵌入式 ARM 处理器。 如果是真的,那么我不确定我们是否能为你提供很多帮助,因为驾驶员要依靠 DTS。  

    我可以在内部询问是否有这样的经验,但这需要一些时间。  

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

    你(们)好,萨贝。  感谢您的快速回复。   

    它不是嵌入式 ARM 处理器。  这是一个 x86_64 som,但我们将它视为嵌入式处理器。  不幸的是,DTS 不是一个选项。  我已经在 我们的开发板上尝试加载 支持 ACPI 和 DTS 的 SGTL5000,但在等待设备的 BIOS 更新时,我需要编写平台驱动程序。

    我将与 HW 伙伴们一起了解 WL_EN 引脚的相关信息。  我在方框图中没有看到它。  今天晚些时候,我将从他们那里得到一个示意图。   

    感谢您的邀请。  我们非常感谢您提供任何其他建议/提示。

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

    迈克尔:

    关于 ACPI,我没有解决方案。