CN110109802A - 一种实时读取硬盘温度的方法与系统 - Google Patents
一种实时读取硬盘温度的方法与系统 Download PDFInfo
- Publication number
- CN110109802A CN110109802A CN201910305089.5A CN201910305089A CN110109802A CN 110109802 A CN110109802 A CN 110109802A CN 201910305089 A CN201910305089 A CN 201910305089A CN 110109802 A CN110109802 A CN 110109802A
- Authority
- CN
- China
- Prior art keywords
- hard disk
- bmc
- data
- interrupt
- temperature
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3058—Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种实时读取硬盘温度的系统,包括PCH和BMC,所述PCH的GPIO1与所述BMC的 GPIO3通过电阻R1连接,所述PCH 的GPIO2与所述BMC 的GPIO4通过电阻R2连接起来。本发明还提供了一种实时读取硬盘温度的方法。本发明的有益效果是:通过简单的硬件线路连接,BIOS和BMC软件的配合,实现在非系统环境和系统环境下实时获取硬盘的当前温度、硬盘的所支持的最大温度。无需借助系统应用软件帮助获取硬盘温度,减低开发成本,适用所有操作系统。BMC可以根据硬盘温度来控制散热,确保硬盘不会因为温度过高导致损坏,保护数据安全,防范风险。
Description
技术领域
本发明涉及服务器主板,尤其涉及一种实时读取硬盘温度的方法与系统。
背景技术
在服务器主板上,BMC(基板管理控制器)负责对整个主板的管理工作。通过网络通信功能,可以实现用户对主板的远程操作控制,可以记录系统各种操作日志,也可以实现对整个主板系统的监控,如查看固件版本信息,查看处理器、内存设备的实时温度,系统风扇的实时转数,系统设备健康状态,处理器、内存条的电源电压等信息。通过BMC的远程操作管理功能,用户不需要去机台本地操作,就能实现对整个主板系统的全面管理。
BMC远程管理功能为用户提供了系统管理的便利,但提供的信息并不全面,部分信息无法获取。BMC远程管理获取监控信息主要通过三种方式,第一种是通过BMC与ME进行通信,获取信息,如CPU的问题、内存温度等;第二种方式通过传感器方式,硬件线路将传感器固定主板特定位置,BMC读取传感器信息,例如电压信息;第三种方式就是内置检测功能,例如风扇速度,通过检测输入波形的占空比,来计算风扇转数。存储类服务器有大量硬盘连接在服务器上,大量的读写的操作使硬盘的温度及其容易升高,而BMC无法根据上面三种方式来获取这种即插即用的硬盘设备温度,不能根据硬盘温度进行散热控制,属于监控盲区,极大地增加了温度过高造成硬盘损坏的风险,一旦硬盘损坏,数据丢失,损失是无法估量的。
发明内容
为了解决现有技术中的问题,本发明提供了一种实时读取硬盘温度的方法与系统。
本发明提供了一种实时读取硬盘温度的系统,包括PCH和BMC,所述PCH的GPIO1与所述BMC的 GPIO3通过电阻R1连接,所述PCH 的GPIO2与所述BMC 的GPIO4通过电阻R2连接起来。
本发明还提供了一种实时读取硬盘温度的方法,基于所述的实时读取硬盘温度的系统进行以下步骤:
S1、BMC初始化程序;
S2、BIOS初始化程序。
步骤S1包括以下子步骤:
S11、开始;
S12、初始化BMC GPIO功能;
S13、设置BMC的GPIO3输出低电平,GPIO4输入功能;
S14、判断硬盘是否完成初始化命令,如果否,则返回步骤S24,如果是,则进入下一步骤;
S15、判断是否读取硬盘温度,如果否,则返回步骤S24,如果是,则进入下一步骤;
S16、设置BMC的GPIO3为高电平脉冲波形;
S17、判断是否接收到硬盘数据,如果否,则返回步骤S24,如果是,则进入下一步骤;
S18、解析硬盘数据;
S19、将数据显示到BMC界面;
S110、结束。
作为本发明的进一步改进,BMC上电,首先进行GPIO初始化,将与PCH连接的BMC的GPIO3设置为输出功能,并输出低电平,将BMC的GPIO4设置为输入功能,通过检测BMC的GPIO4输入的电平,来判断是否BIOS完成硬盘初始化工作,GPIO4输入低电平则BIOS没有完成硬盘初始化工作,等待设定时间,重新检测,直到检测到GPIO4输入为高电平,表明BIOS完成硬盘初始化工作,然后判断是否读取硬盘温度,如果不读取硬盘温度,则等待设定时间,重新检测,如果读取硬盘温度,则将GPIO3设置为高电平,等待设定时间后,再设置为低电平,形成一个高电平脉冲波形,输入到PCH的 GPIO1,用于触发中断,等待是否BIOS传送硬盘温度数据,等待设定时间后如果没有收到数据,回到检测GPIO4步骤,重新执行程序,如果收到硬盘温度数据,根据与BIOS预先定义的数据格式,将数据进行解析,硬盘序号、硬盘当前温度及硬盘所支持最大温度,数据信息显示在BMC管理界面,供用户查看,等待设定时间后,继续回到检测GPIO4步骤,重新执行程序,实现实时更新硬盘温度的功能。
作为本发明的进一步改进,通过用户判断是否读取硬盘温度,用户通过操作开关选择开启或者关闭BMC获取硬盘温度的功能,如果设置为不读取硬盘温度,则等待设定时间,重新检测,如果设置为读取硬盘温度,则将GPIO3设置为高电平,50ms后,再设置为低电平,形成一个高电平脉冲波形,输入到PCH GPIO1,用于触发中断。
作为本发明的进一步改进,步骤S2包括以下子步骤:
S21、开始;
S22、初始化PCH的GPIO,设置PCH的GPIO1输入,PCH的GPIO2输出;
S23、初始化硬盘控制器;
S24、侦测硬盘并初始化完成;
S25、通知BMC硬盘初始化完成;
S26、判断SCI中断是否开启,如果SCI中断没有开启,则开启GPIO1的SMI中断功能并进入下一步骤,如果SCI中断开启,则开启GPIO1的SCI中断功能,开启GPIO1的触发事件功能并进入下一步骤;
S27、判断是否为中断状态,如果否,则等待,如果是,则执行中断程序。
作为本发明的进一步改进,步骤S27中的中断程序包括SMI中断程序和SCI中断事件程序。
所述SMI中断程序包括以下过程:
A1、BIOS开始执行SMI中断程序;
A2、调用硬盘接口服务程序;
A3、设置命令传输参数及格式;
A4、向硬盘发送命令;
A5、判断是否成功返回,如果否,则返回步骤A2,如果是,则进入下一步骤;
A6、整理硬盘序号、当前温度、最大支持温度数据格式;
A7、将数据发送给BMC;
A8、判断硬盘查询是否结束,如果否,则返回步骤A2,如果是,则进入下一步骤;
A9、中断程序返回并结束。
作为本发明的进一步改进,所述SCI中断事件程序包括以下过程:
B1、操作系统开始执行SCI中断事件程序;
B2、配置IPMI通信数据;
B3、操作系统触发软SMI中断;
B4、执行SMI中断程序;
B5、获取硬盘数量并返回到SCI程序;
B6、触发软SMI中断并执行程序;
B7、调用硬盘接口服务程序;
B8、设置命令传输参数及格式;
B9、向硬盘发送命令;
B10、判断是否成功返回,如果否,则返回步骤B5,如果是,则进入下一步骤;
B11、整理硬盘序号、当前温度、最大支持温度数据格式;
B12、将数据存在全局内存空间;
B13、返回SCI程序并将数据传给BMC;
B14、判断硬盘查询是否结束,如果否,则返回步骤B5,如果是,则进入下一步骤
B15、中断程序返回并结束。
作为本发明的进一步改进,根据权利要求7所述的实时读取硬盘温度的方法,其特征在于:在步骤S2中,BIOS启动运行时,对PCH的GPIO进行初始化,选择上电后默认为低电平的2个GPIO,将GPIO1设置为输入功能,将GPIO2设置为输出功能,默认输出低电平,初始化硬盘控制,对硬盘控制器进行资源、中断配置,服务程序的挂载,枚举所有硬盘对进行初始化,将硬盘服务程序挂载完成,设置GPIO2为高电平,输入到BMC GPIO4,让BMC通过检测GPIO4的电平,获取硬盘初始化完成的信息,通过SCI中断寄存器判断是否已经开启SCI中断功能,如果没有,则设置GPIO1触发SMI中断功能,如果已经开启,则设置GPIO1触发SCI中断功能,也要开启GPIO1触发事件的功能,等待GPIO1输入状态设置触发中断,如果没有中断触发则继续等待,如果有中断触发则开始执行中断程序;BIOS执行SMI中断程序,程序将调用硬盘接口服务程序,获取硬盘序号和总数量,然后设置硬盘命令传输参数和格式,将属性参数设置为0xD5,将命令参数设置为0xB0,将逻辑数据块地址设置为0xC24F,调用传送服务程序,将命令发送给对应序号的硬盘,等待硬盘返回数据,如果返回不成功,则进行下一个硬盘的命令发送,如果返回成功,将硬盘当前温度数据和最大支持温度数据提取出来,与硬盘序号数据一起整理成同BMC预先约定的数据格式,将数据发送给BMC,判断是否所有盘获取完成,如果没有继续下一个硬盘,如果完成则从中断程序返回;操作系统执行SCI中断事件程序,首先配置IPMI数据空间,及构建通信程序,操作系统触发软SMI中断,控制权交个BIOS,BIOS开始执行SMI中断程序,通过调用硬件接口程序,获取硬盘总数量并返回SCI程序,控制权交给操作系统,操作系统根据硬盘总数量来确定循环执行获取硬盘温度的次数,开始触发软SMI中断程序,控制权再次交给BIOS,调用硬盘接口服务程序,然后设置硬盘命令传输参数和格式,将属性参数设置为0xD5,将命令参数设置为0xB0,将逻辑数据块地址设置为0xC24F,调用传送服务程序,将命令发送给对应序号的硬盘,等待硬盘返回数据,如果返回不成功,返回SCI程序中,等待操作系统触发下一次软SMI中断,如果返回成功,将硬盘当前温度数据和最大支持温度数据提取出来,与硬盘序号数据一起整理成同BMC预先约定的数据格式,将数据存储在全局内存空间,返回SCI程序,操作系统根据调用通信程序,将内存空间数据传送给BMC,判断是否所有盘获取完成,如果没有继续下一个硬盘,如果完成则从中断程序返回。
本发明的有益效果是:通过上述方案,通过简单的硬件线路连接,BIOS和BMC软件的配合,实现在非系统环境和系统环境下实时获取硬盘的当前温度、硬盘的所支持的最大温度。无需借助系统应用软件帮助获取硬盘温度,减低开发成本,适用所有操作系统。BMC可以根据硬盘温度来控制散热,确保硬盘不会因为温度过高导致损坏,保护数据安全,防范风险。
附图说明
图1是本发明一种实时读取硬盘温度的系统的示意图。
图2是本发明一种实时读取硬盘温度的方法的BMC初始化程序的流程图。
图3是本发明一种实时读取硬盘温度的方法的BIOS初始化程序的流程图。
具体实施方式
下面结合附图说明及具体实施方式对本发明作进一步说明。
名词解释如下:
BIOS: (Basic Input Output System)基本输入输出系统,主要用于计算机开机过程中各种硬件设备的初始化和检测。
BMC:基板管理控制器(Baseboard Management Controller)。一般内置在主板上,支持行业标准的 IPMI 规范。BMC提供的功能包括:本地和远程诊断、控制台支持、配置管理、硬件管理和故障排除。
IPMI:(Intelligent Platform Management Interface)智能平台管理接口是一种开放标准的硬件管理接口规格,定义了嵌入式管理子系统进行通信的特定方法。
ME:(Intel Management Engine)英特尔管理引擎。
PCH: (Platform Controller Hub) Intel公司的集成南桥。
GPIO:(General Purpose Input Output)通用输入/输出。
SCI: (System Control Interrupt)系统控制中断,用于通知OS执行Event程序。
SMI:(System Management Interrupt)系统管理中断。
如图1所示,一种实时读取硬盘温度的系统,包括PCH和BMC,所述PCH的GPIO1与所述BMC的 GPIO3通过电阻R1连接,所述PCH 的GPIO2与所述BMC 的GPIO4通过电阻R2连接起来。
本发明还提供了一种实时读取硬盘温度的方法,基于所述的实时读取硬盘温度的系统,进行以下步骤:
S1、BMC初始化程序;
步骤S1包括以下子步骤:
S11、开始;
S12、初始化BMC GPIO功能;
S13、设置BMC的GPIO3输出低电平,GPIO4输入功能;
S14、判断硬盘是否完成初始化命令,如果否,则返回步骤S24,如果是,则进入下一步骤;
S15、判断是否读取硬盘温度,如果否,则返回步骤S24,如果是,则进入下一步骤;
S16、设置BMC的GPIO3为高电平脉冲波形;
S17、判断是否接收到硬盘数据,如果否,则返回步骤S24,如果是,则进入下一步骤;
S18、解析硬盘数据;
S19、将数据显示到BMC界面;
S110、结束;
S2、BIOS初始化程序;
S21、开始;
S22、初始化PCH的GPIO,设置PCH的GPIO1输入,PCH的GPIO2输出;
S23、初始化硬盘控制器;
S24、侦测硬盘并初始化完成;
S25、通知BMC硬盘初始化完成;
S26、判断SCI中断是否开启,如果SCI中断没有开启,则开启GPIO1的SMI中断功能并进入下一步骤,如果SCI中断开启,则开启GPIO1的SCI中断功能,开启GPIO1的触发事件功能并进入下一步骤;
S27、判断是否为中断状态,如果否,则等待,如果是,则执行中断程序。
所述SMI中断程序包括以下过程:
A1、BIOS开始执行SMI中断程序;
A2、调用硬盘接口服务程序;
A3、设置命令传输参数及格式;
A4、向硬盘发送命令;
A5、判断是否成功返回,如果否,则返回步骤A2,如果是,则进入下一步骤;
A6、整理硬盘序号、当前温度、最大支持温度数据格式;
A7、将数据发送给BMC;
A8、判断硬盘查询是否结束,如果否,则返回步骤A2,如果是,则进入下一步骤;
A9、中断程序返回并结束。
所述SCI中断事件程序包括以下过程:
B1、操作系统开始执行SCI中断事件程序;
B2、配置IPMI通信数据;
B3、操作系统触发软SMI中断;
B4、执行SMI中断程序;
B5、获取硬盘数量并返回到SCI程序;
B6、触发软SMI中断并执行程序;
B7、调用硬盘接口服务程序;
B8、设置命令传输参数及格式;
B9、向硬盘发送命令;
B10、判断是否成功返回,如果否,则返回步骤B5,如果是,则进入下一步骤;
B11、整理硬盘序号、当前温度、最大支持温度数据格式;
B12、将数据存在全局内存空间;
B13、返回SCI程序并将数据传给BMC;
B14、判断硬盘查询是否结束,如果否,则返回步骤B5,如果是,则进入下一步骤
B15、中断程序返回并结束。
如图1所示,服务器主板需要简单的硬件设计,把PCH GPIO1和BMC GPIO3,通过电阻R1连接起来,将PCH GPIO2和BMC GPIO4通过电阻R2连接起来。
如图2所示,BMC初始化程序的具体过程包括:BMC上电,首先进行GPIO初始化,将与PCH连接的GPIO3设置为输出功能,并输出低电平,将GPIO4设置为输入功能,通过检测GPIO4输入的电平,来判断是否BIOS完成硬盘初始化工作,GPIO4输入低电平则没有,等待一定时间,重新检测,直到检测到GPIO4输入为高电平,表明BIOS完成硬盘初始化工作,然后判断是否读取硬盘温度,这里可以设计为用户操作开关,用户可以选择开启或者关闭BMC获取硬盘温度的功能,如果设置为不读取硬盘温度,则等待一定时间,重新检测,如果设置为读取硬盘温度,则将GPIO3设置为高电平,50ms后,再设置为低电平,形成一个高电平脉冲波形,输入到PCH GPIO1,用于触发中断。 等待是否BIOS传送硬盘温度数据,一定时间后如果没有收到数据,回到检测GPIO4步骤,重新执行程序,如果收到硬盘温度数据,根据与BIOS预先定义的数据格式,将数据进行解析,硬盘序号、硬盘当前温度及硬盘所支持最大温度,数据信息显示在BMC管理界面,供用户查看。一定时间后,继续回到检测GPIO4步骤,重新执行程序,实现实时更新硬盘温度的功能。
如图3所示,BIOS初始化程序的具体过程包括:BIOS启动运行时,对GPIO进行初始化,选择上电后默认为低电平的2个GPIO,将GPIO1设置为输入功能,将GPIO2设置为输出功能,默认输出低电平。初始化硬盘控制,对硬盘控制器进行资源、中断配置,服务程序的挂载,枚举所有硬盘对进行初始化,将硬盘服务程序挂载完成,设置GPIO2为高电平,输入到BMC GPIO4,让BMC通过检测GPIO4的电平,获取硬盘初始化完成的信息。通过SCI中断寄存器判断是否已经开启SCI中断功能,如果没有,则设置GPIO1触发SMI中断功能,如果已经开启,则设置GPIO1触发SCI中断功能,也要开启GPIO1触发事件的功能。SMI程序可以在非ACPI环境下执行,如主板开机过程、DOS系统等,SCI中断程序在ACPI系统环境下使用,例如Windows2012 R2系统。等待GPIO1输入状态设置触发中断,如果没有中断触发则继续等待,如果有中断触发则开始执行中断程序。BIOS执行SMI中断程序,程序将调用硬盘接口服务程序,获取硬盘序号和总数量,然后设置硬盘命令传输参数和格式,将属性参数设置为0xD5,将命令参数设置为0xB0,将逻辑数据块地址设置为0xC24F,调用传送服务程序,将命令发送给对应序号的硬盘,等待硬盘返回数据,如果返回不成功,则进行下一个硬盘的命令发送,如果返回成功,将硬盘当前温度数据和最大支持温度数据提取出来,与硬盘序号数据一起整理成同BMC预先约定的数据格式,将数据发送给BMC,判断是否所有盘获取完成,如果没有继续下一个硬盘,如果完成则从中断程序返回。操作系统执行SCI中断程序,首先配置IPMI数据空间,及构建通信程序,操作系统触发软SMI中断,控制权交个BIOS,BIOS开始执行SMI中断程序,通过调用硬件接口程序,获取硬盘总数量并返回SCI程序,控制权交给操作系统,操作系统根据硬盘总数量来确定循环执行获取硬盘温度的次数,开始触发软SMI中断程序,控制权再次交给BIOS,调用硬盘接口服务程序,然后设置硬盘命令传输参数和格式,将属性参数设置为0xD5,将命令参数设置为0xB0,将逻辑数据块地址设置为0xC24F,调用传送服务程序,将命令发送给对应序号的硬盘,等待硬盘返回数据,如果返回不成功,返回SCI程序中,等待操作系统触发下一次软SMI中断,如果返回成功,将硬盘当前温度数据和最大支持温度数据提取出来,与硬盘序号数据一起整理成同BMC预先约定的数据格式,将数据存储在全局内存空间,返回SCI程序,操作系统根据调用通信程序,将内存空间数据传送给BMC。判断是否所有盘获取完成,如果没有继续下一个硬盘,如果完成则从中断程序返回。
本发明提供的一种实时读取硬盘温度的方法与系统,针对BMC无法获取硬盘温度的缺陷,给出了有效解决办法。通过简单的硬件线路连接,BIOS和BMC软件的配合,实现在非系统环境和系统环境下实时获取硬盘的当前温度、硬盘的所支持的最大温度。无需借助系统应用软件帮助获取硬盘温度,减低开发成本,适用所有操作系统。BMC可以根据硬盘温度来控制散热,确保硬盘不会因为温度过高导致损坏,保护数据安全,防范风险。
本发明提供的一种实时读取硬盘温度的方法与系统,通过简单硬件线路设计、BIOS程序以及BMC程序设计,提供了一套完整解决方案,添补了功能空白,实现了在非ACPI环境和ACPI系统环境下,实时获取硬盘温度的功能。SMI程序和SCI程序配合使用,灵活方便。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (10)
1.一种实时读取硬盘温度的系统,其特征在于:包括PCH和BMC,所述PCH的GPIO1与所述BMC的 GPIO3通过电阻R1连接,所述PCH 的GPIO2与所述BMC 的GPIO4通过电阻R2连接起来。
2.一种实时读取硬盘温度的方法,其特征在于,基于权利要求1所述的实时读取硬盘温度的系统进行以下步骤:
S1、BMC初始化程序;
S2、BIOS初始化程序。
3.根据权利要求2所述的实时读取硬盘温度的方法,其特征在于,步骤S1包括以下子步骤:
S11、开始;
S12、初始化BMC GPIO功能;
S13、设置BMC的GPIO3输出低电平,GPIO4输入功能;
S14、判断硬盘是否完成初始化命令,如果否,则返回步骤S24,如果是,则进入下一步骤;
S15、判断是否读取硬盘温度,如果否,则返回步骤S24,如果是,则进入下一步骤;
S16、设置BMC的GPIO3为高电平脉冲波形;
S17、判断是否接收到硬盘数据,如果否,则返回步骤S24,如果是,则进入下一步骤;
S18、解析硬盘数据;
S19、将数据显示到BMC界面;
S110、结束。
4.根据权利要求3所述的实时读取硬盘温度的方法,其特征在于:在步骤S1中,BMC上电,首先进行GPIO初始化,将与PCH连接的BMC的GPIO3设置为输出功能,并输出低电平,将BMC的GPIO4设置为输入功能,通过检测BMC的GPIO4输入的电平,来判断是否BIOS完成硬盘初始化工作,GPIO4输入低电平则BIOS没有完成硬盘初始化工作,等待设定时间,重新检测,直到检测到GPIO4输入为高电平,表明BIOS完成硬盘初始化工作,然后判断是否读取硬盘温度,如果不读取硬盘温度,则等待设定时间,重新检测,如果读取硬盘温度,则将GPIO3设置为高电平,等待设定时间后,再设置为低电平,形成一个高电平脉冲波形,输入到PCH的GPIO1,用于触发中断,等待是否BIOS传送硬盘温度数据,等待设定时间后如果没有收到数据,回到检测GPIO4步骤,重新执行程序,如果收到硬盘温度数据,根据与BIOS预先定义的数据格式,将数据进行解析,硬盘序号、硬盘当前温度及硬盘所支持最大温度,数据信息显示在BMC管理界面,供用户查看,等待设定时间后,继续回到检测GPIO4步骤,重新执行程序,实现实时更新硬盘温度的功能。
5.根据权利要求4所述的实时读取硬盘温度的方法,其特征在于:通过用户判断是否读取硬盘温度,用户通过操作开关选择开启或者关闭BMC获取硬盘温度的功能,如果设置为不读取硬盘温度,则等待设定时间,重新检测,如果设置为读取硬盘温度,则将GPIO3设置为高电平,50ms后,再设置为低电平,形成一个高电平脉冲波形,输入到PCH GPIO1,用于触发中断。
6.根据权利要求2所述的实时读取硬盘温度的方法,其特征在于,步骤S2包括以下子步骤:
S21、开始;
S22、初始化PCH的GPIO,设置PCH的GPIO1输入,PCH的GPIO2输出;
S23、初始化硬盘控制器;
S24、侦测硬盘并初始化完成;
S25、通知BMC硬盘初始化完成;
S26、判断SCI中断是否开启,如果SCI中断没有开启,则开启GPIO1的SMI中断功能并进入下一步骤,如果SCI中断开启,则开启GPIO1的SCI中断功能,开启GPIO1的触发事件功能并进入下一步骤;
S27、判断是否为中断状态,如果否,则等待,如果是,则执行中断程序。
7.根据权利要求6所述的实时读取硬盘温度的方法,其特征在于:步骤S27中的中断程序包括SMI中断程序和SCI中断事件程序。
8.根据权利要求7所述的实时读取硬盘温度的方法,其特征在于:所述SMI中断程序包括以下过程:
A1、BIOS开始执行SMI中断程序;
A2、调用硬盘接口服务程序;
A3、设置命令传输参数及格式;
A4、向硬盘发送命令;
A5、判断是否成功返回,如果否,则返回步骤A2,如果是,则进入下一步骤;
A6、整理硬盘序号、当前温度、最大支持温度数据格式;
A7、将数据发送给BMC;
A8、判断硬盘查询是否结束,如果否,则返回步骤A2,如果是,则进入下一步骤;
A9、中断程序返回并结束。
9.根据权利要求7所述的实时读取硬盘温度的方法,其特征在于:所述SCI中断事件程序包括以下过程:
B1、操作系统开始执行SCI中断事件程序;
B2、配置IPMI通信数据;
B3、操作系统触发软SMI中断;
B4、执行SMI中断程序;
B5、获取硬盘数量并返回到SCI程序;
B6、触发软SMI中断并执行程序;
B7、调用硬盘接口服务程序;
B8、设置命令传输参数及格式;
B9、向硬盘发送命令;
B10、判断是否成功返回,如果否,则返回步骤B5,如果是,则进入下一步骤;
B11、整理硬盘序号、当前温度、最大支持温度数据格式;
B12、将数据存在全局内存空间;
B13、返回SCI程序并将数据传给BMC;
B14、判断硬盘查询是否结束,如果否,则返回步骤B5,如果是,则进入下一步骤
B15、中断程序返回并结束。
10.根据权利要求7所述的实时读取硬盘温度的方法,其特征在于:在步骤S2中,BIOS启动运行时,对PCH的GPIO进行初始化,选择上电后默认为低电平的2个GPIO,将GPIO1设置为输入功能,将GPIO2设置为输出功能,默认输出低电平,初始化硬盘控制,对硬盘控制器进行资源、中断配置,服务程序的挂载,枚举所有硬盘对进行初始化,将硬盘服务程序挂载完成,设置GPIO2为高电平,输入到BMC GPIO4,让BMC通过检测GPIO4的电平,获取硬盘初始化完成的信息,通过SCI中断寄存器判断是否已经开启SCI中断功能,如果没有,则设置GPIO1触发SMI中断功能,如果已经开启,则设置GPIO1触发SCI中断功能,也要开启GPIO1触发事件的功能,等待GPIO1输入状态设置触发中断,如果没有中断触发则继续等待,如果有中断触发则开始执行中断程序;BIOS执行SMI中断程序,程序将调用硬盘接口服务程序,获取硬盘序号和总数量,然后设置硬盘命令传输参数和格式,将属性参数设置为0xD5,将命令参数设置为0xB0,将逻辑数据块地址设置为0xC24F,调用传送服务程序,将命令发送给对应序号的硬盘,等待硬盘返回数据,如果返回不成功,则进行下一个硬盘的命令发送,如果返回成功,将硬盘当前温度数据和最大支持温度数据提取出来,与硬盘序号数据一起整理成同BMC预先约定的数据格式,将数据发送给BMC,判断是否所有盘获取完成,如果没有继续下一个硬盘,如果完成则从中断程序返回;操作系统执行SCI中断事件程序,首先配置IPMI数据空间,及构建通信程序,操作系统触发软SMI中断,控制权交个BIOS,BIOS开始执行SMI中断程序,通过调用硬件接口程序,获取硬盘总数量并返回SCI程序,控制权交给操作系统,操作系统根据硬盘总数量来确定循环执行获取硬盘温度的次数,开始触发软SMI中断程序,控制权再次交给BIOS,调用硬盘接口服务程序,然后设置硬盘命令传输参数和格式,将属性参数设置为0xD5,将命令参数设置为0xB0,将逻辑数据块地址设置为0xC24F,调用传送服务程序,将命令发送给对应序号的硬盘,等待硬盘返回数据,如果返回不成功,返回SCI程序中,等待操作系统触发下一次软SMI中断,如果返回成功,将硬盘当前温度数据和最大支持温度数据提取出来,与硬盘序号数据一起整理成同BMC预先约定的数据格式,将数据存储在全局内存空间,返回SCI程序,操作系统根据调用通信程序,将内存空间数据传送给BMC,判断是否所有盘获取完成,如果没有继续下一个硬盘,如果完成则从中断程序返回。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910305089.5A CN110109802A (zh) | 2019-04-16 | 2019-04-16 | 一种实时读取硬盘温度的方法与系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910305089.5A CN110109802A (zh) | 2019-04-16 | 2019-04-16 | 一种实时读取硬盘温度的方法与系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110109802A true CN110109802A (zh) | 2019-08-09 |
Family
ID=67485602
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910305089.5A Withdrawn CN110109802A (zh) | 2019-04-16 | 2019-04-16 | 一种实时读取硬盘温度的方法与系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110109802A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110781517A (zh) * | 2019-10-31 | 2020-02-11 | 山东超越数控电子股份有限公司 | 一种bios与bmc沟通实现数据交互的方法 |
CN111858239A (zh) * | 2020-06-30 | 2020-10-30 | 浪潮电子信息产业股份有限公司 | 一种服务器硬盘监测方法、装置、设备及介质 |
CN113031859A (zh) * | 2021-02-25 | 2021-06-25 | 山东英信计算机技术有限公司 | 一种硬盘高温掉盘防护方法、系统及介质 |
-
2019
- 2019-04-16 CN CN201910305089.5A patent/CN110109802A/zh not_active Withdrawn
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110781517A (zh) * | 2019-10-31 | 2020-02-11 | 山东超越数控电子股份有限公司 | 一种bios与bmc沟通实现数据交互的方法 |
CN110781517B (zh) * | 2019-10-31 | 2023-11-17 | 超越科技股份有限公司 | 一种bios与bmc沟通实现数据交互的方法 |
CN111858239A (zh) * | 2020-06-30 | 2020-10-30 | 浪潮电子信息产业股份有限公司 | 一种服务器硬盘监测方法、装置、设备及介质 |
CN111858239B (zh) * | 2020-06-30 | 2022-06-10 | 浪潮电子信息产业股份有限公司 | 一种服务器硬盘监测方法、装置、设备及介质 |
CN113031859A (zh) * | 2021-02-25 | 2021-06-25 | 山东英信计算机技术有限公司 | 一种硬盘高温掉盘防护方法、系统及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9954727B2 (en) | Automatic debug information collection | |
US6189109B1 (en) | Method of remote access and control of environmental conditions | |
US6895285B2 (en) | Computer system status monitoring | |
CN110109802A (zh) | 一种实时读取硬盘温度的方法与系统 | |
US6205547B1 (en) | Computer system management apparatus and method | |
US20050138470A1 (en) | Method and system for performing remote maintenance operations on a battery powered computer | |
US20150106660A1 (en) | Controller access to host memory | |
US6073255A (en) | Method of reading system log | |
US6138250A (en) | System for reading system log | |
US7318171B2 (en) | Policy-based response to system errors occurring during OS runtime | |
CN104899109B (zh) | 一种操作系统下获取cpu温度的方法 | |
EP3319283B1 (en) | Server data port learning at data switch | |
CN102132523A (zh) | 使用网络连接的设备电源管理 | |
CN102880527B (zh) | 一种基板管理控制器的数据恢复方法 | |
EP2798428B1 (en) | Apparatus and method for managing operation of a mobile device | |
CN109710048B (zh) | 一种基于龙芯处理器的便携式终端电源管理方法 | |
CN110658758A (zh) | 控制方法和控制系统 | |
CN105807848A (zh) | 一种触控工控机 | |
CN110134447A (zh) | 基于操作系统的bmc即时更新硬盘信息的系统及方法 | |
CN111737064A (zh) | 一种bmc系统控制方法、装置、存储介质和计算机设备 | |
CN107515668A (zh) | 一种控制方法和装置 | |
CN110245048A (zh) | 一种机箱智能管理系统和管理方法 | |
TWI749728B (zh) | 可攜式電子裝置 | |
US20140115378A1 (en) | System and method for restoring network configuration parameters | |
CN110109525A (zh) | 一种远程控制主板断电的方法 |
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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20190809 |