当前位置: 首页 > 专利查询>英特尔公司专利>正文

基于SMM信任根的无缝SMM全局驱动程序更新制造技术

技术编号:33626901 阅读:13 留言:0更新日期:2022-06-02 01:13
用于基于SMM信任根的无缝SMM(系统管理模式)全局驱动程序更新的方法和装置。提供了用于在运行时以安全方式加载和替换SMM驱动程序而不要求SMM固件更新和平台重置的机制。SMM代码由BIOS在引导期间在称为SMRAM空间的隐藏存储器区域中执行。使用SMM全局驱动程序更新的无缝更新提供了一种方法来加载和替换在已交付平台产品上的所有SMM驱动程序(包括SMM基础结构),以用于例如错误修复的目的。除了SMM代码之外,这些原理和教导也可以应用于更新其他类型的安全执行模式代码。类型的安全执行模式代码。类型的安全执行模式代码。

【技术实现步骤摘要】
基于SMM信任根的无缝SMM全局驱动程序更新

技术介绍

[0001]系统管理模式(SMM)是系统固件的重要运行时组件。它具有比操作系统(OS)内核/管理程序更高的特权,并且负责管理各种平台配置和事件,例如,寄存器锁定、机器状态寄存器(MSR)配置、错误处理、事件处理(如可靠性、可用性和可维护性(RAS))等。
[0002]如今,SMM驱动程序的更新要求平台重置。对于数据中心/云环境中的数十万个服务器节点的组群而言,这种平台重置非常昂贵。此类重置会导致非盈利的停机时间并且无法为云服务提供商(CSP)维护SLA(服务级别协议)。
附图说明
[0003]随着本专利技术的前述方面和许多伴随的优点通过参考以下详细描述同时结合附图而变得更好理解,该前述方面和许多伴随的优点将变得更容易理解,除非另有说明,否则附图中贯穿各个视图相同的附图标记指代相同的部分:
[0004]图1是示出根据一个实施例的SMRAM存储器布局的示意图;
[0005]图2是示出根据一个实施例的在引导流程期间执行的操作的流程图;
[0006]图3是示出根据一个实施例的在运行时驱动程序更新过程期间执行的操作的流程图;以及
[0007]图4是可以用本文描述和示出的实施例的方面来实现的系统的图。
具体实施方式
[0008]本文描述了用于基于SMM信任根的无缝SMM全局驱动程序更新的方法和装置的实施例。在以下描述中,阐述了许多具体细节以提供对本专利技术的实施例的透彻理解。然而,相关领域技术人员将认识到,本专利技术可以在没有具体细节中的一个或多个的情况下实践,或者用其他方法、组件、材料等来实践。在其他情况下,为了避免混淆本专利技术的方面,未详细示出或描述公知的结构、材料或操作。
[0009]在整个说明书中对“一个实施例”或“实施例”的引用表示结合实施例描述的特定特征、结构或特性包括在本专利技术的至少一个实施例中。因此,在本说明书各处出现的短语“在一个实施例中”或“在实施例中”不一定都指代相同的实施例。此外,特定特征、结构或特性可以在一个或多个实施例中以任何合适的方式组合。
[0010]为清楚起见,本文附图中的单个组件也可以通过它们在图中的标签来引用,而不是通过特定的附图标记来引用。另外,指代特定类型组件(与特定组件相对)的附图标记可以显示为后跟“(typ)”(表示“典型”)的附图标记。应当理解,这些组件的配置是可能存在但为了简单和清楚而未在附图中示出的类似组件或未用单独的附图标记进行标记的其他类似组件的典型。相反,“(typ)”不应被解释为表示组件、元件等典型地用于其公开的功能、实现、目的等。
[0011]根据本文公开的实施例的方面,提供了在运行时以安全方式加载和替换SMM驱动程序而不要求SMM固件更新和平台重置的机制。
[0012]SMM代码由BIOS(基本输入输出系统)在引导期间在称为SMRAM(系统管理随机存取存储器)空间的隐藏存储器区域中执行。某些寄存器锁定、MSR设置和功能启用/禁用将要求SMM特权,并且只有在处理器切换到SMM模式时才能执行。SMM全局驱动程序更新的无缝更新提供了一种方法来加载和替换已交付的平台产品上的所有SMM驱动程序(包括SMM基础结构),以用于例如错误修复的目的。
[0013]为了支持SMM驱动程序更新,本公开提出以下内容:
[0014]1.引入SMM中的信任根组件(SmmRoT),它是独立的模块,并且独立于任何SMM服务。SmmRoT将是SMM的初始程序加载器(IPL)。
[0015]2.用于卸载现有SMM驱动程序,加载并执行新的SMM驱动程序(包括SMM基础结构和其他SMM组件),然后利用SmmRoT恢复运行时上下文的机制。在本公开中,SmmRoT本身受到保护且不可更新。
[0016]3.用于利用SMM策略铺垫(SMM policy shim)解锁系统资源以用于全局驱动程序更新(输入

输出(IO)、MSR、寄存器上下文等)的机制。
[0017]定义
[0018]系统管理中断(SMI)由诸如RAS、功率管理、热事件之类的平台事件或经由软件触发的SMI生成。SMI是一种高优先级、不可屏蔽的广播中断。在接收到SMI时,系统中的处理器保存它们的上下文并转换到称为系统管理模式的模式。
[0019]在SMM中,处理器已经保存了它所来自的上下文。然后,处理程序代码建立自己的环境(页表、中断描述符表(IDT)等),并且执行由平台BIOS/固件放置在SMRAM(系统管理RAM)的区域中的代码。
[0020]SMRAM是对OS隐藏的存储器区域。从SMM外部对该区域的任何写入都将被丢弃,而从SMM外部读取将导致返回

1。该存储器区域仅对已切换到SMM的处理器可见。
[0021]SMM模式主要用于处理要求密切的硅和平台知识来以OS透明的方式进行处理的运行时事件(例如,RAS事件,其高度特定于平台和硅或不能信任ring

0代码进行处理)。
[0022]系统资源防御将所有SMI处理程序和SMM会合取消特权到Ring3,定义关于SMI处理程序可以访问哪种系统资源(IO、MSR、寄存器上下文等)的策略集合,并且提供ring0SMM策略铺垫(SPS)来实施策略。该策略由BIOS POST代码设置和锁定。
[0023]如上面讨论的,本文公开的实施例实现了这样一种机制:安全地替换所有SMM驱动程序并恢复运行时上下文,而不使用小的SMM中的信任根(SmmRoT)进行平台重置。SmmRoT是用于更新的信任根(RTU),并且是独立于任何SMM服务的独立模块。它负责卸载现有的SMM驱动程序,加载并执行新的SMM驱动程序(包括SMM基础结构和其他SMM组件),并且恢复运行时上下文。在一个实施例中,SmmRoT本身受到保护且不可更新。
[0024]实施例针对在运行时更新中运行的SMM驱动程序定义了称为SMM_BOOT_MODE_RUNTIME_UPDATE的新架构SMM引导模式。正常引导是SMM引导模式SMM_BOOT_MODE_INIT。
[0025]SmmRoT维护SMRAM中的保留区域。该区域由BIOS在引导期间预留,并且将在运行时更新期间保留。保留区域的内容包括在更新期间的临时(temp)栈、临时页表、临时GDT/IDT、临时异常处理程序、临时AP处理程序。保留区域还包括由其他SMM驱动程序保存以用于在更新后恢复的上下文。
[0026]图1中示出了SMRAM存储器布局的一个实施例。SMM 100包括SmmRot(RUT)102、
SmmCore 104、堆106、SmmDriverX 108、SmmCPU 110、堆112、SmmDriverY 114、堆116、上下文缓冲器118、SMBase 120、SaveState 122和入口点124。SmmCPU包括SMM入口点126、异常处理程序128以及AP处理程序130。堆112包括栈132、页表134以及全局描述符表本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于更新包括处理器的计算平台的系统固件中的安全执行模式代码的方法,包括:在所述处理器的包括操作系统运行时模式的执行模式期间执行以下操作,其中在所述操作系统运行时模式下操作系统在所述处理器上执行:接收包括一个或多个更新的安全执行模式组件的更新包;将所述处理器的执行模式切换到安全执行模式;当在所述安全执行模式下时:存储系统运行时上下文;卸载一个或多个现有的安全执行模式组件;加载并执行所述一个或多个更新的安全执行模式组件;恢复所述系统运行时上下文;退出所述安全执行模式;以及将所述执行模式返回到所述操作系统运行时模式,其中所述更新的安全执行模式组件包括安全执行模式基础结构代码。2.根据权利要求1所述的方法,其中所述更新的安全执行模式组件包括安全执行模式驱动程序,所述方法还包括解锁系统资源以用于全局安全执行模式驱动程序更新,在所述全局安全执行模式驱动程序更新下多个安全执行模式驱动程序被更新。3.根据权利要求1或2所述的方法,还包括:执行信任根固件组件以保留系统管理随机存取存储器(SMRAM)中的存储器区域;以及将所述系统运行时上下文存储在保留区域SMRAM区域中。4.根据权利要求3所述的方法,还包括采用所保留的SMRAM区域在更新期间存储以下各项中的两个或更多个:临时栈、临时页表、临时全局描述符表(GDT)、临时中断描述符表(IDT)、临时异常处理程序以及临时应用处理器(AP)处理程序。5.根据权利要求3或4所述的方法,其中所述计算平台包括系统存储器,所述方法还包括:在针对所述计算平台的引导操作期间执行以下操作:在所述系统存储器中分配SMRAM区域;执行所述信任根固件组件和安全执行模式基础结构固件组件,以将所述计算平台配置为支持安全执行模式固件代码的操作系统运行时更新。6.根据权利要求3

5中任一项所述的方法,其中所述信任根固件组件是不可更新的独立模块。7.根据权利要求6所述的方法,其中将所述计算平台配置为支持安全执行模式固件代码的操作系统运行时更新包括:产生运行时更新上下文保存和恢复服务;以及注册中断处理程序以用于运行时安全执行模式代码更新,所述中断处理程序用于被调用以在所述计算平台的运行时操作期间至少部分地实现安全执行模式代码更新。8.根据权利要求1所述的方法,其中所述安全执行模式包括系统管理模式(SMM),并且其中所述更新的安全执行模式组件包括多个更新的SMM驱动程序。9.根据权利要求8所述的方法,其中所述处理器支持在具有不同特权的多个环中的执行,所述方法还包括:
在第一环中执行驱动程序更新系统管理中断(SMI)处理程序;以及在相比于所述第一环具有较低的特权级别的第二环中执行一个或多个SMM驱动程序,其中所述驱动程序更新SMI处理程序用于卸载一个或多个现有的SMM驱动程序以及加载并更新一个或多个更新的SMM驱动程序。10.根据权利要求8或9所述的方法,其中所述更新的安全执行模式组件包括SMM核心组件。11.一种计算平台,包括:处理器;系统存储器,所述系统存储器可操作地耦合到所述处理器;网络接口,所述网络接口可操作地耦合到所述处理器;固件存储设备,其中存储有固件指令;以及操作系统,其中固件指令被配置为在所述处理器上执行以使得所述计算平台能够:在所述处理器的包括操作系统运行时模式的执行模式期间并且在包括一个或多个更新的安全执行模式组件的更新包已经被接收到之后执行以下操作,其中在所述操作系统运行时模式下操作系统在所述处理器上执行:将所述处理器的执行模式切换到安全执行模式,在所述安全执行模式下固件指令的一部分被执行;当在所述安全执行模式下时:存储系统运行时上下文;卸载一个或多...

【专利技术属性】
技术研发人员:S
申请(专利权)人:英特尔公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1