admin管理员组文章数量:1565829
2024年7月11日发(作者:)
福州瑞芯微电子有限公司
密级状态:绝密()秘密()内部(√)公开()
RK平台RealtekWiFi驱动移植说明
(系统产品一部)
文件状态:
[]正在修改
[√]正式发布
当前版本:
作者:
V1.0
胡卫国
2015-03-13完成日期:
审核:
完成日期:
福州瑞芯微电子有限公司
FuzhouRockchipsSemiconductorCo.,Ltd
(版本所有,翻版必究)
福州瑞芯微电子有限公司
版本历史
版本号
V1.0
作者
胡卫国
修改日期
2015-03-13初始版本
修改说明备注
福州瑞芯微电子有限公司
目录
1REALTEK驱动基本情况说明........................................................................................................................2
2WIFI驱动移植..................................................................................................................................................3
2.1
WIFI
驱动入口函数.....................................................................................................................................3
2.2电源控制及
SDIO
识别操作......................................................................................................................4
2.3M
AKEFILE
配置修改...................................................................................................................................5
2.4使用自定义W
I
F
I
MAC地址....................................................................................................................6
3BT固件更新......................................................................................................................................................7
1
福州瑞芯微电子有限公司
1Realtek
驱动基本情况说明
Realtek系列WiFiBT芯片,如RTL8188EU,RTL8189ES,RTL8723系列,驱动移植包都是类似
的目录结构,驱动代码目录结构也类似。
以RTL8188EUS_RTL8189ES_linux_v4.1.8_为例
解压之后里面包含文档、驱动源码包、androidreference代码等内容,具体如下:
Android部分RK一般都已经移植好集成到SDK中,由于Realtek驱动更新比较频繁,所以客
户最常遇到的事情就是更新WiFi驱动。
2
福州瑞芯微电子有限公司
2WiFi
驱动移植
可对比SDKKernel中已经移植好的驱动与Realtek的驱动进行合并。驱动在以下目录
drivers/net/wireless/rockchip_wlan/
drivers/net/wireless/
针对kernel3.10版本
针对kernel3.0版本
2.1wifi驱动入口函数
Realtek提供的驱动入口函数为:
module_init(rtw_drv_entry);
module_exit(rtw_drv_halt);
在以下文件中:
os_deplinuxsdio_intf.c针对sdio接口wifi
os_deplinuxusb_intf.c针对usb接口wifi
RK平台做了稍微修改,主要是为了增加RK版本信息打印及wifigpio电源控制,启动sdio
识别。
统一将入口函数由原来的:rtw_drv_entry与rtw_drv_halt,修改成了
rockchip_wifi_init_module与rockchip_wifi_exit_module针对3.0版本kernel
rockchip_wifi_init_module_rtkwifi与rockchip_wifi_exit_module_rtkwifi针对3.10版本kernel
并加了如下版本信息打印(以RTL8723BSVQ0Kernel3.0为例):
introckchip_wifi_init_module(void)
{
printk("=======================================================n");
printk("====LaunchingWi-Fidriver!(PoweredbyRockchip)====n");
printk("=======================================================n");
printk("Realtek8723BSSDIOWiFidriver(PoweredbyRockchip,Ver%s)init.n",
RTL8723BS_DRV_VERSION);
returnrtw_drv_entry();
}
3
福州瑞芯微电子有限公司
voidrockchip_wifi_exit_module(void)
{
printk("=======================================================n");
printk("====DislaunchingWi-Fidriver!(PoweredbyRockchip)====n");
printk("=======================================================n");
rtw_drv_halt();
}
Android4.2平台
编译成ko,入口函数如下:
module_init(rockchip_wifi_init_module);
module_exit(rockchip_wifi_exit_module);
Android4.4kernel3.0平台
Buildin到kernle中,入口函数如下
EXPORT_SYMBOL(rockchip_wifi_init_module);
EXPORT_SYMBOL(rockchip_wifi_exit_module);
Android4.4kernel3.10平台
Buildin到kernle中,入口函数如下
EXPORT_SYMBOL(rockchip_wifi_init_module_rtkwifi);
EXPORT_SYMBOL(rockchip_wifi_exit_module_rtkwifi);
Android5.0kernel3.10平台
#ifdefCONFIG_RTL8723BS_VQ0
EXPORT_SYMBOL(rockchip_wifi_init_module_rtkwifi);
EXPORT_SYMBOL(rockchip_wifi_exit_module_rtkwifi);
#else
module_init(rockchip_wifi_init_module_rtkwifi);
module_exit(rockchip_wifi_exit_module_rtkwifi);
#endif
2.2电源控制及sdio识别操作
Kernel3.10版本
introckchip_wifi_init_module_rtkwifi(void)
{
printk("n");
4
福州瑞芯微电子有限公司
printk("=======================================================n");
printk("====LaunchingWi-Fidriver!(PoweredbyRockchip)====n");
printk("=======================================================n");
printk("Realtek8723BSVQ0SDIOWiFidriver(PoweredbyRockchip,Ver%s)init.n",
RTL8723BS_DRV_VERSION);
rockchip_wifi_power(1);
returnrtw_drv_entry();
}
电源控制及sdio识别操作的函数实现在:net/rfkill/rfkill-wlan.c
Kernel3.0版本
电源控制与sdio识别函数有些不一样,具体如下:
intrk29sdk_wifi_power(inton);
intrk29sdk_wifi_set_carddetect(intval);
电源控制及sdio识别操作的函数实现在:arch/arm/plat-rk/rk-sdmmc-wifi.c
//使能wifi电源
rockchip_wifi_set_carddetect(1);//通知sdio进行识别sdio卡操作,只针对SDIOWiFi
2.3Makefile配置修改
在3.10版本kernel中防止出现编译warning
EXTRA_CFLAGS+=-O1
修改成
EXTRA_CFLAGS+=-O1-Wframe-larger-than=1200
选择RK平台
将CONFIG_PLATFORM_I386_PC=y
修改成
CONFIG_PLATFORM_I386_PC=n
将CONFIG_PLATFORM_ARM_RK3188=n
修改成
CONFIG_PLATFORM_ARM_RK3188=y
5
福州瑞芯微电子有限公司
CONFIG_PLATFORM_ARM_RK3188其实控制以下驱动中需要打开的关键宏:
CONFIG_PLATFORM_ANDROID
CONFIG_IOCTL_CFG80211
RTW_USE_CFG80211_STA_EVENT
CONFIG_CONCURRENT_MODE
CONFIG_P2P_IPS
休眠唤醒配置说明
如果发现连接AP时wifi休眠功耗大,可按如下配置
CONFIG_WOWLAN=n
CONFIG_GPIO_WAKEUP=n
CONFIG_RTW_SDIO_PM_KEEP_POWER=y
2.4使用自定义WiFiMAC地址
一般wifi模块自带硬件MAC地址,默认使用此地址。也可修改成自定义的MAC地址,通过
PC工具写MAC地址到flash中,然后再在驱动中读取并使用此MAC地址,修改如下:
在文件corertw_ieee80211.c中,通过以下函数来读取flash中的MAC地址:
针对3.10版本kernel
externintrockchip_wifi_mac_addr(unsignedchar*buf);
针对3.0版本kernel
intrk29sdk_wifi_mac_addr(unsignedchar*buf)
6
福州瑞芯微电子有限公司
3BT
固件更新
如果是rtl8723系统wifibt二合一芯片,更新了wifi驱动后,一般需要同时更新btfirmware。
firmware在realtek提供的驱动移植包以下目录hardwarerealtekbtfirmware。
对应移植到RK平台目录如下
在SDK源码目录:安装到机器中目录
device/rockchip/common/bluetooth/realtek/bt/firmware/rtl8723au/rtl87
Android4.2,
4.4
23a_fw:system/etc/firmware/rtl8723a_fw
device/rockchip/common/bluetooth/realtek/bt/firmware/rtl8723au/rtl87
23a_config:system/etc/firmware/rtl8723a_config
rtl8723au
vendor/rockchip/common/bluetooth/realtek/bt/firmware/rtl8723au/rtl8
723a_fw:system/etc/firmware/rtl8723a_fw
Android5.0
vendor/rockchip/common/bluetooth/realtek/bt/firmware/rtl8723au/rtl8
723a_config:system/etc/firmware/rtl8723a_config
device/rockchip/common/bluetooth/realtek/bt/firmware/rtl8723bu/rtl87
Android4.2,
4.4
23b_fw:system/etc/firmware/rtl8723b_fw
device/rockchip/common/bluetooth/realtek/bt/firmware/rtl8723bu/rtl87
23bu_config:system/etc/firmware/rtl8723bu_config
rtl8723bu
vendor/rockchip/common/bluetooth/realtek/bt/firmware/rtl8723bu/rtl8
723b_fw:system/etc/firmware/rtl8723b_fw
Android5.0
vendor/rockchip/common/bluetooth/realtek/bt/firmware/rtl8723bu/rtl8
723bu_config:system/etc/firmware/rtl8723bu_config
device/rockchip/common/bluetooth/realtek/bt/firmware/rtl8723as/rtl87
Android4.2,
rtl8723as
4.4
device/rockchip/common/bluetooth/realtek/bt/firmware/rtl8723as/rtl87
23a_fw:system/etc/firmware/rtlbt/rtlbt_fw
7
福州瑞芯微电子有限公司
23a_config:system/etc/firmware/rtlbt/rtlbt_config
vendor/rockchip/common/bluetooth/realtek/bt/firmware/rtl8723as/rtl87
23a_fw:system/etc/firmware/rtlbt/rtlbt_fw
Android5.0
vendor/rockchip/common/bluetooth/realtek/bt/firmware/rtl8723as/rtl87
23a_config:system/etc/firmware/rtlbt/rtlbt_config
device/rockchip/common/bluetooth/realtek/bt/firmware/rtl8723bs/rtl87
Android4.2,
4.4
23b_fw:system/etc/firmware/rtlbt/rtlbt_fw
device/rockchip/common/bluetooth/realtek/bt/firmware/rtl8723bs/rtl87
23b_al:system/etc/firmware/rtlbt/rtlbt_config
rtl8723bs
vendor/rockchip/common/bluetooth/realtek/bt/firmware/rtl8723bs/rtl8
723b_fw:system/etc/firmware/rtl8723bs_fw
Android5.0
vendor/rockchip/common/bluetooth/realtek/bt/firmware/rtl8723bs/rtl8
723b_config:system/etc/firmware/rtl8723bs_config
device/rockchip/common/bluetooth/realtek/bt/firmware/rtl8723bs/rtl87
Android4.2,
4.4
23b_fw:system/etc/firmware/rtlbt/rtlbt_fw
device/rockchip/common/bluetooth/realtek/bt/firmware/rtl8723bs/rtl87
23b_al:system/etc/firmware/rtlbt/rtlbt_config
rtl8723bs-vq0
vendor/rockchip/common/bluetooth/realtek/bt/firmware/rtl8723bs_vq0
/rtl8723b_fw:system/etc/firmware/rtl8723bs_VQ0_fw
Android5.0
vendor/rockchip/common/bluetooth/realtek/bt/firmware/rtl8723bs_vq0
/rtl8723b_VQ0_config:system/etc/firmware/rtl8723bs_VQ0_config
8
福州瑞芯微电子有限公司
_______________
9
版权声明:本文标题:RK平台Realtek WiFi驱动移植说明 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1720710150a839000.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论