CN103914311B - 固件管理方法及系统 - Google Patents
固件管理方法及系统 Download PDFInfo
- Publication number
- CN103914311B CN103914311B CN201210592425.7A CN201210592425A CN103914311B CN 103914311 B CN103914311 B CN 103914311B CN 201210592425 A CN201210592425 A CN 201210592425A CN 103914311 B CN103914311 B CN 103914311B
- Authority
- CN
- China
- Prior art keywords
- management
- module
- bios program
- data
- firmware
- 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.)
- Active
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开一种固件管理方法,所述固件管理方法在BIOS程序所在的存储单元上划分BIOS程序区、BPI接口模块、主动管理数据区和虚拟磁盘存储区,通过位于所述BIOS程序区的BIOS程序模块对计算机系统进行主动管理,还通过所述BPI接口模块接收应用程序的指令,对计算机硬件进行访问,并将所涉及的数据存储于所述主动管理数据区。还公开一种固件管理系统。上述方法和系统通过在BIOS程序模块对计算机系统进行自动的主动管理,同时通过BPI接口模块提供各种操作系统统一的硬件操作接口,实现了对计算机系统的主动管理和跨平台管理。
Description
技术领域
本发明涉及计算机技术,特别是涉及一种固件管理方法及系统。
背景技术
传统的计算机系统不具备主动管理功能,如计算机生命周期管理,计算机健康状况健康等,需要终端用户为特定平台开发应用软件。
另外,传统的计算机系统若采用板载Flash,需要额外增加硬件,且需要为特定硬件编写驱动或应用程序。
用户更新OEM(原始设备制造商)Logo,是通过更新BIOS来达到此目的。需要定制费用,因此这种方案成本高,定制时间长。
传统的计算机系统也不具备操作系统下更改设备引导顺序功能。
发明内容
基于此,有必要提供一种能自动对计算机系统进行主动管理的固件管理方法。
一种固件管理方法,其特征在于,在BIOS程序所在的存储单元上划分BIOS程序区、BPI接口模块、主动管理数据区和虚拟磁盘存储区;所述BIOS程序区用于存储对计算机系统进行主动管理的BIOS程序模块;所述BPI接口模块包含BPI接口标准库函数,用于提供上层应用程序对底层硬件访问的统一接口;所述主动管理数据区用于存储BIOS程序模块所涉及的数据并定义所述数据的存储位置及占用空间大小;虚拟磁盘存储区,为BIOS程序模块所在存储单元的空闲区域;所述固件管理方法通过所述BIOS程序模块对计算机系统进行主动管理,还通过所述BPI接口模块接收应用程序的指令,对计算机硬件进行访问,并将所涉及的数据存储于所述主动管理数据区。
一种固件管理系统,包括:BIOS程序模块,用于对计算机系统进行主动管理;BPI接口模块,包含BPI接口标准库函数,用于提供上层应用程序对底层硬件访问的统一接口;主动管理数据区,用于存储BIOS程序模块所涉及的数据并定义所述数据的存储位置及占用空间大小;虚拟磁盘存储区,为BIOS程序模块所在存储单元的空闲区域。
上述固件管理方法和系统通过在BIOS程序模块对计算机系统进行自动的主动管理,同时通过BPI接口模块提供各种操作系统统一的硬件操作接口,实现了对计算机系统的主动管理和跨平台管理。
附图说明
图1为一种利用一实施例的BIOS固件对计算机硬件进行主动管理的系统架构图;
图2为存储BIOS程序的存储单元数据区域划分示意图;
图3为BPI接口模块的数据区各数据定义示意图;
图4为主动管理数据区各数据定义示意图。
具体实施方式
如图1所示,为一种利用一实施例的BIOS固件对计算机硬件进行主动管理的系统架构图。该架构分为三个层次:位于操作系统之上的应用层、底层的硬件层以及位于二者之间的固件管理层。应用层包括各种应用程序;硬件层包括计算机系统的各种硬件,例如CPU等;固件管理接口层则包括适应各种操作系统的驱动以及本实施例的BIOS固件10。
BIOS固件是固化在计算机存储单元中的程序,传统的BIOS固件均可以实现在开机的过程中引导操作系统装入以及对计算机硬件进行各种配置等基本功能。传统的BIOS固件对计算机系统的管理一般限于提供计算机硬件的基本信息,例如CPU温度等,或者在进入操作系统之前提供对计算机硬件的配置。本实施例的BIOS固件10除了能够实现上述功能之外,还包括对计算机硬件进行主动管理的主动管理模组100。
如图1所示,主动管理模组100包括生命周期管理模块110、健康状况管理模块120、虚拟磁盘模块130、logo更新模块140、启动顺序管理模块150以及序列号管理模块160。
如图2所示,BIOS固件10,也即BIOS程序所在的存储单元上还划分有主动管理数据区103。图2中,存储单元划分为依次相邻的BIOS程序区101、BPI接口模块102、主动管理数据区103以及虚拟磁盘存储区104。
BIOS程序区101即存储上述的基本功能模块和生命周期管理模块110、健康状况管理模块120、虚拟磁盘模块130、logo更新模块140、启动顺序管理模块150以及序列号管理模块160的程序。BIOS程序区101通常占据1MB的存储空间。
BPI接口模块102提供上层应用程序对底层硬件访问的统一接口,其集成BPI接口标准库函数,目的是为驱动程序或应用软件提供访问计算机硬件的统一的,平台无关的标准接口规范。参考图1,当平台为windows系统、linux系统或者VxWorks等其他操作系统时,都可以通过这个统一的BPI接口模块102访问底层硬件。
主动管理数据区103内存储生命周期管理模块110、序列号管理模块120、虚拟磁盘模块130、logo更新模块140启动顺序管理模块150以及健康状况管理模块160所涉及数据并定义这些数据的存储位置及占用空间大小。
虚拟磁盘存储区104是存储单元的空闲存储空间,其可以通过上述的虚拟磁盘模块130形成计算机系统中的磁盘,并且能够通过操作系统进行读写。
结合图1和图2,以下对各功能模块进行进一步说明。
生命周期管理模块110用于记录计算机第一次开机时间、测试完成时间、出厂时间、第一次使用时间、每一次的开机时间和关机时间以及维修记录,并计算和更新计算机的总运行时间、总开机次数、总关机次数、非法关机次数以及CPU心跳数;并将生命周期管理模块110所涉及的数据存储于主动管理数据区103的相应位置。
生命周期管理模块110具体可以采用以下方法实现。
系统每次开机或重启时均需要运行BIOS,因此可以在BIOS运行阶段记录系统每次开机或重启时间,总的开机次数及计算机第一开机时间等信息。根据操作系统下关机时,系统会调用BIOS ACPI(Advanced Configuration and PowerInterface Specification)代码,因此可以在BIOS的Sleep SMI处理函数中添加记录关机阶段系统的特殊信息,如关机时间,关机时CPU运行的CLOCK数量,从而计算出本次(从开机到关机)阶段,系统运行的时间,CPU运行的CLOCK数量。通过南桥的Power Loss状态位,来判断系统是否存在异常掉电,即是否非法关机。并将数据存放在主动管理数据区103的相应位置中。
健康状况管理模块120用于记录计算机硬件的运行状态数据,并分析计算机系统的健康状况;所述运行状态数据和健康状况的数据存储于所述主动管理数据区103的相应位置。对系统硬件寄存器数据进行分析,诊断平台硬件健康状况,如果超出预设阀值,给出报警信息,并触发一个SCI中断(System Control Interrupt)通知操作系统和用户,有故障发生,用户根据自身应用需求设计事件处理模块。如健康状况管理模块120发现CPU温度超过预设阀值时,打开蜂鸣器报警,并触发一个SCI中断,通知用户的应用程序进行关机或执行其它应用操作等。
虚拟磁盘模块130将虚拟磁盘存储区104作为一个磁盘的空间,为虚拟磁盘存储区104设计一个扩展PCI选项,并将虚拟磁盘存储区104虚拟为一个BCV设备。由于在BIOS阶段对磁盘的读写都通过INT13h中断实现,因此在设计虚拟磁盘模块130时,重新设计访问虚拟磁盘存储区104的INT13中断服务程序。在设计虚拟磁盘存储区104为BCV设备时,可以将虚拟磁盘存储区104虚拟为一个软驱或硬盘设备。为了能在操作系统下访问虚拟磁盘存储区104,需要为虚拟磁盘存储区104设计块设备访问驱动,这样就可以像访问硬盘空间一样,访问虚拟磁盘存储区104。
logo更新模块140用于将存放于虚拟磁盘存储区的logo图片作为开机时的logo。具体地,logo更新模块140分析磁盘存储区104文件系统(如FAT,ext3等),从磁盘存储区104找到用户的OEM Logo,在BIOS显示OEM Logo的时候,使用磁盘存储区104中的OEM Logo替代旧Logo。
启动顺序管理模块150,操作系统通过BPI接口模块102对存储于主动管理数据区103的相应位置的启动顺序数据进行修改,启动顺序管理模块150根据修改后的启动顺序数据生成引导设备列表。在BIOS建立引导设备列表时,将引导设备列表的设备名称字符串,存放到主动管理数据区103的相应位置,每32个字符为一个引导设备的名称。操作系统通过BPI标准库函数对主动管理数据区103的相应位置数据进行读写访问,通过修改引导设备名称字符在虚拟磁盘存储区104的位置来达到特殊引导顺序的设置。下次开机时,BIOS根据用户的设置,重新建立引导顺序列表,并保存到主动管理数据区103,完成特殊引导顺序的定制。
序列号管理模块160对存储于主动管理数据区103相应位置的序列号进行管理。例如主板序列号、整机序列号及终端用户产品序列号等。对序列号的读写也是基于上述的BPI接口模块,可以从应用层对主动管理数据区103进行读写。
可以看出,上述功能的实现都是基于在BIOS程序中添加相应的功能模块和在主动管理数据区103定义相应的数据区域来实现的,并且当功能模块不涉及应用层对硬件的操作时,由功能模块直接完成;当功能模块的功能涉及应用层对硬件的操作时,则通过BPI接口模块102来完成。在不同的实施例中,可以选择上述功能模块的一种或两种以上,使得BIOS固件实现一种或两种以上的主动管理功能。
各功能模块的具体实现方式在前述实施例中已经作出说明。以下具体介绍BPI接口模块102和管理数据存储区103的存储形式。
请参考图3,BPI接口模块102包括BPI头区(BPI header)和映像区(BPI image)。头区(BPI header)包含各库函数的入口地址。映像区(BPI image)则包括库函数的具体实现。应用程序访问硬件时,从BPI接口模块102中找到入口地址,并由入口地址进入执行具体的库函数,实现函数调用,从而实现对硬件的访问。
请参考图4,主动管理数据区103包括FMI头区(FMI header)、备份区(ghostheader)以及数据区。头区(FMI header)包含上述诸多数据,例如主板序列号(mainboardSN)、设备序列号(equipment SN)、首次启动时间(FIRST BOOT TIME,FBT)、测试完成时间(test finish time,TFT)、关机时间(shutdown time,ST)等等。
基于上述存储结构,操作系统驱动层通过在内存地址空间0xFFF00000~0xFFFFFFFF(即4GB-1MB)中查找BPI签名$BPI,并对BPI头区进行校验(BPI头的checksum为0)来判断系统BIOS是否支持FMI功能。如果当前系统平台支持FMI,则根据BPI头可获取如下信息:
1)BPI标准库函数的入口地址,再通过调用BPI库函数实现对硬件的访问和FMI管理模块的操作。
2)主动管理数据区103的入口地址。
3)从FMI头区获取虚拟磁盘存储区104的入口地址。
4)根据FMI头区获取logo存储的数据区。
5)根据FMI头区获取其它数据,如产品生命周期数据,开机次数,非法关机次数等。
6)操作系统通过BPI接口与访问各子模块,实现对系统硬件的访问。
图3和图4的数据区定义为一示例,并不局限于该方式,在其他实施例中,还可以定义其他的存储位置或者占据空间等。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (9)
1.一种固件管理方法,其特征在于,在BIOS程序所在的存储单元上划分BIOS程序区、BPI接口模块、主动管理数据区和虚拟磁盘存储区;
所述BIOS程序区用于存储对计算机系统进行主动管理的BIOS程序模块;
所述BPI接口模块包含BPI接口标准库函数,用于提供上层应用程序对底层硬件访问的统一接口;
所述主动管理数据区用于存储BIOS程序模块所涉及的数据并定义所述数据的存储位置及占用空间大小;
虚拟磁盘存储区,为BIOS程序模块所在存储单元的空闲区域;
所述固件管理方法通过所述BIOS程序模块对计算机系统进行主动管理,还通过所述BPI接口模块接收应用程序的指令,对计算机硬件进行访问,并将所涉及的数据存储于所述主动管理数据区;
所述BIOS程序模块和BIOS程序模块所涉及的数据分别存储在BIOS程序区和主动管理数据区。
2.根据权利要求1所述的固件管理方法,其特征在于,所述BIOS程序模块包括生命周期管理模块,所述固件管理方法通过所述生命周期管理模块记录计算机第一次开机时间、测试完成时间、出厂时间、第一次使用时间、每一次的开机时间和关机时间以及维修记录,并计算和更新计算机的总运行时间、总开机次数、总关机次数、非法关机次数以及CPU心跳数;并将生命周期管理模块所涉及的数据存储于所述主动管理数据区的相应位置。
3.根据权利要求1所述的固件管理方法,其特征在于,所述BIOS程序模块包括健康状况管理模块,所述健康状况管理模块用于记录计算机硬件的运行状态数据,并分析计算机系统的健康状况;所述运行状态数据和健康状况的数据存储于所述主动管理数据区的相应位置。
4.根据权利要求1所述的固件管理方法,其特征在于,所述BIOS程序模块包括虚拟磁盘模块,所述固件管理方法通过所述虚拟磁盘模块将所述虚拟磁盘存储区虚拟为计算机操作系统下的磁盘。
5.根据权利要求1所述的固件管理方法,其特征在于,所述BIOS程序模块还包括logo更新模块,所述固件管理方法通过所述logo更新模块将存放于所述虚拟磁盘存储区的logo图片作为开机显示的logo。
6.根据权利要求1所述的固件管理方法,其特征在于,所述BIOS程序模块还包括启动顺序管理模块,操作系统通过所述BPI接口模块对存储于所述主动管理数据区的相应位置的启动顺序数据进行修改,所述启动顺序管理模块根据修改后的启动顺序数据生成引导设备列表。
7.根据权利要求1所述的固件管理方法,其特征在于,所述BIOS程序模块还包括序列号管理模块,所述固件管理方法通过所述序列号管理模块将序列号存放于所述主动管理数据区内,并进行管理。
8.一种固件管理系统,包括:
BIOS程序模块,用于对计算机系统进行主动管理;
BPI接口模块,包含BPI接口标准库函数,用于提供上层应用程序对底层硬件访问的统一接口;
主动管理数据区,用于存储BIOS程序模块所涉及的数据并定义所述数据的存储位置及占用空间大小;
虚拟磁盘存储区,为BIOS程序模块所在存储单元的空闲区域;
所述BIOS程序模块和BIOS程序模块所涉及的数据分别存储在BIOS程序区和主动管理数据区。
9.根据权利要求8所述的固件管理系统,其特征在于,所述BIOS程序模块包括生命周期管理模块、健康状况管理模块、虚拟磁盘模块、logo更新模块、启动顺序管理模块以及序列号管理模块中的一种以上;
所述生命周期管理模块记录计算机第一次开机时间、测试完成时间、出厂时间、第一次使用时间、每一次的开机时间和关机时间以及维修记录,并计算和更新计算机的总运行时间、总开机次数、总关机次数、非法关机次数以及CPU心跳数;并将生命周期管理模块所涉及的数据存储于所述主动管理数据区的相应位置;
所述健康状况管理模块用于记录计算机硬件的运行状态数据,并分析计算机系统的健康状况;所述运行状态数据和健康状况的数据存储于所述主动管理数据区的相应位置;
所述虚拟磁盘模块将所述虚拟磁盘存储区虚拟为计算机操作系统下的磁盘;
所述logo更新模块将存放于所述虚拟磁盘存储区的logo图片作为开机显示的logo;
所述启动顺序管理模块用于在操作系统环境下对设备启动顺序进行管理;
所述序列号管理模块将序列号存放于所述主动管理数据区内,并进行管理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210592425.7A CN103914311B (zh) | 2012-12-31 | 2012-12-31 | 固件管理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210592425.7A CN103914311B (zh) | 2012-12-31 | 2012-12-31 | 固件管理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103914311A CN103914311A (zh) | 2014-07-09 |
CN103914311B true CN103914311B (zh) | 2018-09-21 |
Family
ID=51040016
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210592425.7A Active CN103914311B (zh) | 2012-12-31 | 2012-12-31 | 固件管理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103914311B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105760742B (zh) * | 2014-12-17 | 2019-01-15 | 联想(上海)信息技术有限公司 | 外部设备认证管理方法、装置及电子设备 |
CN105787343B (zh) * | 2014-12-17 | 2019-01-15 | 联想(上海)信息技术有限公司 | 外部设备认证管理方法、装置及电子设备 |
CN111258617B (zh) * | 2019-12-31 | 2022-03-25 | 联想(北京)有限公司 | 一种电子设备 |
CN111813454B (zh) * | 2020-07-07 | 2024-04-23 | 深圳微步信息股份有限公司 | 电子装置、开机画面显示方法和计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101075197A (zh) * | 2006-05-20 | 2007-11-21 | 技嘉科技股份有限公司 | 利用bios模拟ipmi的方法 |
CN101430642A (zh) * | 2007-11-09 | 2009-05-13 | 中国长城计算机深圳股份有限公司 | 一种应用于uefi的操作界面的实现方法及系统 |
CN102156653A (zh) * | 2004-12-31 | 2011-08-17 | 英特尔公司 | 系统固件的可管理扩展方法、装置和系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6978018B2 (en) * | 2001-09-28 | 2005-12-20 | Intel Corporation | Technique to support co-location and certification of executable content from a pre-boot space into an operating system runtime environment |
CN100399268C (zh) * | 2005-09-23 | 2008-07-02 | 联想(北京)有限公司 | 一种不依赖操作系统更新软件数据的计算机系统及方法 |
CN101807152B (zh) * | 2009-02-13 | 2013-10-23 | 环旭电子股份有限公司 | 自我验证选择只读存储器的基本输出入系统及其验证方法 |
-
2012
- 2012-12-31 CN CN201210592425.7A patent/CN103914311B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102156653A (zh) * | 2004-12-31 | 2011-08-17 | 英特尔公司 | 系统固件的可管理扩展方法、装置和系统 |
CN101075197A (zh) * | 2006-05-20 | 2007-11-21 | 技嘉科技股份有限公司 | 利用bios模拟ipmi的方法 |
CN101430642A (zh) * | 2007-11-09 | 2009-05-13 | 中国长城计算机深圳股份有限公司 | 一种应用于uefi的操作界面的实现方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103914311A (zh) | 2014-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105074662B (zh) | 用于系统适配的动态程序评估系统和方法 | |
CN102541619B (zh) | 虚拟机管理装置和方法 | |
CN103294557B (zh) | 具有活动和非活动执行核心的多核处理器 | |
JP4584315B2 (ja) | 仮想マシン環境におけるタイマ・オフセット機構 | |
CN100356335C (zh) | 保存跟踪数据的方法和装置 | |
US7836435B2 (en) | Checking for memory access collisions in a multi-processor architecture | |
US8423991B2 (en) | Embedded network device and firmware upgrading method | |
CN105144185B (zh) | 验证控制器代码和系统启动代码 | |
Hort et al. | A survey of performance optimization for mobile applications | |
CN101714091B (zh) | 用于在操作系统初始化期间显示平台图形的方法和系统 | |
US20090248611A1 (en) | Trace Collection for a Virtual Machine | |
CN108664380B (zh) | 一种带性能显示的执行后软件调试系统及调试方法 | |
CN102207896A (zh) | 虚拟机崩溃文件生成技术 | |
US20080072224A1 (en) | Enhanced store facility list system and operation | |
CN1920797A (zh) | 存储器访问控制装置 | |
CN103914311B (zh) | 固件管理方法及系统 | |
TWI738680B (zh) | 監視處理器之操作之系統 | |
CN101364184A (zh) | 在虚拟机环境中检测自旋循环 | |
CN104969181B (zh) | 用于损坏的驱动器变量记录的修复系统、方法及存储设备 | |
CN104572164A (zh) | 一种基于飞腾便携式计算机的uefi固件实现方法 | |
CN110554998B (zh) | 一种通过替换函数内部指令的钩子方法、装置、终端及存储介质 | |
CN104572161A (zh) | 一种基于龙芯便携式计算机的uefi固件实现方法 | |
CN104216771A (zh) | 软件程序的重启方法及装置 | |
CN103455750B (zh) | 一种嵌入式设备的高安验证方法及装置 | |
CN101281485B (zh) | 无需硬盘的计算机测试方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230712 Address after: 522, 5th Floor, Block A, Haina Baichuan Headquarters Building, No.6 Baoxing Road, Haibin Community, Xin'an Street, Bao'an District, Shenzhen City, Guangdong Province, 518101 Patentee after: Shenzhen yiyike data equipment Technology Co.,Ltd. Address before: 518057 Guangdong city of Shenzhen province Nanshan District high in the four EVOC Technology Building No. 31 Patentee before: EVOC INTELLIGENT TECHNOLOGY Co.,Ltd. |