关于AP6210这个芯片,是非常神奇的,Linux Sunxi的WIKI说,这个驱动到Linux 3.4之后就不再支持了,但是RockChip的WIKI说的是这样的:
The AP6210 will be supported by the brcmfmac driver of the mainline kernel tree. It apparently is a BCM43362 / BCM20710 combo, the former is the WIFI chip, the latter Bluetooth. See the mailing list entry for more details.
大致意思说的是AP6210这个芯片,其实是胶水做的,由BCM43362和BCM20710组成,也是哦,以前加载AP6210驱动时候,都不能用BCM驱动,呵呵,不过这个驱动至少应该不用自己改太多了,就加dts的样子么.他们的驱动文件应该是bcm20710a1.hcd和brcmfmac43362-sdio.bin.
主要是内核先启动CFG80211,然后,再启动BRCMFMAC驱动,最好打上Debug Function,这样调试好一些,最后编译uImage,如果以模块形式来玩,还需要编译模块.现在大致看看这个WIFI模块的连接方式:
大致分析以下,PI12连接CLK-32K,PH10连接WIFI-HOST-WAKE,PH9连接WIFI-SHDN,PI21连接BT-HOST-WAKE,PI20连接BT-WAKE,PB5连接BT-REST,CARD3[MMC3]连接WIFI模块SDIO引脚,UART2连接蓝牙模块串口脚,BT-PCM-OUT连接I2S_DO0/AC97_DO[PB8]引脚,我猜这就是接音频I2S的,因为对这个蓝牙模块不是特别了解,也只能靠这样猜测一下.
直接编译uImage替换发生如下事情:
root@Tater-ARM:~# dmesg | grep brcmfmac [ 2.957355] brcmfmac: brcmf_cfg80211_reg_notifier: not a ISO3166 code root@Tater-ARM:~#
难道WLAN默认好用了,不过/sys/class/net/下还没设备,还是等下回分解吧.
找到一些资料,就分享一下:
Cubietruck 蓝牙配置[http://linux-sunxi.org/Cubietruck/Bluetooth]
BRCM 固件文件存档[http://ftp2.halpanet.org/source/_dev/linux-firmware.git/brcm/]
AP6210 简短介绍[http://linux-rockchip.info/mw/index.php?title=AP6210]
请问你调试的时候是从内存卡启动吗?
@chenzhiwo 是的,调试没必要从NAND启动,改成NAND启动只需要修改U-Boot。
为什么我加了这个驱动后 log是这样的
[ 1.491146] brcmfmac: F1 signature read @0x18000000=0x1591a962
[ 1.494170] brcmfmac mmc1:0001:1: Direct firmware load for brcm/brcmfmac43362-sdio.bin failed with error -2
[ 2.534618] brcmf_sdio_htclk: HT Avail timeout (1000000): clkctl 0x50
[ 3.543327] brcmf_sdio_htclk: HT Avail timeout (1000000): clkctl 0x50
我的/lib/firmware下也放了这个固件 请问这个是怎么回事呢?
@misaka 位置有问题,可能驱动搜索位置和你预想不一样.
这破东东的驱动有支持混杂模式的吗?
@jhting 然而,这不是破东西,抄博通的东西,支持的,性能差多了.