rk3128调试ap6256双频模块调试

最开始什么都不改,内核默认用的是ap6335,只是根据加载的固件名称,把原厂提供的ap6256的固件替换进来就可以了。

但这样替换了之后,可以打开WiFi,却不能正常使用。连接不了WiFi。

<4>[   22.646044] sdioh_set_mode: set txglom_mode to multi-desc
<4>[   22.646058] Final fw_path=/system/etc/firmware/fw_bcm4329.bin
<4>[   22.646072] Final nv_path=/system/etc/firmware/nvram_AP6335.txt
<4>[   22.646087] Final conf_path=/system/etc/firmware/config.txt

 

需要再代码中加以下补丁:

复制代码
iff --git a/arch/arm/boot/dts/x3128.dts b/arch/arm/boot/dts/x3128.dts
index 9a7289f..89b9efe 100755
--- a/arch/arm/boot/dts/x3128.dts
+++ b/arch/arm/boot/dts/x3128.dts
@@ -20,7 +20,7 @@
                * esp8089 ==> esp8089;
                * other   ==> for other wifi;
                */
-               wifi_chip_type = "ap6212";
+               wifi_chip_type = "ap6256";
                sdio_vref = <3300>; //1800mv or 3300mv
复制代码

 

复制代码
diff --git a/dhd_config.c b/dhd_config.c
index 11d2c9e..59c7aa0 100755
--- a/dhd_config.c
+++ b/dhd_config.c
@@ -141,6 +141,14 @@ const static char *bcm43455c0_ag_fw_name[] = {
        "fw_bcm43455c0_ag_p2p.bin",
        "fw_bcm43455c0_ag_mfg.bin" 
 };
+
+
+const static char *bcm43456c5_ag_fw_name[] = {^M
+       "fw_bcm43456c5_ag.bin",^M
+       "fw_bcm43456c5_ag_apsta.bin",^M
+       "fw_bcm43456c5_ag_p2p.bin",^M
+       "fw_bcm43456c5_ag_mfg.bin"^M
+};^M

 const static char *bcm4354a1_ag_fw_name[] = {
        "fw_bcm4354a1_ag.bin",
@@ -516,6 +524,10 @@ dhd_conf_set_fw_name_by_chip(dhd_pub_t *dhd, char *fw_path, char *nv_path)
                case BCM43454_CHIP_ID:
                        if (chiprev == BCM43455C0_CHIP_REV)
                                strcpy(&fw_path[i+1], bcm43455c0_ag_fw_name[fw_type]);
+
+                       if (chiprev == BCM43456C5_CHIP_REV)^M
+                               strcpy(&fw_path[i+1], bcm43456c5_ag_fw_name[fw_type]);^M
+                       strcpy(&nv_path[j+1], "nvram_ap6256.txt");^M
                        break;
                case BCM4339_CHIP_ID:
                        if (chiprev == BCM4339A0_CHIP_REV)
diff --git a/dhd_config.h b/dhd_config.h
index cd575a2..7dc5c82 100755
--- a/dhd_config.h
+++ b/dhd_config.h
@@ -30,6 +30,7 @@ extern uint dhd_slpauto;
 #define BCM4335A0_CHIP_REV      2
 #define BCM4339A0_CHIP_REV      1
 #define BCM43455C0_CHIP_REV     6
+#define BCM43456C5_CHIP_REV    9
 #define BCM4354A1_CHIP_REV      1
 #define BCM4359B1_CHIP_REV      5
 #endif
复制代码

在config.txt 加下面两个参数

dhd_slpauto=0

txglom_mode=0

并把config.txt、fw_bcm43456c5_ag.bin、nvram_ap6256.txt需要用到的固件push到system/etc/firmware即可。

posted @   M-kobe  阅读(4)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
点击右上角即可分享
微信分享提示