微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 手机设计讨论 > MTK手机平台交流 > mt2503 升级后开机没有做NVRAM_RESET_BRANCH的动作

mt2503 升级后开机没有做NVRAM_RESET_BRANCH的动作

时间:10-02 整理:3721RD 点击:
[NVRAM] 升级后开机没有做NVRAM_RESET_BRANCH的动作
[DESCRIPTION]
前后版本之前BRANCH和VERNO均有变化,但是升级后开机,发现支队VERNO相关的NVRAM LID做了reset,而BRANCH应该reset的NVRAM LID并没有变
[SOLUTION]
问题原因是VERNO和BRANCH分别存储在NVRAM_EF_BRANCH_VERNO_LID 以及NVRAM_EF_FLAVOR_VERNO_LID这两个LID的方式已经phase out,而直接存储在
NVRAM_EF_SYS_LID的第2个第3个record中,所以reset BRANCH功能也随之phase out;
如果依然需要实现reset BRANCH的功能,可以尝试将nvram_version_conflict_resolve()函数的最后一个if 语句的条件
if(!nvram_reset_data_itEMS(NVRAM_RESET_CERTAIN, NVRAM_APP_RESEVED, ldi, 1 ,ldi->total_records))
修改成
if(!nvram_reset_data_items(NVRAM_RESET_CERTAIN, NVRAM_APP_RESEVED, ldi, 1 , 1))

[NVRAM]在开启了OTP功能之后去resetNVRAM,部分LID未能恢复成默认值
[DESCRIPTION]
在开启了OTP功能之后,向MOD_NVRAM发送 MSG_ID_NVRAM_RESET的massage去reset
LID,但是部分LID没有reset成功.
[SOLUTION]
开启了OTP功能,IMEI是默认保存在OTP区域的,而OTP区域(属性)的NVRAM LID是无法
被reset的;
这种情况下请check nvram_io.c文件中的nvram_reset_data_items()函数中该case下
的处理是否有将OTP属性的LID滤掉;
example:
我设定NVRAM_RESET_BRANCH,
那么在 case NVRAM_RESET_BRANCH: 的for循环内,nvram_reset_one_data_item()之前,添加如下语句:
if(NVRAM_ISCATEGORY_OTP(ldi->category))
{
continue;
}

[NVRAM]如何使添加的NVRAM项在恢复出厂设置时,不被恢复
[DESCRIPTION]
添加NVRAM时,希望该NVRAM在进行恢复出厂设置操作时,不会被恢复到默认值。或者在添加一个MMIcache项
(BYTE/SHORT/DOUBLE)时,希望该Cache项不被恢复到默认值。
[SOLUTION]
若添加NVRAM项到如logical_data_item_table_comm_app[]或logical_data_item_table_cust[],当该LID项具有
NVRAM_ATTR_FACTORY_RESET属性时,就会在恢复出厂设置时恢复为DEFAULT值,否则恢复出厂设置操作不会恢复此LID
项。
对于MMICache项,若添加NVRAM项到如common_mmi_cache_byte[],则将其RESTORE_FLAG设为KAL_TRUE,则会在恢复出
厂设置时恢复为设定的默认值。
Example:
BYTE_ENTRY(NVRAM_SETTING_AUTOkeypadLOCK_TIME,
NVRAM_APP_PHNSET,
NVRAM_CACHE_ID_RESERVED,
KAL_TRUE,/*此处为设置restorefactory的地方,设为false即可disable*/
"AutoKeyPadLockTimer",
0X00),
MMICache项在10.48后续版本的添加方式发生了改变,在.res文件中添加,同样只需要要设定其RESTORE_FLAG即可

[NVRAM]修改MMI Cache项,无法开机
[DESCRIPTION]
MMICache项(BYTE/SHORT/DOUBLE)采用.res文件的方式添加,完成添加后,升级其对应的LID项的版本号:
NVRAM_EF_CACHE_BYTE_LID_VERNO NVRAM_EF_CACHE_SHORT_LID_VERNO NVRAM_EF_CACHE_DOUBLE_LID_VERNO
完成升级后,不格式化下载,无法开机。
[SOLUTION]
在MMICache新的添加方式是通过.res文件的方式进行,但Cache项中各个项的顺序关系是非常重要的,然而对.res文的解析生产
的各个BYTE/SHORT/DOUBLE项的顺序不定。因此,在新机制下,增加了如下三个LID项用于顺序的维护:
NVRAM_EF_MMI_CACHE_BYTE_KEY_LID
NVRAM_EF_MMI_CACHE_SHORT_KEY_LID
NVRAM_EF_MMI_CACHE_DOUBLE_KEY_LID
因此,在修改了MMICache项后,若需要不格式化下载,则还需要同时升级该LID的版本号:
NVRAM_EF_MMI_CACHE_BYTE_KEY_LID_VERNO
NVRAM_EF_MMI_CACHE_SHORT_KEY_LID_VERNO
NVRAM_EF_MMI_CACHE_DOUBLE_KEY_LID_VENO

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top