CN110134443A - 在计算设备中执行附件的选项rom的方法和设备 - Google Patents

在计算设备中执行附件的选项rom的方法和设备 Download PDF

Info

Publication number
CN110134443A
CN110134443A CN201810128275.1A CN201810128275A CN110134443A CN 110134443 A CN110134443 A CN 110134443A CN 201810128275 A CN201810128275 A CN 201810128275A CN 110134443 A CN110134443 A CN 110134443A
Authority
CN
China
Prior art keywords
calculating equipment
memory
processing unit
processing units
options rom
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.)
Pending
Application number
CN201810128275.1A
Other languages
English (en)
Inventor
刘志君
孙雪锋
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.)
Lenovo Enterprise Solutions Singapore Pte Ltd
Original Assignee
Lenovo Enterprise Solutions Singapore Pte Ltd
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 Lenovo Enterprise Solutions Singapore Pte Ltd filed Critical Lenovo Enterprise Solutions Singapore Pte Ltd
Priority to CN201810128275.1A priority Critical patent/CN110134443A/zh
Priority to US16/130,037 priority patent/US10768940B2/en
Publication of CN110134443A publication Critical patent/CN110134443A/zh
Pending legal-status Critical Current

Links

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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • 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/0793Remedial or corrective actions
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • 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
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/24Resetting means

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

一种在计算设备中执行附件的选项ROM的方法,其包括以下步骤:由计算设备的第一处理单元加载固件接口;激活计算设备的第二处理单元以监测选项ROM的执行;由第一处理单元执行选项ROM;如果选项ROM未能执行,则第二处理单元将第一处理单元恢复到执行步骤之前的状态;并且如果选项ROM被成功执行,则第二处理单元停止监测选项ROM的执行。即使存在坏的选项ROM,诸如UEFI等系统BIOS也不会挂起,而是自动映射坏的外围设备并且跳过选项ROM执行,并自动继续系统启动。

Description

在计算设备中执行附件的选项ROM的方法和设备
技术领域
本发明涉及计算设备的启动方法,并且更具体地涉及启动期间的计算设备的外围设备的初始化。
背景技术
计算机网络中的现代服务器支持各种外围设备连接到服务器,使得这些外围设备可以增强服务器的功能。外围设备的示例包括虚拟适配器、主机总线适配器和网络适配器,这些适配器可以通过服务器的总线(例如,PCTe)连接到服务器的处理器和其他组件。外围设备通常由不同于服务器的制造商制造,并且可以可移除地插入服务器的主板或连接到在服务器上提供的I/O端口。
然而,如果外围设备是由第三方供应商制造的,则存在外围设备上携带的选项ROM可能导致服务器的系统固件在启动过程中挂起的潜在风险。选项ROM通常由服务器系统固件调用的固件组成,但是由于选项ROM由第三方供应商制造,所以选项ROM与系统固件之间的任何不兼容问题都可能导致系统固件在选项ROM的执行期间挂起。
传统上,当系统在启动过程期间挂起时,一种用于诊断问题的方法是一次手动移除所有的外围设备,并且然后将它们一个接一个地添加回去,以便找出哪个特定的外围设备导致了系统固件挂起。显然,这样的方法需要花费大量的时间,并且会中断服务器的正常运行时间。替代地,在系统启动过程期间可以保存日志,并且当系统固件挂起时,可以稍后检查日志以找出哪个特定的外围设备导致了系统固件挂起。但是,这样的方法并不能消除系统挂起的可能性,并且即使标识出有问题的外围设备,用户仍然需要将外围设备物理地从服务器上移除,这需要手动干预。如果有问题的外围设备是板载设备,则会使其更加难以从服务器上移除。
发明内容
鉴于上述背景,本发明的目的是提供消除或至少减轻上述技术问题的替代方法和装置。
上述目的通过主权利要求的特征的组合来满足;从属权利要求公开了本发明的其他有利实施例。
本领域技术人员将从以下描述中得出本发明的其他目的。因此,上述对象的陈述不是穷尽的,并且仅用于说明本发明的很多目的中的一些。
因此,一方面,本发明是一种在计算设备中执行附件的选项ROM的方法,其包括以下步骤:由计算设备的第一处理单元加载固件接口;激活计算设备的第二处理单元以监测选项ROM的执行;由第一处理单元执行选项ROM;如果选项ROM未能执行,则第二处理单元将第一处理单元恢复到执行步骤之前的状态;并且如果选项ROM被成功执行,则第二处理单元停止监测选项ROM的执行。
优选地,该方法还包括在执行步骤之前将第一处理单元的执行环境保存到计算设备的第一存储器中的步骤。
更优选地,第一存储器是计算设备的系统存储器。
根据优选实施例的变型,恢复步骤还包括将附件的信息存储到计算设备的第二存储器中;并且将第一处理单元恢复到被保存在第一存储器中的执行环境。
在一个实现中,第二存储器是计算设备的非易失性随机存取存储器(NVRAM)。
根据优选实施例的另一变型,该方法还包括通过基于存储在第二存储器中的信息跳过选项ROM来继续计算设备的启动的步骤。
根据优选实施例的另外的变型,恢复步骤还包括将附件的信息存储到计算设备的第二存储器中;并且重新启动计算设备。
优选地,第二存储器是计算设备的模块的一部分。该模块与计算设备的主板分离并且替代主板的一个或多个功能。
在一个实现中,第二存储器是集成管理模块(IMM)的一部分。
根据优选实施例的另外的变型,该方法还包含在激活步骤之前根据存储在第二存储器中的信息来禁用附件的步骤。
根据优选实施例的另外的变型,计算设备包含多核微处理器。第一处理单元和第二处理单元是微处理器的多个内核中的两个内核。
替代地,计算设备包含多个微处理器。第一处理单元和第二处理单元是多个微处理器中的两个微处理器。
在一个具体实现中,第一处理单元和第二处理单元支持英特尔架构(IA)。第一处理单元是自启动处理器(BSP),并且第二处理单元是应用处理器(AP)。
在另一具体实现中,固件接口是统一可扩展固件接口(UEFI)。
根据本发明的另一方面,公开了一种包括包含选项ROM的附件的计算设备,计算设备还包括被适配为加载固件接口的第一处理单元和被适配为由第一处理单元激活以监测选项ROM的执行的第二处理单元。第一处理单元被适配为执行选项ROM。如果选项ROM未能被执行,则第二处理单元被适配为将第一处理单元恢复到选项ROM的执行之前的状态。如果选项ROM被成功执行,则第二处理单元被适配为停止监测选项ROM的执行。
优选地,第一处理单元还被适配为在执行选项ROM之前将第一处理单元的执行环境保存到计算设备的第一存储器中。
更优选地,第一存储器是计算设备的系统存储器。
根据优选实施例的一个变型,第二处理单元还被适配为将附件的信息存储到计算设备的第二存储器中;并且将第一处理单元恢复到被保存在第一存储器中的执行环境。
在一个实现中,第二存储器是计算设备的非易失性随机存取存储器(NVRAM)。
根据优选实施例的另一变型,第一处理单元被适配为通过基于存储在第二存储器中的信息跳过选项ROM来在第一处理单元被恢复之后继续计算设备的启动。
根据优选实施例的另外的变型,第二处理单元还被适配为将附件的信息存储到计算设备的第二存储器中;并且重新启动计算设备。
根据优选实施例的另外的变型,计算设备还包括主板和与计算设备的主板分离并且替换主板的一个或多个功能的模块。第二存储器是该模块的一部分。
在一个实现中,第二存储器是集成管理模块(IMM)的一部分。
根据优选实施例的另外的变型,第一处理单元还被适配为在激活第二处理单元之前根据存储在第二存储器中的信息来禁用附件。
在一个实现中,计算设备包括多核微处理器。第一处理单元和第二处理单元是微处理器的多个内核中的两个内核。
替代地,计算设备包括多个微处理器。第一处理单元和第二处理单元是多个微处理器中的两个微处理器。
在另一实现中,第一处理单元和第二处理单元支持英特尔架构(IA)。第一处理单元是自启动处理器(BSP),并且第二处理单元是应用处理器(AP)。
附图说明
根据以下仅以示例方式结合附图提供的优选实施例的描述,本发明的前述和另外的特征将变得显而易见,在附图中:
图1示出了根据本发明的实施例的计算设备的内部结构的框图;
图2示出了根据本发明的另一实施例的计算设备的处理器模块的结构;以及
图3是示出根据本发明的另一实施例的执行第三方附件的选项ROM的方法的流程图。
在附图中,贯穿本文中描述的几个实施例,相同的附图标记表示相同的部分。
具体实施方式
在所附权利要求和本发明的前述描述中,除了由于表达语言或必要的暗示而在上下文中以其他方式要求的情况之外,词语“包括(comprise)”或诸如“包括(comprises)”或“包括(comprising)”等其变型以包括性的含义来使用,即,指定所述特征的存在,但是不排除在本发明的各种实施例中存在或添加另外的特征。
如本文和权利要求中使用的,除非另有说明,否则“耦合”或“连接”是指经由一个或多个电气装置直接或间接的电耦合或连接。
图1示出了实现本发明的原理的计算设备的实施例。计算设备可以包括处理器20。处理器20可以包括能够执行软件和/或处理数据信号的任何类型的处理器。处理器20可以经由用于指令和数据存储和/或用于例如图形命令、数据和纹理的存储的存储器路径(未示出)耦合到系统存储器24。处理器20可以经由耦合到PCIe互连30的PCIe端口(未示出)耦合到一个或多个外围设备38。存储器24可以是硬盘、软盘、随机存取存储器(RAM)、只读存储器(ROM)、闪存或处理器20可读的任何其他类型的介质。RAM还可以包括非易失性随机存取存储器(NVRAM)和/或动态随机存取存储器(DRAM)和静态随机存取存储器(SRAM)。
处理器20可以是指计算设备中的多于一个处理器、或者可以包括多个线程、多个内核等的一个或多个处理器。本增强不限于计算机系统或数据处理设备系统。本发明的替代实施例可以用于在使用统一可扩展固件接口(UEFI)基本输入/输出系统(BIOS)的任何形状因子设备来使用,诸如手持设备和嵌入式应用。手持设备的一些示例包括蜂窝电话、平板计算机、互联网协议设备、数字相机、个人数字助理(PDA)、或者诸如上网本或笔记本等手持PC。嵌入式应用可以包括微控制器、数字信号处理器(DSP)、片上系统、网络计算机(NetPC)、机顶盒、网络集线器、广域网(WAN)交换机或任何其他系统。
处理器20可以耦合到系统逻辑芯片26。例如,所示实施例中的系统逻辑芯片26可以是平台控制器中心(PCH)。在一个实施例中,PCH 26可以例如经由本地I/O互连来提供到一个或多个I/O设备的连接。在一个实施例中,本地I/O互连可以是高速I/O总线,诸如外围组件互连(PCI)快速总线。PCH 26可以在处理器20与计算设备中的一个或多个其他组件之间引导数据信号或其他信息,并且在处理器20与系统I/O之间桥接数据信号或信息。
一个或多个组件的一些示例可以包括数据存储设备28、一个或多个PCIe端口(未示出)、联网控制器34、USB端口36。在一个实施例中,数据存储设备28可以包括硬盘驱动器、软盘驱动器、CD-ROM设备、闪存设备或其他大容量存储设备。尽管图1示出了组件的一些示例,但是PCH 26可以提供到其他组件的连接,其他组件诸如音频I/O、键盘/鼠标I/O和其他集成I/O组件,其他集成I/O组件诸如集成驱动器电子设备(IDE)、局域网(LAN)和其他串行扩展端口、无线收发器、传统I/O控制器等。
参考图1,诸如闪存34等非易失性存储器可以经由例如低引脚数(LPC)总线耦合到PCH 26。BIOS固件32可以驻留在闪存34中,并且启动可以执行来自闪存或固件的指令。尽管图1示出了闪存34中的BIOS固件32,但是在一些实施例中,BIOS固件32可以存储在诸如固件中心等其他非易失性存储器中。在一个实施例中,BIOS固件32可以由统一可扩展固件接口(UEFI)固件或操作系统与计算设备的硬件之间的任何其他固件接口来实现。
可以存在连接到PCIe互连30的一个或多个外围设备38,并且这些设备38可以在计算设备的内部或在外部连接到计算设备。在内部外围设备38的情况下,它被嵌入在计算设备的主板上,或以可移除的方式安装在主板上可用的PCIe插槽中。在外部外围设备38的情况下,它是放置在计算设备的外壳的外部的独立设备,并且经由由主板提供的端口连接到PCIe互连30。外围设备38每个包含选项ROM 40,选项ROM 40是在平台初始化期间由计算设备的系统BIOS运行的固件。选项ROM 40由外围设备38的第三方制造商提供。
如图1所示的计算设备还包括基板管理控制器(BMC)29,BMC29是嵌入在计算设备的主板上的专用微控制器,其管理系统管理软件与平台硬件之间的接口。BMC 29是通常被包括在服务器级计算机中以实现智能平台管理接口(IPMI)规范协议的组件。在一个实施例中,BMC 29可以由集成管理模块(IMM,未示出)代替,集成管理模块合并由计算设备的主板上的BMC和远程管理适配器(RSA)的组合提供的服务处理器功能。IMM模块与计算设备的主板分离,并且替换主板的一个或多个功能。
尽管图1示出了计算设备,但是根据本发明的实施例可以用于任何其他硬件和软件架构,诸如使用多个处理器内核的平台或使用处理器或协处理器的平台、使用I/O中心的平台或嵌入在处理器内的存储器控制等。
图2是示出了本发明的实施例的硬件和固件分层视图的框图。参考图2,系统200可以包括一个或多个逻辑处理器202和自启动处理器(BSP)204。在一个实施例中,逻辑处理器202可以是应用处理器(AP)202。BSP 204和AP 202受架构(IA)支持。AP 202和BSP 204可以执行固件220。在另一实施例中,处理器可以响应于上电而被随机地指定为AP或BSP。在一个实施例中,固件220可以在BIOS环境(例如,UEFI环境或不存在任何其他操作系统(OS)的应用环境)中实现。尽管图2示出了四个处理器内核,但是在一些实施例中,系统200中可以包括不同数目的处理器内核。虽然图2示出了AP 202和BSP 204,但是实施例可以用于具有任何其他处理器内核的系统。
现在转到图3,图3示出了在至少包含BSP和AP以及IMM的计算设备中执行第三方附件的选项ROM的方法,所有这些都类似于以上参考图1-2描述的那些。BSP负责执行UEFI的自启动代码,以配置APIC环境,设置系统范围的数据结构,并且启动和初始化AP。当BSP和AP被初始化时,BSP开始执行操作系统初始化代码。本实施例中的BSP也称为计算设备的第一处理单元。
图3所示和本文中描述的方法是计算设备的启动过程的一部分,并且是否在整个启动过程的任何特定时间点执行图3所示的方法是不相关的。唯一的要求是,在BSP和至少一个AP都被初始化之后执行该方法,并且已经加载了UEFI。然后,在执行第三方外围设备或诸如PCIe设备等附件的选项ROM之前,在步骤60中,BSP首先检查是否存在预先存储在IMM模块中的一个或多个第三方外围设备设备的坏的选项ROM的任何映射表列表。坏的选项ROM是不能被系统BIOS成功执行并且导致系统挂起的选项ROM。在步骤60中,BSP将从IMM中取出任何这样的映射列表,并且然后禁用一个或多个坏的外围设备并且跳过其选项ROM执行。
接下来,在步骤62中,BSP调用由AP而不是BSP执行的应用编程接口(API)74。如上所述的AP是来自BSP的独立物理过程或处理器内核,并且其操作不受BSP状态的干扰。AP也被称为计算设备的第二处理单元。稍后将更详细地描述API 74的工作流程。但是,应当注意,除非BSP的过程被AP以BSP恢复或系统重置的方式中断,否则BSP的过程将独立于由AP进行的API 74的过程而继续,如稍后还将更详细地描述的。
在步骤64中,BSP将从步骤62继续以将计算设备的当前执行环境(例如,堆栈和堆和主存储器...)作为恢复点保存在系统存储器中。恢复点被保存在系统存储器中,其可以由BSP和一个或多个AP两者访问。在BSP跳转到运行选项ROM之前,BSP将在步骤64中保存恢复点。在步骤64中,BSP还将恢复点(具有恢复数据的存储器地址)传递给AP。
接下来,在执行选项ROM之前,BSP在步骤66中检查在系统存储器的NVRAM中是否存在外围设备的选项ROM不能被系统BIOS成功执行的外围设备的任何信息。如果检查的结果是不存在这样的信息,则在步骤68中,BSP继续外围设备的选项ROM的正常执行。如果选项ROM可以被成功执行,则方法进行到步骤70,在步骤70中,BSP在系统存储器中设置具有真值(例如,=1)的标志,该标志指示已经为外围设备完成了选项ROM的执行,并且换言之,外围设备已经被成功初始化。该标志可以由BSP和AP两者访问。然而,如果步骤66中的检查的结果是确实存在存储在NVRAM中的外围设备的信息,则BSP将绕过步骤68并且直接跳到步骤70,在步骤70中,BSP仍然将设置真值标志。在步骤70之后,BSP将继续计算设备的启动,例如以初始化其他组件并且然后加载操作系统。
注意,对于包括选项ROM的计算设备中的每个外围设备,可以多次执行步骤66、68、70。对于每个外围设备,BSP将基于存储器中的特定外围设备的相应标志的值来确定是否执行其选项ROM。只有具有选项ROM的所有外围设备都成功初始化之后,BSP才会在步骤72中继续系统启动。
现在转向API 74。如上所述,这是由AP执行的独立过程,所以即使在选项ROM的执行期间在步骤68中BSP挂起,API 74仍然可以在不受影响的情况下进行处理。当BSP在步骤62中调用API 74时,AP初始地在步骤76中检查上述标志是否被BSP设置为真值,这指示外围设备的选项ROM已被成功执行。如果该标志已经被设置为真值,则AP使用AP会合(rendezvous)功能88进入空闲状态,其中AP由于选项ROM已经被成功执行停止监测选项ROM的执行。然而,如果在步骤76中AP发现该标记还未被设置为真值,则在AP采取任何恢复措施之前,AP将在步骤78中通过使用AP看门狗检查是否已经过去了预定时间。如果预定时间还没有过去,则AP返回到步骤76,并且当AP等待BSP对选项ROM的执行结果时,步骤76、78可以重复多次。换言之,在BSP和AP两者的并行操作期间,AP在预定的时间段内轮询标志的真值。
在步骤78中,如果在经过了预定时间之后并且仍然没有为标志设置真值,则AP将干预选项ROM的执行。首先,在步骤80中,AP将选项ROM不能在给定时间内成功执行的外围设备的信息存储到NVRAM中。如上所述,这样的信息可以由BSP在步骤66中的其他单独过程中稍后使用。然后,AP在步骤82中通过使用系统存储器中保存的恢复点将BSP恢复到执行环境。AP知道恢复点及其在存储器中的位置,因为当BSP在步骤64将执行环境保存到存储器中时,BSP将该信息传递给AP。恢复BSP的目的是确保BSP处于良好状态,并且可以尝试再次执行选项ROM。否则,在没有恢复BSP的情况下,在BSP第一次尝试执行选项ROM时可能发生BSP挂起。
在BSP恢复并且试图再次执行选项ROM之后,在步骤84,AP将再次检查该标志是否被设置为真值。如果是,则类似于步骤76中的成功确定,AP使用AP会合功能88进入空闲状态,其中AP由于选项ROM已经被成功执行而停止监测选项ROM的执行。然而,如果在步骤84中AP发现选项ROM在恢复BSP之后仍然不能成功执行,则AP将在步骤86中将外围设备的信息报告给IMM模块。在计算设备的重启之后,保存在IMM模块的存储器中的关于外围设备的信息可以由BSP在步骤60中使用,如上所述。步骤86之后,AP导致系统重启,在重启过程期间保持被保存在IMM模块的存储器中的外围设备的信息。计算设备的重启可以被认为是接收BSP的另一种方式,因为BSP的状态将在重启期间被重置。为了便于描述,计算设备的系统存储器被称为第一存储器,而IMM模块中的存储器被称为第二存储器。
因此,上述实施例提供了改进的宽容选项ROM分派方法。如果任何坏的选项ROM(即,选项ROM与系统BIOS不兼容并且导致BSP挂起)或坏的外围设备(即,外围设备的硬件损坏并且尝试执行其选项ROM也会导致BSP挂起),则其在选项ROM分派中被阻塞。即使存在坏的选项ROM,诸如UEFI等系统BIOS也不会挂起,而是自动映射坏的外围设备并且跳过选项ROM执行,并自动继续系统启动。这样的方法提高了计算设备在执行计算设备中的一个或多个外围设备的选项ROM时的容错能力,增强了计算设备的可用性时间,并且降低了计算设备的服务支持/成本。
因此充分描述了本发明的示例性实施例。尽管描述涉及特定实施例,但是本领域技术人员将清楚,可以通过这些具体细节的变化来实践本发明。因此,本发明不应当被解释为限于本文中阐述的实施例。

Claims (27)

1.一种在计算设备中执行附件的选项ROM的方法,包括步骤:
加载所述计算设备的固件接口;
监测所述选项ROM的执行;
执行所述选项ROM;
如果所述选项ROM未能被执行,则将所述计算设备恢复到所述执行步骤之前的状态。
2.根据权利要求1所述的方法,还包括:在所述执行步骤之前将第一处理单元的执行环境保存到所述计算设备的第一存储器中的步骤。
3.根据权利要求2所述的方法,其中所述第一存储器是所述计算设备的系统存储器。
4.根据权利要求2所述的方法,其中所述恢复步骤还包括:
将所述附件的信息存储到所述计算设备的第二存储器中;以及
将所述第一处理单元恢复到被保存在所述第一存储器中的所述执行环境。
5.根据权利要求4所述的方法,其中所述第二存储器是所述计算设备的非易失性随机存取存储器(NVRAM)。
6.根据权利要求4所述的方法,还包括在所述恢复步骤之后的以下步骤:
通过基于被存储在所述第二存储器中的所述信息跳过所述选项ROM来继续所述计算设备的启动。
7.根据权利要求2所述的方法,其中所述恢复步骤还包括:
将所述附件的信息存储到所述计算设备的第二存储器中;以及
重新启动所述计算设备。
8.根据权利要求7所述的方法,其中所述第二存储器是所述计算设备的模块的一部分;所述模块与所述计算设备的主板分离并且替换所述主板的一个或多个功能。
9.根据权利要求8所述的方法,其中所述第二存储器是集成管理模块(IMM)的一部分。
10.根据权利要求7所述的方法,还包括在激活步骤之前的以下步骤:
根据被存储在所述第二存储器中的所述信息来禁用所述附件。
11.根据权利要求1所述的方法,其中所述计算设备包括多核微处理器;所述第一处理单元和所述第二处理单元是所述微处理器的多个内核中的两个内核。
12.根据权利要求1所述的方法,其中所述计算设备包括多个微处理器;所述第一处理单元和所述第二处理单元是所述多个微处理器中的两个微处理器。
13.根据权利要求1所述的方法,其中所述第一处理单元和所述第二处理单元支持英特尔架构(IA);所述第一处理单元是自启动处理器(BSP),并且所述第二处理单元是应用处理器(AP)。
14.根据权利要求1所述的方法,其中所述固件接口是统一可扩展固件接口(UEFI)。
15.一种包括包含选项ROM的附件的计算设备,所述计算设备还包括:
第一处理单元,被适配为加载固件接口;
第二处理单元,被适配为由所述第一处理单元激活以监测所述选项ROM的执行;
其中所述第一处理单元被适配为执行所述选项ROM,并且响应于所述选项ROM未能执行,所述第二处理单元被适配为将所述第一处理单元恢复到所述选项ROM的执行之前的状态。
16.根据权利要求15所述的计算设备,其中所述第一处理单元还被适配为在执行所述选项ROM之前将所述第一处理单元的执行环境保存到所述计算设备的第一存储器中。
17.根据权利要求16所述的计算设备,其中所述第一存储器是所述计算设备的系统存储器。
18.根据权利要求16所述的计算设备,其中所述第二处理单元还被适配为将所述附件的信息存储到所述计算设备的第二存储器中;并且将所述第一处理单元恢复到被保存在所述第一存储器中的所述执行环境。
19.根据权利要求18所述的计算设备,其中所述第二存储器是所述计算设备的非易失性随机存取存储器(NVRAM)。
20.根据权利要求18所述的计算设备,其中所述第一处理单元被适配为通过基于被存储在所述第二存储器中的所述信息跳过所述选项ROM来在所述第一处理单元被恢复之后继续所述计算设备的启动。
21.根据权利要求16所述的计算设备,其中所述第二处理单元还被适配为将所述附件的信息存储到所述计算设备的第二存储器中;并且重新启动所述计算设备。
22.根据权利要求21所述的计算设备,还包括主板和与所述计算设备的主板分离并且替换所述主板的一个或多个功能的模块;所述第二存储器是所述模块的一部分。
23.根据权利要求22所述的计算设备,其中所述第二存储器是集成管理模块(IMM)的一部分。
24.根据权利要求21所述的计算设备,其中所述第一处理单元还被适配为在激活所述第二处理单元之前根据被存储在所述第二存储器中的所述信息来禁用所述附件。
25.根据权利要求15所述的计算设备,其中所述计算设备包括多核微处理器;所述第一处理单元和所述第二处理单元是所述微处理器的多个内核中的两个内核。
26.根据权利要求15所述的计算设备,其中所述计算设备包括多个微处理器;所述第一处理单元和所述第二处理单元是所述多个微处理器中的两个微处理器。
27.根据权利要求15所述的计算设备,其中所述第一处理单元和所述第二处理单元支持英特尔架构(IA);所述第一处理单元是自启动处理器(BSP),并且所述第二处理单元是应用处理器(AP)。
CN201810128275.1A 2018-02-08 2018-02-08 在计算设备中执行附件的选项rom的方法和设备 Pending CN110134443A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201810128275.1A CN110134443A (zh) 2018-02-08 2018-02-08 在计算设备中执行附件的选项rom的方法和设备
US16/130,037 US10768940B2 (en) 2018-02-08 2018-09-13 Restoring a processing unit that has become hung during execution of an option ROM

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810128275.1A CN110134443A (zh) 2018-02-08 2018-02-08 在计算设备中执行附件的选项rom的方法和设备

Publications (1)

Publication Number Publication Date
CN110134443A true CN110134443A (zh) 2019-08-16

Family

ID=67475636

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810128275.1A Pending CN110134443A (zh) 2018-02-08 2018-02-08 在计算设备中执行附件的选项rom的方法和设备

Country Status (2)

Country Link
US (1) US10768940B2 (zh)
CN (1) CN110134443A (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110532040A (zh) * 2019-08-29 2019-12-03 北京地平线机器人技术研发有限公司 固件程序的加载方法及装置、存储介质和电子设备

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5974546A (en) * 1997-05-08 1999-10-26 Micron Electronics, Inc. Apparatus and method to determine cause of failed boot sequence to improve likelihood of successful subsequent boot attempt
US20030061497A1 (en) * 2001-09-27 2003-03-27 Zimmer Vincent J. Method for providing system integrity and legacy environment emulation
CN101097523A (zh) * 2006-06-30 2008-01-02 联想(北京)有限公司 Pci选项rom程序的驻留和调用方法
US20080005551A1 (en) * 2006-06-30 2008-01-03 Intel Corporation Management of option rom
CN101421700A (zh) * 2006-04-19 2009-04-29 英特尔公司 支持处理系统的分区中的独立操作系统的方法和设备
CN101650647A (zh) * 2008-08-12 2010-02-17 武汉卓华软件有限责任公司 一种efi平台的兼容方法
CN103377063A (zh) * 2012-04-28 2013-10-30 国际商业机器公司 从遗留操作系统环境恢复到uefi预启动环境的方法和系统
US20140237226A1 (en) * 2011-09-30 2014-08-21 Kimon Berlin Option read-only memory use
US9086895B1 (en) * 2013-08-07 2015-07-21 American Megatrends Inc. Controlling hardware driver selection
US20160378602A1 (en) * 2015-06-23 2016-12-29 Dell Products, L.P. Pre-boot self-healing and adaptive fault isolation

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5881282A (en) * 1996-12-10 1999-03-09 Intel Corporation Controlling ill-behaved computer add-on device through a virtual execution mode
US7219257B1 (en) * 2003-06-27 2007-05-15 Adaptec, Inc. Method for boot recovery
US20090070574A1 (en) * 2007-09-06 2009-03-12 Rothman Michael A Remote diagnostic apparatus
US8127127B2 (en) * 2008-06-26 2012-02-28 Dell Products L.P. System and method for transferring configuration information to an embedded device using a command line interface
US8312215B2 (en) * 2008-09-18 2012-11-13 Lsi Corporation Method and system for resolving configuration conflicts in RAID systems
US10318312B2 (en) * 2017-09-28 2019-06-11 Mellanox Technologies, Ltd. Support of Option-ROM in socket-direct network adapters

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5974546A (en) * 1997-05-08 1999-10-26 Micron Electronics, Inc. Apparatus and method to determine cause of failed boot sequence to improve likelihood of successful subsequent boot attempt
US20030061497A1 (en) * 2001-09-27 2003-03-27 Zimmer Vincent J. Method for providing system integrity and legacy environment emulation
CN101421700A (zh) * 2006-04-19 2009-04-29 英特尔公司 支持处理系统的分区中的独立操作系统的方法和设备
CN101097523A (zh) * 2006-06-30 2008-01-02 联想(北京)有限公司 Pci选项rom程序的驻留和调用方法
US20080005551A1 (en) * 2006-06-30 2008-01-03 Intel Corporation Management of option rom
CN101650647A (zh) * 2008-08-12 2010-02-17 武汉卓华软件有限责任公司 一种efi平台的兼容方法
US20140237226A1 (en) * 2011-09-30 2014-08-21 Kimon Berlin Option read-only memory use
CN103377063A (zh) * 2012-04-28 2013-10-30 国际商业机器公司 从遗留操作系统环境恢复到uefi预启动环境的方法和系统
US20150227427A1 (en) * 2012-04-28 2015-08-13 International Business Machines Corporation Restoring from a legacy os environment to a uefi pre-boot environment
US9086895B1 (en) * 2013-08-07 2015-07-21 American Megatrends Inc. Controlling hardware driver selection
US20160378602A1 (en) * 2015-06-23 2016-12-29 Dell Products, L.P. Pre-boot self-healing and adaptive fault isolation

Also Published As

Publication number Publication date
US10768940B2 (en) 2020-09-08
US20190243658A1 (en) 2019-08-08

Similar Documents

Publication Publication Date Title
US10613773B2 (en) Backing up firmware during initialization of device
US8166288B2 (en) Managing requests of operating systems executing in virtual machines
US10055218B2 (en) System and method for adding and storing groups of firmware default settings
US8028155B1 (en) Initiating an operating system boot from firmware
US9417886B2 (en) System and method for dynamically changing system behavior by modifying boot configuration data and registry entries
US7454547B1 (en) Data exchange between a runtime environment and a computer firmware in a multi-processor computing system
US9639486B2 (en) Method of controlling virtualization software on a multicore processor
US20120227050A1 (en) Changing a scheduler in a virtual machine monitor
US9471231B2 (en) Systems and methods for dynamic memory allocation of fault resistant memory (FRM)
US11334427B2 (en) System and method to reduce address range scrub execution time in non-volatile dual inline memory modules
US10303487B2 (en) System and method for booting an information handling system
US11429298B2 (en) System and method for tying non-volatile dual inline memory modules to a particular information handling system
KR20090081405A (ko) 파티션 유닛을 교체하는 방법 및 컴퓨터 판독가능 매체
US7512719B1 (en) Sharing a dynamically located memory block between components executing in different processor modes in an extensible firmware interface environment
KR20160108499A (ko) 플랫폼-특유의 피쳐들을 선택적으로 인에이블하기
US9235426B2 (en) Multicore processor system, computer product, and notification method for updating operating system
US10558468B2 (en) Memory channel storage device initialization
US7484083B1 (en) Method, apparatus, and computer-readable medium for utilizing BIOS boot specification compliant devices within an extensible firmware interface environment
US9727390B1 (en) Invoking a firmware function
US10203893B2 (en) Memory channel storage device detection
US7284084B2 (en) ROM scan memory expander
US11106457B1 (en) Updating firmware runtime components
CN110134443A (zh) 在计算设备中执行附件的选项rom的方法和设备
US7577814B1 (en) Firmware memory management
US10838737B1 (en) Restoration of memory content to restore machine state

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination