UEFI SMM

SMM 介绍

SMM (System Management Mode) 是Intel IA32/Intel64 CPU 架构的一种特殊模式。CPU

通过SMI(System Management Interrupt) 进入SMM 模式。然后,CPU 保存当前环境,跳转到

预先定义的地址,执行完后通过RSM指令返回。目前主流的的操作系统和Intel CPU 都支持SMM.

     BIOS 对于SMM 的支持包括以下几个方面:

  1.      初始化SMRAM
  2.      提供平台相关的SMM 回调函数

SMM 的运行分为两阶段:

1 SMRAM 初始化  在DXE 阶段, SMM IPL/Core 驱动负责打开SMRAM, 创建SMRAM 的

Memory Map, 为其他SMM 驱动提供必要的服务,最后关闭并锁住SMRAM.

 2 SMI 管理  当系统SMI 产生,SMM CPU/Core 驱动负责建立SMI 执行环境,找出SMI

    Handler, 并且调用 。

 

SmmIpl

SmmIpl (smm Initialization Program Loader), 顾名思义,是指把SmmCore 加载到smram 的一

段程序。流程如下:

 

SMM IPL 基本会使用由Memory Controller 提供的SMM_ACCESS

 

 

 

SmmIplReadyToLocakEventNotify 函数

smmIplReadyToLockEventNotify 是由platform 负责通知SmmIpl 来关闭并锁住SMRAM.

SmmIpl 再通知SmmCore, 来关闭SmmCore 的部分服务,例如Dispatch SMM 驱动。

 

 

检查是否已经Lock. 如果是的话,直接返回。

检查是否由DxesmmReadyToLockProtocol 触发的ReadyToLock 事件,如果不是的话,

则表明是ReadytoBoot 事件产生,打印警告信息。

锁住Smram.

关闭所有需要关闭的事件。

通知smmCore 产生了ReadyToLock 事件。

设置标志位表示SmmLock 已经发生。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值