【转】ARM Trusted Firmware分析——固件升级(FWU)

本文详细介绍了ARM Trusted Firmware(ATF)的固件升级(FWU)过程,包括从外部设备获取更新、镜像认证、状态机管理和BL1的SMC接口等关键环节。FWU支持在系统固件损坏时进行恢复,并提供了安全和非安全世界的上下文切换功能。FWU镜像通过独特的ID识别,并在不同状态下进行拷贝、认证和执行。
摘要由CSDN通过智能技术生成

转自:https://www.cnblogs.com/arnoldlu/p/14382157.html

ATF中关于FWU的实现没有如下文档描述完整,尤其是BL2U、NS_BL2U镜像。

可取的是FWU SMC处理、对升级包证书验签和镜像验签流程。

6.1 Introduction

FWU功能经过认证的固件从USB/SD/eMMC/NAND等外部设备获取固件进行更新。FWU可以在系统固件损坏情况下,作为恢复模式使用。

6.2 FWU Overview

参考设计:

  • BL1处理:
    • 检测和初始化FWU启动流程。
    • 从非安全内存拷贝镜像到安全内存。
    • FWU镜像认证。
    • FWU过程中安全和非安全世界上下文切换。
  • 其他安全世界FWU镜像处理FWU流程所需的平台初始化。
  • 非安全世界FWU镜像从外部接口加载镜像到非安全内存。

FWU特性需求主要包括:

  • 导出和其他EL执行的FWU镜像交互的BL1 SMC接口。
  • 导出FWU代码获取信息所使用的通用平台接口,

在这里插入图片描述

6.3 Image Identification

每个FWU镜像和证书都通过唯一的ID识别,BL1通过调用bl1_plat_get_image_desc()获取镜像描述符image_desc_t。此ID同样用于准备CoT。

镜像描述符包括以下信息:

  • 镜像是否可执行。
  • 镜像在安全还是非安全世界认证和执行。
  • 镜像基地址和大小。
  • 镜像启动入口点配置。
  • FWU镜像状态。

BL1使用FWU镜像描述符:

  • 确认FWU SMC参数是否有效
  • 管理FWU启动流程状态
  • 初始化FWU镜像执行环境

6.4 FWU State Machine

在这里插入图片描述FWU安全镜像在启动过程中可能的状态有:RESET、COPYING、COPIED、AUTHENTICATED、EXECUTED、INTERRUPTED。

FWU非安全镜像在启动过程中可能的状态有:RESET、AUTHENTICATED。

6.5 BL1 SMC接口

  • BL1_SMC_CALL_COUNT:获取BL1支持的SMC指令个数。

  • BL1_SMC_UID:获取BL1 SMC服务UUID。

  • BL1_SMC_VERSION:获取BL1 SMC服务版本号。

  • BL1_SMC_RUN_IMAGE:将执行权交给指定的EL3镜像开始执行。

  • FWU_SMC_IMAGE_COPY:将指定镜像从非安全内存拷贝到安全内存,后续用于认证。

  • FWU_SMC_IMAGE_AUTH:认证指定镜像。

  • FWU_SMC_IMAGE_EXECUTE:初始化认证过的镜像执行环境。

  • FWU_SMC_IMAGE_RESUME:

  • FWU_SMC_SEC_IMAGE_DONE:提示之前安全镜像执行完成。

  • FWU_SMC_UPDATE_DONE:完成固件更新流程。

  • FWU_SMC_IMAGE_RESET:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值