[RK3288][Android6.0] WiFi的Firmware和Nvram文件

xiaoxiao2021-02-28  65

Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 Wifi: AP6335

概念:

Firmware:

WiFi芯片内部有一个小系统,用来运行802.11协议,此部分代码就叫Firmware。有些芯片(例如 broadcom)的Firmware是以文件的形式存放的,有些芯片(例如 realteck)的Firmware是做到驱动代码中的。

Nvram:

WiFi芯片需要作相应的RF参数校准,校准值等信息一般放到到Nvram中。例如,同一个芯片bcm4330,做成不同的模块时,需要不同的Nvram。另外,有些芯片(例如realtek)将RF参数校准等信息写到芯片的EEPROM中,这部分工作在模块出厂时完成 WiFi芯片工作前,需要host先下载Firmware文件到WiFi芯片中,此部分工作在WiFi驱动中完成。

路径: Firmware与Nvram文件存放于external/wlan_loader/firmware/目录中,最终被编译到系统的/system/etc/firmware

加载: 系统开机默认就加载好firmware和nvram文件了,过程可参考 [RK3288][Android6.0] WiFi的驱动初始化过程小结 rk_wifi_config.c

int rkwifi_set_firmware(char *fw, char *nvram) { int chip = get_wifi_chip_type(); 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"); } }

因此对应的文件是fw_bcm4339a0_ag.bin

在framework虽然也有调reload firmware SoftapController.cpp

int SoftapController::fwReloadSoftap(int argc, char *argv[]) { char *fwpath = NULL; if (argc < 4) { ALOGE("SoftAP fwreload is missing arguments. Please use: softap <wlan iface> <AP|P2P|STA>"); return ResponseCode::CommandSyntaxError; } if (strcmp(argv[3], "AP") == 0) { fwpath = (char *)wifi_get_fw_path(WIFI_GET_FW_PATH_AP); } else if (strcmp(argv[3], "P2P") == 0) { fwpath = (char *)wifi_get_fw_path(WIFI_GET_FW_PATH_P2P); } else if (strcmp(argv[3], "STA") == 0) { fwpath = (char *)wifi_get_fw_path(WIFI_GET_FW_PATH_STA); } if (!fwpath) return ResponseCode::CommandParameterError; if (wifi_change_fw_path((const char *)fwpath)) { ALOGE("Softap fwReload failed"); return ResponseCode::OperationFailed; } else { ALOGD("Softap fwReload - Ok"); } return ResponseCode::SoftapStatusResult; }

这些宏定义是在wifi_bt_common.mk中

WIFI_DRIVER_FW_PATH_STA := "/system/etc/firmware/fw_bcm4329.bin" WIFI_DRIVER_FW_PATH_P2P := "/system/etc/firmware/fw_bcm4329_p2p.bin" WIFI_DRIVER_FW_PATH_AP := "/system/etc/firmware/fw_bcm4329_apsta.bin"

但是在external/wlan_loader/firmware并不存在,虽然驱动加载,但是softap和p2p可能会有问题

转载请注明原文地址: https://www.6miu.com/read-73837.html

最新回复(0)