完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
最近由于硬件升级换芯片,WIFI模块换成AP6256,用原来的默认配置发现wifi和蓝牙都不能用。
首先查看SDIO是否正常通讯。有如下打印信息,说明通讯是正常的 [ 2.263209] mmc2: new high speed SDIO card at address 0001 查询资料发现WIFI和蓝牙不同的型号会加载不同的固件。开机或打开WIFI时的会有如下的打印信息: [ 262.657531] dhd_bus_devreset: == WLAN ON == [ 262.658134] F1 signature read @0x18000000=0x15294345 [ 262.667091] F1 signature OK, socitype:0x1 chip:0x4345 rev:0x9 pkg:0x2 [ 262.668922] DHD: dongle ram size is set to 819200(orig 819200) at 0x198000 [ 262.669577] dhdsdio_probe_init: set use_rxchain 1 from config.txt [ 262.670011] dhd_conf_read_config: Ignore config file /system/etc/firmware/config.txt [ 262.670117] dhd_conf_set_fw_name_by_chip: firmware_path=/system/etc/firmware/fw_bcm4329.bin [ 262.670197] Final fw_path=/system/etc/firmware/fw_bcm4329.bin [ 262.670218] Final nv_path=/system/etc/firmware/nvram_AP6210.txt [ 262.670232] Final conf_path=/system/etc/firmware/config.txt 继续找资料,并拿到了一个AP6255-AP6256版本兼容的说明,发现6256的固件有以下几个相关文件 fw_bcm43456c5_ag.bin fw_bcm43456c5_ag_apsta.bin nvram_ap6256.txt config.txt 查询源码,并没有发现这些文件, dts及源码相关选项也没有6256内容,可能拿到的SDK中硬件支持没有做到6256。那么自己动手添加。 1 . 将上面的文件拷贝到如下路径 external/wlan_loader/firmware 2. 关联dts及文件加载。 wifi_chip_type = "bcmwifi"; Dts中有wifi_chip_type用来加载wifi型号的,查看rk文档bcmwifi是个自适应的配置,这里我偷懒直接用了AP6335的(正常可以自己添加AP6256的选项) 修改dts为 wifi_chip_type = " ap6335"; 3. 修改ap6335默认加载文件 /kernel/drivers/net/wireless/rockchip_wlan/rkwifi/rk_wifi_config.c 将原来的修改为6256的文件 if (chip == WIFI_AP6335) { // sprintf(fw, "%s%s", ANDROID_FW_PATH, "fw_bcm4339a0_ag.bin"); //sprintf(nvram, "%s%s", ANDROID_FW_PATH, "nvram_AP6335.txt"); sprintf(fw, "%s%s", ANDROID_FW_PATH, "fw_bcm43456c5_ag.bin"); sprintf(nvram, "%s%s", ANDROID_FW_PATH, "nvram_ap6256.txt"); } 重新编译烧写后,开机打印正常加载设置的固件,但是设置界面打开WIFI却加载的其他固件,这块没仔细去研究RK的流程。应该还有地方没改到 继续研究打印信息,发现如下信息 [ 12.811074] dhd_conf_read_nv_by_chip: chip=0x4345, chiprev=6, name=nvram_ap6255.txt [ 12.811082] dhd_conf_read_nv_by_chip: chip=0x4345, chiprev=9, name=nvram_ap6256.txt 看了系统读取芯片ID成功,6256的chiprev=9,可能这个地方加载有问题。找到这个文件进行修改。 4. 在以下文件添加43456相关加载内容 /kernel/drivers/net/wireless/rockchip_wlan/rkwifi/bcmdhd/dhd_config.c 添加定义 #define BCM43456C5_CHIP_REV 9 添加加载文件数组 const static char *bcm43456c5_ag_fw_name[] = { "fw_bcm43456c5_ag.bin", "fw_bcm43456c5_ag_apsta.bin", // "fw_bcm43455c0_ag_p2p.bin",^M // "fw_bcm43455c0_ag_mfg.bin"^M }; 修改函数dhd_conf_set_fw_name_by_chip,添加相关内容 case BCM4345_CHIP_ID: if (chiprev == BCM43455C0_CHIP_REV)^M strcpy(&fw_path[i+1], bcm43455c0_ag_fw_name[fw_type]); //添加以下内容 else if(chiprev == BCM43456C5_CHIP_REV)// strcpy(&fw_path[i+1], bcm43456c5_ag_fw_name[fw_type]); break; 重新编译烧写后,WIFI工作正常。 蓝牙修改
device/common/bluetooth/libbt/conf/rockchip/rk30sdk/bt_vendor.conf FwPatchFileName = BCM4345C5.hcd 3.默认名称修改 path:device/rockchip/rk3288/bluetooth/bdroid_buildcfg.h #define BTM_DEF_LOCAL_NAME "XXXX" |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1567 浏览 1 评论
synopsys 的design ware:DW_fpv_div,浮点数除法器,默认32位下,想提升覆盖率(TMAX),如果用功能case去提升覆盖率呢?
1790 浏览 1 评论
RK3588 GStreamer调试四路鱼眼摄像头四宫格显示报错
4465 浏览 1 评论
【飞凌嵌入式OK3576-C开发板体验】RKNN神经网络-YOLO图像识别
254 浏览 0 评论
【飞凌嵌入式OK3576-C开发板体验】SSH远程登录网络配置及CAN通讯
1336 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-10 16:06 , Processed in 0.417142 second(s), Total 39, Slave 34 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号