EFS Backup/Restore(Qcom)

废话:没想到第一篇笔记竟然是efs,浅浅记录一下~


一、前言

        在高通平台中,Modem使用EFS(Embedded File System)来存储其配置数据。由于Modem不能直接访问Flash(eg,eMMC、UFS和NVMe),因此它通过AP访问。更新文件系统时,会将整个文件系统分区写入Flash。

二、EFS镜像和分区

        EFS模块会将如下三种EFS镜像保存到Flash的三个EFS的分区中——FS1,FS2,FSG。

Flash上的EFS分区
... ...FS1FS2FSG... ...

三种EFS镜像——

1. Main EFS image, the main active EFS image

        写入主EFS分区——FS1和FS2,如下图;

"ping-pong" EFS Sync

  2. EFS Golden Copy image, a factory snapshot of the main EFS image

        写入FSG分区,只写一次,并且写完之后打开写保护;

理解:工厂校准后,在下一工位触发备份命令,将最新的EFS从FS1/FS2复制到FSG分区

3. Signed zip-tar image, 工厂使用的临时镜像

        设备第一次启动时预填充空的EFS,并写入FSG分区,之后会被“EFS Golden Copy”覆盖;

三、EFS备份

1. Runtime Backup

        MPSS基于定时器发起备份

理解:这里应该指的是,系统工作时,定期将最新的EFS数据写入FS1、FS2,即EFS Sync

        在这里,有一个retry time的概念,即在周期备份期间,当发生共享内存不可使用或者无法打开设备节点时,会进行重试。并且系统仅在(驱动)设定的一段时间后重试一次。

        若如上retry fail,则默认使用周期定时器,直到周期备份timer释放再进行下一次尝试。

2. Factory Backup

工厂校准后,通过DIAG指令触发备份

理解:如“EFS Golden Copy image”中的理解

四、EFS还原

        目前没有了解到高通有做EFS错误检测机制(如有欢迎帮忙指路~),因此当EFS发生损坏时,一般是OEM自己做强制恢复机制——即判断时机,擦除fs1、fs2分区,从而触发restore机制。

五、启动时EFS初始化

        1. EFS检查FS1、FS2分区是否为有效镜像;若是,则使用最新的镜像启动;

        2. 若FS1、FS2分区没有有效镜像,则检查fsg的有效签名的.tar文件;若有,则是否fsg的签名.tar作为初始化文件系统数据;

        =>工厂场景

        3.若FGS分区没有签名的压缩.tar文件,检查分区是否有常规EFS镜像;若有,则使用该镜像;

        4. 若FSG、FS1、FS2都损坏、EFS数据为空,则EFS在RAM中创建一个新的文件系统,一旦数据有更新,则RAM中的文件系统就转移到FS1分区中。

六、EFS加解密

        了解的不是很细,就画个图吧。

 End

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值