海思wifi驱动一

本文详细介绍了在Hi3516CV500平台上移植AP6255 SDIO接口WiFi驱动的过程,包括修改reg_on和host_wake引脚、屏蔽扫卡操作、内核配置、uboot中SDIO口复用以及板子上的驱动调试步骤。主要涉及文件dhd_gpio.c的修改和设备树配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境说明

  • 平台: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网络设备:
    在这里插入图片描述
    后面章节我们会继续讲解在调试过程中遇到的问题以及排查方法。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lzg2021

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值