Linux SDIO WIFI Marvell8801/Marvell88w8801(一) --- 代码及文档介绍

*爱你&永不变心* 提交于 2020-01-12 06:15:12

代码工程的GITHUB连接:点进进入GITHUB仓库
https://github.com/sj15712795029/stm32f1_marvell88w8801_marvell8801_wifi

1.Linux SDIO WIFI Marvell8801/Marvell88w8801(一) — 代码及文档介绍
2. Linux SDIO WIFI Marvell8801/Marvell88w8801(二) — Marvell88w8801驱动编译
3. Linux SDIO WIFI Marvell8801/Marvell88w8801(三) — Linux驱动以及组件的使用
4. Linux SDIO WIFI Marvell8801/Marvell88w8801(四) — Linux Wi-Fi架构
5. Linux SDIO WIFI Marvell8801/Marvell88w8801(五) — Linux SDIO API介绍
6. Linux SDIO WIFI Marvell8801/Marvell88w8801(六) — Marvell Linux Wi-Fi driver介绍-WIFI插入卡槽内发生的事情
7. Linux SDIO WIFI Marvell8801/Marvell88w8801(七) — Marvell Linux Wi-Fi driver初始化
8. Linux SDIO WIFI Marvell8801/Marvell88w8801(八) — Marvell Linux Wi-Fi driver 对接芯片上行下行接口介绍


本章主要从以下几个方面介绍
在这里插入图片描述
1)解压包介绍,主要对整个Linux驱动解压包内容做一个大概的介绍
2)主要对部分重要文档做一个简单的介绍

1. 解压包文件夹介绍

SD-UAPSTA-8801-FC18-MMC-14.76.36.p61-C3X14090_B0-GPL.tar,代码我放在了github上
这是整个压缩包的名字,在介绍解压后各个目录之前,首先有一些重要信息我们需要知道,下面介绍的内容会在realease note中找到,从上述名字得到的信息有:
1)这是一份基于SDIO的代码
2)支持UAP/STA mode
备注:UAP/STA的模式最简单的一句话是:比如我们手机连接路由器,那么我们手机的角色就是STA(station),路由器的角色就是AP(Access Point)
3)这是Marvell88w8801的驱动,哈哈,这个可以理解为废话啦
4)14.76.36.p61,此部分分别是:Major Revision,Minor Revision,Release Number,Patch Number,对我们来说比较有用的是:14,表明此部分是按照firmware V14的数据格式来写驱动。如图,就是这本啦,后续分析驱动的时候会大量用到这本。
在这里插入图片描述
5)C代表依赖的Linux kernel的版本,3X代表支持Linux Kernel的版本是3.X
大概就是这些信息,一个小小的名字对我们来说信息还真是多啊·好啦,回归主题

解压后得到所有目录如下:
在这里插入图片描述
1)FwImage是Marvell88w8801 init的时候需要download的固件,这个固件的作用你可以把他尽量想象简单化:就是我们把fw download进芯片内,等fw runing起来,后续我们给芯片下命令,是固件在解析后让芯片执行特定的指令,所以我们一定要按照固件手册去写驱动。
2)SD-8801-FC18-MMC-14.76.36.p61-C3X14090_B0-GPL这个就是整个linux wifi驱动的source code。
Wlan_src下面有mapp,mlan,mlinux,script,其中需要编译的是mlan,mlinux,在说明这两个文件夹前,请先看下面一张图
在这里插入图片描述
其中MOAL是OS抽象层,MLAN是OS独立层,知道了这个,那么我么就能一眼看出来mlinux文件夹下肯定是MOAL层了,也就是跟OS有关的东西。那么如果要移植那么大部分的工作是MOAL的移植。Mlan文件夹就是MLAN层了。
来一张结构图,通过下图可以看出MLAN跟MOAL沟通是通过一个SHIM的媒人
在这里插入图片描述
到此为止,重要的文件夹已经完毕了,但是我还想罗嗦一点MOAL跟MLAN包含的一些东西,为后面做一点铺垫
在这里插入图片描述

MOAL最主要起到了一个承上启下的作用,上对接调用函数接口,下对接SDIO/USB接口,然后中间在通过媒人(SHIM)和MLAN沟通
MLAN就比较是驱动的精华,负责fw的download,命令/事件/数据/SME/PS/MUX/DEMUX相关事情的处理

2.文件介绍

另外,各位可能也发现了除了文件夹之外,还有几个文件
在这里插入图片描述
其中Makefile在编译的时候再去说
其他几个我也不一一介绍,只是摘取重要部分罗列,其实,我也没都看过,只是扫了一遍,知道大概都是在讲什么,好啦,罗列重要内容啦,不过有很多在linux编译的时候会重点介绍
1)FOR DRIVER BUILD(驱动编译)
Goto source code directory wlan_src/.
make [clean] build
The driver code supports Linux kernel up to 3.4.
2)FOR DRIVER INSTALL(驱动加载)
a) Copy firmware image sd8786_uapsta.bin | sd8787_uapsta.bin | … to
/lib/firmware/mrvl/ directory, create the directory if it doesn’t exist.
b) Install WLAN driver,insmod mlan.ko 其中可以带一堆参数
c) Uninstall WLAN driver(卸载),
ifconfig mlanX down
ifconfig uapX down
rmmod sd8xxx
rmmod mlan
3)在其次就是一些debug或者单独调试某功能的介绍,详细请自行查看

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!