我是靠谱客的博主 虚幻星星,最近开发中收集的这篇文章主要介绍海思wifi驱动一,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

      • 环境说明
      • 一. 修改wifi驱动
        • 1. 修改reg_on和host_wake引脚
        • 2. 屏蔽扫卡操作
        • 3. 将wifi驱动代码放到linux内核中进行编译
      • 二. 配置内核
        • 1. CFG80211配置
        • 2. sdio配置
        • 3. 配置wifi驱动模块
        • 4. 编译内核和wifi驱动模块
      • 三. 修改uboot中 sdio口复用
      • 四. 在板子上调试 wifi驱动

环境说明

  • 平台:hi3516cv500
  • wifi模块:AP6255 (sdio接口)
  • kernel版本:4.9.37
  • wifi驱动版本:bcmdhd.100.10.545.x

一. 修改wifi驱动

1. 修改reg_on和host_wake引脚

将reg_on和host_wake引脚修改为我们自己板子上连接到hi3516cv500的GPIO口,具体修改如下:
找到dhd_gpio.c文件:将其中的 gpio_wl_reg_ongpio_wl_host_wake引脚修改为自己板子上的GPIO口,如我的 reg_on 引脚接到的是 GPIO0_4,那么 gpio_wl_reg_on 就是 0x8+4 = 4,我的HOST_WAKE接的是 GPIO0_5gpio_wlhost_wake 就是 0x8+5 = 5。
在这里插入图片描述

2. 屏蔽扫卡操作

扫卡操作驱动里调用的是linux内核中的接口,这个版本的驱动中用的比较老的接口,与当前4.9版本的接口对应不上,可以直接屏蔽掉,linux开机时内核中会进行扫卡操作。
文件:dhd_gpio.c 函数名:dhd_wlan_set_carddetect()
需要屏蔽的地方:将截图中红色划线的函数进行注释,不然编译不过。
在这里插入图片描述

3. 将wifi驱动代码放到linux内核中进行编译

  • 将驱动代码放到如下路径:/linux-4.9.37.y/drivers/net/wireless/bcmdhd
  • Makefile中增加wifi驱动代码编译:
    路径:/linux-4.9.37.y/drivers/net/wireless/Makefile
    在这里插入图片描述
  • Kconfig 中增加bcmdhd驱动配置选项:
    Kconfig路径:/linux-4.9.37.y/drivers/net/wireless/Kconfig
    在这里插入图片描述

二. 配置内核

1. CFG80211配置

在这里插入图片描述

2. sdio配置

在这里插入图片描述
我们的wifi模块是接的sdio1,需要在设备树中将sdio1打开:
disable状态改成okay
文件路径:arch/arm/boot/dts/hi3516cv500-demb.dts
在这里插入图片描述
还要在设备树中添加sdio中断状态:
文件路径:arch/arm/boot/dts/hi3516cv500.dtsi
在这里插入图片描述

3. 配置wifi驱动模块

在这里插入图片描述
这里建议配置成模块,方便调试,sdio使用内部中断,In-Band Interrupt

4. 编译内核和wifi驱动模块

make ARCH=arm CROSS_COMPILE=arm-himix200-linux- uImage -j12
make ARCH=arm CROSS_COMPILE=arm-himix200-linux- modules
在这里插入图片描述
生成的wifi驱动文件为bcmdhd.ko

三. 修改uboot中 sdio口复用

具体操作可参见 Hi3516CV500_SDK_V2.0.2.0/package/osdrv/readme_cn.txt中uboot编译。
在这里插入图片描述
将单板Excel表格中添加sdio复用寄存器配置,关于GPIO复用寄存器配置说明前面章节中已经说明,这里不再复述。
在这里插入图片描述

四. 在板子上调试 wifi驱动

  • 重新烧写上面编译过的uboot,uImage。
  • bcmdhd.ko(wifi驱动),fw_bcm43455c0_ag_apsta.bin(固件),nvram_ap6255.txt放到板子上。
  • 加载驱动:`insmod bcmdhd.ko “firmware_path=/opt/fw_bcm43455c0_ag_apsta.bin nvram_path=/opt/nvram_ap6255.txt”
  • 若加载成功,ifconfig -a会出现 wlan0网络设备:
    在这里插入图片描述
    后面章节我们会继续讲解在调试过程中遇到的问题以及排查方法。

最后

以上就是虚幻星星为你收集整理的海思wifi驱动一的全部内容,希望文章能够帮你解决海思wifi驱动一所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部