S5p4418平台AP6212 WIFI稳定性的解决过程

平台:

        s5p4418, ubuntu-core(14.04), WIFI(AP6212)

 

一、问题描述:

         WIFI(AP6212)作为ap模式时, 手机有时搜索不到WIFI热点。(测了五块板子,每块板子重启10次,其中三块大约有3-4次搜索不到板子的WIFI热点)

 

二、解决过程:

1. 更新原厂提供的驱动版本

         1.1 根据原厂提供的< AP6212新旧版兼容说明.pdf> 修改,发现原厂提供的.bin文件和其他文件并不能更新驱动版本。

         1.2 同原厂沟通,原厂重新提供了一份WIFI驱动的源代码bcmdhd.1.201.59.x.cn, 用于加入到内核kernel-3.4.39

         1.3 bcmdhd.1.201.59.x.cn加入到内核源码kernel-3.4.39的过程:

                   1.3.1bcmdhd.1.201.59.x.cn目录下的文件,替换掉kernel-3.4.39/drivers/net/wireless/bcmdhd 目录下所有的文件。

                   1.3.2 跟根据原理图修改了dhd_gpio.c中的gpio_wl_reg_ongpio_wl_host_wake的值,如下图所示:

                       

                   1.3.3. 编译上述修改的linux内核源码,得到uImage,并制作成boot.img 发现WIFI并没有起来。

                   部分错误log如下:

                             

        测量gpio_wl_reg_ongpio_wl_host_wake两处引脚电压都为3.3v

                   经分析应该是MMC检测错误.

        

         1.4 修改MMC驱动

                   1.4.1 修改kernel-3.4.39/drivers/net/wireless/bcmdhd/dhd_gpio.c 中的dhd_wlan_set_carddetect 函数

                  

                  

                   替换为:

                  

                  1.4.2修改kernel-3.4.39/drivers/net/wireless/bcmdhd/dhd_gpio.c 中的force_presence_change 函数声明.

                  //extern void force_presence_change(struct platform_device *dev, int state);

                   修改为:

                  extern void force_presence_change(/*struct platform_device *dev, */int state);

 

                   1.4.3 编译内核得到uImage ,并制作boot.img

                           经测试,新版本驱动已更新成功,1.201.59.06更新到1.201.59.11

               

                  

         1.5 新版本驱动已更新成功,测试之后发现仍然存在以下问题:

                  1.5.1 手机有时搜索不到WIFI热点,具体如下:

                           测了五块板子,每块板子重启10次,其中三块大约有3-4次搜索不到板子的WIFI热点

 

                  1.5.2 经测试分析,搜索不到WIFI热点分为以下两种情况:

                           a)  u-boot启动成功,内核并没有加载, 此时发现电流偏低,测试当然搜索不到WIFI热点

                            b)  发现系统已启动,命令查看wlan0均已加载成功,有时候手动关闭wlan,再次打开之后,可以搜索得到

                                WIFI热点; 但有时候这种操作依然搜索不到

 

2. 解决系统没有启动的问题.

         解决方案:电源供电,在WIFI电源部分增加一个电容蓄电

         结果:

         1) 发现内核没加载成功的情况基本解决

         2) 发现系统已启动,命令查看wlan0均已加载成功, 测了五块板子,每块板子重启10次,其中三块大约有1-2次搜索不到板子的WIFI热点

 

        

3. 解决系统已启动,WIFI驱动加载成功,但是不稳定的问题

查看各种配置文件

结果,还是没有完全解决!!!

 

 

4.重新对WIFI原理图检查,发现 7脚bt-host-wake需要加一个上拉电阻

(原厂协助检查)

 

5. 发现CONFIG_MMC_DW_IDMAC没有去掉,把CONFIG_MMC_DW_IDMAC去掉

 

去掉重新编译内核uImage,制作成boot.img

 

 

6. 替换fw_bcm43438a1.bin为fw_bcm43438a1_apsta.bin

原厂建议:

是客戶的op_mode設置錯了

NG:

[    7.356000] Final fw_path=/etc/firmware/fw_bcm43438a1.bin

[    7.610000] Firmware up: op_mode=0x0005, MAC=8c:f7:10:0f:af:ce

OK:

[   10.034000] Final fw_path=/etc/firmware/fw_bcm43438a1.bin

[   10.193000] Firmware up: op_mode=0x0002, MAC=8c:f7:10:0f:af:dc

 

建議客戶用AP mode時就用fw_bcm43438a1_apsta.bin,而不是用fw_bcm43438a1.bin

 

 

 

操作步骤:

修改linux kernel的.config配置文件

cd /home/kernel-3.4.39/

vim .config

 

然后重新编译内核生成uImage,制作成boot.img

 

自此,WIFI稳定性能已解决!

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
调通sina33下的AP6212A0(WIFI+BT) 大文实验室/大文哥 壹捌陆捌零陆捌捌陆捌贰 wb4916 AT qq.com 完成时间:2017/6/28 12:13 版本:V1.3 本文参照: 《A33 wifi移植说明书.pdf》 还有就是全志R16平台的parrotv1.1的官方SDK(Android4.4.2) 1、打开AP6212的BT,关闭rtl8723bs的BT(其它都是按照比对软件的字母顺序了): [ 3.141273] Bluetooth: HCI UART driver ver 2.2 [ 3.146210] Bluetooth: HCI H4 protocol initialized [ 3.151563] Bluetooth: HCI BCSP protocol initialized [ 3.157154] usbcore: registered new interface driver btusb [ 3.163282] Bluetooth: Generic Bluetooth SDIO driver ver 0.1 [ 3.169599] Bluetooth: BlueSleep Mode Driver Ver 1.1 [ 3.175402] Bluetooth: get rtl8723bs rtl8723bs_bt_host_wake gpio failed [ 3.953017] Bluetooth: RFCOMM TTY layer initialized [ 3.958456] Bluetooth: RFCOMM socket layer initialized [ 3.964183] Bluetooth: RFCOMM ver 1.11 [ 3.968340] Bluetooth: BNEP (Ethernet Emulation) ver 1.3 [ 3.968638] [mmc]: sdc2 set ios: clk 25000000Hz bm PP pm ON vdd 3.3V width 1 timing LEGACY(SDR12) dt B [ 3.968734] [mmc]: mclk 0xf1c20090 0xc100000b [ 3.989421] Bluetooth: BNEP filters: protocol multicast [ 3.995242] Bluetooth: HIDP (Human Interface Emulation) ver 1.2 [ 4.001921] L2TP core driver, V2.0 [ 4.005706] PPPoL2TP kernel driver, V2.0 [ 4.010070] L2TP IP encapsulation support (L2TPv3) [ 4.015468] L2TP netlink interface [ 4.019264] L2TP ethernet pseudowire support (L2TPv3) [ 4.023860] [mmc]: sdc2 set ios: clk 25000000Hz bm PP pm ON vdd 3.3V width 1 timing MMC-HS(SDR20) dt B [ 4.023929] [mmc]: mclk 0xf1c20090 0xc100000b [ 4.040272] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5 [ 4.048780] ThumbEE CPU extension supported. [ 4.053550] Registering SWP/SWPB emulation handler [ 4.059269] [rfkill]: rfkill set power 1 [ 4.063652] gpio ap6xxx_bt_regon set val 0, act val 0 正常启动的BT加载: [ 3.207764] Bluetooth: HCI UART driver ver 2.2 [ 3.212725] Bluetooth: HCI H4 protocol initialized [ 3.218045] Bluetooth: HCI BCSP protocol initialized [ 3.223671] us
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值