固件版本切换方法、电子设备和BIOS芯片与流程

文档序号:14609181发布日期:2018-06-05 20:27阅读:486来源:国知局
固件版本切换方法、电子设备和BIOS芯片与流程

本公开涉及一种固件版本切换方法、电子设备和BIOS芯片。



背景技术:

随着电子技术的不断发展,电子设备中的芯片版本也随之升级。然而,不同版本的芯片在实际应用过程中可能遇到各种兼容性的问题。以TPM(Trusted Platform Module)安全芯片为例,目前通常以TPM2.0作为标准配置,然而TPM2.0芯片只能在win7 x64或者win 8及以上版本的操作系统中使用,如果用户想要使用win 7 x32的操作系统,则会导致TPM2.0芯片无法工作。



技术实现要素:

本公开的一个方面提供了一种固件版本切换方法,应用于电子设备,所述电子设备上存储第一芯片的至少两个固件版本的信息,所述方法包括,所述至少两个固件版本中确定一个固件版本作为特定版本,以及执行刷新指令,用于将所述特定版本的信息写入所述第一芯片。

可选地,所述从所述至少两个固件版本中确定一个固件版本作为特定版本包括,获取系统版本信息,以及基于所述系统版本信息,从所述至少两个固件版本中确定一个与所述系统版本信息对应的固件版本作为特定版本。

可选地,所述获取系统版本信息包括,基于系统的分区格式,确定系统版本信息。

可选地,所述从所述至少两个固件版本中确定一个固件版本作为特定版本包括,对用户进行鉴权,以及在所述鉴权通过后,基于用户的输入,从所述至少两个固件版本中确定一个固件版本作为特定版本。

可选地,一种固件版本切换方法,还包括,在所述刷新指令执行失败时,判断当前所述刷新指令已执行的次数,以及在所述次数小于预设值时,再次执行所述刷新指令。

可选地,一种固件版本切换方法,还包括,在所述刷新指令执行成功时,配置所述第一芯片的基本信息。

可选地,在所述电子设备满足预设条件时,配置所述第一芯片的存储空间。

可选地,所述第一芯片的至少两个固件版本的信息存储于BIOS芯片上。

本公开的另一个方面提供了一种固件版本切换系统,包括确定模块和执行模块。确定模块,用于从所述至少两个固件版本中确定一个固件版本作为特定版本。执行模块,用于执行刷新指令,用于将所述特定版本的信息写入所述第一芯片。

本公开的另一个方面提供了一种电子设备,包括第一芯片,处理器,以及存储介质,用于存储所述第一芯片的至少两个固件版本的信息,以及计算机可读指令,所述计算机可读指令在被所述处理器执行时,使所述处理器执行上述任意一项所述的方法。

本公开的另一个方面提供了一种BIOS芯片,其上存储有第一芯片的至少两个固件版本的信息。

本公开的另一方面提供了一种非易失性存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。

本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。

附图说明

为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:

图1示意性示出了根据本公开实施例的固件版本切换方法的应用场景;

图2示意性示出了根据本公开实施例的固件版本切换方法的流程图;

图3示意性示出了根据本公开实施例的从至少两个固件版本中确定一个固件版本作为特定版本的流程图;

图4示意性示出了根据本公开另一实施例的从至少两个固件版本中确定一个固件版本作为特定版本的流程图;

图5示意性示出了根据本公开另一实施例的固件版本切换方法的流程图;

图6示意性示出了根据本公开实施例的固件版本切换系统的框图;

图7示意性示出了根据本公开实施例的确定模块的框图;

图8示意性示出了根据本公开另一实施例的确定模块的框图;

图9示意性示出了根据本公开另一实施例的固件版本切换系统的框图;以及

图10示意性示出了根据本公开实施例的电子设备的框图。

具体实施方式

以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。

在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。

在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。

在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。本领域技术人员还应理解,实质上任意表示两个或更多可选项目的转折连词和/或短语,无论是在说明书、权利要求书还是附图中,都应被理解为给出了包括这些项目之一、这些项目任一方、或两个项目的可能性。例如,短语“A或B”应当被理解为包括“A”或“B”、或“A和B”的可能性。

附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。

因此,本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。在本公开的上下文中,计算机可读介质可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,计算机可读介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。计算机可读介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。

本公开的实施例提供了一种固件版本切换方法,该方法通过集成两种版本信息,而为芯片的固件版本切换提供可能。

图1示意性示出了根据本公开实施例的固件版本切换方法的应用场景。

如图1所示,芯片的不同固件版本可能会存在兼容性的问题。以TPM(Trusted Platform Module)安全芯片为例,TPM安全芯片是一种符合可信赖平台模块标准的安全芯片,能够有效保护计算机,防止非法用户访问。该芯片目前通常以TPM 2.0版本作为标准配置,然而TPM 2.0芯片只能在win7 x64或者win8及以上版本的操作系统中使用,如果用户想要使用win7 x32的操作系统,则会导致TPM 2.0芯片无法工作。目前,为了使win7 x32的系统能够使用TPM 1.2,需要在设备出厂前选择并设置完成,出厂后用户将无法更改TPM的版本,如果用户在使用过程中升级了系统,并希望使用TPM 2.0版本,则只能通过更换主板来实现。或者,用户将原win8的系统重装为win7 x32,并希望能够使用TPM的功能,也只能通过更换带有TPM 1.2的芯片的主板。

图2示意性示出了根据本公开实施例的固件版本切换方法的流程图。

如图2所示,该方法应用于电子设备,所述电子设备上存储第一芯片的至少两个固件版本的信息,该方法包括操作S210和S220。

在操作S210,从所述至少两个固件版本中确定一个固件版本作为特定版本。

在操作S220,执行刷新指令,用于将所述特定版本的信息写入所述第一芯片。

该方法可以灵活地切换第一芯片的固件版本,提高电子设备灵活性和适用性。在生产过程中,无需确定用户使用的系统类型,也减少了配置的过程。另一方面,在用户角度,可以灵活选用合适的版本,不会出现缺少数据的情况。

根据本公开实施例,所述第一芯片可以是附加在电子设备上的各种芯片,例如上述TPM安全芯片,但本公开实施例并不局限于此。

根据本公开实施例,第一芯片至少包括两个以上的固件版本,可以根据需要选择合适的版本使用。这些固件版本的信息存储于电子设备中,以便在切换版本时,使用这些信息刷新所述第一芯片。

根据本公开实施例,在操作S210,从所述至少两个固件版本中确定一个固件版本作为特定版本。该选择可以是根据系统兼容性考虑的,例如,TPM 2.0版本不能用于win7 x32,也可以是根据用户喜好进行选择的,例如,在win10系统中,用户仍然希望使用TPM 1.2版本。

下面结合图3,对本公开一些实施例中的操作S210进行说明。

图3示意性示出了根据本公开实施例的从至少两个固件版本中确定一个固件版本作为特定版本的流程图。

如图3所示,该方法包括操作S310和S320。

在操作S310,获取系统版本信息。

在操作S320,基于所述系统版本信息,从所述至少两个固件版本中确定一个与所述系统版本信息对应的固件版本作为特定版本。

根据本公开一些实施例,在系统启动的状态下,可以直接读取当前系统的版本信息,并基于所述系统版本信息,从所述至少两个固件版本中确定一个与所述系统版本信息对应的固件版本作为特定版本。

例如,对于TPM 1.2版本和TPM 2.0版本,如果读取到当前系统的版本为win7x32,则基于兼容性的考虑,只能确定TPM 1.2版本作为特定版本使用。

根据本公开实施例,若该第一芯片的设置需要在电子设备启动时完成,还可以首先将读取的该系统版本信息存入非易失性存储介质,然后重启系统。在系统重启时,基于所述系统版本信息,从所述至少两个固件版本中确定一个与所述系统版本信息对应的固件版本作为特定版本。

根据本公开实施例,所述获取系统版本信息包括基于系统的分区格式,确定系统版本信息。

具体地,系统的分区格式例如可以是MBR(Master Boot Record,主引导记录)的硬盘分区或者GPT(GUID Partion Table,GUID磁碟分割表,其中GUID为Globally Unique Identifier,全局唯一标识符)的硬盘分区。由于在win7系统下默认使用MBR的硬盘分区,而在更高的系统上默认使用GPT的硬盘分区,因此可以通过判断是否是GPT的硬盘分区来初步判断是否使用TPM 2.0版本。若系统使用的MBR的硬盘分区,则需要进一步判断系统是否是win7 x64,在是的情况下,使用TPM 2.0版本,否则使用TPM 1.2版本。

根据本公开实施例,UEFI(Unified Extensible Firmware Interface,统一的可扩展固件接口)引导必须在GPT的分区格式下使用,因此,还可以在电子设备启动时通过是否是UEFI引导来判断是否是GPT的硬盘分区。

该方法可以根据系统版本信息自动地确定一个固件版本写入第一芯片,简化用户操作,提高用户体验。

根据本公开另一些实施例,可以根据用户喜好选择第一芯片的固件版本。下面结合图4,对本公开另一些实施例中的操作S210进行说明。

图4示意性示出了根据本公开另一实施例的从至少两个固件版本中确定一个固件版本作为特定版本的流程图。

如图4所示,该方法包括操作S410和S420。

在操作S410,对用户进行鉴权。

在操作S420,在所述鉴权通过后,基于用户的输入,从所述至少两个固件版本中确定一个固件版本作为特定版本。

根据本公开实施例,电子设备还可以提供主动选择第一芯片的固件版本的方式。例如,在开机启动时,提示用户进行选择。由于该内容需要本领域专业人员进行设置,由普通用户设置可能由于系统不兼容,或者其他原因导致系统错误,因此,在用户输入前,可以包括对用户鉴权的过程。在用户鉴权通过时,才允许根据用户的输入,从所述至少两个固件版本中确定一个固件版本作为特定版本。该方法为特定人员提供主动选择的方式。

图5示意性示出了根据本公开另一实施例的固件版本切换方法的流程图。

如图5所示,该方法包括操作S210、S220以及S510~S550。其中,操作S210和S220与图2所示意的实施例相似,此处不再赘述。

在操作S510,判断刷新指令是否执行成功,在执行成功的情况下,执行操作S520,否则执行操作S530。

根据本公开实施例,由于一些不可预测的原因,刷新指令执行时,可能不能成功刷新第一芯片的固件版本。因此,在操作S510,判断刷新指令是否执行成功。

在操作S520,配置所述第一芯片的基本信息。根据本公开实施例,在所述电子设备满足预设条件时,配置所述第一芯片的存储空间。该方法能够根据某些特定电子设备的需要,配置对所述第一芯片的存储空间。

根据本公开实施例,第一芯片在固件版本刷新后,不能直接使用,而是需要对更新后的版本进行相应的配置,例如配置TPM芯片所在的总线类型(LPC/SPI/I2C)以及各种模式(FIPS,lowpower)等。特别地,在一些特定机型上,可能还需要针对性地进行个性化配置,例如对TPM的NVRAM存储空间的配置等。该方法可以在刷新成功后,自动地对第一芯片进行配置。

在操作S530,判断当前所述刷新指令已执行的次数是否超过预设值,若未超过预设值,则执行操作S540,否则执行操作S550。

由于芯片的固件版本刷新寿命有限,即当芯片的固件的刷新次数超过一定阈值时,芯片很可能会发生硬件上的损坏而导致不能使用,因此,需要控制刷新次数。例如,第一芯片在刷新128次后很可能损坏,可以设置每一次更改固件版本信息时的最大刷新次数为5次。因此,在操作S530时,可以判断当前所述刷新指令已执行的次数是否超过5次,如果超过,若未超过5次,则执行操作S540,否则执行操作S550。

在操作S540,再次执行所述刷新指令。根据本公开实施例,例如在未超过5次的情况下,允许电子设备再次执行所述刷新指令,尝试刷新第一芯片的固件版本。

在操作S550,返回错误信息,流程结束。根据本公开实施例,若本次更改版本时已经超过了规定的5次刷新,则返回错误信息,停止刷新,请电子设备或用户检查原因,避免在出现错误时,不断地刷新固件而导致迅速损坏。该方法通过限制每次更改版本时的刷新次数,保证了芯片的使用寿命。

根据本公开实施例,所述第一芯片的至少两个固件版本的信息存储于BIOS芯片上。

根据本公开实施例,由于固件版本的信息存储于BIOS芯片上,因此,电子设备在开机启动时就能够刷新第一芯片的固件版本,刷新之后即可进行配置并生效,避免了在选择版本后,还需要重新启动系统,完成版本更新的过程。

图6示意性示出了根据本公开实施例的固件版本切换系统600的框图。

如图6所示,固件版本切换系统600包括确定模块610和执行模块620。

确定模块610,例如执行上述参考图2描述的操作S210,用于从所述至少两个固件版本中确定一个固件版本作为特定版本。

执行模块620,例如执行上述参考图2描述的操作S220,用于执行刷新指令,用于将所述特定版本的信息写入所述第一芯片。

图7示意性示出了根据本公开实施例的确定模块610的框图。

如图7所示,确定模块610包括获取子模块710和第一确定子模块720。

获取子模块710,例如执行上述参考图3描述的操作S310,用于获取系统版本信息。

第一确定子模块720,例如执行上述参考图3描述的操作S320,用于基于所述系统版本信息,从所述至少两个固件版本中确定一个与所述系统版本信息对应的固件版本作为特定版本。

图8示意性示出了根据本公开另一实施例的确定模块610的框图。

如图8所示,确定模块610包括鉴权子模块810和第二确定子模块820。

鉴权子模块810,例如执行上述参考图4描述的操作S410,用于对用户进行鉴权。

第二确定子模块820,例如执行上述参考图4描述的操作S420,用于在所述鉴权通过后,基于用户的输入,从所述至少两个固件版本中确定一个固件版本作为特定版本。

图9示意性示出了根据本公开另一实施例的固件版本切换系统900的框图。

如图9所示,该固件版本切换系统包括确定模块610、执行模块620、第一判断模块910、配置模块920、第二判断模块930、控制模块940以及提示模块950。其中,确定模块610和执行模块620与图6~图8所示意实施例相似,此处不再赘述。

第一判断模块910,例如执行上述参考图5描述的操作S510,用于判断刷新指令是否执行成功。

配置模块920,例如执行上述参考图5描述的操作S520,用于配置所述第一芯片的基本信息。

第二判断模块930,例如执行上述参考图5描述的操作S530,用于判断当前所述刷新指令已执行的次数是否超过预设值。

控制模块940,例如执行上述参考图5描述的操作S540,用于再次执行所述刷新指令。

提示模块950,例如执行上述参考图5描述的操作S550,用于返回错误信息。

可以理解的是,上述模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本发明的实施例,上述模块中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以以对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式的适当组合来实现。或者,上述模块中的至少一个可以至少被部分地实现为计算机程序模块,当该程序被计算机运行时,可以执行相应模块的功能。

图10示意性示出了根据本公开实施例的电子设备的框图。

如图10所示,电子设备1000包括处理器1010和计算机可读存储介质1020该电子设备1000可以执行上面参考图2~图5描述的方法,以灵活地切换第一芯片的固件版本,提高电子设备灵活性和适用性。

具体地,处理器1010例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器1010还可以包括用于缓存用途的板载存储器。处理器1010可以是用于执行参考图2~图5描述的根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。

可读存储介质1020,例如可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,可读存储介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。可读存储介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。

可读存储介质1020可以包括计算机程序1021,该计算机程序1021可以包括代码/计算机可执行指令,其在由处理器1010执行时使得处理器1010执行例如上面结合图2~图5所描述的方法流程及其任何变形。

计算机程序1021可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序1021中的代码可以包括一个或多个程序模块,例如包括1021A、模块1021B、……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器1010执行时,使得处理器1010可以执行例如上面结合图2~图5所描述的方法流程及其任何变形。

根据本公开的实施例,处理器1010可以执行上面结合图2~图5所描述的方法流程及其任何变形。

根据本发明的实施例,上文所述的模块中的至少一个可以实现为参考图10描述的计算机程序模块,其在被处理器1010执行时,可以实现上面描述的相应操作。

本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。

尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1