设为首页收藏本站自媒体平台

研发设计门户网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1438|回复: 0
打印 上一主题 下一主题

为Freescale i.MX6移植WiFi驱动程序

[复制链接]

379

主题

893

帖子

3760

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3760
跳转到指定楼层
楼主
发表于 2015-7-10 08:55:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

高速电路PCB网,专注于嵌入式方案,信号完整性和电源完整性仿真分析,高速电路PCB设计,各种EDA工具(Cadence\Mentor\\AD\\CAM\ANSYS HFSS)交流学习。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
原文链接:http://www.beamsky.com/imx6-wifi-driver/

作者:Alex   发布:2015-07-02 09:30   

近期在一款产品的开发中,采用了Freescale i.MX6 + Qualcomm Atheros AR9582方案。不同于Freescale i.MX6官方参考设计,为了节约空间,提升整体性能及可靠性,AR9582即WiFi部分采用on-board设计,这也是前所未有的,独一无二的设计。需要指出的是,AR9582与i.MX6采用PCI-e接口进行通信,其性能遥遥领先于SDIO接口WiFi模块。

首先面临的问题是对WiFi进行校准与测试,按照本站早前发表的《为Freescale i.MX6处理器移植ART》文中提到的方法,对ART脚本进行小幅改动之后,板载AR9582进行射频校准与测试顺利完成,校准信息也正确写入。

接下来面临的问题是WiFi驱动程序问题,这也是本文的重点,以下是记录的调试过程。

1. 对于校准完成的板子,依次加载ath9k_hw.ko,ath9k_common.ko,ath9k.ko,使用ifconfig -a命令,却看不到wlan0网卡。

2. 由于上一版采用AR9382插卡的方式,可以正常加载驱动程序,所以可以排除PCI-e总线的驱动问题;这一版的板载AR9582设计取自量产方案,可以保证设计准确性。

3. 看不到wlan0网卡的情况通常是由于WiFi未校准引起的,使用cat /proc/bus/pci/devices命令,可以看到AR9582的devid为0033,如果未校准devid应为abcd。

4. 经过漫长的代码阅读及分析,发现LTIB软件包中自带的ath9k驱动程序目录下的hw.h中不存在0033这样的devid,而AR9382的devid 0030则存在其中,如下图。

5. 那么问题应该就出在这里,LTIB软件包中自带的ath9k驱动程序版本过低,无法识别较新的WiFi芯片。

6. Google一下,发现compat-wireless是普遍使用的WiFi驱动程序。compat-wireless是一个Linux的无线驱动兼容性解决方案,提供Linux内核2.6.25及以上版本的最新无线驱动支持的改进。它可以在Linux 802.11系统上进行编绎和安装而不必重新编绎整个内核。而对于一些用户来说可能需要获得最新的compat-wireless驱动包以解决网卡的驱动问题。

7. 下载compat-drivers-3.7.1-1.tar.gz,解压后放置于ltib/rpm/BUILD目录下。可以看到AR9580系列芯片对应的devid 0033出现在其中,如下图。

8. 根据实际情况变更config.mk文件。

9. 根据编译服务器的实际情况确定toolchain及Kernel的路径编译命令为:make ARCH=arm CROSS_COMPILE=/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-none-linux-gnueabi- KLIB=/home/alex/ltib/rpm/BUILD/linux-3.0.35 KLIB_BUILD=/home/alex/ltib/rpm/BUILD/linux-3.0.35 CONFIG_NET_SCHED=1

10. 编译完成后可得下列的内核模块:

./compat/compat.ko

./drivers/net/wireless/ath/ath.ko

./drivers/net/wireless/ath/ath9k/ath9k.ko

./drivers/net/wireless/ath/ath9k/ath9k_common.ko

./drivers/net/wireless/ath/ath9k/ath9k_hw.ko

./net/mac80211/mac80211.ko

./net/wireless/cfg80211.ko

11. 将以上内核模块打包至文件系统,并按照顺序依次加载模块,板载AR9582终于可以正常工作。



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 支持支持 反对反对

相关帖子

www.yanfa.tech 站长 ,交流微信QQ 276556668
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

内容正在加载中,请稍候……

QQ|我的微博|小黑屋|手机版|Archiver|YanFa.Tech(gaosupcb Inc.)    

GMT+8, 2024-4-19 02:47 PM , Processed in 0.059715 second(s), 31 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表