OpenHarmony开源社区
直播中

软通动力HOS

3年用户 221经验值
擅长:EMC/MEI设计 EDA/IC设计 处理器/DSP
私信 关注
[经验]

RK系列HDF-WiFi驱动适配指南

总体方案

WiFi在现在电子设备中,已经是一个不可或缺的功能了,不论是windows 或者Linux系统,都可以通过WiFi来链接网络,达到上网的目的。基于OpenHarmony的开发板,是需要进行WiFi驱动适配,才能使用WiFi功能,达到上网目的。

概述:

基于HDF WLAN的框架规范,实现HDF驱动初始化接口、WLAN控制侧接口集、AP模式接口集、STA模式接口集、网络侧接口集、事件上报接口等主要接口,改造AP6275P WIFI6原生内核驱动代码,并使用wpa_supplicant和hostapd应用程序通过HDF WIFI框架与WIFI驱动进行交互,实现AP模式、STA模式、P2P三种主流模式下WIFI功能。

1.硬件组成

RK系列 EVB主板中SoC芯片为RKXXX,WIFI芯片为AP6275P,使用PCIE总线抽象接口。
图1-1 RKXXX EVB系统框图
712c2c2bbeab13519a8724d110f7d202.png
图1-2 AP6275P系统框图
e29fe38c483b4dc1c08d83ea1a714454.png
2.HDF-WIFI框架

图1-3 HDF WIFI框架总体框图
d81d27a41d3339da467675bc1de90f67.png
3.AP6275P驱动原生代码流程分析

图1-4 AP6275P驱动原生代码流程图

bbf05ea66047e478cdfe239076995ba3.png
4.AP6275P驱动适配HDF WIFI框架代码流程分析

图1-5 AP6275P驱动适配HDF WIFI框架代码流程图
0eacf7dec5da2ba4df7b3bb1e556eab9.png
配置过程与步骤

基于RK系列HDF-WiFi驱动适配指南-总体方案介绍,已经明确需要进行改造AP6275P WiFi6原生内核驱动代码,并使用wpa_supplicant和hostapd应用程序通过HDF WiFi框架与WiFi驱动进行交互,实现AP模式、STA模式、P2P三种主流模式下WiFi功能。

概述:

对于系统WIFI功能的使用,需要实现AP模式、STA模式、P2P三种主流模式。这里使用wpa_supplicant应用程序通过HDF WiFi框架与WiFi驱动进行交互,实现STA模式和P2P模式的功能,使用hostapd应用程序通过HDF WiFi框架与WiFi驱动进行交互,实现AP模式和P2P模式的功能。AP6275P WiFi6内核驱动依赖platform能力,主要包括PCIE总线的通讯能力;与用户态通信依赖HDF WiFi框架的能力。在确保上述能力功能正常后,即可开始本次WiFi驱动的HDF适配移植工作,适配过程主要包括代码整改过程和参数配置过程,具体有以下步骤

1.硬件组成设置WIFI驱动固件目录

device/soc/rockchip/hardware/wifi

├── ap6xxx│ ├── clm_bcm43752a2_pcie_ag.blob│ ├── fw_bcm43752a2_pcie_ag_apsta.bin│ ├── fw_bcm43752a2_pcie_ag.bin│ ├── fw_bcm43752a2_pcie_ag_mfg.bin│ └── nvram_AP6275P.txt├── BUILD.gn

2.设置WIFI驱动源码目录

2.1 原生驱动与在其中增加以及修改的代码文件位于:

device/board/rockchip/rk3588/wifi/bcmdhd_wifi6

注:在master分支中,原生代码由kernel.patch生成在out/kernel/src_tmp/linux-5.10/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd_wifi6中,这里通过直接复制过来将所有代码放一起使用。

2.2 增加以及修改的代码文件:
<span class="code-snippet_outer"><span>.</span></span>├── hdfadapt<span class="code-snippet_outer"><span>│ ├── hdf_bdh_event.c</span></span>│ ├── hdf_bdh_event.h<span class="code-snippet_outer"><span>│ ├── hdf_bdh_mac80211.c</span></span>│ ├── hdf_driver_bdh_register.c<span class="code-snippet_outer"><span>│ ├── hdfinit_bdh.c</span></span>│ ├── hdf_wl_interface.h<span class="code-snippet_outer"><span>│ ├── net_bdh_adpater.c</span></span>│ ├── net_bdh_adpater.h<span class="code-snippet_outer"><span>├── hdf_public_ap6275s.h</span></span>├── rk_wifi_config.c``
其中hdf_bdh_mac80211.c主要对g_bdh6_baseOps所需函数的填充,包括对g_bdh6_staOps、g_bdh6_apOps和g_bdh6_p2pOps所需函数进行填充;

在drivers/framework/include/wifi/wifi_mac80211_ops.h里有对WiFi基本功能所需api的说明。

3.编写WiFi驱动文件

HDF WLAN驱动框架由Module、NetDevice、NetBuf、BUS、HAL、Client 和 Message 这七个部分组成。开发者在WiFi驱动HDF适配过程中主要实现以下几部分功能:

3.1 适配HDF WLAN框架的驱动模块初始化

3.2 HDF WLAN Base控制侧接口的实现

3.3 HDF WLAN STA模式接口的实现

3.4 HDF WLAN AP模式接口的实现

3.5 HDF WLAN P2P模式接口的实现

3.6 HDF WLAN框架事件上报接口的实现

4.配置WIFI编译文件

5.配置WIFI构建文件

6.Foundation层增加产品名宏条件

总结

结合RKXXX EVB HDF WiFi驱动适配的总体方案,并且经过配置操作,HDF-WIFI驱动适配已经完成,实现了AP模式、STA模式、P2P三种主流模式下WiFi功能。

更多回帖

发帖
×
20
完善资料,
赚取积分