CN102298529A - 为系统提供硅集成代码 - Google Patents

为系统提供硅集成代码 Download PDF

Info

Publication number
CN102298529A
CN102298529A CN2011101885723A CN201110188572A CN102298529A CN 102298529 A CN102298529 A CN 102298529A CN 2011101885723 A CN2011101885723 A CN 2011101885723A CN 201110188572 A CN201110188572 A CN 201110188572A CN 102298529 A CN102298529 A CN 102298529A
Authority
CN
China
Prior art keywords
sic
processor
code
oem
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2011101885723A
Other languages
English (en)
Other versions
CN102298529B (zh
Inventor
V·J·齐默
幸滨
S·H·鲁滨逊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN102298529A publication Critical patent/CN102298529A/zh
Application granted granted Critical
Publication of CN102298529B publication Critical patent/CN102298529B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1092Rebuilding, e.g. when physically replacing a failing disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Stored Programmes (AREA)
  • Logic Circuits (AREA)
  • Electronic Switches (AREA)
  • Static Random-Access Memory (AREA)

Abstract

在一个实施例中,可由处理器制造商提供二进制形式的半导体集成代码(SIC)。该SIC可包括处理器制造商的独立于平台的代码。这种代码可包括:嵌入式处理器逻辑,用于对处理器以及将处理器耦合到存储器的至少一个链路进行初始化;以及嵌入式存储器逻辑,用于初始化存储器。描述并要求保护其他实施例。

Description

为系统提供硅集成代码
背景技术
历史上,基本输入/输出系统(BIOS)软件是用于引导和执行计算机系统中的低级操作的低级软件,该基本输入/输出系统(BIOS)软件通常已经被所谓的原始设备制造商(OEM)——即计算机制造商——包含。为了为处理器提供BIOS支持,处理器制造商(所谓的硅制造商)向OEM提供详细的信息。该信息通常是源代码形式的。然而,通过提供这种代码,诸如如何编程处理器以及底层硬件细节之类的处理器的硬件知识产权(IP)方面被暴露于第三方。此外,通过提供源代码,OEM可修改代码,以非标准方式集成它,或调整它以支持非标准硬件,这可提高复杂性和操作问题,导致对于硅制造商的支持成本增加。
为了初始化系统通常提供的信息的示例包括关于处理器的细节、互连链路、存储器结构等等。这些细节可包括寄存器定义和至该硬件的接口。该信息除被分发给OEM外,还被分发给独立的BIOS供应商(IBV)。尽管对于x86计算机系统而言IBV和OEM的总体相对较小,但随着处理器及其它先进的硅控制器被包含到不同类型的系统和设备,预期该总体将大大扩张,提出了更多的IP问题和支持挑战。
附图简述
图1是根据本发明一个实施例的独立于平台的硅集成代码(SIC)的组分的框图。
图2是根据本发明实施例的系统的框图。
图3是根据本发明一个实施例的硅集成代码的发起的流程图。
图4A和4B是根据本发明另一个实施例的SIC的发起的流程图。
图5A和5B是根据本发明又一个实施例的SIC的发起的流程图。
图6是根据本发明实施例的用于进行运行时间SIC执行的方法的流程图。
图7是根据本发明实施例的系统中的引导时间的高级流程的框图。
图8是根据本发明实施例的执行短暂SIC代码的方法的流程图。
详细描述
在各实施例中,早期的初始化软件具有对底层处理器硬件的紧耦合捆绑,使得硅制造商控制和提供早期的初始化软件,而不是由OEM BIOS来实现。
这种硅集成代码(SIC)可在一种环境中使用,以加载代码,保证其起源并且在SIC的执行之后,以无缝方式将控制转让给OEM BIOS。SIC可用于执行诸如设定模拟链路的训练、诊断和针对测试钩(hook)的设计之类的存储器初始化的低级方面。尽管本发明的范围不限于此方面,但用于存储器控制器和互连链路以及用于各种处理器和系统特征的可能的运行时间支持的关键初始化代码可能是SIC形式的。在一些实施例中,该代码的信任根(root of trust)可经由处理器微代码中的钩来提供,以实现SIC加载器,从而认证然后加载可以是硅制造商的BIOS形式的SIC,然后将控制传递给OEM BIOS。鉴于升级到OEMBIOS的挑战,存储诸如包含在闪存中的固件卷之类的BIOS的存储器可能是恶意的,所以用于发起SIC加载器的处理器封装内的核微代码的信任根可用于保证包括SIC的OEM BIOS的这些辅助块是有效的。
在SIC执行之后,控制可传递到OEM BIOS,该OEM BIOS可根据统一可扩展固件接口(UEFI)开源核(例如,UEFI规范版本2.0(2006年2月21日))来实现,或者经由开放固件电气与电子工程师协会(IEEE)1275-1994或经由各自引导一个或多个操作系统(OS)的常规BIOS或私有OEM引导代码来实现。在一些实现中,SIC可用于执行补丁,例如以解决错误或执行二进制变换。而且,SIC能够为某些存储块设置保护,例如以便对于二进制变换、错误处理或在运行时间中运行且对OS不可见的硅制造商的其它代码隐藏存储器块。由此,在处理器将保留的代码例如用于微代码只读存储器(uROM)卸载、协处理器支持等的情况下,在将机器暴露于第三方OEM代码之前使SIC提供这种存储器允许存储器的子集对于处理器可用。
在各实施例中,SIC可作为二进制代码提供用于包含在OEM BIOS中,例如作为闪存或其它非易失性存储器,或者SIC可实现在处理器封装的非易失性存储中。因此,实施例使处理器或其它硅制造商能够将二进制模块传送给客户,而非将源代码传送给客户,从而提供更大的IP保护。此外随着客户数量的增长,可通过将BIOS构造块与硅一起传送来降低技术支持成本。
图I是根据本发明的一个实施例可包含在SIC中的独立于平台的BIOS的组件的框图。对于独立于平台,它表示所包括的组件将在任何给定平台上执行,而不管机器的具体细节如何(例如,存储器类型、链路速度、可用电压等)。相反,正如以下将描述的,依赖平台的任何东西可通过平台制造商数据文件来编码。作为示例,平台供应商可将诸如关于系统板的信息等某些信息参数化。进行基本初始化(例如,建立信任根的链路初始化)的某些组件可由SIC在将控制转让给第三方代码之前完成。这种SIC的暂时隔离提供了保证处理器在通电复位时拥有硬件且在将控制给予第三方代码之前仅SIC代码能够运行。
如图1所见,SIC组件可包括初始程序加载器(IPL)20,它负责在第三方代码之前定位和加载SIC的其余部分。注意,可不将该加载器看作SIC的组件。SIC的组件可以是短暂的或持久的。对于持久的组件,它可以是主动的(作用类似于平台初始化(PI)模块)或被动的(作用类似于库,通过新指令)。
在图1的实施例中,SIC 10包括嵌入式中央处理单元(CPU)逻辑(ECL)30,它初始化诸如板上互连之类的处理器间逻辑。用于链路初始化和存储器初始化两者的训练可包括在链路两端之间的通信。在链路的情况下,处理器可耦合到另一个处理器或输入/输出(IO)中枢,且可确定它们能够处理数据的最优频率和链路宽度。该ECL模块通常可以是短暂的。在一些实施例中,在从低功率状态(例如,高级配置和电源接口(ACPI)低功率状态,例如,ACPI规范版本4.0(2009年6月16日)的S3)的恢复操作中,链路初始化可在不破坏存储器内容的情况下重新完成。
SIC 10还可包括嵌入式存储器逻辑(EML)40以初始化存储器。在运行时间(例如,用于处理温度调节或错误处理)中,该组件可以是部分短暂的且部分持久的。存储器初始化还可包括设定寻址,因为不同的组件具有不同的存储器视图。例如,CPU可具有处理器物理地址,动态随机存取存储器(DRAM)可具有DRAM物理地址,且在一些实施例中,可存在平台物理地址。因此取决于如何编程链路地址解码器,可存在不同的存储器视图。为了使一定量的隔绝存储器用于处理器,可对地址解码器和存储器解码器的子集编程以用于处理器。这种隔绝存储器可在系统操作期间由处理器排他地使用,且可存储微代码卸载、二进制转换器、许可信息、可管理性信息等。此外,保留的逻辑50可用于支持独立于平台的逻辑的其它特征。尽管在图1的实施例中示出,但是应理解本发明的范围在这方面不受限制。
现在参见图2,所示为根据本发明实施例的系统的框图。图2所示系统100包括硬件和各种软件层。还应注意,所示的硬件实现是以代表性的高级示出的,且更多的组件将存在于给定系统中。此外,尽管软件部分被示为在不同位置的各组件,但应理解在不同实施例中具体的SIC部分可存在于不同的位置。
关于系统的底层硬件,硬件110可包括各种组件,包括一个或多个处理器、存储器、输入/输出设备等。然而,为了便于示出,在图2的实施例中仅示出几个这样的组件。具体地,示出的是处理器核115和用于在该核上执行的相应的微代码120。在各实施例中,核115可表示多核处理器的多个核,每个可包括其自身的微代码存储。此外,在很多实现中,处理器封装还可包括集成存储器控制器(IMC)125,该集成存储器控制器(IMC)125又可与系统存储器130耦合,该系统存储器130在一个实施例中可由多个诸如双数据率(DDR)-3DIMM之类的双列直插存储器模块(DIMM)形成。如进一步看到的,IMC 125可耦合到外围控制器中枢(PCH)135,该外围控制器中枢(PCH)135又可耦合到诸如可信任平台模块(TPM)140和外围模块145之类的其它设备。尽管本发明的范围不限于此,但各种设备至PCH 135的互连可经由低引脚数(LPC)总线。尽管仅以这些有限组件示出,但应理解在不同实现中可存在更多的组件。
紧耦合到处理器硬件的可以是SIC模块150。在各实现中,SIC模块可实现在可存在于处理器封装内的诸如闪存之类的非易失性存储中。或者,SIC模块可作为二进制从处理器制造商提供给OEM,该OEM将其包含到它的BIOS中。因此,注意在不同的实现中SIC的实际位置可改变。在一个实施例中,SIC可以是OEM BIOS的一部分,例如集成到固定于主板的闪存设备。然而,为了便于示出,SIC模块150示为单独的代码块。具体地,示出该模块包括多个SIC代码修订1521-152n。即,如以下将进一步讨论的,可在现场更新SIC。除代码外,各数据块1541-154n可存在于SIC模块中。在一个实施例中,硅制造商策略可包含在这种SIC数据块中,且它可基于库存单位(stock keeping unit(SKU))。这种信息可包括额定电压和温度以指示部件等级、所支持的特征和/或热一物理硅特性。为了访问这些各种代码和数据块,可提供固件接口表(FIT)155。注意,代码和数据块可受密钥对结构保护。注意在各实施例中,SIC 150可密码地绑定到硬件,且发起以核微代码120为中介。
另外的系统软件可以是OEM BIOS形式的,包括根据UEFI标准的预引导代码。这种代码可存储在各种固件卷中且可包括安全初始化代码(SEC)、预EFI(PEI)代码、以及驱动器执行环境(DXE)和引导设备选择(BDS)代码。作为逻辑示出,这种代码可被分成第一代码模块160和第二代码模块170。固件卷是可包括BIOS和其它低级软件的非电压存储器的逻辑划分。一般而言,模块160和170各自可以是具有第三方可扩展代码的固件卷。第一代码模块160可用于执行OEM平台初始化并从SIC代码获得存储器孔(memory aperture)(块162)。控制然后可传递到代码块614以执行物理存在分析并执行安全散列操作,在进行对主固件卷168的任何测量之前,这进而允许执行安全固件更新机制166。如果所有这些认证检验通过,则控制传递到第二代码模块170,它可包括DXE核且可例如利用存储在ACPI存储器中的测量日志176来执行UEFI安全引导模块174。然后可执行OS加载器和驱动器185,进而加载OS 180,该OS 180可以是遵守UEFI的OS。在其它实现中,可经由一个或多个任选ROM 195实现传统OS 190。
如下所述,SIC初始程序加载器的实现可取决于将SIC绑定到平台所选择的方法。在一个实施例中,可发生复位补丁(PR)操作,其中一旦处理器处理补丁,CPU中的核微代码或其它逻辑可将SIC段定位在CPU闪存或OEM闪存中;或者它可经由初始程序加载(IPL)逻辑内的核补丁发起以便发起SIC。在SIC位于CPU或CPU认证的元件之外的情况下,可进行认证以在加载前验证SIC二进制。
现在参见图3A,所示是根据本发明一个实施例的SIC的发起的流程图。如图3A所示,可在处理器复位时开始操作(框210)。非常微小的低级操作可由处理器响应于复位而执行,该复位可由处理器经由复位信号接收。接下来,可由核微代码加载补丁(框215)。核微代码可访问具有能指向核微代码补丁的FIT指针的固件接口表。在一些实施例中,表可指向IPL。在一个实施例中,补丁可存储在OEM闪存中,该OEM闪存还可包括FIT。表的每个条目指向给定的代码位置。在这种补丁加载之后,可经由核微代码标识并发起SIC(框220)。
在不同的实现中,补丁可包括IPL。IPL可被验证作为核补丁加载的一部分,然后它能进行其自身的完整机制,诸如单独的密钥对以验证SIC。在一个实施例中,IPL可以是核微代码的一部分。因此,如图3B所示,在处理器复位(框230)和补丁加载(框235)之后,可发生执行补丁,这包括IPL(框240)进而发起SIC(框250)。
在另一个实现中,在处理器复位时发起被认证的代码模块(ACM),以在发起BIOS代码之前检验适当的停机和/或将存储器归零。这些操作可包括在OEM BIOS中执行散列,以及通过认证的代码模块访问TPM。这种ACM可嵌入SIC或IPL并使其找到例如在第三方BIOS内的SIC(例如,母板的闪存设备)。因此,在其它实现中,可从认证的代码模块发起SIC。如图4A所见,图4A是根据本发明的另一个实施例的发起SIC的流程图,在框310处处理器复位之后,可由核微代码发起ACM(框315)。进而,可在ACM的清洁停机(clean shut down)时发起SIC(框320)。在又一个实现中,可提供在ACM的清洁停机时发起的IPL。因此,如图4B所示,在处理器复位(框350)后,发起ACM(框360)然后在ACM的清洁停机时,可发起IPL(框370),进而发起SIC(框380)。
在SIC执行结束时,控制可传递到BIOS(SIC是该BIOS的一部分)。例如,控制可传递到机器的复位向量,且经由UEFI入口点,FIT条目可由SIC访问以在PI模块上开始运行OEM BIOS。
在一些实现中,可用PI代码可用于执行SIC。作为一示例,“SEC”模块可逻辑上重命名为“SIC_IPL”,而无需任何硬件修改。这在图5A中示出,其中在处理器复位(框410)时,发起IPL(框415),且进而发起SIC(框420)。另一方式是将SIC嵌入初始化ROM(INIT ROM)。即,闪存最终未映射到第三方BIOS或OS地址空间。在在图5B中示出,其中在处理器复位(框430)时,执行INIT ROM,其包括发起SIC的IPL(框435、440和450)。在又一个实现中,可利用基于处理器的代码例如通过PI SEC或INIT ROM执行独立SIC发起。
在“SEC”的情况下,可在发起SIC之后执行认证。换言之,该方法将BIOS引导块表示为核的信任根(CRTM)。该模型的安全考虑包括确保SIC的完整,即二进制的起源是通过硅制造商的。将SIC绑定到被认证的代码模块或补丁是一种机制,充分利用这些二进制中已经使用的完整覆盖。或者,另一模型是将SIC_IPL集成到上述实体。SIC_IPL将负责完成确保SIC的完整检验,但在复位时加载的勘误补丁、BIOS ACM、INIT ROM或其它复位时间可执行的现有逻辑将从SIC去耦。这可允许升级机制,其中SIC可从前面的二进制实体以不同的步调改变。然而,注意这种去耦不表示可存在SIC_IPL主机模块和后续SIC实例的各种修订的自组织混合。相反,可一起验证元组(SIC_IPL主机,SIC),使得仅SIC_IPL主机和SIC的所支持的修订经由更新被支持,从而不会经由未验证的组合暴露回退和其它攻击。
为了实现早期初始化的硅制造商控制,可存在各种数据模块。在一个实施例中,整个SIC数据模块可与SIC相关联且包括由处理器制造商、OEM和终端用户提供的数据。因此,除处理器制造商数据之外,如上所述,可访问SIC平台数据编码(PDE),即由平台制造商(PM)创建且绑定到系统板的数据结构。在一个实施例中,PDE可包括但不限于例如通过固件接口表(FIT)条目参考的UEFI PI平台配置数据(PCD)。PDE可提供功率管理(PM)策略和不可发现的板专用信息。平台数据编码可提供关于如何将处理器包含到板内的细节,诸如板是否是无风扇设计。该信息可包括供应商需要的频率模式设置,用于存储器DIMM上的串行存在检测(SPD)EEPROM的某些系统管理总线(SMBUS)地址的路由等。
可能的信息可使得在PDE中错误信息的情况下(诸如经由供应商错误或恶意软件(malware)攻击ROM)SIC将安全地出故障。另一个模型是可信任的PDE,诸如使PM设备处的硅制造商工具获取PM输入并使用远程硅制造商服务器对PDE签名并将其返回给PM以供后续集成到平台。
除PDE外,还有一些后传送设置要传达给SIC。这些通常是平台所有者(PO)引起的变化。特定的数据编码和存储可被称为所有者数据编码(ODE)。在不同的系统中ODE可具有不同的位置,诸如可信任的计算组(TCG)TPM非易失性(NV)数据位置,且NV索引被保留用于SIC或一些其它所有者授权的位置。可能在ODE中的数据类型可包括所有者选择,诸如存储器交织、特征启用/禁用(例如,同时多线程(SMT))。存在类似的自变量用于相对于ODE的信任,即在对ODE进行恶意或错误的所有者更新的情况下SIC应安全地出故障。
尽管以上讨论集中在初始化时间SIC,但诸实施例还可使SIC能够在运行时间中使用,例如尤其是对于可靠性-可用性-可服务性(RAS)的目的的高可用性服务器。具体地,在引导/初始化时间中发生的某些操作,诸如链路初始化和存储器初始化代码可在运行时间中再次发生。设想存储器或IOH/CPU的热添加。该运行时间活动可整体地表达在ACPI机器语言(AML)流中,使得OS功率管理(OSPM)代码可在没有固件同谋(firmware complicity)的情况下执行动作。但在实际上,这些流中的很多使用系统管理模式(SMM)帮助。SMM实现是补充ACPI和芯片组动作以完成诸如经由DIMM的热添加的存储器再初始化之类的动作的处理程序。这需要在运行时间中具有SIC,但因为SMM处理程序受OEM的控制,在存储器初始化中需要的IP将与OEM共享,无论它经由文档使得它们可写入其自身的处理程序,还是经由源代码使得它们可将逻辑集成到其SMM流。代替使用本发明的实施例,可在运行时间中执行SIC以避免这些披露的事实。
现参照图6,示出根据本发明的实施例的进行运行时间SIC执行的方法的流程图。在高可用性系统上的运行时间操作的上下文下示出图6,该运行时间操作对该系统提供动态变化,诸如热添加操作。此外,应该理解,图6的方法500可在ACPI流的上下文中使用,其中控制通常传递到SMM上下文以执行用于处理ACPI请求的某些任务。
如图6所示,方法500可通过接收热插拔指示开始(框510)。这种热插拔指标可以是新组件将被合并到系统中的指示。这种组件可以是多处理器系统的新处理器、另外的存储器等。此外,尽管图6的实施例在热插拔操作的上下文中,但诸实施例可同样适用于对系统的其他动态变化,诸如去除事件、故障恢复事件或其它这种操作。在接收到热插拔指标时,可触发功率管理操作以处理热插拔事件(框520)。这种功率管理操作可以是ACPI实现的操作,诸如根据ACPI AML流。通常,在诸如初始化等热插拔事件的过程中,这种流将触发SMM事件以处理要执行的各种任务。由于SMM模式由给定的OEM实现,然而OEM需要访问例如硅制造商的底层IP。
因此,在各实施例中,替代地,功率管理操作可包括用于调用短暂SIC的代码(框530)。这种短暂的SIC可执行各种任务,包括否则在SMM中执行的初始化等。更具体地,如框540所示,SIC可基于一个或多个FIT条目和来自功率管理操作的输入执行例如热插拔组件的初始化。例如,ACPI AML可提供各种输入信息。在一个实施例中,在ACPI流中,解释器可访问FIT表或在ACPI名称空间中包括例程SIC模块以提供暂时隔离。在其它实施例中,ACPI可调用CPU驱动器寄存器用于回叫,然后调用SIC来进行补丁模式,或者在SIC模型是认证的代码模块的情况下,经由EnterAccs指令执行。
利用ACPI AML,可执行对存储器或IO位置的读或写,所以在一个实施例中,合成外围设备地址可合成在芯片组中以指示该模式。在这种情况下AMI相信它正与芯片组的一部分通信,然后芯片组实际上调用SIC。另一种方法是当早期短暂SIC代码运行时,它可存储在被隔绝的存储器中,然后通过这种合成外围设备被再次调用且不必再次加载。因此在不同的实施例中,持久的SIC代码可被执行,或者可响应于指标发生短暂SIC代码执行。
在初始化或其它操作的执行之后,可卸载短暂SIC,且控制可返回到功率管理操作(框550)。这种功率管理操作,例如,可发生ACPI AML流的连续执行,以使系统准备好用于增加的另外组件。尽管在图6的实施例中示出了该特定实现,但本发明的范围在这方面不受限制。
出于本讨论的目的,刚描述的运行时间SIC(RT_SIC)操作与从复位向量开始运行的上述SIC(还可称为引导时间SIC(BT_SIC)不同。RT_SIC可具有类似于SIC_IPL的区别的IPL进程。处理器可验证正确的SIC模块以确保SIC的内容对于系统板构造器是不透明的。为此,可实现短暂和持久的运行时间调用的两个模型中的至少一个。在短暂模型中,ACPI AML流可调用运行时间二进制模块,例如,作为认证的代码模块(ACM)。构造为ACM的运行时间SIC可参考来自FIT的SIC数据并执行其初始化动作,但在完成后卸载其自身。在该模式下,运行时间SIC的完整保护的暴露窗仅在其动作执行期间,但贯穿平台的使用期SIC的保护不是所顾虑的。这补充具有短暂隔离的前述引导时间SIC的信任模型,即它首先运行并在运行之后卸载其自身。
运行时间支持的其它模型是持久运行时间SIC。在该模型中,引导时间SIC可具有另外的IPL,即运行时间SIC_IPL,其创建运行时间代码的环境和执行上下文。
对运行时间SIC的策略输入可以是具有控制/状态寄存器(CSR)且将诸如热插拔存储器或其它命令之类的运行时间动作参数化的合成外围设备(例如,外围组件互连(PCI))。这些CSR可由运行时间持久SIC公开,且SIC按照其指示作用。这表示对这些能力的主机平台接口经由CSR,所以它看起来像是主机的硬件。
当因为执行内容贯穿平台的使用期受到保护,所以信任模型对于运行时间持久的SIC更有希望时,密码存储器孔(CMA)可用于覆盖运行时间持久的SIC的执行方式。
诸实施例还可用于SIC的更新和迁移。由此,SIC可现场更新,包括以前的SIC(例如,SIC_rev1)至随后的SIC(例如,SIC_rev2)的迁移。为了维持工厂和用户配置,可保留平台所有者或制造商设置,诸如将SIC_DATA_rev1映射至SIC_DATA_rev2作为安全变换,即,SIC_DATA_rev2=T(SIC_DATA_rev1)。该变换T()的一个实施例可包括获取在SIC_DATA_rev2中未定义的SIC_DATA_rev1的任一工厂设置,并施加到SIC_DATA_rev2,包括完整或秘密性元数据块的再生成(例如,密码地再签名和/或再加密)。
而且,为了安全目的,SIC_IPL和SIC_CODE可被配置成避免允许“更新”到较早的修订(例如,将SIC_CODE/DATA_rev”n-1”施加到具有SIC_CODE/CODE_rev”n”的系统)。基本原理是系统部署的模型是为了处理器或芯片组制造商通过制造商在修订‘n’中释放修补来响应修订‘n-1’中的安全性缺陷。攻击者通常倒转设计该修补,并怀着重新引入错误的期望来试图将修订‘n-1’更新施加到系统。SIC_CODE和SIC_IPL中的这种‘反回退’规定因此是提供抵抗这种攻击的保护的附加策略。
这种更新可解决稍后发现的问题,不管是响应于由客户报告且在传送处理器后现场发现的产品缺陷的硅勘误、安全修补,还是其它可用性顾虑(例如,功率、性能、修补)。
可进行核微代码和固件接口表(FIT)的增加,以允许多个SIC_CODE和SIC_DATA块。除修订标识符外,代码和数据还可包括其前面的密码元数据(对于模块的秘密性,可使用用于完整性的CMA和签名)。稍后的修订可用于前面的代码设置向后者的改编迁移,但还可使用该修订使得代码和数据可具有所述的其它访问标准,诸如“不回退至较旧版本”以便禁止攻击,其中具有已知安全性缺陷的较早SIC_CODE和SIC_DATA被攻击者故意施加到系统,从而再次引入其后解决的弱点。
现在参见图7,所示为根据本发明实施例的系统中的引导时间的高级流的框图。如图7所示,该引导时间流用于确定多个SIC中要执行的适当一个。如所见,在第一阶段期间的通电时,核微代码710可开始执行。该核微代码可定位FIT 722并认证一个或多个SIC模块724和726。在不同的实施例中,该认证可采取各种形式。例如,在一些实施例中,认证可包括执行散列(例如,SHA-256)和/或密码数字签名(例如,Rivest Shamir Adelman(RSA)、纠错编码(ECC)、数字签名算法(DSA))以及借助于将散列和/或数字签名与处理器或芯片组硬件联合体中存储的白名单(允许)和/或黑名单(禁止)进行比较来确保由处理器硬件的平台所有权。该阶段可以使用哪个SIC策略决定而发起SIC来结束。如所见到的,基于FIT 722中的一个或多个条目,可选择多个SIC修订724和726中所选的一个连同相关联的SIC数据728,该SIC数据728如上所述除处理器制造商数据编码外还可包括平台制造商数据编码和终端用户数据编码。因此,控制传递到第二阶段,其中执行初始化ROM 720。通过执行硅集成代码中的常规的源自第三方的活动,发生硅制造商授权的活动,包括围绕升级SIC(例如,在存在多个SIC代码和数据块的情况下使用哪个)以及屏蔽SIC本身的活动的内容的策略。
初始化ROM可包括SIC,或者SIC可包括在诸如OEM BIOS存储器之类的外部ROM中(相对于处理器)。SIC的执行可启用与处理器、存储器等相关联的链路。控制然后可传递到第三方,在一个实施例中第三方可根据UEFI固件730执行进一步的平台初始化,该UEFI固件730可包括安全代码、预执行初始化和DXE核735.为了执行这种代码,可执行各种设备、总线或服务驱动器733b-n。注意该UEFI固件可实现在OEM BIOS中。控制然后经由UEFI接口传递到由引导管理器744a执行的引导设备选择(BDS)代码740,该引导管理器744a进而使OS引导。注意,SIC是短暂的且仅在第二阶段期间存在,从而实现空间和时间隔离。尽管图7未示出,但应理解,在运行时间中,该代码或运行时间SIC可被访问,例如如上所述对于可用于平台管理操作的各种动态事件。
现在参见图8,所示是根据本发明实施例的执行SIC代码的方法的流程图。如所见,方法800可经由微代码的执行在机器的重启时开始(框810)。具体地,微代码可确定FIT表是否可访问(菱形815)。如果不是,则可设定标志以指示从FIT表的加载是不可能的(框823)。控制然后传递到框824,由于引导失败而进入恢复状态。
如果相反,FIT表可访问,则接下来可确定SIC代码条目是否对应于最大修订号(菱形820)。如果是的话,则可发起初始程序加载器(框825)。如果该IPL是成功的(菱形830),则可运行SIC(框840)。否则如果不成功,则控制传递到菱形835以确定是否存在另外的SIC FIT条目。如果是的话,则控制传递到框840,其中FIT条目可递增且控制传递回菱形820。
仍参考图8,当运行SIC代码时,控制可传递到菱形850,以例如基于一个或多个认证过程确定合法的SIC数据值是否存在(菱形850)。如果不是的话,则如上所讨论的,控制传递回框824。如果合法的数据模块存在,则控制传递到框855,其中可利用SIC数据模块执行包括存储器初始化和链路初始化的某些系统初始化。在初始化之后,存储器和链路可使其设置受到测试(框860)。接下来,可确定测试是否通过(菱形865)。如果否,则可进入恢复。如果相反测试通过,则控制传递到框870,其中所有的设置可经由安全变换迁移到最新的SIC数据。在一个实施例中,可通过SIC_CODE映射较早的SIC_DATA的设置且映射至较晚的SIC_DATA(包括再次创建SIC_DATA块的完整度量)来执行这种安全变换。然后控制传递到例如OEM BIOS(框875)。尽管在图8的实施例中示出了该特定实现,但本发明的范围在这方面不受限制。
各实施例可以用代码实现,并可存储在其上存储有指令的存储介质上,这些指令可用来对系统编程以执行这些指令。存储介质可包括但不限于任何类型的盘,包括软盘、光盘、光碟、固态驱动器(SSD)、紧凑盘只读存储器(CD-ROM)、可重写紧凑盘(CD-RW)和磁光盘、诸如只读存储器(ROM)的半导体器件、诸如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)之类的随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、闪存、电可擦除可编程只读存储器(EEPROM)、磁卡或者光学卡、或适于存储电子指令的任意其它类型的介质。
尽管本发明已针对有限数量的实施例作了描述,然而本领域技术人员将会从其中领会到许多修改和变型。所附权利要求旨在覆盖所有这样的修改和变型,只要其落在本发明的真实精神和范围内。

Claims (20)

1.一种装置,包括:
非易失性存储,用于存储与处理器制造商的独立于平台的代码相对应的半导体集成代码(SIC),所述SIC包括:嵌入式处理器逻辑,用于对处理器以及将所述处理器耦合到存储器的至少一个链路进行初始化;以及嵌入式存储器逻辑,用于初始化存储器,其中响应于处理器复位并且在将控制提供给原始设备制造商(OEM)的预引导代码之前执行SIC。
2.如权利要求1所述的装置,其特征在于,还包括初始程序加载器(IPL),用于加载SIC,所述IPL从处理器的微代码发起,其中所述IPL将认证SIC然后发起SIC。
3.如权利要求2所述的装置,其特征在于,所述IPL访问具有包括指向SIC位置的指针的条目的固件接口表(FIT)。
4.如权利要求3所述的装置,其特征在于,将SIC作为二进制提供给OEM,用于包含在非易失性存储中,所述非易失性存储包括OEM基本输入/输出系统(BIOS)。
5.如权利要求4所述的装置,其特征在于,所述非易失性存储包括多个SIC修订,每一个与相应的SIC数据模块相关联,且其中所述IPL选择多个SIC版本和SIC数据模块中的一个以基于FIT中的条目发起。
6.如权利要求5所述的装置,其特征在于,所述SIC数据模块包括处理器制造商数据、OEM数据和终端用户数据,其中所述OEM数据和终端用户数据是依赖于平台的。
7.如权利要求6所述的装置,其特征在于,所述OEM数据是在插入到非易失性存储之前由处理器制造商签名的可信任数据。
8.如权利要求1所述的装置,其特征在于,所述非易失性存储是处理器封装的,所述处理器封装包括多个核、至少一个微代码存储和集成存储器控制器。
9.如权利要求1所述的装置,其特征在于,SIC将隔绝一部分存储器用于处理器,其中隔绝的部分对于操作系统不可见。
10.如权利要求9所述的装置,其特征在于,所述处理器在隔绝部分中存储二进制转换器。
11.一种方法,包括:
在系统中接收至少一个组件将被动态地包含到所述系统中的指示;
响应于所述指示经由操作系统功率管理(OSPM)代码触发功率管理操作;
调用来自OSPM代码的半导体集成代码(SIC)且不进入系统管理模式,所述SIC对应于处理器制造商的独立于平台的代码,并且利用SIC执行至少一个组件的初始化;以及
卸载SIC并且返回到OSPM,其中SIC作为二进制模块由处理器制造商提供给系统的原始设备制造商(OEM)。
12.如权利要求11所述的方法,其特征在于,还包括基于固件接口表(FIT)中的条目,利用SIC访问SIC数据模块。
13.如权利要求12所述的方法,其特征在于,还包括利用SIC数据模块中的信息执行初始化。
14.如权利要求11所述的方法,其特征在于,还包括在系统启动时发起SIC以执行系统的处理器和存储器的初始化。
15.如权利要求14所述的方法,其特征在于,还包括在执行初始化之后,将SIC存储在由SIC设定的存储器的隔绝部分中。
16.如权利要求15所述的方法,其特征在于,还包括调用隔绝部分中存储的SIC。
17.如权利要求11所述的方法,其特征在于,还包括在芯片组中合成外围设备地址并且经由OSPM代码对外围设备地址的访问来调用SIC。
18.一种系统,包括:
处理器,包括多个核和非易失性存储器,所述非易失性存储器用于存储与处理器制造商的独立于平台的代码相对应的半导体集成代码(SIC),所述SIC包括:嵌入式处理器逻辑,用于对处理器以及将所述处理器耦合到系统存储器的至少一个链路进行初始化;以及嵌入式存储器逻辑,用于初始化系统存储器,其中响应于处理器复位并且在将控制提供给原始设备制造商(OEM)的基本输入/输出系统(BIOS)之前执行SIC;
闪存,用于存储OEM的固件,所述固件包括OEM BIOS;以及
耦合到所述处理器的系统存储器。
19.如权利要求18所述的系统,其特征在于,还包括初始程序加载器(IPL),用于认证然后发起SIC,所述IPL从处理器的微代码发起。
20.如权利要求19所述的系统,其特征在于,SIC将隔绝一部分系统存储器用于在系统操作期间由处理器排他地使用,其中隔绝的部分对于操作系统不可见。
CN201110188572.3A 2010-06-25 2011-06-24 为系统提供硅集成代码 Expired - Fee Related CN102298529B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/823,343 2010-06-25
US12/823,343 US8522066B2 (en) 2010-06-25 2010-06-25 Providing silicon integrated code for a system

Publications (2)

Publication Number Publication Date
CN102298529A true CN102298529A (zh) 2011-12-28
CN102298529B CN102298529B (zh) 2015-01-28

Family

ID=44773941

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110188572.3A Expired - Fee Related CN102298529B (zh) 2010-06-25 2011-06-24 为系统提供硅集成代码

Country Status (7)

Country Link
US (2) US8522066B2 (zh)
EP (1) EP2407906A3 (zh)
JP (1) JP5307196B2 (zh)
KR (1) KR101306395B1 (zh)
CN (1) CN102298529B (zh)
AU (1) AU2011271297A1 (zh)
WO (1) WO2011163004A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015048922A1 (en) * 2013-10-02 2015-04-09 Intel Corporation Trusted boot and runtime operation

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8312258B2 (en) * 2010-07-22 2012-11-13 Intel Corporation Providing platform independent memory logic
WO2013077891A1 (en) * 2011-11-22 2013-05-30 Intel Corporation Collaborative processor and system performance and power management
US9720703B2 (en) * 2012-11-26 2017-08-01 International Business Machines Corporation Data driven hardware chips initialization via hardware procedure framework
US9489023B1 (en) * 2013-07-18 2016-11-08 Marvell International Ltd. Secure wake on LAN with white list
EP3087471A4 (en) 2013-12-27 2017-10-11 Intel Corporation Controlled customization of silicon initialization
US9594927B2 (en) 2014-09-10 2017-03-14 Intel Corporation Providing a trusted execution environment using a processor
US9836307B2 (en) 2015-06-24 2017-12-05 Intel Corporation Firmware block dispatch based on fusing
US9612887B2 (en) 2015-06-26 2017-04-04 Intel Corporation Firmware-related event notification
US10114952B2 (en) * 2016-03-30 2018-10-30 Mcafee, Llc System, apparatus and method for performing secure memory training and management in a trusted environment
US10546156B2 (en) * 2017-01-19 2020-01-28 Intel Corporation MRC training in FPGA-in-memory-controller
US10649918B2 (en) * 2017-09-28 2020-05-12 Intel Corporation Dynamic reconfiguration and management of memory using field programmable gate arrays
US11073897B2 (en) * 2019-07-29 2021-07-27 Micron Technology, Inc. Power management integrated circuit based system management bus isolation

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6305009B1 (en) * 1997-12-05 2001-10-16 Robert M. Goor Compiler design using object technology with cross platform capability
CN101441566A (zh) * 2008-11-18 2009-05-27 腾讯科技(深圳)有限公司 一种嵌入式平台和在嵌入式平台上动态链接程序的方法

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6564318B1 (en) * 1997-12-10 2003-05-13 Phoenix Technologies Ltd. Method and apparatus for execution of an application during computer pre-boot operation and post-boot under normal OS control
US6487623B1 (en) * 1999-04-30 2002-11-26 Compaq Information Technologies Group, L.P. Replacement, upgrade and/or addition of hot-pluggable components in a computer system
US6754828B1 (en) 1999-07-13 2004-06-22 Intel Corporation Algorithm for non-volatile memory updates
US6715019B1 (en) * 2001-03-17 2004-03-30 Hewlett-Packard Development Company, L.P. Bus reset management by a primary controller card of multiple controller cards
US6848046B2 (en) * 2001-05-11 2005-01-25 Intel Corporation SMM loader and execution mechanism for component software for multiple architectures
US7103529B2 (en) 2001-09-27 2006-09-05 Intel Corporation Method for providing system integrity and legacy environment emulation
US7036007B2 (en) 2002-09-09 2006-04-25 Intel Corporation Firmware architecture supporting safe updates and multiple processor types
US20040128494A1 (en) 2002-12-27 2004-07-01 Zimmer Vincent J. Method and apparatus for deploying managed code in a pre-boot environment
US7093116B2 (en) 2003-04-28 2006-08-15 Intel Corporation Methods and apparatus to operate in multiple phases of a basic input/output system (BIOS)
US7549055B2 (en) 2003-05-19 2009-06-16 Intel Corporation Pre-boot firmware based virus scanner
US20040267708A1 (en) 2003-06-18 2004-12-30 Rothman Michael A Device information collection and error detection in a pre-boot environment of a computer system
CN1853162A (zh) * 2003-09-18 2006-10-25 贵族技术澳大利亚有限公司 Bios保护装置
US7774619B2 (en) * 2004-11-17 2010-08-10 Broadcom Corporation Secure code execution using external memory
US20060179308A1 (en) * 2005-02-07 2006-08-10 Andrew Morgan System and method for providing a secure boot architecture
US7493460B2 (en) 2005-09-07 2009-02-17 Intel Corporation Preboot memory of a computer system
US20070088939A1 (en) 2005-10-17 2007-04-19 Dan Baumberger Automatic and dynamic loading of instruction set architecture extensions
US7610481B2 (en) 2006-04-19 2009-10-27 Intel Corporation Method and apparatus to support independent systems in partitions of a processing system
US7600109B2 (en) * 2006-06-01 2009-10-06 Dell Products L.P. Method and system for initializing application processors in a multi-processor system prior to the initialization of main memory
US7673126B2 (en) 2006-09-19 2010-03-02 Intel Corporation Methods and apparatus to self-initialize a processor
US20080077783A1 (en) * 2006-09-26 2008-03-27 Inventec Corporation Method of integrating image and release note of BIOS
US8521969B2 (en) 2006-10-11 2013-08-27 Intel Corporation Apparatus and method for directing micro architectural memory region accesses
US7689817B2 (en) 2006-11-16 2010-03-30 Intel Corporation Methods and apparatus for defeating malware
US7661006B2 (en) * 2007-01-09 2010-02-09 International Business Machines Corporation Method and apparatus for self-healing symmetric multi-processor system interconnects
US7827371B2 (en) 2007-08-30 2010-11-02 Intel Corporation Method for isolating third party pre-boot firmware from trusted pre-boot firmware
US7904708B2 (en) 2008-02-18 2011-03-08 Dell Products L.P. Remote management of UEFI BIOS settings and configuration
DE102008011925B4 (de) 2008-02-29 2018-03-15 Globalfoundries Inc. Sicheres Initialisieren von Computersystemen
US8201239B2 (en) 2008-06-23 2012-06-12 Intel Corporation Extensible pre-boot authentication
US8291436B2 (en) * 2008-07-02 2012-10-16 Vmware, Inc. Synchronization of event handlers
US20100017587A1 (en) * 2008-07-16 2010-01-21 Wiginton Scotty M Method and system for securing an option ROM configuration
JP4803275B2 (ja) * 2009-03-23 2011-10-26 日本電気株式会社 プロセッサ、サーバシステム、プロセッサ追加方法およびプロセッサ追加プログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6305009B1 (en) * 1997-12-05 2001-10-16 Robert M. Goor Compiler design using object technology with cross platform capability
CN101441566A (zh) * 2008-11-18 2009-05-27 腾讯科技(深圳)有限公司 一种嵌入式平台和在嵌入式平台上动态链接程序的方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
INTEL: "《Intel Platform Innovation Framework for EFI Pre-EFI Initialization Core Interface Specification (PEI CIS)》", 《INTEL PLATFORM INNOVATION FRAMEWORK FOR EFI PRE-EFI INITIALIZATION CORE INTERFACE SPECIFICATION (PEI CIS)》 *
INTEL: "《Overview of Intel Quickpath Interconnect System Initialization》", 《OVERVIEW OF INTEL QUICKPATH INTERCONNECT SYSTEM INITIALIZATION》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015048922A1 (en) * 2013-10-02 2015-04-09 Intel Corporation Trusted boot and runtime operation
US9384352B2 (en) 2013-10-02 2016-07-05 Intel Corporation Trusted boot and runtime operation

Also Published As

Publication number Publication date
KR20120000535A (ko) 2012-01-02
WO2011163004A3 (en) 2012-04-19
KR101306395B1 (ko) 2013-09-09
US20140013095A1 (en) 2014-01-09
US9098300B2 (en) 2015-08-04
EP2407906A3 (en) 2012-06-20
JP5307196B2 (ja) 2013-10-02
US8522066B2 (en) 2013-08-27
WO2011163004A2 (en) 2011-12-29
CN102298529B (zh) 2015-01-28
US20110320798A1 (en) 2011-12-29
EP2407906A2 (en) 2012-01-18
JP2012009028A (ja) 2012-01-12
AU2011271297A1 (en) 2013-01-17

Similar Documents

Publication Publication Date Title
CN102298529B (zh) 为系统提供硅集成代码
US9703635B2 (en) Method, computer program, and computer for restoring set of variables
US10275598B2 (en) Providing a secure execution mode in a pre-boot environment
US10216936B2 (en) Method of preventing computer malfunction, computer program, and computer
US8086839B2 (en) Authentication for resume boot path
CN101154256B (zh) 启动可信共存环境的方法和装置
US8375221B1 (en) Firmware-based trusted platform module for arm processor architectures and trustzone security extensions
US8296528B2 (en) Methods and systems for microcode patching
CN103914658A (zh) 终端设备的安全启动方法及终端设备
CN104794393A (zh) 一种嵌入式分区映像安全认证及内核可信引导方法及其设备
US11042644B2 (en) Method and system for security verification in a booting process with a multi-core processor
US10902127B2 (en) Method and apparatus for secure boot of embedded device
US20070255948A1 (en) Trusted platform field upgrade system and method
EP4258146A1 (en) Computer system, trusted functional assembly, and operation method
CN115130106A (zh) 一种通过fTPM实现可信启动的方法及相关装置
US11989305B2 (en) Automated update of a customized secure boot policy
US20230094673A1 (en) Information handling systems and related methods to prevent tampering and verify the integrity of non-volatile data stored within non-volatile memory
US20230342446A1 (en) Management controller-based verification of platform certificates
US20230297682A1 (en) Computing device quarantine action system
KR20230082388A (ko) 차량 제어기의 부트로더 검증 장치 및 그 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150128

Termination date: 20160624

CF01 Termination of patent right due to non-payment of annual fee