zoukankan      html  css  js  c++  java
  • RT600 Boot详解

    本文详细介绍RT600 ROM的boot 流程,具体如下

    1. image的架构解析
    2. ROM如何从device中读取数据,进行boot

    image 架构

    image header中前4byte是PC。ROM用到的数据位于0x20-0x40.

    从这张图中,我们可以看到:

    • 0x20-0x23为image的总长度
    • 0x24-0x27为image type。具体请参见下图
    • 0x28-0x2b为CRC checksum或者authentication block address。
      1. 如果image不签名,这里的数值就是CRC checksum,ROM boot时会计算image的checksum跟这个值进行对比,通过则boot
      2. 如果image签名,则此处为signature的offset。如果image中包含key store,signature的具体位置需要将这个值加上0x5B0。因为ROM处理image的时候会去除HMAC + key store,将image直接附在header的后面。
    • 0x34-0x37,image运行地址.
      1. 如果是XIP,这个地址跟存储地址一致
      2. 如果non-xip,ROM会从存储地址中将数据copy到这个地址

    image type定义

    • bit15定义了image中是否带有key store
    • bit14定义了是否使用trustzone
    • bit13定义了trust zone boot是否带preset data
    • bit7-bit0定义了image的类型。
      如果image运行在RAM中,则HMAC会使用到。制作image的时候,需要使用user key对image header进行加密,加密的数据存储到HMAC中。
      Boot的时候,ROM会使用user key store来对其进行校验。如果image中定义了key store,则从image从获取key store。否则从存储device的offset 0x800处取key store

    boot 流程详解

    如果image运行在RAM中,并且签名。制作image的时候,需要使用user key对header进行加密,加密的数据就是HMAC。
    XIP secure boot跟normal RAM boot没有HMAC

    • ROM解析image header,判断image运行在ram中还是XIP。如果image运行在RAM中,ROM拷贝0x40数据到RAM中,否则不拷贝。拷贝的0X40长度的数据就是image header,ROM会根据image header的信息对image进行处理
    • ROM根据image header中的信息,将image header跟HMAC拷贝到image运行位置。
      1. 如果image运行在RAM中,并且image中带有key store。ROM会使用image中的key store对HMAC进行校验
      2. 如果image运行在RAM中,并且image中没有key store。ROM会从boot device的offset 0x800处获取key store,对HMAC进行校验
      3. 针对运行在RAM中的image,HMCA校验通过后进行下一步,否则ROM lock up。HMCA的校验,需要在fuse boot_CFG[0] bit[9]开启use PUF
    • ROM拷贝剩余的image,附在header后面
      1. 如果image中包含key store, ROM剔除key store(0x590)+ HMAC(0x20)长度后将数据复制到header后。
    • 如果image加密,则解密后进行认证
    • 认证通过后获取PC,然后jump to application
  • 相关阅读:
    jquery.validate.js【简单实用的表单验证框架】
    velocity.js实现页面滚动切换效果
    站在巨人的肩膀上——制作酷炫web幻灯片
    简单说说随机打乱数组的方法
    JS数据结构之BinarySearchTree
    做一个extjs的扩展
    【OneAPM】极客编程挑战#025:发挥想象生成漂亮炫酷的SVG动画效果
    将博客搬至CSDN
    练习作品7:批量做字库 识别码
    联系作品6 模版打印 奖状
  • 原文地址:https://www.cnblogs.com/richard-xiong/p/9674925.html
Copyright © 2011-2022 走看看