MTK WLAN支持多种NVRAM方案

本文详细介绍了MTK平台如何根据硬件差异支持多种NVRAM方案,包括背景、实现原理和软件实现步骤,如生成不同NVRAM、调用不同NVRAM、添加属性读取权限,并提供了验证过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

硬件差异的前提,wifi功率会有差异,软件上可以做功率补偿方案,但是需要知道整机状态,然后设定一个flag, 软件根据flag,选择使用预制的多NVRAM,简单点来说就是

“根据不同条件,加载不同的NVRAM”

实现原理

1,根据不同的射频参数生成不同的NVRAM

2,WLAN开机加载时根据条件选择对应的NV

软件实现

一、生成不同的NVRAM

生成不同的NVRAM ,需要射频提供不同的射频参数

MTK平台 默认的射频参数路径为vendor/mediatek/proprietary/custom/selene/cgen/cfgdefault/CFG_WIFI_Default.h

阅读源码,生成的nvram就是把WIFI_CFG_PARAM_STRUCT结构体类型 stWifiCfgDefault变量的值写入文件的过程,所以我们可以仿照这个定义不同的变量,设置不同的射频参数

比如CFG_WIFI_Default_High2DB.h (stWifiCfgHigh), CFG_WIFI_Default_Low2DB.h (stWifiCfgLow)

1,添加射频参数

WIFI_CFG_PARAM_STRUCT stWifiCfgDefault =

{

    0x0001, /* Part1OwnVersion | offset:0x0000 *//* Part1OwnVersion | offset:0x0001 */

    0x0009, /* Part1PeerVersion | offset:0x0002 *//* Part1PeerVersion | offset:0x0003 */

    0x00, /* MAC address 0 | offset:0x0004 */

    0x00, /* MAC address 1 | offset:0x0005 */

    0x00, /* MAC address 2 | offset:0x0006 */

    0x00, /* MAC address 3 | offset:0x0007 */

    0x00, /* MAC address 4 | offset:0x0008 */

    0x00, /* MAC address 5 | offset:0x0009 */

WIFI_CFG_PARAM_STRUCT stWifiCfgHigh =

{

    0x0001, /* Part1OwnVersion | offset:0x0000 *//* Part1OwnVersion | offset:0x0001 */

    0x0009, /* Part1PeerVersion | offset:0x0002 *//* Part1PeerVersion | offset:0x0003 */

    0x00, /* MAC address 0 | offset:0x0004 */

    0x00, /* MAC address 1 | offset:0x0005 */

    0x00, /* MAC address 2 | offset:0x0006 */

    0x00, /* MAC address 3 | offset:0x0007 */

    0x00, /* MAC address 4 | offset:0x0008 */

    0x00, /* MAC address 5 | offset:0x0009 */
WIFI_CFG_PARAM_STRUCT stWifiCfgLow =

{

    0x0001, /* Part1OwnVersion | offset:0x0000 *//* Part1OwnVersion | offset:0x0001 */

    0x0009, /* Part1PeerVersion | offset:0x0002 *//* Part1PeerVersion | offset:0x0003 */

    0x00, /* MAC address 0 | offset:0x0004 */

    0x00, /* MAC address 1 | offset:0x0005 */

    0x00, /* MAC address 2 | offset:0x0006 */

    0x00, /* MAC address 3 | offset:0x0007 */

    0x00, /* MAC address 4 | offset:0x0008 */

    0x00, /* MAC address 5 | offset:0x0009 */

2,添加NVRAM LID

vendor/mediatek/proprietary/custom/selene/cgen/inc/Custom_NvRam_LID.h

/* the definition of file LID */

typedef enum

{

    AP_CFG_RDCL_FILE_AUDIO_LID=AP_CFG_CUSTOM_BEGIN_LID, //AP_CFG_CUSTOM_BEGIN_LID: this lid must not be changed, it is reserved for system.

    AP_CFG_CUSTOM_FILE_GPS_LID,

    AP_CFG_RDCL_FILE_AUDIO_COMPFLT_LID,

    AP_CFG_RDCL_FILE_AUDIO_EFFECT_LID,

    AP_CFG_RDEB_FILE_WIFI_LID,

    AP_CFG_RDEB_FILE_WIFIHIGH_LID,                              &nb

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值