在使用SN Write写Ethernet MAC过程中出现了以下的错误:
ERROR!! Ethernet Mac:MetaResult = SPMETA_DLL::META_LID_INVALID。
复制代码
后来确认是AP_DB里面没找到AP_CFG_RDEB_FILE_ETHERNET_LID这个参数导致报错的,需在NVRAM中添加以太网的LID的参数。
本文就以AP_CFG_RDEB_FILE_ETHERNET_LID这只LID添加过程为例,简单说明客制化NVRAM的过程。
NVRAM介绍
Nvram: Non-volatile random access memory,是MTK平台的一种机制。
主要的目的是:用来描述RAM中的数据类型,关机也不会丢失;手机重要的参数在恢复出厂设置或者升级被删除后还能恢复。这些重要的数据包括两部分:AP端和Modem端,这里只介绍AP端部分。
AP端的主要有Wifi,Bt,Gps,sensor数据等。
Modem端的数据主要是打电话相关的参数,比如IMEI,RF等参数。
AP NVRAM Features:Backup
工厂Meta mode下做校准测试/写号等操作,工具结束disconnect 前触发backup动作, backup是从nvdata 分区(文件系统)备份到nvram 分区(raw data)。
AP NVRAM Features:Restore
使用下载工具做固件升级(firmware upgrade) 或者恢复出厂设置,会触发restore动作。 Restore是从nvram分区还原到nvdata分区,如果nvram 分区内容为空,则用nvram default值还原。
不同项目的需求,NVRAM模块需要提供客制化配置,包括默认值和LID的数据结构NVRAM的数据分两部分
1. Common 公共部分
MTK 平台使用,可以看到相关LID的数据结构,但是不要修改它。
2. 为不同的项目客制化部分
给客制化用的,可以看到相关LID的数据结构,并且可以修改它。
客制化相关的文件夹在以下的几个目录
mediatek\custom\ [project] \cgen里面有三个文件夹。
- cfgdefault 用来设置默认值的