CN117806723A - 管理引擎状态切换方法、装置、设备及存储介质 - Google Patents

管理引擎状态切换方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN117806723A
CN117806723A CN202311597509.4A CN202311597509A CN117806723A CN 117806723 A CN117806723 A CN 117806723A CN 202311597509 A CN202311597509 A CN 202311597509A CN 117806723 A CN117806723 A CN 117806723A
Authority
CN
China
Prior art keywords
management engine
interrupt
state
message
character head
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
CN202311597509.4A
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.)
Suzhou Metabrain Intelligent Technology Co Ltd
Original Assignee
Suzhou Metabrain Intelligent Technology Co 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 Suzhou Metabrain Intelligent Technology Co Ltd filed Critical Suzhou Metabrain Intelligent Technology Co Ltd
Priority to CN202311597509.4A priority Critical patent/CN117806723A/zh
Publication of CN117806723A publication Critical patent/CN117806723A/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/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供一种管理引擎状态切换方法、装置、设备及存储介质,通过进入统一可扩展固件接口系统后,在系统控制中断中注册状态切换中断号;进入操作系统后,响应于状态切换中断号写入事件,接收中断报文;解析中断报文获取管理引擎内核主机接口协议字符头,根据所述管理引擎内核主机接口协议字符头控制所述管理引擎进入对应工作状态,本发明通过软件中断方法触发SMI中断即可实现在操作系统下控制管理引擎状态,提高了系统功能设计的灵活性,通过触发中断进入管理引擎故障修复状态,可以定位操作系统故障是否与管理引擎有关,提高了相关故障的定位效率,并且便于与管理引擎冲突的系统应用启动。

Description

管理引擎状态切换方法、装置、设备及存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种管理引擎状态切换方法、装置、设备及存储介质。
背景技术
Intel ME(Intel Management Engine,英特尔管理引擎)是一个嵌入式微控制器,集成在一些英特尔芯片组上,它运行着一个轻量级操作系统,有着独立于BIOS(BasicInput/Output System,基本输入输出系统)和CPU运行的能力,为计算机提供各种功能和服务。当系统已经退出BIOS进入OS后,由于Intel ME不公开不透明的特性,当其做了某些操作导致系统故障时,往往难以定位故障,若需要Intel ME工作在修复模式,只能通过硬件如Intel ME修复跳线实现,Intel ME修复跳线通过拉高或拉低电平的方式控制Intel ME进入或退出修复模式。但由于在系统设计时Intel ME修复跳线的设计优先级不高,Intel ME修复跳线很难被触发,系统无法停用Intel ME,导致系统故障难以定位以及系统某些应用无法正常启动。
发明内容
本发明提供一种管理引擎状态切换方法、装置、设备及存储介质,用以解决传统切换管理引擎状态方法由于依赖于硬件即Intel ME修复跳线,不易被触发,影响系统故障定位或系统应用启动的缺陷。
本发明提供一种管理引擎状态切换方法,包括:
进入统一可扩展固件接口系统后,在系统控制中断中注册状态切换中断号;
进入操作系统后,响应于状态切换中断号写入事件,接收中断报文;
解析所述中断报文获取管理引擎内核主机接口协议字符头,根据所述管理引擎内核主机接口协议字符头控制所述管理引擎进入对应工作状态,若所述管理引擎内核主机接口协议字符头为恢复指令字符头,控制所述管理引擎进入故障修复工作状态,若所述管理引擎内核主机接口协议字符头为重启指令字符头,控制所述管理引擎进入正常工作状态。
根据本发明提供的一种管理引擎状态切换方法,还包括:
在统一可扩展固件接口系统中加载管理引擎驱动,获取管理引擎驱动校验值,将所述管理引擎驱动校验值同步到所述统一可扩展固件接口系统的平台基础配置数据库;
进入操作系统后,响应于故障修复中断号写入事件,触发故障修复中断,所述故障修复中断的处理过程包括:
调用所述统一可扩展固件接口系统程序,从所述平台基础配置数据库中获取所述管理引擎驱动校验值;
根据所述管理引擎驱动校验值与所述管理引擎内核主机接口协议字符头生成故障修复中断报文,通过基础输入输出系统向所述管理引擎发送所述故障修复中断报文。
根据本发明提供的一种管理引擎状态切换方法,所述向所述管理引擎发送所述故障修复中断报文时,还包括:
监控所述管理引擎的响应报文,若在预设时间内未接收到所述响应报文,则判定响应超时;
以及,记录所述故障修复中断报文的发送次数;
若所述故障修复中断报文响应超时,且发送次数未达到预设第一次数阈值,则重复发送故障修复中断报文;
若在预设时间内未接收到所述响应报文,解析所述响应报文获取故障修复执行状态,返回所述故障修复执行状态,退出系统控制中断;
若发送次数已达到预设第一次数阈值,且每次发送的所述故障修复中断报文响应均超时,则设置所述响应报文为空,退出系统控制中断。
根据本发明提供的一种管理引擎状态切换方法,响应于管理引擎状态输出中断号写入事件,触发管理引擎状态输出中断,所述管理引擎状态输出中断的处理过程包括:
调用所述统一可扩展固件接口系统程序,通过基础输入输出系统读取状态寄存器的值,解析所述状态寄存器的值获取管理引擎当前状态并将所述管理引擎当前状态输出,退出系统控制中断。
根据本发明提供的一种管理引擎状态切换方法,还包括:
根据所述管理引擎当前状态执行对应操作,若所述管理引擎当前状态为故障修复状态,运行与管理引擎进程产生冲突的进程,以及收集故障日志;若所述管理引擎当前状态为正常状态,运行与管理引擎进程不会产生冲突的进程。
根据本发明提供的一种管理引擎状态切换方法,响应于管理引擎重启中断号写入事件,触发管理引擎重启中断,所述管理引擎重启中断的处理过程包括:
调用所述统一可扩展固件接口系统程序,通过基础输入输出系统发送管理引擎重启中断报文,所述管理引擎重启中断报文包括管理引擎驱动校验值和管理引擎内核主机接口协议字符头,所述管理引擎内核主机接口协议字符头为重启指令字符头;
监控所述管理引擎的响应报文,若在预设时间内未接收到所述响应报文,则判定响应超时;
以及,记录所述管理引擎重启中断报文的发送次数;
若所述管理引擎重启中断报文响应超时,且所述管理引擎重启中断报文发送次数未达到预设第二次数阈值,则重复发送所述管理引擎重启中断报文;
若在预设时间内接收到所述响应报文,解析所述响应报文获取管理引擎重启执行状态,返回所述管理引擎重启执行状态,退出系统控制中断;
若所述管理引擎重启中断报文的发送次数已达到预设第二次数阈值,且每次发送的所述管理引擎重启中断报文响应均超时,则设置所述响应报文为空,退出系统控制中断;
读取状态寄存器,解析所述状态寄存器的值获取管理引擎当前状态,并记录读取次数;
若所述管理引擎当前状态不是正常状态且读取次数未达到预设第三次数阈值,则延时预设时间后,重新读取所述状态寄存器获取管理引擎当前状态;
若所述管理引擎当前状态为正常状态,退出系统控制中断;
若读取次数达到预设第三次数阈值,退出系统控制中断。
本发明还提供一种管理引擎状态切换装置,包括:
注册模块,用于进入统一可扩展固件接口系统后,在系统控制中断中注册状态切换中断号;
接收模块,用于进入操作系统后,响应于状态切换中断号写入事件,接收中断报文;
切换模块,用于解析所述中断报文获取管理引擎内核主机接口协议字符头,根据所述管理引擎内核主机接口协议字符头控制所述管理引擎进入对应工作状态,若所述管理引擎内核主机接口协议字符头为恢复指令字符头,控制所述管理引擎进入故障修复工作状态,若所述管理引擎内核主机接口协议字符头为重启指令字符头,控制所述管理引擎进入正常工作状态。
根据本发明提供的一种管理引擎状态切换装置,所述注册模块,包括:
故障修复注册模块,用于注册故障修复中断号;
管理引擎状态输出模块,用于注册管理引擎状态输出中断号;
管理引擎重启模块,用于注册管理引擎重启中断号。
本发明还提供一种存储器,用于存储实现如上述任一项所述的管理引擎状态切换方法的计算机程序。
本发明还提供一种处理器,用于执行计算机程序时实现如上述任一项所述的管理引擎状态切换方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的管理引擎状态切换方法。
本发明提供的管理引擎状态切换方法、装置、设备及存储介质,通过进入统一可扩展固件接口系统后,在系统控制中断中注册状态切换中断号;进入操作系统后,响应于状态切换中断号写入事件,接收中断报文;解析中断报文获取管理引擎内核主机接口协议字符头,根据所述管理引擎内核主机接口协议字符头控制所述管理引擎进入对应工作状态,若所述管理引擎内核主机接口协议字符头为恢复指令字符头,控制所述管理引擎进入故障修复工作状态,若所述管理引擎内核主机接口协议字符头为重启指令字符头,控制所述管理引擎进入正常工作状态,本发明通过软件中断方法触发SMI中断即可实现在操作系统下控制管理引擎状态,提高了系统功能设计的灵活性,通过触发中断进入管理引擎故障修复状态,可以定位操作系统故障是否与管理引擎有关,提高了相关故障的定位效率,并且便于与管理引擎冲突的系统应用启动。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的管理引擎状态切换方法的流程示意图之一;
图2是本发明提供的管理引擎状态切换方法的流程示意图之二;
图3是本发明提供的管理引擎状态切换方法的流程示意图之三;
图4是本发明提供的管理引擎状态切换装置的功能结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的管理引擎状态切换方法的流程图,如图1所示,本发明实施例提供的管理引擎状态切换方法,包括:
步骤101、进入统一可扩展固件接口系统后,在系统控制中断中注册状态切换中断号;
在本发明实施例中,状态切换中断号包括故障修复中断号、管理引擎状态输出中断号和管理引擎重启中断号。
步骤102、进入操作系统后,响应于状态切换中断号写入事件,接收中断报文;
在本发明实施例中,在操作系统下升级基础输入输出系统,或者针对双Flash冗余设计的主从设备切换时,会与英特尔管理引擎的进程产生冲突,因此需要停用英特尔管理引擎,否则会与英特尔管理引擎工作进程产生冲突,从而导致不可预估的系统错误或数据损坏。因此,在处理与英特尔管理引擎的进程产生冲突业务时,系统会自动在系统控制中断(System Management Interrupt,SMI)中断控制地址写入已注册的状态切换中断号,或调试人员手动向SMI中断控制地址写入已注册的状态切换中断号。
在写入已注册的状态切换中断号后会触发对应中断,在中断处理过程中,会根据取管理引擎内核主机接口协议生成中断报文,并通过基本输入输出系统发送中断报文至管理引擎,以使管理引擎根据中断报文中的具体指令进入对应工作状态。
步骤103、解析中断报文获取管理引擎内核主机接口协议字符头,根据管理引擎内核主机接口协议字符头控制管理引擎进入对应工作状态,若管理引擎内核主机接口协议字符头为恢复指令字符头,控制管理引擎进入故障修复工作状态,若所述管理引擎内核主机接口协议字符头为重启指令字符头,控制管理引擎进入正常工作状态。
在本发明实施例中,管理引擎例如为英特尔管理引擎,其是一个嵌入式微控制器,集成在一些英特尔芯片组上,运行着一个轻量级操作系统,有着独立于基本输入输出系统和CPU运行的能力,为计算机提供各种功能和服务。基本输入输出系统的作用主要是负责计算机硬件初始化,并引导操作系统启动,在计算机系统中占有非常重要的地位,统一可扩展固件接口(Unified Extensible Firmware Interface,UEFI)定义了操作系统和平台固件之间的接口,提高了基本输入输出系统功能扩展性。
当系统已经退出BIOS进入OS后,由于Intel ME不公开不透明的特性,当其做了某些操作导致系统故障时,往往难以定位故障,若需要Intel ME工作在修复模式,传统管理引擎状态切换只能通过硬件如Intel ME修复跳线实现,Intel ME修复跳线通过拉高或拉低电平的方式控制Intel ME进入或退出修复模式。但由于在系统设计时Intel ME修复跳线的设计优先级不高,Intel ME修复跳线很难被触发,系统无法停用Intel ME,导致系统故障难以定位以及系统某些应用无法正常启动。
本发明实施例提供的管理引擎状态切换方法,通过进入统一可扩展固件接口系统后,在系统控制中断中注册状态切换中断号;进入操作系统后,响应于状态切换中断号写入事件,接收中断报文;解析中断报文获取管理引擎内核主机接口协议字符头,根据所述管理引擎内核主机接口协议字符头控制所述管理引擎进入对应工作状态,若所述管理引擎内核主机接口协议字符头为恢复指令字符头,控制所述管理引擎进入故障修复工作状态,若所述管理引擎内核主机接口协议字符头为重启指令字符头,控制所述管理引擎进入正常工作状态,本发明通过软件中断方法触发SMI中断即可实现在操作系统下控制管理引擎状态,提高了系统功能设计的灵活性,通过触发中断进入管理引擎故障修复状态,可以定位操作系统故障是否与管理引擎有关,提高了相关故障的定位效率,并且便于与管理引擎冲突的系统应用启动。
基于上述任一实施例,本发明实施例提供的一种管理引擎状态切换方法,包括:
步骤201、在统一可扩展固件接口系统中加载管理引擎驱动,获取管理引擎驱动校验值,将所述管理引擎驱动校验值同步到所述统一可扩展固件接口系统的平台基础配置数据库;
步骤202、进入操作系统后,响应于故障修复中断号写入事件,触发故障修复中断,该故障修复中断的处理过程包括:
步骤2021、调用统一可扩展固件接口系统程序,从所述平台基础配置数据库中获取所述管理引擎驱动校验值;
步骤2022、根据管理引擎驱动校验值与所述管理引擎内核主机接口协议字符头生成故障修复中断报文,通过基础输入输出系统向所述管理引擎发送所述故障修复中断报文。
步骤2023、监控所述管理引擎的响应报文,若在预设时间内未接收到所述响应报文,则判定响应超时;以及,记录所述故障修复中断报文的发送次数;
步骤2024、若所述故障修复中断报文响应超时,且发送次数未达到预设第一次数阈值,则重复发送故障修复中断报文;
步骤2025、若在预设时间内未接收到所述响应报文,解析所述响应报文获取故障修复执行状态,返回所述故障修复执行状态,退出系统控制中断;
步骤2026、若发送次数已达到预设第一次数阈值,且每次发送的所述故障修复中断报文响应均超时,则设置所述响应报文为空,退出系统控制中断。
基于上述任一实施例,响应于管理引擎状态输出中断号写入事件,触发管理引擎状态输出中断,所述管理引擎状态输出中断的处理过程包括:
步骤301、调用所述统一可扩展固件接口系统程序,通过基础输入输出系统读取状态寄存器的值,解析所述状态寄存器的值获取管理引擎当前状态并将所述管理引擎当前状态输出,退出系统控制中断。
步骤302、根据所述管理引擎当前状态执行对应操作,若所述管理引擎当前状态为故障修复状态,运行与管理引擎进程产生冲突的进程,以及收集故障日志;若管理引擎当前状态为正常状态,运行与管理引擎进程不会产生冲突的进程。
基于上述任一实施例,响应于管理引擎重启中断号写入事件,触发管理引擎重启中断,该管理引擎重启中断的处理过程包括:
步骤401、调用所述统一可扩展固件接口系统程序,通过基础输入输出系统发送管理引擎重启中断报文,所述管理引擎重启中断报文包括管理引擎驱动校验值和管理引擎内核主机接口协议字符头,所述管理引擎内核主机接口协议字符头为重启指令字符头;
步骤402、监控所述管理引擎的响应报文,若在预设时间内未接收到所述响应报文,则判定响应超时;以及,记录所述管理引擎重启中断报文的发送次数;
步骤403、若所述管理引擎重启中断报文响应超时,且所述管理引擎重启中断报文发送次数未达到预设第二次数阈值,则重复发送所述管理引擎重启中断报文;
步骤404、若在预设时间内接收到所述响应报文,解析所述响应报文获取管理引擎重启执行状态,返回所述管理引擎重启执行状态,退出系统控制中断;
步骤405、若管理引擎重启中断报文的发送次数已达到预设第二次数阈值,且每次发送的所述管理引擎重启中断报文响应均超时,则设置所述响应报文为空,退出系统控制中断;
步骤406、读取状态寄存器,解析所述状态寄存器的值获取管理引擎当前状态,并记录读取次数;
在本发明实施例中,状态寄存器为HPS寄存器,HPS寄存器用于存储管理引擎状态值。
步骤407、若管理引擎当前状态不是正常状态且读取次数未达到预设第三次数阈值,则延时预设时间后,重新读取所述状态寄存器获取管理引擎当前状态;
步骤408、若管理引擎当前状态为正常状态,退出系统控制中断;
步骤409、若读取次数达到预设第三次数阈值,退出系统控制中断。
基于上述任一实施例,如图2所示,UEFI系统注册SMI中断具体方法包括:
1、设备上电开机,进入UEFI系统;
2、在UEFI系统中加载Intel ME相关驱动,发送HMRFPO(Intel ME Region FlashProtection Override英特尔引擎管理闪存区域覆盖)命令获取管理引擎驱动校验值NonceWord,该校验值只能获取一次,将Nonce Word同步到UEFI系统平台基础配置数据库(PCD)数据库;
3、在UEFI系统中加载用于注册SMI中断的驱动,具体包括:
3.1在UEFI系统的PCD数据库中获取Nonce Word;
3.2注册Intel ME Reset SMI中断,触发此中断可以重置管理引擎状态;
3.2注册Intel ME Recovery SMI中断,触发此中断可以使管理引擎进入故障修复状态;
3.3注册Intel ME Status SMI中断,触发此中断可以查看管理引擎状态;
3.4返回SMI注册状态。
4、继续执行UEFI系统流程;
在本发明实施例中,加载用于注册SMI中断的驱动发生在UEFI系统流程的第二个阶段即驱动执行环境阶段,后续UEFI系统流程还包括启动设备选择、操作系统加载等。
5、退出UEFI进入OS。
在本发明实施例中,中断会根据Nonce Word与MKHI(Intel ME Kernel HostInterface英特尔管理引擎内核主机接口)协议组成报文,发送HMRFPO报文。
在本发明实施例中,HMRFPO报文包括MKHI字符头,MKHI字符头的值为0x00000005时,表示设置管理引擎重启(Intel ME Reset);字符头的值为0x00000105时,表示设置管理引擎故障修复(Intel ME Recovery)。
基于上述任一实施例,如图3所示,在操作系统运行与管理引擎相冲突的进程时,调用SMI中断,具体流程如下:
1.设备开机,UEFI系统流程执行完毕后退出,进入;
2.OS下,系统在运行某些应用时自动,或调试人员手动向SMI中断控制地址(MMIO)写入已注册的故障修复中断号,触发Intel ME Recovery中断;
在Intel ME Recovery中断被触发的情况,系统调用UEFI程序,基本输入输出系统发送中断报文设置故障修复状态;每次发送进行响应超时检测并计数;若响应超时,且计数没有达到三次,则重复发送HMRFPO报文;若响应未超时,或计数已达到三次,则解析响应报文,返回执行状态,在三次发送报文响应均超时的情况下,响应报文为空值;退出SMI中断;
3.在OS下,Intel ME Recovery中断执行完毕后,系统程序可自动,或由调试人员手动向SMI中断控制地址写入已注册的管理引擎状态输出中断号,触发Intel ME Status中断;
在Intel ME Status中断被触发的情况,系统调用UEFI程序,基本输入输出系统读取对应寄存器的值,解析管理引擎状态并将当前状态打印到输出设备;退出SMI中断;
4.OS下,系统程序可根据管理引擎状态执行不同的操作,如在故障修复状态下实现可能会与管理引擎进程产生冲突的功能,或由调试人员手动操作调试,收集故障日志;
5.OS下,需要管理引擎故障修复环境下运行的程序或调试内容完成后,系统自动,或由调试人员手动向SMI中断控制地址写入已注册的管理引擎重启中断号,触发Intel MEReset中断;
在Intel ME Reset中断被触发的情况,系统调用UEFI程序,基本输入输出发送HMRFPO报文进行管理引擎重启;每次发送进行响应超时检测并计数;若响应超时,且计数没有达到三次,则重复发送HMRFPO报文;若响应未超时,或计数已达到三次,则继续进行下一步动作;解析响应报文,返回执行状态,在三次发送报文响应均超时的情况下,响应报文为空值;读取对应寄存器,获取判断Intel ME的状态,判断Intel ME是否已恢复到Normal模式,读取次数最多三次;若未恢复到Normal模式且计数没有达到,则延时后重复获取状态;若已恢复到Normal模式或计数达到三次,退出SMI中断;
6.OS继续完成其他功能。
本发明实施例提供的管理引擎状态切换方法,有益于在系统运行时实现对英特尔管理引擎的控制,以定位相关故障,以及实现会与英特尔管理引擎进程产生冲突的功能。通过UEFI下注册了SMI中断,使OS能够通过触发对应中断的方式启用UEFI代码,控制英特尔管理引擎进入故障修复状态或是从故障修复状态中恢复,以及查看当前英特尔管理引擎状态。当系统出现未知故障且故障可能与英特尔管理引擎有关时,通过调用对应SMI中断可以停用英特尔管理引擎,以及查看当前Intel ME状态,以此定位故障是否与英特尔管理引擎有关,提高了相关故障的定位效率。当系统设计的功能与英特尔管理引擎进程有冲突时,在对应功能在实现前,可以通过触发对应SMI中断的方式设置英特尔管理引擎进入故障修复状态,之后再实现对应功能,并在功能完成后恢复正常状态,从而避免冲突。通过软件方法触发SMI中断即可实现OS下控制英特尔管理引擎状态,提高了系统功能设计的灵活性。
下面对本发明提供的管理引擎状态切换装置进行描述,下文描述的管理引擎状态切换装置与上文描述的管理引擎状态切换方法可相互对应参照。
图4为本发明实施例提供的管理引擎状态切换装置的功能结构示意图,如图4所示,本发明实施例提供的管理引擎状态切换装置,包括:
注册模块401,用于进入统一可扩展固件接口系统后,在系统控制中断中注册状态切换中断号;
接收模块402,用于进入操作系统后,响应于状态切换中断号写入事件,接收中断报文;
切换模块403,用于解析所述中断报文获取管理引擎内核主机接口协议字符头,根据所述管理引擎内核主机接口协议字符头控制所述管理引擎进入对应工作状态,若所述管理引擎内核主机接口协议字符头为恢复指令字符头,控制所述管理引擎进入故障修复工作状态,若所述管理引擎内核主机接口协议字符头为重启指令字符头,控制所述管理引擎进入正常工作状态。
在本发明实施例中,注册模块401,包括:
故障修复注册模块,用于注册故障修复中断号;
管理引擎状态输出模块,用于注册管理引擎状态输出中断号;
管理引擎重启模块,用于注册管理引擎重启中断号。
基于上述任一实施例,本发明实施例还包括中断处理模块,该故障处理模块被配置为:在统一可扩展固件接口系统中加载管理引擎驱动,获取管理引擎驱动校验值,将所述管理引擎驱动校验值同步到所述统一可扩展固件接口系统的平台基础配置数据库;
进入操作系统后,响应于故障修复中断号写入事件,触发故障修复中断,所述故障修复中断的处理过程包括:
调用所述统一可扩展固件接口系统程序,从所述平台基础配置数据库中获取所述管理引擎驱动校验值;
根据所述管理引擎驱动校验值与所述管理引擎内核主机接口协议字符头生成故障修复中断报文,通过基础输入输出系统向所述管理引擎发送所述故障修复中断报文。
在本发明实施例中,所述向所述管理引擎发送所述故障修复中断报文时,还包括:
监控所述管理引擎的响应报文,若在预设时间内未接收到所述响应报文,则判定响应超时;
以及,记录所述故障修复中断报文的发送次数;
若所述故障修复中断报文响应超时,且发送次数未达到预设第一次数阈值,则重复发送故障修复中断报文;
若在预设时间内未接收到所述响应报文,解析所述响应报文获取故障修复执行状态,返回所述故障修复执行状态,退出系统控制中断;
若发送次数已达到预设第一次数阈值,且每次发送的所述故障修复中断报文响应均超时,则设置所述响应报文为空,退出系统控制中断。
在本发明实施例中,该故障处理模块被配置为:响应于管理引擎状态输出中断号写入事件,触发管理引擎状态输出中断,所述管理引擎状态输出中断的处理过程包括:
调用所述统一可扩展固件接口系统程序,通过基础输入输出系统读取状态寄存器的值,解析所述状态寄存器的值获取管理引擎当前状态并将所述管理引擎当前状态输出,退出系统控制中断。
根据所述管理引擎当前状态执行对应操作,若所述管理引擎当前状态为故障修复状态,运行与管理引擎进程产生冲突的进程,以及收集故障日志;若所述管理引擎当前状态为正常状态,运行与管理引擎进程不会产生冲突的进程。
在本发明实施例中,该故障处理模块被配置为:响应于管理引擎重启中断号写入事件,触发管理引擎重启中断,所述管理引擎重启中断的处理过程包括:
调用所述统一可扩展固件接口系统程序,通过基础输入输出系统发送管理引擎重启中断报文,所述管理引擎重启中断报文包括管理引擎驱动校验值和管理引擎内核主机接口协议字符头,所述管理引擎内核主机接口协议字符头为重启指令字符头;
监控所述管理引擎的响应报文,若在预设时间内未接收到所述响应报文,则判定响应超时;
以及,记录所述管理引擎重启中断报文的发送次数;
若所述管理引擎重启中断报文响应超时,且所述管理引擎重启中断报文发送次数未达到预设第二次数阈值,则重复发送所述管理引擎重启中断报文;
若在预设时间内接收到所述响应报文,解析所述响应报文获取管理引擎重启执行状态,返回所述管理引擎重启执行状态,退出系统控制中断;
若所述管理引擎重启中断报文的发送次数已达到预设第二次数阈值,且每次发送的所述管理引擎重启中断报文响应均超时,则设置所述响应报文为空,退出系统控制中断;
读取状态寄存器,解析所述状态寄存器的值获取管理引擎当前状态,并记录读取次数;
若所述管理引擎当前状态不是正常状态且读取次数未达到预设第三次数阈值,则延时预设时间后,重新读取所述状态寄存器获取管理引擎当前状态;
若所述管理引擎当前状态为正常状态,退出系统控制中断;
若读取次数达到预设第三次数阈值,退出系统控制中断。
本发明实施例提供的管理引擎状态切换装置,通过进入统一可扩展固件接口系统后,在系统控制中断中注册状态切换中断号;进入操作系统后,响应于状态切换中断号写入事件,接收中断报文;解析中断报文获取管理引擎内核主机接口协议字符头,根据所述管理引擎内核主机接口协议字符头控制所述管理引擎进入对应工作状态,若所述管理引擎内核主机接口协议字符头为恢复指令字符头,控制所述管理引擎进入故障修复工作状态,若所述管理引擎内核主机接口协议字符头为重启指令字符头,控制所述管理引擎进入正常工作状态,本发明通过软件中断方法触发SMI中断即可实现在操作系统下控制管理引擎状态,提高了系统功能设计的灵活性,通过触发中断进入管理引擎故障修复状态,可以定位操作系统故障是否与管理引擎有关,提高了相关故障的定位效率,并且便于与管理引擎冲突的系统应用启动。
本发明实施例还提供一种存储器,用于存储实现如上述任一项所述的管理引擎状态切换方法的计算机程序以执行管理引擎状态切换方法,该方法包括:进入统一可扩展固件接口系统后,在系统控制中断中注册状态切换中断号;进入操作系统后,响应于状态切换中断号写入事件,接收中断报文;解析中断报文获取管理引擎内核主机接口协议字符头,根据所述管理引擎内核主机接口协议字符头控制所述管理引擎进入对应工作状态,若所述管理引擎内核主机接口协议字符头为恢复指令字符头,控制所述管理引擎进入故障修复工作状态,若所述管理引擎内核主机接口协议字符头为重启指令字符头,控制所述管理引擎进入正常工作状态。
本发明实施例还提供一种处理器,用于执行计算机程序时实现如上述任一项所述的管理引擎状态切换方法,该方法包括:进入统一可扩展固件接口系统后,在系统控制中断中注册状态切换中断号;进入操作系统后,响应于状态切换中断号写入事件,接收中断报文;解析中断报文获取管理引擎内核主机接口协议字符头,根据所述管理引擎内核主机接口协议字符头控制所述管理引擎进入对应工作状态,若所述管理引擎内核主机接口协议字符头为恢复指令字符头,控制所述管理引擎进入故障修复工作状态,若所述管理引擎内核主机接口协议字符头为重启指令字符头,控制所述管理引擎进入正常工作状态。
另一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的管理引擎状态切换方法,该方法包括:进入统一可扩展固件接口系统后,在系统控制中断中注册状态切换中断号;进入操作系统后,响应于状态切换中断号写入事件,接收中断报文;解析中断报文获取管理引擎内核主机接口协议字符头,根据所述管理引擎内核主机接口协议字符头控制所述管理引擎进入对应工作状态,若所述管理引擎内核主机接口协议字符头为恢复指令字符头,控制所述管理引擎进入故障修复工作状态,若所述管理引擎内核主机接口协议字符头为重启指令字符头,控制所述管理引擎进入正常工作状态。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (11)

1.一种管理引擎状态切换方法,其特征在于,包括:
进入统一可扩展固件接口系统后,在系统控制中断中注册状态切换中断号;
进入操作系统后,响应于状态切换中断号写入事件,接收中断报文;
解析所述中断报文获取管理引擎内核主机接口协议字符头,根据所述管理引擎内核主机接口协议字符头控制所述管理引擎进入对应工作状态,若所述管理引擎内核主机接口协议字符头为恢复指令字符头,控制所述管理引擎进入故障修复工作状态,若所述管理引擎内核主机接口协议字符头为重启指令字符头,控制所述管理引擎进入正常工作状态。
2.根据权利要求1所述的管理引擎状态切换方法,其特征在于,还包括:
在统一可扩展固件接口系统中加载管理引擎驱动,获取管理引擎驱动校验值,将所述管理引擎驱动校验值同步到所述统一可扩展固件接口系统的平台基础配置数据库;
进入操作系统后,响应于故障修复中断号写入事件,触发故障修复中断,所述故障修复中断的处理过程包括:
调用所述统一可扩展固件接口系统程序,从所述平台基础配置数据库中获取所述管理引擎驱动校验值;
根据所述管理引擎驱动校验值与所述管理引擎内核主机接口协议字符头生成故障修复中断报文,通过基础输入输出系统向所述管理引擎发送所述故障修复中断报文。
3.根据权利要求2所述的管理引擎状态切换方法,其特征在于,所述向所述管理引擎发送所述故障修复中断报文时,还包括:
监控所述管理引擎的响应报文,若在预设时间内未接收到所述响应报文,则判定响应超时;
以及,记录所述故障修复中断报文的发送次数;
若所述故障修复中断报文响应超时,且发送次数未达到预设第一次数阈值,则重复发送故障修复中断报文;
若在预设时间内未接收到所述响应报文,解析所述响应报文获取故障修复执行状态,返回所述故障修复执行状态,退出系统控制中断;
若发送次数已达到预设第一次数阈值,且每次发送的所述故障修复中断报文响应均超时,则设置所述响应报文为空,退出系统控制中断。
4.根据权利要求1所述的管理引擎状态切换方法,其特征在于,
响应于管理引擎状态输出中断号写入事件,触发管理引擎状态输出中断,所述管理引擎状态输出中断的处理过程包括:
调用所述统一可扩展固件接口系统程序,通过基础输入输出系统读取状态寄存器的值,解析所述状态寄存器的值获取管理引擎当前状态并将所述管理引擎当前状态输出,退出系统控制中断。
5.根据权利要求4所述的管理引擎状态切换方法,其特征在于,还包括:
根据所述管理引擎当前状态执行对应操作,若所述管理引擎当前状态为故障修复状态,运行与管理引擎进程产生冲突的进程,以及收集故障日志;若所述管理引擎当前状态为正常状态,运行与管理引擎进程不会产生冲突的进程。
6.根据权利要求5所述的管理引擎状态切换方法,其特征在于,响应于管理引擎重启中断号写入事件,触发管理引擎重启中断,所述管理引擎重启中断的处理过程包括:
调用所述统一可扩展固件接口系统程序,通过基础输入输出系统发送管理引擎重启中断报文,所述管理引擎重启中断报文包括管理引擎驱动校验值和管理引擎内核主机接口协议字符头,所述管理引擎内核主机接口协议字符头为重启指令字符头;
监控所述管理引擎的响应报文,若在预设时间内未接收到所述响应报文,则判定响应超时;
以及,记录所述管理引擎重启中断报文的发送次数;
若所述管理引擎重启中断报文响应超时,且所述管理引擎重启中断报文发送次数未达到预设第二次数阈值,则重复发送所述管理引擎重启中断报文;
若在预设时间内接收到所述响应报文,解析所述响应报文获取管理引擎重启执行状态,返回所述管理引擎重启执行状态,退出系统控制中断;
若所述管理引擎重启中断报文的发送次数已达到预设第二次数阈值,且每次发送的所述管理引擎重启中断报文响应均超时,则设置所述响应报文为空,退出系统控制中断;
读取状态寄存器,解析所述状态寄存器的值获取管理引擎当前状态,并记录读取次数;
若所述管理引擎当前状态不是正常状态且读取次数未达到预设第三次数阈值,则延时预设时间后,重新读取所述状态寄存器获取管理引擎当前状态;
若所述管理引擎当前状态为正常状态,退出系统控制中断;
若读取次数达到预设第三次数阈值,退出系统控制中断。
7.一种管理引擎状态切换装置,其特征在于,包括:
注册模块,用于进入统一可扩展固件接口系统后,在系统控制中断中注册状态切换中断号;
接收模块,用于进入操作系统后,响应于状态切换中断号写入事件,接收中断报文;
切换模块,用于解析所述中断报文获取管理引擎内核主机接口协议字符头,根据所述管理引擎内核主机接口协议字符头控制所述管理引擎进入对应工作状态,若所述管理引擎内核主机接口协议字符头为恢复指令字符头,控制所述管理引擎进入故障修复工作状态,若所述管理引擎内核主机接口协议字符头为重启指令字符头,控制所述管理引擎进入正常工作状态。
8.根据权利要求7所述的管理引擎状态切换装置,其特征在于,所述注册模块,包括:
故障修复注册模块,用于注册故障修复中断号;
管理引擎状态输出模块,用于注册管理引擎状态输出中断号;
管理引擎重启模块,用于注册管理引擎重启中断号。
9.一种存储器,其特征在于,用于存储实现如权利要求1至6任一项所述的管理引擎状态切换方法的计算机程序。
10.一种处理器,其特征在于,用于执行计算机程序时实现如权利要求1至6任一项所述的管理引擎状态切换方法。
11.一种非暂态可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至6任一项所述的管理引擎状态切换方法。
CN202311597509.4A 2023-11-27 2023-11-27 管理引擎状态切换方法、装置、设备及存储介质 Pending CN117806723A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311597509.4A CN117806723A (zh) 2023-11-27 2023-11-27 管理引擎状态切换方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311597509.4A CN117806723A (zh) 2023-11-27 2023-11-27 管理引擎状态切换方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN117806723A true CN117806723A (zh) 2024-04-02

Family

ID=90432603

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311597509.4A Pending CN117806723A (zh) 2023-11-27 2023-11-27 管理引擎状态切换方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN117806723A (zh)

Similar Documents

Publication Publication Date Title
CN105843741B (zh) 应用程序的信息处理方法和装置
EP3355197A1 (en) Fault processing method, related apparatus, and computer
CN109144873B (zh) 一种linux内核处理方法及装置
CN111124728A (zh) 业务自动恢复方法、系统、可读存储介质及服务器
CN111708662B (zh) 调试方法及装置
CN106997313B (zh) 一种应用程序的信号处理方法、系统及终端设备
CN116991559B (zh) 不可中断的睡眠状态进程的退出方法和装置
CN115904793B (zh) 一种基于多核异构系统的内存转存方法、系统及芯片
CN117806723A (zh) 管理引擎状态切换方法、装置、设备及存储介质
CN107179911B (zh) 一种重启管理引擎的方法和设备
CN115756935A (zh) 嵌入式软件系统的异常故障定位方法、装置及设备
US20210357312A1 (en) Method and device for testing robustness and stability of smm, and storage medium
JP2004302731A (ja) 情報処理装置および障害診断方法
CN114003416B (zh) 内存错误动态处理方法、系统、终端及存储介质
JP5994246B2 (ja) 情報処理装置、情報処理方法及びプログラム
CN110532160B (zh) 一种bmc记录服务器系统热重启事件的方法
CN110471814B (zh) 服务器装置的错误报告功能的控制方法
CN117234787B (zh) 系统级芯片运行状态监控方法及系统
CN113742113B (zh) 一种嵌入式系统健康管理方法、设备及储存介质
CN108415788B (zh) 用于对无响应处理电路作出响应的数据处理设备和方法
US20220206823A1 (en) Information processing method and electronic apparatus
CN112084049B (zh) 用于监控基板管理控制器的常驻程序的方法
CN117170921A (zh) 设备可纠正错误处理方法、装置、计算机设备及存储介质
CN112711494A (zh) 一种宕机故障定位方法及装置
CN118467340A (zh) Uefi bios的即时调试方法、系统、存储介质及设备

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