
其中,“调试过程”章节可能有点意思(记录了我踩过的坑),其他章节无关紧要。
硬件设计

对照原理图找到如下3 个关键点:
PCIe 接口的 WiFi 基本就有两种:贴在板子上模块及M2接口(这里方案正是),但它们关键点是一样的:
VBAT/VCC3V3:总的3.3V电源,一般是长供电;
WIFIREGON:芯片的复位/使能管脚,开机保持高电平;
PCIE PERST L/PERSTO:芯片PCIe部分的复位管脚,DTS对应的PCIE节点下务必配置正确。
软件配置
dts 配置


移植驱动
将 WiFi 模组厂商提供的驱动源码aic8800_fdrv拷贝至./external/rkwifibt/drivers/目录进行编译。具体步骤如下:
(1)驱动 SDK 源码放置/external/rkwifibt/drivers/目录下;
(2)添加驱动固件至/external/rkwifibt/firmware/aic8800 目录下。
(3)修改device/rockchip/common/scripts/post-wifibt.sh脚本内容,具体如下。

调试过程PCIe WiFi 识别流程
(1)WiFi 模组(AIC8800)通过 PCIe 接口连接到主机,这个接口负责传输数据和控制信号。
(2)PCIe 接口的初始化是由主机的 PCIe 控制器完成的。模组上电后,主机通过 PCIe 配置空间识别设备,这个就是通过 lspci 看到设备的原因。
(3)WiFi驱动程序的作用是初始化模组并提供接口给操作系统,以及通过PCIE接口将固件(固件用来控制硬件行为)传输到模组内部的存储器中。
确认 PCIe 是否识别模块
该 WiFi 模块为 PCIe 接口,首先确认 PCIe 接口是否能正常识别到 WiFi 模块(旧系统)。
当 AIC8800D80P 上电时 lspci会侦测到Bus 003 Device 007:IDa69c:8d80

insmod 加载驱动
要先确认 fw 文件已拷贝至/lib/firmware。

【问题描述】:无法 insmod 加载驱动,log 打印如下。

【问题分析】:从报错分析,显然是 PCIE 的 Memory 空间不够,导致驱动加载失败。

【问题解决】:修改 PCIe 的 Memory 地址大小。


驱动加载成功,生成wlP4p65s0 节点。

功能验证
查看 ifconfig 节点

扫描周围可见的无线网络
iwdev wlP4p65s0 scan | grep SSID

配置并启动 Wi-Fi 连接 。
可看到已成功连接至无线网络,并能正常ping通外网。wpa_passphraseChen-2.4G-0123456987> /etc/wpa_supplicant.confwpa_supplicant-B -i wlP4p65s0 -c /etc/wpa_supplicant.conf
iw devping www.baidu.com-IwlP4p65s0

(完)
本人专注 Linux 驱动 & Linux/Android BSP 开发调试,可接外包项目/技术支持/问题定位。有需求或交个朋友可加微信:【Chen_WeChat2025】。
-
嵌入式
+关注
关注
5209文章
20654浏览量
336945 -
WIFI
+关注
关注
82文章
5532浏览量
214399 -
BSP
+关注
关注
1文章
105浏览量
28087 -
RK3588
+关注
关注
8文章
588浏览量
7554
发布评论请先 登录
BSP调试#05:MIPI DSI(RK3588)
BSP调试#04:HDMI TX(RK3588)
BSP调试#03:Ethernet(RK3588)
RK3588的GMAC 时钟怎么一直没有?
RK3588操控终端
一文打通Rockchip DP调试:从原理到实战,覆盖RK3399/RK3576/RK3588全平台
RK3588平台USB摄像头调试实战:从报错到稳定运行
调试RK3588必看!这个临时设备树文件,藏着你要的所有配置答案
【技术分享】RK3588如何搭建xenomai3+ethercat
开发者必备,10 分钟搞定 RK3588 PCIE 拆分!
RK这2款旗舰芯片RK3588 PK RK3576,谁是最优选
RK3588S和RK3588S2差异说明
BSP调试#06:WiFi-aic8800 (RK3588)
评论