CN104679566A - 更新smbios的方法和终端设备 - Google Patents
更新smbios的方法和终端设备 Download PDFInfo
- Publication number
- CN104679566A CN104679566A CN201510112295.6A CN201510112295A CN104679566A CN 104679566 A CN104679566 A CN 104679566A CN 201510112295 A CN201510112295 A CN 201510112295A CN 104679566 A CN104679566 A CN 104679566A
- Authority
- CN
- China
- Prior art keywords
- smbios
- hardware device
- information
- data list
- upgrade
- 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
Links
Abstract
本发明实施例提供了一种更新SMBIOS的方法和终端设备,该方法包括:在终端设备中热插或热拔硬件设备后,获取与SMBIOS表对应的硬件设备的变化信息;根据硬件设备的变化信息,更新SMBIOS表。该方法无需重启终端设备,能够动态更新SMBIOS,提升用户体验。
Description
技术领域
本发明涉及计算机领域,特别涉及一种更新SMBIOS的方法和终端设备。
背景技术
现有系统中,例如在X86系统中,支持热插拔的设备越来越多,比如CPU、内存或快速外围部件互连总线(Peripheral Component InterconnectExpress,PCIE)设备,系统支持热插拔能够方便在不进行开关机的情况下灵活配置。
目前现有系统基本输入/输出系统(Basic Input/Output System,BIOS)都无法提供操作系统(Operation System,OS)下根据热插拔动态更新系统管理基本输出输入系统(System Management Basic Input/Output System,SMBIOS)的方法,并且已有的工具都是根据即插即用(Plug-and-Play,PNP)功能修改SMBIOS的静态信息到BIOS闪存(flash)中,下次启动才能生效。
SMBIOS是管理软件和系统层之间接口的角色,由于SMBIOS没有动态更新,导致管理软件无法获取最新、最准、最快的信息来进行资源的调配和分配的,同时依赖SMBIOS的第三方软件因SMBIOS表不正确导致运行结果错误。现有系统中的SMBIOS并没有根据热插拔进行动态更新,只能在重启系统后才能实现SMBIOS的更新,用户体验差。
因此,希望提供一种技术,能够动态更新SMBIOS。
发明内容
本发明实施例提供了一种更新SMBIOS的方法和终端设备,该方法能够动态更新SMBIOS,提升用户体验。
第一方面,提供了一种更新系统管理基本输出输入系统SMBIOS的方法,该方法应用于终端设备启动之后,该方法包括:在该终端设备中热插或热拔硬件设备后,获取与SMBIOS表对应的硬件设备的变化信息;根据该硬件设备的变化信息,更新该SMBIOS表。
结合第一方面,在第一种可能的实现方式中,该硬件设备包括:内存板、CPU或PCIE设备。
结合第一方面或第一种可能的实现方式,在第二种可能的实现方式中,该获取与SMBIOS表对应的该硬件设备的变化信息,包括:在热插该硬件设备后,获取与该SMBIOS表对应的增加的该硬件设备的信息,或者,在热拔该硬件设备后,获取与该SMBIOS表对应的减少的该硬件设备的信息。
结合第一方面、第一至第二种可能的实现方式中的任一种可能的实现方式,在第三种可能的实现方式中,在确定该终端设备中热插或热拔硬件设备之前,还包括:建立该SMBIOS表;将该SMBIOS表存储在内存中,其中,该SMBIOS表的地址空间为SMBIOS结构表大小与缓冲区值之和。
结合第一方面、第一至第三种可能的实现方式中的任一种可能的实现方式,在第四种可能的实现方式中,该根据该硬件设备的变化信息,更新该SMBIOS表,包括:根据该硬件设备的变化信息,更新SMBIOS表中与该硬件设备对应的数据表结构。
结合第四种可能的实现方式,在第五种可能的实现方式中,该根据该设备变化信息,更新SMBIOS表中与该硬件设备对应的数据表结构,包括:解锁存放该SMBIOS表的内存地址空间;根据该设备变化信息,匹配与该设备变化信息对应的数据表结构;根据该数据表结构的变化情况,调整该SMBIOS表中其他数据表结构的地址;根据匹配结构和该设备变化信息,更新SMBIOS表中与该硬件设备对应的数据表结构;更新SMBIOS的EPS的结构表长度和校验和;锁定存放该SMBIOS表的内存地址空间。
结合第五种可能的实现方式,在第六种可能的实现方式中,该硬件设备为内存板,该更新SMBIOS表中与该硬件设备对应的数据表结构,包括:更新SMBIOS表中与该硬件设备对应的类型17。
结合第六种可能的实现方式,在第七种可能的实现方式中,该更新SMBIOS表中与该硬件设备对应的类型17,包括:更新该类型17中的属性标志、存储总宽度、数据宽度、形体尺寸、速率、时钟速率、已扩展的容量、字符串3、字符串4、字符串5和字符串6。
第二方面,提供了一种终端设备,其特征在于,包括:获取单元,用于在该终端设备中热插或热拔硬件设备后,获取与SMBIOS表对应的该硬件设备的变化信息;更新单元,用于根据该硬件设备的变化信息,更新该SMBIOS表。
结合第二方面,在第一种可能的实现方式中,该硬件设备包括:内存板、CPU或PCIE设备。
结合第二方面或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,该获取单元在热插该硬件设备后,获取与该SMBIOS表对应的增加的该硬件设备的信息,或者,在热拔该硬件设备后,获取与该SMBIOS表对应的减少的该硬件设备的信息。
结合第二方面、第二方面的第一至第二种可能的实现方式中的任一种可能的实现方式,还包括:建立单元,用于建立该SMBIOS表;存储单元,用于将该SMBIOS表存储在内存中,其中,该SMBIOS表的地址空间为SMBIOS结构表大小与缓冲区值之和。
结合第二方面、第二方面的第一至第三种可能的实现方式中的任一种可能的实现方式,在第四种可能的实现方式中,该更新单元根据该硬件设备的变化信息,更新SMBIOS表中与该硬件设备对应的数据表结构。
结合第二方面的第四种可能的实现方式,在第五种可能的实现方式中,该更新单元解锁存放该SMBIOS表的内存地址空间;根据该设备变化信息,匹配与该设备变化信息对应的数据表结构;根据该数据表结构的变化情况,调整该SMBIOS表中其他数据表结构的地址;根据匹配结构和该设备变化信息,更新SMBIOS表中与该硬件设备对应的数据表结构;更新SMBIOS的EPS的结构表长度和校验和;锁定存放该SMBIOS表的内存地址空间。
结合第二方面的第五种可能的实现方式,在第六种可能的实现方式中,该硬件设备为内存板,该更新单元更新SMBIOS表中与该硬件设备对应的类型17。
结合第二方面的第六种可能的实现方式,在第七种可能的实现方式中,该更新单元更新该类型17中的属性标志、存储总宽度、数据宽度、形体尺寸、速率、时钟速率、已扩展的容量、字符串3、字符串4、字符串5和字符串6。
基于上述技术方案,本发明实施例通过在终端设备中热插或热拔硬件设备后,获取与该SMBIOS表对应的硬件设备的变化信息;根据硬件设备的变化信息,更新该SMBIOS表。本发明实施例方法无需重启,能够动态更新SMBIOS,提升用户体验。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明一个实施例的更新SMBIOS的方法的示意性流程图。
图2是根据本发明另一实施例的更新SMBIOS的方法的示意性流程图。
图3是根据本发明另一实施例的更新SMBIOS的方法的示意性流程图。
图4是根据本发明另一实施例的更新SMBIOS的方法的示意性流程图。
图5是根据本发明一个实施例的终端设备的示意框图。
图6是根据本发明另一实施例的终端设备的示意框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
应理解,在本发明实施例中,终端设备(Terminal)包括但不限于移动台(MS,Mobile Station)、移动终端设备(Mobile Terminal)、移动电话(MobileTelephone)、手机(handset)及便携设备(portable equipment)等,该终端设备还可以是移动电话(或称为“蜂窝”电话)、计算机、服务器、Pad、便携式、袖珍式、手持式、计算机内置的或者车载的移动装置等。
图1是根据本发明一个实施例的更新SMBIOS的方法的示意性流程图。图1所示的方法可以由终端设备执行,具体可以由终端设备的CPU执行,具体地,如图1所示的方法用于终端设备启动之后,包括:
110,在终端设备中热插或热拔硬件设备后,获取与SMBIOS表(table)对应的硬件设备的变化信息。
120,根据硬件设备的变化信息,更新SMBIOS表。
因此,本发明实施例通过在终端设备中热插或热拔硬件设备后,获取与SMBIO表对应的硬件设备的变化信息;根据硬件设备的变化信息,更新SMBIOS表。本发明实施例方法无需重启,能够动态更新SMBIOS,提升用户体验
具体地,在终端设备中热插或热拔硬件设备后,系统管理中断(SystemManagement Interrupt,SMI)中断信息被触发,在SMI中断中,CPU搜集与SMBIOS对应的硬件设备的变化信息;之后在终端设备中热插硬件设备情况下高级配置和电源管理接口(Advanced Configuration and Power ManagementInterface,ACPI)热添加,通知OS有新增的可用的硬件设备;或者在终端在终端设备中热插硬件设备情况下ACPI热移除,通知OS有的硬件设备移除;之后CPU根据硬件设备的变化信息,更新SMBIOS表。
也就是说,在110中,在终端设备启动后,在终端设备中热插或热拔硬件设备后,会触发SMI中断,CPU控制BIOS根据SMI中断获取硬件设备的变化信息。
因此,本发明实施例方法能够动态更新SMBIOS,使得管理软件能够获取最新、最准、最快的信息来进行资源的调配和分配的,同时依赖SMBIOS的第三方软件能够正常运行。
可选地,作为另一实施例,硬件设备可以包括内存板、CPU或快速外围部件互连总线(Peripheral Component Interconnect Express,PCIE)设备等。
可选地,作为另一实施例,在120中,在热插硬件设备后,获取与SMBIOS表对应的增加的硬件设备的信息,
或者,在热拔硬件设备后,获取与SMBIOS表对应的减少的硬件设备的信息。
可选地,作为另一实施例,在110之前,还包括:
将SMBIOS表存储在内存中,其中,SMBIOS表的地址空间为SMBIOS结构表大小与缓冲区(Buffer)值之和。
应理解,Buffer值为系统SMBIOS表(Table)值的最大值与该SMBIOS表的差值。
具体地,图2是根据本发明另一实施例的更新SMBIOS的方法的示意性流程图。如图2所示的方法包括:
230,将SMBIOS表存储在内存中,其中,SMBIOS表的地址空间为SMBIOS结构表大小与缓冲区值之和。
210,在终端设备中热插或热拔硬件设备后,获取与SMBIOS表对应的硬件设备的变化信息。
220,根据硬件设备的变化信息,更新SMBIOS表。
具体地,终端设备在启动时,会建立SMBIOS表;然后将SMBIOS表存储在内存中,在终端设备中热插或热拔硬件设备后,获取与SMBIOS表对应的硬件设备的变化信息;根据硬件设备的变化信息,更新SMBIOS表。
因此,本发明实施例通过在终端设备中热插或热拔硬件设备后,获取与SMBIO表对应的硬件设备的变化信息;根据硬件设备的变化信息,更新SMBIOS表。本发明实施例方法无需重启,能够动态更新SMBIOS,提升用户体验。
应理解,SMBIOS结构表(SMBIOS Type)也可以称为数据表结构,SMBIOS表包括多个SMBIOS结构表。例如,SMBIOS表可以包括以下数据表结构:BIOS信息(Type 0)、系统信息(Type 1)、系统外围或底架(Type 3)、处理器信息(Type 4)、高速缓存信息(Type 7)、系统插槽(Type 9)、物理存储阵列(Type 16)、存储设备(Type 17)、存储阵列映射地址(Type 19)和系统引导信息(Type 32)等。
应理解,210-220与110-120对应,为避免重复,不再赘述。
例如,系统正常开机时,即当用户按了电源按钮(power button)后,系统上电,BIOS开始内存初始化及各种初始化,在进OS前生成SMBIOSTable,最后进入OS。在OS下即在终端设备启动后,当有内存板热插时,会触发SMI中断,BIOS对内存(热插的内存)进行初始化,按照格式搜集内存变化信息;之后,ACPI热添加,通知OS有新增内存可以使用;BIOS根据初始化搜集的变化内存条信息,更新SMBIOS Table类型(Type)17。具体地,存储设备Type 17用于描述物理存储器阵列中的单个存储设备。在物理存储器阵列中的句柄、存储错误信息句柄、存储总宽度、数据宽度、存储容量、形体尺寸、设备集、设备定位器、记忆槽定位器、存储器类型、类型额外细节、速率、制造商、序列号、资产标签、部件号码、属性标志、已扩展的容量和已配置的存储时钟速率。其中,在本发明实施例中,BIOS在对内存条进行初始化的时候,按照下面定义的结构体搜集信息:
typedef struct{
UINT8 Presence;
UINT8 Attributes;
UINT16 TotalWidth;
UINT16 DataWidth;
UINT16 Size;
UINT16 Speed;
UINT16 ClockSpeed;
UINT32 ExtendedSize;
UINT8 *DeviceLoc;
UINT8 *String3;
UINT8 *String4;
UINT8 *String5;
UINT8 *String6;
}TYPE17_INFO_CHG。
之后,BIOS根据初始化搜集的变化内存条信息,更新SMBIOS TableType17。具体地,可以更新SMBIOS table type17中的属性标志(Attributes)、存储总宽度(TotalWidth)、数据宽度(DataWidth)、形体尺寸(Size)、速率(Speed)、时钟速率(ClockSpeed)、已扩展的容量(ExtendedSize)、字符串3(String3)、字符串4(String4)、字符串5(String5)和字符串6(String6)。
进一步地,本发明实施例将获取的SMBIOS表存储在内存中,并设置SMBIOS表的存储地址空间大于SMBIOS表的大小,例如可以为SMBIOS结构表大小与Buffer值之和,即为系统SMBIOS Table(SMBIOS表)值的最大值。本发明实施例通过设置较大的SMBIOS的存储地址,在有硬件设备热插时,更新后的SMBIOS表(大于更新前的SMBIOS表)能够存储在设置的存储地址空间中,可以避免内存溢出。
可选地,作为另一实施例,在120中,根据硬件设备的变化信息,更新SMBIOS表(table)中与硬件设备对应的数据表结构。
进一步地,作为另一实施例,在120中,
解锁存放SMBIOS表的内存地址空间;根据设备变化信息,匹配与设备变化信息对应的数据表结构;根据数据表结构的变化情况,调整SMBIOStable中其他数据表结构的地址;根据匹配结构和设备变化信息,更新SMBIOS table中与硬件设备对应的数据表结构;更新SMBIOS的入口点结构Entry point structure,EPS)的结构表长度(Structure Table Length)和校验和(checkSUM);锁定存放SMBIOS表的内存地址空间。
应理解,在热插设备时,将SMBIOS table中其他数据表结构的地址调整(搬移)到高地址,在热拔设备时,将SMBIOS table中其他数据表结构的地址调整(搬移)到低地址。
可选地,作为另一实施例,硬件设备为内存板,在120中,更新SMBIOStable中与硬件设备对应的类型(Type)17。
进一步地,作为另一实施例,在120中,更新Type17中的属性标志、存储总宽度、数据宽度、形体尺寸、速率、时钟速率、已扩展的容量、字符串3、字符串4、字符串5和字符串6。
例如,在热插内存条后具体地更新SMBIOS的过程为,首先解锁内存地址0xE0000~0xF0000,其中可以通过设置PAM0123和PAM456寄存器进行解锁;然后,BIOS根据热插内存初始化搜集的TYPE17_INFO_CHG的信息中的DeviceLoc做匹配找到当前对应的Type17;再后,根据需填充最新信息的Type17大小与旧Type17大小差异,在内存中调整其他SMBIOS type的位置,由于本发明实施例中为热插内存条,所以往高地址搬移其他SMBIOStype的位置;再后,根据匹配关系,按照TYPE17_INFO_CHG更新Type17;更新SMBIOS入口点结构(Entry point structure,EPS)的结构表长度(Structure Table Length);更新SMBIOS EPS的校验和(checksum);最后,锁定内存地址0xE0000~0xF0000,完成SMBIOS的更新。
上文中,结合图1至图2描述了本发明实施例的更新SMBIOS的方法,下面结合图3和图4的具体例子详细描述本发明实施例的更新SMBIOS的方法。
图3是根据本发明另一实施例的更新SMBIOS的方法的示意性流程图。图3所示的方法中为热插内存条时更新SMBIOS的情形。具体地,如图3所示的方法,包括:
310,上电自检。
换句话说,系统正常开机时,系统上电,进行上电自检(Power On Self Test,POST),或者为BIOS启动(START UP)。
320,内存初始化。
具体地,BIOS开始内存初始化及其他设备的初始化。
330,生成SMBIOS表。
具体地,在初始化后,生成SMBIOS表(SMBIOS Table),并将SMBIOS表存储在内存中,并设置SMBIOS表的存储地址大于SMBIOS Table的大小,例如可以为SMBIOS Table大小与Buffer值之和,或者为系统SMBIOS Table值的最大值。本发明实施例通过设置较大的SMBIOS的存储地址,在有内存条热插时,更新后的SMBIOS表(大于更新前的SMBIOS)能够存储在设置的存储地址空间中,可以避免内存溢出。
340,进入操作系统。
具体地,在生成SMBIOS Table之后,进如操作系统(Operation System,OS)。
350,内存板热插。
具体地,内存板热插,触发SMI中断,之后进行后续步骤。
360,上电,内存初始化。
具体地,热插的内存板上电,BIOS对内存进行初始化,按照格式搜集内存变化信息。具体搜集SMBIOS Type17中的属性标志、存储总宽度、数据宽度、形体尺寸、速率、时钟速率、已扩展的容量、字符串3、字符串4、字符串5和字符串6。
370,高级配置和电源管理接口(Advanced Configuration and PowerManagement Interface,ACPI)热添加。
具体地,ACPI热添加,通知OS有新增内存可以使用。
380,SMBIOS更新。
具体地,BIOS根据初始化搜集的变化内存条信息,更新SMBIOS TableType17,具体更新SMBIOS Type17中的属性标志、存储总宽度、数据宽度、形体尺寸、速率、时钟速率、已扩展的容量、字符串3、字符串4、字符串5和字符串6。
进一步地,首先解锁内存地址0xE0000~0xF0000,其中可以通过设置PAM0123和PAM456寄存器进行解锁;然后,BIOS根据热插内存初始化搜集的TYPE17_INFO_CHG的信息中的DeviceLoc做匹配找到当前对应的Type17;再后,根据需填充最新信息的Type17大小与旧Type17大小差异,在内存中调整其他SMBIOS type的位置,由于本发明实施例中为热插内存条,所以往高地址搬移其他SMBIOS type的位置;再后,根据匹配关系,按照TYPE17_INFO_CHG更新Type17;更新SMBIOS的入口点结构(Entry pointstructure,EPS)的结构表长度(Structure Table Length);更新SMBIOS EPS中的校验和(checksum);最后,锁定内存地址0xE0000~0xF0000,完成SMBIOS的更新。
390,结束。
因此,本发明实施例通过在终端设备中热插或热拔硬件设备后,获取与SMBIO表对应的硬件设备的变化信息;根据硬件设备的变化信息,更新SMBIOS表。本发明实施例方法无需重启,能够动态更新SMBIOS,提升用户体验。
图4是根据本发明另一实施例的更新SMBIOS的方法的示意性流程图。图4所示的方法中为热拔内存条时更新SMBIOS的情形。具体地,如图4所示的方法,包括:
410,上电自检。
换句话说,系统正常开机时,系统上电,进行上电自检(Power On Self Test,POST),或者为BIOS STARTUP。
420,内存初始化。
具体地,BIOS开始内存初始化及其他设备的初始化。
430,生成SMBIOS表。
具体地,在初始化后,生成SMBIOS表(SMBIOS Table),并将SMBIOS表存储在内存中。
440,进入操作系统。
具体地,在生成BIOS Table之后,进入操作系统(Operation System,OS)。
450,内存板热拔。
具体地,内存板热拔,触发SMI中断,之后进行后续步骤。
460,内存板寄存器设置,下电。
具体地,将热拔的内存板下电,BIOS对内存进行初始化,按照格式搜集内存变化信息。具体搜集SMBIOS Type17中的属性标志、存储总宽度、数据宽度、形体尺寸、速率、时钟速率、已扩展的容量、字符串4、字符串4、字符串5和字符串6。
470,ACPI热移除。
具体地,ACPI热添加,通知OS有内存移除。
480,SMBIOS更新。
具体地,BIOS根据初始化搜集的变化内存条信息,更新SMBIOS TableType17,具体更新SMBIOS Type17中的属性标志、存储总宽度、数据宽度、形体尺寸、速率、时钟速率、已扩展的容量、字符串3、字符串4、字符串5和字符串6。
进一步地,首先解锁内存地址0xE0000~0xF0000,其中可以通过设置PAM0123和PAM456寄存器进行解锁;然后,BIOS根据热拔内存初始化搜集的TYPE17_INFO_CHG的信息中的DeviceLoc做匹配找到当前对应的Type17;再后,根据需减少最新信息的Type17大小与旧Type17大小差异,在内存中调整其他SMBIOS type的位置,由于本发明实施例中为热拔内存条,所以往低地址搬移其他SMBIOS type的位置;再后,根据匹配关系,按照TYPE17_INFO_CHG更新Type17;更新SMBIOS的入口点结构(Entry pointstructure,EPS)的结构表长度(Structure Table Length);更新SMBIOS EPS中的校验和(checksum);最后,锁定内存地址0xE0000~0xF0000,完成SMBIOS的更新。
490,结束。
因此,本发明实施例通过在终端设备中热插或热拔硬件设备后,获取与SMBIO表对应的硬件设备的变化信息;根据硬件设备的变化信息,更新SMBIOS表。本发明实施例方法无需重启,能够动态更新SMBIOS,提升用户体验。
应理解,图3和图4的例子是为了帮助本领域技术人员更好地理解本发明实施例,而非要限制本发明实施例的范围。本领域技术人员根据所给出的图3和图4的例子,显然可以进行各种等价的修改或变化,这样的修改或变化也落入本发明实施例的范围内。
例如,图3和图4中仅示出了热插拔内存板的更新SMBIOS的例子,本发明实施例的方法还可以应用于进行热插拔CPU或PCIE设备的情形中,在进行热插拔CPU更新SMBIOS时与图3或图4的例子类似,区别在于在热插拔CPU时更新的是SMBIOS中的Type4等。为避免重复,不再进行详述。
应理解,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
上文中结合图1至图4详细描述了本发明实施例的更新SMBIOS的方法,下面将结合图5和图6详细描述本发明实施例中的终端设备。
图5是根据本发明一个实施例的终端设备的示意框图。图5所示的终端设备可以为个人计算机、服务器、Pad、便携式、袖珍式、手持式、计算机内置的或者车载的移动装置等。如图5所示的终端设备500包括:获取单元510和更新单元520。
具体地,获取单元510用于在终端设备中热插或热拔硬件设备后,获取与SMBIOS表对应的硬件设备的变化信息;更新单元520用于根据硬件设备的变化信息,更新SMBIOS表。
因此,本发明实施例通过在终端设备中热插或热拔硬件设备后,获取与SMBIO表对应的硬件设备的变化信息;根据硬件设备的变化信息,更新SMBIOS表。本发明实施例方法无需重启,能够动态更新SMBIOS,提升用户体验。
可选地,作为另一实施例,硬件设备包括:内存板、CPU或PCIE设备。
可选地,作为另一实施例,获取单元510在热插硬件设备后,获取与SMBIOS表对应的增加的硬件设备的信息,或者,在热拔硬件设备后,获取与SMBIOS表对应的减少的硬件设备的信息。
可选地,作为另一实施例,该终端设备500还包括:存储单元。具体地,存储单元用于将SMBIOS表存储在内存中,其中,SMBIOS表的地址空间为SMBIOS结构表大小与缓冲区值之和。
可选地,作为另一实施例,更新单元520根据硬件设备的变化信息,更新SMBIOS表中与硬件设备对应的数据表结构。
进一步地,作为另一实施例,更新单元520解锁存放SMBIOS表的内存地址空间;根据设备变化信息,匹配与设备变化信息对应的数据表结构;根据数据表结构的变化情况,调整SMBIOS表中其他数据表结构的地址;根据匹配结构和设备变化信息,更新SMBIOS表中与硬件设备对应的数据表结构;更新SMBIOS的EPS的结构表长度和校验和;锁定存放SMBIOS表的内存地址空间。
可选地,作为另一实施例,硬件设备为内存板,更新单元520更新SMBIOS表中与硬件设备对应的类型17。
进一步地,作为另一实施例,更新单元520更新类型17中的属性标志、存储总宽度、数据宽度、形体尺寸、速率、时钟速率、已扩展的容量、字符串3、字符串4、字符串5和字符串6。
应注意,图5所示的终端设备能够实现图1-图4的方法实施例中的各个过程。终端设备500的其他功能和操作可以参考图1-图4的方法实施例中的各个过程。为避免重复,此处不再详述。
图6是根据本发明另一实施例的终端设备的示意框图。图6所示的终端设备可以为个人计算机、服务器、Pad、便携式、袖珍式、手持式、计算机内置的或者车载的移动装置等。如图6所示的终端设备600包括:处理器610、存储器620和总线系统630。
具体地,处理器610通过总线系统630调用存储在存储器620中的代码,在终端设备中热插或热拔硬件设备后,获取与SMBIOS表对应的硬件设备的变化信息;根据硬件设备的变化信息,更新SMBIOS表。
因此,本发明实施例通过在终端设备中热插或热拔硬件设备后,获取与SMBIO表对应的硬件设备的变化信息;根据硬件设备的变化信息,更新SMBIOS表。本发明实施例方法无需重启,能够动态更新SMBIOS,提升用户体验。
上述本发明实施例揭示的方法可以应用于处理器610中,或者由处理器610实现。处理器610可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器610中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器610可以是通用处理器、数字信号处理器(英文Digital Signal Processor,简称DSP)、专用集成电路(英文Application Specific Integrated Circuit,简称ASIC)、现成可编程门阵列(英文Field Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存取存储器(英文RandomAccess Memory,简称RAM)、闪存、只读存储器(英文Read-Only Memory,简称ROM)、可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器620,处理器610读取存储器620中的信息,结合其硬件完成上述方法的步骤,该总线系统630除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统630。
可选地,作为另一实施例,硬件设备包括:内存板、CPU或PCIE设备。
可选地,作为另一实施例,处理器610在热插硬件设备后,获取与SMBIOS表对应的增加的硬件设备的信息,或者,在热拔硬件设备后,获取与SMBIOS表对应的减少的硬件设备的信息。
可选地,作为另一实施例,处理器610将SMBIOS表存储在内存中,其中,SMBIOS表的地址空间为SMBIOS结构表大小与缓冲区值之和。
可选地,作为另一实施例,处理器610根据硬件设备的变化信息,更新SMBIOS表中与硬件设备对应的数据表结构。
进一步地,作为另一实施例,处理器610解锁存放SMBIOS表的内存地址空间;根据设备变化信息,匹配与设备变化信息对应的数据表结构;根据数据表结构的变化情况,调整SMBIOS表中其他数据表结构的地址;根据匹配结构和设备变化信息,更新SMBIOS表中与硬件设备对应的数据表结构;更新SMBIOS的EPS的结构表长度和校验和;锁定存放SMBIOS表的内存地址空间。
可选地,作为另一实施例,硬件设备为内存板,处理器610更新SMBIOS表中与硬件设备对应的类型17。
进一步地,作为另一实施例,处理器610更新类型17中的属性标志、存储总宽度、数据宽度、形体尺寸、速率、时钟速率、已扩展的容量、字符串3、字符串4、字符串5和字符串6。
应注意,图6所示的终端设备600与图5所示的终端设备500相对应,能够实现图1-图4的方法实施例中的各个过程。终端设备600的其他功能和操作可以参考图1-图4的方法实施例中的各个过程。为避免重复,此处不再详述。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
另外,本文中术语“系统”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
应理解,在本发明实施例中,“与A相应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可以用硬件实现,或固件实现,或它们的组合方式来实现。当使用软件实现时,可以将上述功能存储在计算机可读介质中或作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是计算机能够存取的任何可用介质。以此为例但不限于:计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质。此外。任何连接可以适当的成为计算机可读介质。例如,如果软件是使用同轴电缆、光纤光缆、双绞线、数字用户线(DSL)或者诸如红外线、无线电和微波之类的无线技术从网站、服务器或者其他远程源传输的,那么同轴电缆、光纤光缆、双绞线、DSL或者诸如红外线、无线和微波之类的无线技术包括在所属介质的定影中。如本发明所使用的,盘(Disk)和碟(disc)包括压缩光碟(CD)、激光碟、光碟、数字通用光碟(DVD)、软盘和蓝光光碟,其中盘通常磁性的复制数据,而碟则用激光来光学的复制数据。上面的组合也应当包括在计算机可读介质的保护范围之内。
总之,以上所述仅为本发明技术方案的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (16)
1.一种更新SMBIOS的方法,其特征在于,所述方法应用于终端设备启动之后,所述方法包括:
在所述终端设备中热插或热拔硬件设备后,获取与SMBIOS表对应的所述硬件设备的变化信息;
根据所述硬件设备的变化信息,更新所述SMBIOS表。
2.根据权利要求1所述的方法,其特征在于,所述硬件设备包括:
内存板、CPU或快速外围部件互连总线PCIE设备。
3.根据权利要求1或2所述的方法,其特征在于,所述获取与SMBIOS表对应的所述硬件设备的变化信息,包括:
在热插所述硬件设备后,获取与所述SMBIOS表对应的增加的所述硬件设备的信息,
或者,在热拔所述硬件设备后,获取与所述SMBIOS表对应的减少的所述硬件设备的信息。
4.根据权利要求1至3中任一项所述的方法,其特征在于,还包括:
将所述SMBIOS表存储在内存中,其中,所述SMBIOS表的地址空间为SMBIOS结构表大小与缓冲区值之和。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述根据所述硬件设备的变化信息,更新所述SMBIOS表,包括:
根据所述硬件设备的变化信息,更新SMBIOS表中与所述硬件设备对应的数据表结构。
6.根据权利要求5所述的方法,其特征在于,所述根据所述设备变化信息,更新SMBIOS表中与所述硬件设备对应的数据表结构,包括:
解锁存放所述SMBIOS表的内存地址空间;
根据所述设备变化信息,匹配与所述设备变化信息对应的数据表结构;
根据所述数据表结构的变化情况,调整所述SMBIOS表中其他数据表结构的地址;
根据匹配结构和所述设备变化信息,更新SMBIOS表中与所述硬件设备对应的数据表结构;
更新SMBIOS的入口点结构EPS的结构表长度和校验和;
锁定存放所述SMBIOS表的内存地址空间。
7.根据权利要求6所述的方法,其特征在于,所述硬件设备为内存板,所述更新SMBIOS表中与所述硬件设备对应的数据表结构,包括:
更新SMBIOS表中与所述硬件设备对应的类型17。
8.根据权利要求7所述的方法,其特征在于,所述更新SMBIOS表中与所述硬件设备对应的类型17,包括:
更新所述类型17中的属性标志、存储总宽度、数据宽度、形体尺寸、速率、时钟速率、已扩展的容量、字符串3、字符串4、字符串5和字符串6。
9.一种终端设备,其特征在于,包括:
获取单元,用于在所述终端设备中热插或热拔硬件设备后,获取与SMBIOS表对应的所述硬件设备的变化信息;
更新单元,用于根据所述硬件设备的变化信息,更新所述SMBIOS表。
10.根据权利要求9所述的终端设备,其特征在于,所述硬件设备包括:
内存板、CPU或PCIE设备。
11.根据权利要求9或10所述的终端设备,其特征在于,所述获取单元在热插所述硬件设备后,获取与所述SMBIOS表对应的增加的所述硬件设备的信息,或者,在热拔所述硬件设备后,获取与所述SMBIOS表对应的减少的所述硬件设备的信息。
12.根据权利要求9至11中任一项所述的终端设备,其特征在于,还包括:
存储单元,用于将所述SMBIOS表存储在内存中,其中,所述SMBIOS表的地址空间为SMBIOS结构表大小与缓冲区值之和。
13.根据权利要求9至12中任一项所述的终端设备,其特征在于,所述更新单元根据所述硬件设备的变化信息,更新SMBIOS表中与所述硬件设备对应的数据表结构。
14.根据权利要求13所述的终端设备,其特征在于,所述更新单元解锁存放所述SMBIOS表的内存地址空间;根据所述设备变化信息,匹配与所述设备变化信息对应的数据表结构;根据所述数据表结构的变化情况,调整所述SMBIOS表中其他数据表结构的地址;根据匹配结构和所述设备变化信息,更新SMBIOS表中与所述硬件设备对应的数据表结构;更新SMBIOS的EPS的结构表长度和校验和;锁定存放所述SMBIOS表的内存地址空间。
15.根据权利要求14所述的终端设备,其特征在于,所述硬件设备为内存板,所述更新单元更新SMBIOS表中与所述硬件设备对应的类型17。
16.根据权利要求15所述的终端设备,其特征在于,所述更新单元更新所述类型17中的属性标志、存储总宽度、数据宽度、形体尺寸、速率、时钟速率、已扩展的容量、字符串3、字符串4、字符串5和字符串6。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510112295.6A CN104679566B (zh) | 2015-03-13 | 2015-03-13 | 更新smbios的方法和终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510112295.6A CN104679566B (zh) | 2015-03-13 | 2015-03-13 | 更新smbios的方法和终端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104679566A true CN104679566A (zh) | 2015-06-03 |
CN104679566B CN104679566B (zh) | 2018-12-25 |
Family
ID=53314663
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510112295.6A Active CN104679566B (zh) | 2015-03-13 | 2015-03-13 | 更新smbios的方法和终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104679566B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107193599A (zh) * | 2017-05-23 | 2017-09-22 | 郑州云海信息技术有限公司 | 一种动态更新smbios中系统插槽信息的方法 |
CN108363673A (zh) * | 2018-02-28 | 2018-08-03 | 郑州云海信息技术有限公司 | 设置pcie热插拔设备传输负载的方法、装置及设备 |
CN112394963A (zh) * | 2020-11-27 | 2021-02-23 | 中电科技(北京)有限公司 | 更新国产平台smbios的方法和bios |
CN113064617A (zh) * | 2021-03-30 | 2021-07-02 | 山东英信计算机技术有限公司 | 一种进行smbios信息更新的方法、系统及存储介质 |
CN114064133A (zh) * | 2021-11-02 | 2022-02-18 | 联想(北京)有限公司 | 一种硬件信息处理方法、装置及存储系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101140535A (zh) * | 2006-09-08 | 2008-03-12 | 鸿富锦精密工业(深圳)有限公司 | 防止bios芯片数据丢失的方法 |
-
2015
- 2015-03-13 CN CN201510112295.6A patent/CN104679566B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101140535A (zh) * | 2006-09-08 | 2008-03-12 | 鸿富锦精密工业(深圳)有限公司 | 防止bios芯片数据丢失的方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107193599A (zh) * | 2017-05-23 | 2017-09-22 | 郑州云海信息技术有限公司 | 一种动态更新smbios中系统插槽信息的方法 |
CN108363673A (zh) * | 2018-02-28 | 2018-08-03 | 郑州云海信息技术有限公司 | 设置pcie热插拔设备传输负载的方法、装置及设备 |
CN112394963A (zh) * | 2020-11-27 | 2021-02-23 | 中电科技(北京)有限公司 | 更新国产平台smbios的方法和bios |
CN112394963B (zh) * | 2020-11-27 | 2023-06-09 | 昆仑太科(北京)技术股份有限公司 | 更新国产平台smbios的方法和bios装置 |
CN113064617A (zh) * | 2021-03-30 | 2021-07-02 | 山东英信计算机技术有限公司 | 一种进行smbios信息更新的方法、系统及存储介质 |
CN113064617B (zh) * | 2021-03-30 | 2023-10-03 | 山东英信计算机技术有限公司 | 一种进行smbios信息更新的方法、系统及存储介质 |
CN114064133A (zh) * | 2021-11-02 | 2022-02-18 | 联想(北京)有限公司 | 一种硬件信息处理方法、装置及存储系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104679566B (zh) | 2018-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106557340B (zh) | 一种配置方法及装置 | |
CN104679566A (zh) | 更新smbios的方法和终端设备 | |
CN104185836A (zh) | 用于在系统改变之后验证计算设备的适当操作的方法和系统 | |
CN103793256A (zh) | 管理存储卡的方法以及电子设备 | |
JPWO2014199678A1 (ja) | コンフィグレーション制御システム及びコンフィグレーション制御方法 | |
CN110119623A (zh) | 一种利用tpcm实现固件主动度量的可信主板实现方法 | |
CN109451098A (zh) | Fpga加速卡mac地址配置方法、装置及加速卡 | |
CN110780908A (zh) | 屏幕显示程序升级方法、系统及终端设备 | |
CN111159090B (zh) | 一种信息处理方法、装置和电子设备 | |
US20230198775A1 (en) | Memory device with secure boot updates and self-recovery | |
CN107667346B (zh) | 用于基于熔断的固件块分派的设备、方法和系统 | |
US20140095859A1 (en) | Apparatus and method for managing register information in a processing system | |
CN108156310A (zh) | 一种指纹处理的方法和系统、终端设备及计算机可读介质 | |
US8589906B2 (en) | Software update method for display device | |
CN110741359B (zh) | 改变共享总线上集成电路的从属标识的系统和方法 | |
CN110119625A (zh) | 一种可信计算方法 | |
EP4064041A1 (en) | Platform hardening for bootloaders via reference firmware | |
CN108052337A (zh) | 一种eMMC量产工具的固件升级方法及装置 | |
CN110119624A (zh) | 一种安全度量方法 | |
US11068276B2 (en) | Controlled customization of silicon initialization | |
CN108595090A (zh) | 一种信息处理方法及电子设备 | |
CN114443150B (zh) | 交换机出厂信息同步方法、系统、终端及存储介质 | |
CN107621997A (zh) | 一种处理方法及装置 | |
CN110119638A (zh) | 一种可信度量方法 | |
CN113064603A (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 |