type
status
date
slug
summary
tags
category
icon
password
URL
一、问题背景
收到硬件同事提的需求,需要根据不同的设备硬件区分不同的射频参数。区分gloabl/cn/india三套参数,由于MTK平台默认的只有一套参数,所以需要对MTK原始设计进行适配。
二、需求构思
明确三点:
- wlan driver需要获取硬件信息(india/cn/global)
- 三套射频参数的逻辑
- 半擦升级时保存wifi mac地址的策略也需要根据region来适配
三、方案实现
3.1 region传入driver
此region信息我们想的方案是将region通过lk设置kernel cmdline,driver去解析kernel cmdline来获取。
3.2 driver 解析 cmdline
3.3 区分三套射频参数
https://gerrit.odm.mioffice.cn/c/alps/vendor/mediatek/proprietary/custom/+/419760
https://gerrit.odm.mioffice.cn/c/alps/vendor/mediatek/proprietary/external/libnvram_ext/+/419649
3.4 wifi mac 半擦保护
https://gerrit.odm.mioffice.cn/c/alps/vendor/mediatek/proprietary/external/nvram/+/419648
四、总结
方案的原理很清晰明了,方案的整体设计是围绕
stWifiCfgDefault_6631
进行的,通过region的区分来区分不同的射频参数。代码中所有引用到stWifiCfgDefault_6631
的地方都需要做一个区分。在GKI项目中也尝试过使用全局链表
saved_command_line
,但是失败了。GKI项目应该无法使用这个了,如果遇到相同的问题,可以使用本篇介绍的方案获取cmdline