高通WLAN驱动分析

一、硬件部分

整体架构

其实主要由三部分组成:运行在modem侧的wcnss arm9处理器,AP,以及WLAN芯片。

二、软件组成

1.位于modem侧的hlos运行固件,启动子系统

2.运行与ap侧的一些守护进程,完成固件配置的下载

高通wlan驱动,主要是通过ap去控制该wcnss arm9的wifi基带处理器。

三、驱动代码组成

驱动初始化电源初始化:wlan_hdd_main.c

与上层wpa_supplicant交互:cfg80211接口未wlan_hdd_cfg80211.c

                          ioctl命令为wlan_hdd_wext.c

与WCNSS子系统交互为:wlan_hdd_tx_rx.c wlan_hdd_softap_tx_rx.c

电源管理为:wlan_hdd_dev_pwr.c wlan_hdd_early_suspend.c

读取配置文件:wlan_hdd_cfg.c读取WCNSS_qcom_cfg.ini

FTM操作为:wlan_hdd_ftm.c读取WCNSS_qcom_wlan_nv.bin

四、用户空间交互

### 高通芯片中的WiFi架构详解 #### 1. WCNSS 子系统的角色与功能 在高通平台中,无线通信子系统(WCNSS, Wireless Connectivity SubSystem)负责处理Wi-Fi和其他无线连接协议。WCNSS作为一个独立的处理器运行,在硬件层面分离于应用处理器之外。这种设计有助于提高性能并降低功耗。 对于数据传输路径而言,wlan_hdd_tx_rx.c 和 wlan_hdd_softap_tx_rx.c 文件定义了用户空间到内核空间的数据交换接口[^2]。这些模块实现了高层API调用至底层硬件指令之间的转换逻辑,支持STA模式下的客户端接入以及SoftAP模式下热点创建所需的各种操作。 #### 2. 启动过程中的关键组件 启动过程中涉及多个阶段来完成整个系统的初始化工作: - **PBL (Primary Boot Loader)** 是最初始的一级引导程序,它主要职责在于验证并加载后续的SBL(Secndary Bootloader)[^3]。 - **SBL1 (Secondary BootLoader Stage 1)** 被存储于设备内置存储介质(e.g., eMMC),由PBL执行加载。此阶段的任务包括但不限于设置必要的总线(Bus), DDR内存控制器及其时钟配置等基础环境准备,并提供了一个特殊的调试机制——通过模拟9006端口来进行故障排查期间RAM Dump的操作。 #### 3. 平台特定的数据结构 为了实现更紧密的应用层控制,通常会在Linux Kernel源码树外维护一套针对具体SoC特性的描述符集合。例如,在某些基于Nexus系列产品的博通方案里可以看到如下形式的静态声明: ```c static struct wifi_platform_data mahimahi_wifi_control = { ... }; ``` 这段代码片段展示了如何利用`wifi_platform_data`结构体封装有关Wi-Fi模组的具体参数设定,从而便于上层软件对其进行访问和管理[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值