发 帖  
  • 发布了文章 2023-11-7 16:32
    ATF中bl32的启动 bl31中的runtime_svc_init函数会初始化OP-TEE对应的服务,通过调用该服务项的初始化函数来完成OP-TEE的启动。对于OP-TEE的服务项会通过DECLARE_RT_SVC宏在编译时被存放到rt_...
    0
    608次阅读
    0条评论
  • 发布了文章 2023-11-7 16:23
    runtime_svc_init函数 该函数主要用来建立安全监控模式调用处理函数的索引表,并执行EL3中提供的服务项的初始化操作,获取TEE OS的入口地址并赋值给bl32_init变量,以备启动TEE OS。 而这些处理函数是通过DECL...
    0
    613次阅读
    0条评论
  • 发布了文章 2023-11-7 16:13
    在bl2中触发安全监控模式调用后会跳转到bl31中执行,bl31最主要的作用是 建立EL3运行态的软件配置 , 在该阶段会完成各种类型的安全监控模式调用ID的注册和对应的ARM核状态的切换 ,bl31运行在EL3。bl31的执行流程如图所示...
    0
    1120次阅读
    0条评论
  • 发布了文章 2023-11-7 16:09
    bl2到bl31的跳转 在bl2_main函数中最终会调用smc(BL1_SMC_RUN_IMAGE,(unsigned long)next_bl_ep_info,0,0,0,0,0,0)来触发一个类型为BL1_SMC_RUN_IMAGE的...
    0
    891次阅读
    0条评论
  • 发布了文章 2023-11-7 16:04
    bl2_main函数 bl2_main函数完成了bl2阶段的主要操作,包括 • 对下一个阶段镜像文件的解析、 • 获取入口地址和镜像文件大小等信息, • 然后对镜像文件进行验签和加载操作。 • 将bl31加载到内存中后会触发安全监控模式调用...
    0
    664次阅读
    0条评论
  • 发布了文章 2023-11-7 15:59
    bl2镜像将为后续镜像的加载执行相关的初始化操作,主要是内存、MMU、串口以及EL3软件运行环境的设置,并且加载bl3x的镜像到内存中。 通过查看bl2.ld.S文件可发现,bl2镜像的入口函数是bl2_entrypoint。该函数定义在b...
    0
    766次阅读
    0条评论
  • 发布了文章 2023-11-7 15:53
    系统上电之后首先会运行ChipRom,之后会跳转到ATF的bl1中继续执行。bl1主要初始化CPU、设定异常向量、将bl2的镜像加载到安全RAM中,然后跳转到bl2中开始运行。 bl1的主要代码存放在bl1目录中,bl1的链接文件是bl1/...
    0
    1007次阅读
    0条评论
  • 发布了文章 2023-11-7 15:48
    ATF的启动过程根据ARMv8的运行模式(AArch32/AArch64)会有所不同,但基本一致。 在AArch32中是不会去加载bl31而是将EL3或者Monitor模式的运行代码保存在bl32中执行。在AArch64中,ATF的完整启动...
    0
    1227次阅读
    0条评论
  • 发布了文章 2023-11-7 15:25
    对于安全引导功能的实现和验证过程各家芯片公司的方案都不一样,这是由该芯片的启动流程以及启动所需镜像文件来决定的,但都会遵循链式验签启动的原则。 ARMv7架构并没有使用ATF,系统的启动流程与以前一样使用BootLoader来引导Linux...
    0
    794次阅读
    0条评论
  • 发布了文章 2023-11-7 15:21
    安全引导可用于保证系统的完整性,防止系统中重要镜像文件被破坏或替换。 一般情况下,安全引导需要保护 • 系统的BootLoader镜像文件、 • TEE镜像文件、 • Linux内核镜像文件、 • Recover镜像文件 • 以及在ARMv...
    0
    1190次阅读
    0条评论
  • 发布了文章 2023-11-7 15:17
    restart--冷启动 reset--热启动 ATF冷启动实现分为5个步骤: • BL1 - AP Trusted ROM,一般为BootRom。 • BL2 - Trusted Boot Firmware,一般为Trusted Boot...
    0
    2177次阅读
    0条评论
  • 发布了文章 2023-11-7 15:12
    ARM32的OP-TEE与ARM64的OP-TEE启动过程大致相同。ARM64的OP-TEE的_start函数定义在generic_entry_a64.S文件中,而且该函数不像ARM32位系统一样会进入reset中去执行OP-TEE启动,而...
    0
    742次阅读
    0条评论
  • 发布了文章 2023-11-7 15:04
    OP-TEE服务项的启动分为: service_init以及service_init_late ,需要被启动的服务项通过使用这两个宏,在编译时,相关服务的内容将会被保存到initcall1和initcall2中。 1. service_in...
    0
    696次阅读
    0条评论
  • 发布了文章 2023-11-2 18:18
    generic_boot_init_primary函数内容 generic_boot_init_primary函数是OP-TEE建立系统运行环境的入口函数,该函数会进行建立线程运行空间、初始化OP-TEE内核组件等操作。该函数的执行流程如图...
    0
    725次阅读
    0条评论
  • 发布了文章 2023-11-2 18:06
    reset_primary函数的执行 以CONFIG_BOOT_SYNC_CPU使能为例, 在使能PSCI系统中,不需要使能此宏 。 reset_primary函数执行流程 reset_primary函数是OP-TEE对CPU主核进行初始化...
    0
    533次阅读
    0条评论
ta 的专栏

成就与认可

  • 获得 70 次赞同

    获得 0 次收藏

谁来看过他

关闭

站长推荐 上一条 /6 下一条

返回顶部