CN112084064A - 主从bios切换方法、板卡及设备 - Google Patents

主从bios切换方法、板卡及设备 Download PDF

Info

Publication number
CN112084064A
CN112084064A CN202010778785.0A CN202010778785A CN112084064A CN 112084064 A CN112084064 A CN 112084064A CN 202010778785 A CN202010778785 A CN 202010778785A CN 112084064 A CN112084064 A CN 112084064A
Authority
CN
China
Prior art keywords
chip
bios
cpu
switch
bios chip
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
Application number
CN202010778785.0A
Other languages
English (en)
Other versions
CN112084064B (zh
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.)
Ruijie Networks Co Ltd
Original Assignee
Ruijie Networks 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 Ruijie Networks Co Ltd filed Critical Ruijie Networks Co Ltd
Priority to CN202010778785.0A priority Critical patent/CN112084064B/zh
Publication of CN112084064A publication Critical patent/CN112084064A/zh
Application granted granted Critical
Publication of CN112084064B publication Critical patent/CN112084064B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Abstract

本申请实施例提供一种主从BIOS切换方法、板卡及设备。在本申请实施例中,在包含主从BIOS芯片的板卡中增加切换控制器和两个开关芯片,切换控制器分别通过两个开关芯片与两个BIOS芯片连接,用以切换与CPU互联的BIOS芯片。基于此,在CPU通过当前与其互联的BIOS芯片启动失败的情况下,切换控制器可以通过与另一BIOS芯片连接的开关芯片控制CPU与另一BIOS芯片互联,从而控制CPU通过另一BIOS芯片启动,实现了主BIOS芯片和从BIOS芯片之间的自动切换,减少了手动配置带来的消耗,提高了板卡的可用性。

Description

主从BIOS切换方法、板卡及设备
技术领域
本申请涉及计算机技术领域,尤其涉及一种主从BIOS切换方法、板卡及设备。
背景技术
基本输入输出***(Basic Input Output System,BIOS)存储在串行外设接口非易失性存储介质(Serial Peripheral Interface flash,SPI flash)中,为了保证SPIflash的可靠性,除了要防止BIOS软件自身出错外,还要防止SPI flash出现物理损坏的情况。
鉴于上述两种考虑,现有技术中提出了双BIOS(主从BIOS)的方案,即在主BIOS出现异常或故障时,可以通过手动配置选择使用从BIOS进行启动。但是,现有技术仅支持每次通过手动配置来选择所使用的BIOS,在主BIOS和从BIOS之间无法实现自动切换,离真正意义上的双BIOS还有一定的差距。
发明内容
本申请的多个方面提供一种主从BIOS切换方法、板卡及设备,用以实现主从BIOS之间的自动切换。
本申请实施例提供一种板卡,包括:切换控制器、两个基本输入输出***BIOS芯片、两个开关芯片和处理器CPU,其中,两个BIOS芯片互为主从关系;每个开关芯片的一端通过串行外设接口SPI与一个BIOS芯片连接,另一端通过SPI与CPU连接;CPU通过低引脚数LPC总线与切换控制器连接;切换控制器还与两个开关芯片连接,用以切换与CPU互联的BIOS芯片;切换控制器,用于在CPU通过当前与其互联的BIOS芯片启动失败的情况下,通过与另一BIOS芯片连接的开关芯片控制另一BIOS芯片与CPU互联,并控制CPU通过另一BIOS芯片启动。
本申请实施例还提供一种主从BIOS切换方法,应用于包含互为主从关系的两个基本输入输出***BIOS芯片和处理器CPU的板卡,板卡还包括切换控制器和两个开关芯片;每个开关芯片的一端通过串行外设接口SPI与一个BIOS芯片连接,另一端通过SPI与CPU连接;CPU通过低引脚数LPC总线与切换控制器连接;切换控制器还与两个开关芯片连接,用以切换与CPU互联的BIOS芯片;该方法包括:在CPU通过当前与其互联的BIOS芯片启动失败的情况下,通过与另一BIOS芯片连接的开关芯片控制另一BIOS芯片与CPU互联;控制CPU通过另一BIOS芯片启动。
本申请实施例还提供一种计算机设备,包括:板卡,板卡包括切换控制器、两个基本输入输出***BIOS芯片、两个开关芯片和处理器CPU,其中,两个BIOS芯片互为主从关系;每个开关芯片的一端与一个BIOS芯片连接,另一端通过串行外设接口SPI与CPU连接;CPU通过低引脚数LPC总线与切换控制器连接;切换控制器还与两个开关芯片连接,用以切换与CPU互联的BIOS芯片;CPU,用于通过当前与其互联的BIOS芯片进行启动;切换控制器,用于在CPU通过当前与其互联的BIOS芯片启动失败的情况下,通过与另一BIOS芯片连接的开关芯片控制另一BIOS芯片与CPU互联,并控制CPU通过另一BIOS芯片启动。
在本申请实施例中,在包含主从BIOS芯片的板卡中增加切换控制器和两个开关芯片,切换控制器分别通过两个开关芯片与两个BIOS芯片连接,用以切换与CPU互联的BIOS芯片。基于此,在CPU通过当前与其互联的BIOS芯片启动失败的情况下,切换控制器可以通过与另一BIOS芯片连接的开关芯片控制CPU与另一BIOS芯片互联,从而控制CPU通过另一BIOS芯片启动,实现了主BIOS芯片和从BIOS芯片之间的自动切换,减少了手动配置带来的消耗,提高了板卡的可用性。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1a为本申请示例性实施例提供的一种板卡的结构示意图;
图1b为本申请示例性实施例提供的另一种板卡的结构示意图;
图1c为本申请示例性实施例提供的又一种板卡的结构示意图;
图2为本申请示例性实施例提供的一种逻辑状态机的示意图;
图3为本申请示例性实施例提供的一种主从BIOS切换方法的流程示意图;
图4为本申请示例性实施例提供的一种计算机设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
针对现有技术中,仅支持每次通过手动配置来选择所使用的BIOS,在主BIOS和从BIOS之间无法实现自动切换的问题,在本申请实施例中,在包含主从BIOS芯片的板卡中增加切换控制器和两个开关芯片,切换控制器分别通过两个开关芯片与两个BIOS芯片连接,用以切换与CPU互联的BIOS芯片。基于此,在CPU通过当前与其互联的BIOS芯片启动失败的情况下,切换控制器可以通过与另一BIOS芯片连接的开关芯片控制CPU与另一BIOS芯片互联,从而控制CPU通过另一BIOS芯片启动,实现了主BIOS芯片和从BIOS芯片之间的自动切换,减少了手动配置带来的消耗,提高了板卡的可用性。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图1a为本申请示例性实施例提供的一种板卡的结构示意图;如图1a所示,该板卡100包括:切换控制器101、两个BIOS芯片:BIOS芯片103和BIOS芯片104以及处理器(CPU)102,其中,两个BIOS芯片互为主从关系。
为了保证可靠性,除了要防止BIOS软件本身自己出错外,也要防止存储BIOS软件的BIOS芯片出现物理损坏的情况。因此鉴于这种考虑,本申请提出了双BIOS(主从BIOS)的方案。在本申请实施例中,并不对两个BIOS芯片谁是主BIOS芯片谁是从BIOS芯片做限制。可选地,在出厂设置时,哪个BIOS芯片是主BIOS芯片,哪个BIOS芯片是从BIOS芯片可以预先设定好。在本实施例中,以BIOS芯片103作为主BIOS芯片,以BIOS芯片104作为从BIOS芯片为例进行说明,但并不限于此。两个BIOS芯片主要用于存储BIOS软件,一般来讲,两个BIOS芯片在出厂时,存储的BIOS软件的版本是一致的。当然,随着使用情况的发生,两个BIOS芯片中存储的BIOS软件的版本可以一直保持一致,也可以发生变化,对此不做限定。另外,BIOS芯片可以采用闪存(Flash)实现。
在本实施例中,为了实现主从BIOS芯片之间的自动切换,实现真正意义上的双BIOS,在板卡100中增设了两个开关芯片:开关芯片106和开关芯片107,每个开关芯片的一端与一个BIOS芯片通过SPI连接,另一端通过SPI与CPU 102连接。在本实施例中,以开关芯片106与主BIOS芯片103连接,开关芯片107与从BIOS芯片104连接为例进行说明,如图1a所示。换句话说,CPU 102通过开关芯片106与主BIOS芯片103连接,同时通过开关芯片107与从BIOS芯片104连接。
在本实施例中,CPU102与主BIOS芯片103或从BIOS芯片104之间的SPI连接至少包含四个信号,分别为主设备输出/从设备输入信号MOSI(Master Output,Slave Input)、主设备输入/从设备输出信号MISO(Master Input,Slave Output)、时钟信号(Serial Clock,SCK)和片选信号(Slave Select,SS)。其中,以CPU 102与BIOS芯片103通过SPI连接为例,对上述四种信号的功能进行详细说明。CPU 102为主设备,BIOS芯片103为从设备,MOSI信号表示CPU 102向BIOS芯片103写入数据,即数据的传输方向为从CPU 102到BIOS芯片103;MISO信号表示CPU 102从BIOS芯片103中读取数据(如BIOS软件),即数据的传输方向为从BIOS芯片103到CPU 102;SCK信号表示由CPU 102产生的时钟信号;SS信号有效时,表示CPU 102选中了BIOS芯片103,在这个状态下,CPU 102通过MISO信号读取BIOS芯片103中存储的BIOS软件。
进一步,如图1a所示,在本实施例的板卡100中,还增加了用于对主从BIOS芯片进行自动切换控制的切换控制器101。切换控制器101与CPU 102通过低引脚数(Low pincount,LPC)总线连接,CPU 102可通过LPC总线与切换控制器101进行通信,同理,切换控制器101也可以通过LPC总线与CPU 102进行通信。切换控制器101除了与CPU 102连接之外,还与两个开关芯片106和107连接,通过这两个开关芯片可以对与CPU 102互联的BIOS芯片进行切换控制,即用以切换与CPU 102互联的BIOS芯片。切换控制器101可产生片选信号,并通过向两个开关芯片输出片选信号,来选通其中一个BIOS芯片,被选通的BIOS芯片会通过其对应的开关芯片与CPU 102互联,进而可以控制CPU 102通过被选通的BIOS芯片进行启动。如图1a所示,片选信号为CS00和CS11。CS00和CS11可以控制CPU 102通过主或从BIOS芯片启动。例如,若CS00=0,CS11=1,表示CPU 102通过主BIOS芯片103启动;若CS00=1,CS11=0表示CPU 102通过从BIOS芯片104启动。基于上述,切换控制器101可实现主从BIOS的自动切换,从而CPU 102可以通过主BIOS芯片或者从BIOS芯片进行启动。
在本实施例中,正常情况下,一个BIOS芯片会被选通,该被选通BIOS芯片通过开关芯片与CPU 102互联,CPU 102可以通过当前与其互联的BIOS芯片进行启动。CPU 102通过与其互联的当前BIOS芯片进行启动是指通过SPI中的MISO信号加载当前BIOS芯片中的BIOS软件,运行该BIOS软件的过程。CPU102可能因为软件、硬件的原因导致启动失败,则在CPU 102通过当前与其互联的BIOS芯片启动失败的情况下,切换控制器101可以通过与另一BIOS芯片连接的开关芯片控制另一BIOS芯片与CPU 102互联,并控制CPU 102通过另一BIOS芯片启动。其中,控制CPU 102通过另一BIOS芯片启动的过程包括:先控制CPU 102下电,CPU 102会断开当前与其互联的BIOS芯片的互联,再控制CPU 102上电,此时因为被选通的是另一个BIOS芯片,该另一个BIOS芯片处于工作状态,则CPU 102会检测到被选通的另一BIOS芯片,之后,CPU 102通过另一BIOS芯片启动,即加载另一BIOS芯片中的BIOS软件并运行该BIOS软件。
在本申请实施例中,在包含主从BIOS芯片的板卡中增加切换控制器和两个开关芯片,切换控制器分别通过两个开关芯片与两个BIOS芯片连接,用以切换与CPU互联的BIOS芯片。基于此,在CPU通过当前与其互联的BIOS芯片启动失败的情况下,切换控制器可以通过与另一BIOS芯片连接的开关芯片控制CPU与另一BIOS芯片互联,从而控制CPU通过另一BIOS芯片启动,实现了主BIOS芯片和从BIOS芯片之间的自动切换,减少了手动配置带来的消耗,提高了板卡的可用性。
在本申请实施例中,并不限定切换控制器101的实现结构,凡是可以能够通过开关芯片106和107在主从两个BIOS芯片之间进行自动切换的实现结构均适用于本申请实施例。在下面一可选实施例中介绍一种切换控制器101的实现结构,该实现结构包括:一些寄存器,即切换控制器101可通过其内部的寄存器来实现主从芯片的切换逻辑。如图1b所示,切换控制器101的内部结构包括状态寄存器101a和控制寄存器101b。下面对切换控制器101中的寄存器进行说明。
(1)状态控制器101a(Boot_OK):包含启动状态值,启动状态值表示CPU102通过当前与其互联的BIOS芯片启动成功与否,例如,若启动状态值为0,表示CPU102通过当前与其互联的BIOS芯片启动失败,若启动状态值为1,表示CPU 102通过当前与其互联的BIOS芯片启动成功。可选地,在初始时,状态控制器101a可存储默认启动状态值,该默认启动状态值为0,即默认CPU102通过当前与其互联的BIOS芯片启动失败;若CPU 102通过当前与其互联的BIOS芯片启动成功,则需要CPU 102改写状态控制器101a的启动状态值,即将默认启动状态值改写为表示CPU 102通过当前与其互联的BIOS芯片启动成功的启动状态值,例如将状态控制器101a的值由0改写为1。
(2)控制寄存器101b(SPI_SEL):包含控制状态值,控制状态值默认为0,表示CPU102从当前与其互联的BIOS芯片启动,控制状态值为1表示CPU 102需要从另一片BIOS芯片启动。若CPU 102一直未通过主从两个BIOS芯片启动成功,则控制寄存器101b的控制状态值会一直在0和1之间切换。
另外,如1b所示,切换控制器101还包括:主控单元101c。CPU 102可通过LPC总线向状态寄存器101a中写入启动状态值,主控单元101c用于在该启动状态值表示CPU 102通过当前与其互联的BIOS芯片启动失败的情况下,将控制寄存器101b中的控制状态值取反,根据取反后的控制状态值向与另一BIOS芯片连接的开关芯片输出用于选通另一BIOS芯片的片选信号以使另一BIOS芯片与CPU 102互联,并控制CPU 102通过另一BIOS芯片启动。
在本实施例中,CPU 102通过当前与其互联的BIOS芯片启动失败的情况下,切换控制器101对CPU 102进行冷复位(即下电)。进一步,切换控制器101向与另一BIOS芯片连接的开关芯片输出用于选通另一BIOS芯片的片选信号后,另一BIOS芯片会被选通进而与CPU102互联,切换控制器101再次向CPU 102上电,CPU 102重新从与其连通的芯片中读取BIOS芯片的内容,执行启动操作,即切换控制器101控制CPU 102通过另一BIOS芯片启动。
进一步可选地,切换控制器101还包括:计时器101e。计时器101e用于在检测到CPU102的上电启动信号时,针对设定的计时时间段开始计时。在本实施例中,并不对计时器101e设定的计时时间进行限定,例如,可以是1分钟、1分30秒或者2分30秒,对此不做限定。
在本实施例中,CPU 102上电启动时,会输出上电启动信号;主控单元101c检测到该上电启动信号时,启动计时器101e,计时器101e设定的计时时间开始计时。在此期间,CPU102可以通过当前与其互联的BIOS芯片进行启动;若在计时器101e计时结束之前,CPU 102通过当前与其互联的BIOS芯片启动成功,则通过LPC总线将状态寄存器101a中的默认启动状态值改写为表示启动成功的启动状态值;进而,确定CPU 102通过当前与其互联的BIOS芯片启动成功。相应地,若CPU 102未能在计时器计时结束之前改写状态寄存器101a中的默认启动状态值,则主控单元101c确定状态寄存器101a中的启动状态值表示CPU102通过当前与其互联的BIOS芯片启动失败。进一步,在CPU102通过当前与其互联的BIOS芯片启动失败的情况下,主控单元101c将控制寄存器101b中的控制状态值取反,根据取反后的控制状态值向与另一BIOS芯片连接的开关芯片输出用于选通另一BIOS芯片的片选信号,以使另一BIOS芯片与CPU 102互联,并控制CPU 102通过另一BIOS芯片启动。
进一步,可选地,如1b所示,切换控制器101还包括:片选寄存器101d。片选寄存器101d存储有片选值,默认片选值为0,可以通过LPC总线清零或者置1。在此基础上,可以将片选寄存器101d中的片选值与控制寄存器101b中的控制状态值相结合,产生片选信号。例如,若当控制寄存器101b的控制状态值与片选寄存器101d的片选值之间的状态关系为同或关系时,则确定CPU 102通过主BIOS芯片103启动;若当控制寄存器101b的控制状态值与片选寄存器101d的片选值之间的状态关系为异或关系时,则确定CPU 102通过从BIOS芯片104启动。需要说明的是,在本实施例中,并不限定根据控制寄存器101b的控制状态值与片选寄存器101d的片选值之间状态关系,确定CPU 102通过主BIOS芯片103或从BIOS芯片104启动的实施方式,本实施例以控制状态值与片选值之间的状态关系是同或关系或者异或关系为例进行说明,但并不限于此。
基于上述,主控单元101c向与另一BIOS芯片连接的开关芯片输出用于选通另一BIOS芯片的片选信号时,可以计算片选寄存器101d中的片选值和取反后的控制状态值之间的状态关系;若状态关系为同或关系,则确定主BIOS芯片103为另一BIOS芯片,并输出用于选通主BIOS芯片103的片选信号;若状态关系为异或关系,则确定从BIOS芯片104为另一BIOS芯片,并输出用于选通从BIOS芯片104的片选信号。
下面以切换控制器101为CPLD板卡,CPLD板卡内部包含有主控单元101c、状态寄存器101a、控制寄存器101b、计时器101e以及片选寄存器101d为例,对主从两个BIOS芯片自动切换的过程进行说明。
(1)上电,CPLD开始工作;CPLD中含有状态寄存器101a,其默认启动状态值为0(表示CPU通过当前BIOS芯片启动失败),此时当前BIOS芯片为主BIOS芯片;CPLD中的控制寄存器101b的默认控制状态值为0,此时,CPU102默认通过主BIOS芯片103启动;CPLD中的片选寄存器101d默认的片选值为0;CPLD的计时器设定的计时时间为2分30秒。
(2)CPLD的主控单元101c对CPU 102进行上电控制。
(3)当CPLD的主控单元101c检测到CPU 102通过LPC总线输出信号S4=1(CPU特有的状态信号,表示CPU开始启动)时,计时器101e开始即计时。
(4)若在计时器101e超时前,CPU 102通过主BIOS芯片103启动成功,则CPU 102通过LPC总线将状态寄存器101a的启动状态值由0置为1,此时控制寄存器101b的控制状态值(值为0)和片选寄存器101d的片选值(值为0)都保持不变,流程至此结束。
(5)若计时器101e超时,CPU 102还未将状态寄存器101a的启动状态值置为1,则CPLD冷复位CPU 102,然后主控单元101c将控制寄存器101b的控制状态值取反(即由0取反为1),此时片选寄存器101d的片选值保持为0不变,则取反后的控制状态值与该片选值之间的状态关系为异或关系,则确定CPU102通过从BIOS芯片104启动。
(6)CPLD的主控单元101c对CPU 102进行上电控制,控制CPU 102重新进入工作状态。
(7)当CPLD的主控单元101c检测到CPU 102输出信号S4=1(CPU特有的状态信号,表示CPU开始启动)时,计时器101e开始计时。
(8)若在计时器101e超时前,CPU 102通过从BIOS芯片104启动成功,则CPU 102通过LPC总线将状态寄存器101a置为1,此时,控制寄存器101b的控制状态值保持为1,片选寄存器101d的片选值保持为0,流程至此结束。
(9)若计时器超时,CPU 102还未将状态寄存器101a的启动状态值置为1,则CPLD冷复位CPU 102,然后主控单元101c将控制寄存器101b的控制状态值取反(即由1取反为0),此时片选寄存器101d的片选值保持为0不变,则取反后的控制状态值与该片选值之间的状态关系为同或关系,则确定CPU 102通过主BIOS芯片103启动。
(10)CPLD的主控单元101c对CPU 102进行上电控制,控制CPU 102重新进入工作状态,跳转至步骤(3)。
在本实施例中,针对切换控制器进行如下状态定义:初始(ST_IDLE)状态、启动(ST_BOOT_S)状态、启动判断(ST_BOOT_AYS)状态、启动成功(ST_BOOT_OK)状态以及启动失败(ST_BOOT_FAIL)状态。
基于所定义的状态实现的逻辑状态机如图2所示,CPLD上电后进入ST_IDLE状态,在该状态下,CPU102开始启动初始化,切换到ST_BOOT_S状态,同时打开计时器101e;在ST_BOOT_S状态下,在2分30秒内CPU102通过主BIOS芯片103启动成功,则直接跳转ST_BOOT_OK状态;若2分30秒内CPU102未通过主BIOS芯片103启动成功,则在2分30秒计时完成时,进入ST_BOOT_AYS状态;在ST_BOOT_AYS状态,读取状态寄存器(BOOT_OK)的启动状态值,若启动状态值为0,则跳转至ST_BOOT_FAIL状态,若启动状态值为1,则跳转至ST_BOOT_OK状态;在ST_BOOT_FAIL状态,取反控制寄存器101b(SPI_SEL)的控制状态值,并且冷复位CPU,跳回至ST_IDLE状态;在ST_BOOT_OK状态下,除非遇到CPLD对CPU102进行下电控制或者复位CPU102,否则稳定在此状态。
需要说明的是,本实施例的板卡100除了支持主从两个BIOS芯片的自动切换之外,还可以支持配置人员手动对主从两个BIOS芯片进行强制切换。其中,配置人员可以通过设置片选寄存器101d中的片选值,调整控制寄存器101b中的控制状态值与片选寄存器101d中的片选值之间的状态关系,实现对主从两个BIOS芯片的手动强制切换。其中,控制寄存器101b中的控制状态值与片选寄存器101d中的片选值之间的状态关系与两个BIOS芯片之间具有一定对应关系,不同状态关系,可以选通不同的BIOS芯片供CPU 102进行启动。例如,当控制状态值与片选值之间的状态关系为同或关系时,选通BIOS芯片103供CPU102进行启动;当控制状态值与片选值之间的状态关系为异或关系时,选通BIOS芯片104供CPU 102进行启动。配置人员可以通过命令行查询控制寄存器101b中的控制状态值,基于控制寄存器101b中的控制状态值以及上述对应关系,确定需要选通的芯片所对应的状态关系,基于此设置片选寄存器101d中的片选值。相应地,主控单元101c可以执行配置人员输入的第一命令行,以读取控制寄存器101b中的控制状态值并输出。配置人员得到控制状态值之后,可以设置片选寄存器101d中的片选值,通过调整控制状态值与该片选值之间的状态关系,实现手动强制切换。主控单元101c还可以执行配置人员输入的第二命令行,以获取配置人员配置的第一目标片选值并将片选寄存器中的片选值更新为第一目标片选值;计算第一目标片选值和控制寄存器101b中的控制状态值之间的状态关系;若状态关系为同或关系,则输出用于选通与主BIOS芯片103连接的开关芯片的片选信号,并控制CPU 102通过主BIOS芯片103启动;若状态关系为异或关系,则输出用于选通与从BIOS芯片104连接的开关芯片的片选信号,并控制CPU 102通过从BIOS芯片104启动。其中,第一目标片选值是配置人员用于手动强制切换主从BIOS芯片时,为片选寄存器101d配置的片选值。
在本申请一些实施例中,一旦主从BIOS软件均出现异常或者故障,CPU将无法通过BIOS芯片启动,在这种情况下,本实施例提供的板卡上还可以包括:基本管理控制器105(Base Management Controller,BMC)。BMC 105用于在主从两个BIOS芯片中的BIOS软件出现异常或故障的情况下,或者在配置人员发现两个BIOS芯片的BIOS软件存在漏洞的情况下,对主从BIOS芯片中的BIOS软件进行升级,使得CPU 102可以通过主BIOS芯片103或者从BIOS芯片104启动。
在本实施例中,为了便于BMC 105与CPU 102连接主从两个BIOS芯片,如图1c所示,CPU 102和BMC 105分别通过两个开关芯片互联两个BIOS芯片。其中,每片开关芯片上的管脚分为A组和B组,BMC 105分别与每个开关芯片上的A组管脚连接,CPU 102分别与每个开关芯片上的B组管脚连接,每个开关芯片上的A组管脚和B组管脚与其对应BIOS芯片并联。主控单元101c还与每个开关芯片上A组管脚和B组管脚各自对应的片选端连接,还用于通过每个开关芯片上的片选端选通BMC 105或CPU 102与该开关芯片所连接的BIOS芯片互联。其中,在选通BMC 105时由BMC 105对开关芯片所连接的BIOS芯片进行升级,或者,在选通CPU 102时控制CPU 102通过开关芯片所连接的BIOS芯片启动。
在本实施例中,并不对A组管脚和B组管脚的数量进行限定,A组管脚和B组管脚的数量可以相等,例如,A组管脚和B组管脚均为10个;也可以不相等,例如,A组管脚为8个,B组管脚为10个,对此不做限定。下面以A组管脚和B组管脚的数量相等且均为10个为例,对管脚的连接情况进行说明。B组管脚通过SPI与CPU 102连接,以SPI中包含四个信号(MISO、MOSI、SCK、SS)为例,SPI需要占用B组管脚的4个管脚,另外,开关芯片B组管脚中的2个管脚还与切换控制器101的主控单元101c连接,为避免高阻浮空,B组管脚剩下4个管脚下拉接地。同样地,A组管脚通过SPI与BMC 105连接,以SPI中包含四个信号(MISO、MOSI、SCK、SS)为例,SPI需要占用A组管脚的4个管脚,另外,开关芯片A组管脚中的2个管脚还与切换控制器101的主控单元101c连接,为避免高阻浮空,A组管脚剩下4个管脚下拉接地。
在本实施例中,主控单元101c与每个开关芯片上与A组管脚和B组管脚各自对应的片选端连接,产生片选信号,通过片选信号选通BMC 105或CPU 102与该开关芯片连接的BIOS芯片互联,以在选通BMC 105时由BMC 105对开关芯片所连接的BIOS芯片进行升级,或在选通CPU 102时控制CPU 102通过开关芯片所连接的BIOS芯片启动。如图1b所示,片选信号分别为CS0、CS1、CS2、CS3。其中,CS0和CS2用于选通CPU 102与开关芯片连接的BIOS芯片互联,以控制CPU 102通过开关芯片所连接的BIOS芯片启动。CS1和CS3用于选通BMC 105与开关芯片连接的BIOS芯片互联,以控制BMC 105对开关芯片所连接的BIOS芯片进行升级。如下表1所示,为通过四个片选信号CS0、CS1、CS2、CS3对CPU 102或BMC 105与主从BIOS芯片进行选通的真值表示例,但并不限于此。
Figure BDA0002619449040000131
表1
在表1中,当CS0=0,CS2=1时,表示选通CPU 102访问BIOS芯片103,此时,CPU 102通过开关芯片106所连接的BIOS芯片103进行启动;当CS0=1,CS2=0时,表示选通CPU 102通过开关芯片107所连接的BIOS芯片104进行启动。当CS1=0,CS3=1时,表示选通BMC 105对开关芯片106所连接的BIOS芯片103进行升级;当CS1=1,CS3=0时,表示BMC 105对开关芯片107所连接的BIOS芯片104进行升级。需要说明的是,表1中的输出(片选信号)与选通状态之间的对应关系仅为示例,可根据不同的应用需求,灵活的调整。
在一可选实施例中,在需要对主从两个BIOS芯片进行升级时,升级人员可以通过BMC 105向主控单元101c发送升级指令,该升级指令一方面指示需要升级,另一方面指示需要读取升级所需的控制寄存器101b的控制状态值。基于此,主控单元101c可接收BMC通过内置集成电路(Inter-Integrated Circuit,I2C)总线发送的升级指令,根据该升级指令,读取控制寄存器101b中的控制状态值,并返回给BMC 105。BMC 105接收到该控制状态值,并基于该控制状态值与片选寄存器101d中的片选值之间的状态关系,选择对主BIOS芯片103或者从BIOS芯片104进行升级。其中,控制寄存器101b中的控制状态值与片选寄存器101d中的片选值之间的状态关系与两个BIOS芯片之间具有一定对应关系,不同状态关系,可以选通不同的BIOS芯片供BMC 105进行升级。例如,当控制状态值与片选值之间的状态关系为同或关系时,选通BIOS芯片103供BMC105进行升级;当控制状态值与片选值之间的状态关系为异或关系时,选通BIOS芯片104供BMC 105进行升级。升级人员可以通过命令行查询控制寄存器101b中的控制状态值,基于控制寄存器101b中的控制状态值以及上述对应关系,确定需要选通的芯片所对应的状态关系,基于此设置片选寄存器101d中的片选值。基于此,BMC105可以向主控单元101c发送第二目标片选值。其中,第二目标片选值是升级人员用于升级BIOS芯片103或BIOS芯片104,根据控制寄存器101b中的控制状态值配置的片选值。相应地,主控单元101c可以接收BMC 105返回的第二目标片选值并将片选寄存器101d中的片选值更新为第二目标片选值。进一步,计算第二目标片选值和控制寄存器101b中的控制状态值之间的状态关系;若状态关系为同或关系,则输出用于选通与主BIOS芯片103连接的开关芯片106上A组管脚的片选信号,以供BMC 105对主BIOS芯片103进行升级;若状态关系为异或关系,则输出用于选通与从BIOS芯片104连接的开关芯片107上A组管脚的片选信号,以供BMC105对从BIOS芯片104进行升级。例如,结合上述表1,以控制寄存器101b中的控制状态值为0,假设升级人员需要对主BIOS芯片进行升级,则根据同或关系可知,需设置第二目标片选值为0;则主控单元101c会计算出第二目标片选值和控制寄存器101b中的控制状态值之间为同或关系,则输出用于选通与主BIOS芯片103连接的开关芯片106上A组管脚的片选信号,以供BMC 105对主BIOS芯片103进行升级。
需要说明的是,升级指令可以是给到主控单元101c的一个信号值,例如可以是高电平1。在表1中,以升级指令的信号值是高电平信号为例进行示例,但并不限于此。结合上面升级指令的基础上,表1所示真值表中片选信号可以由升级指令的信号值、控制寄存器101b的控制状态值以及片选寄存器101d的片选值来确定。对于主控单元101c来说,可以将升级指令的信号值、控制寄存器101b的控制状态值以及片选寄存器101d的片选值作为输入,计算片选信号,最终通过该片选信号选通CPU 102或BMC 105访问主BIOS芯片103或从BIOS芯片104。
在一可选实施例中,主控单元101c在选通CPU 102时,控制CPU 102通过开关芯片所连接的BIOS芯片启动,主控单元101c在选通主BIOS芯片103的片选信号时,可以输出用于选通与主BIOS芯片103连接的开关芯片106上B组管脚的片选信号,以供CPU102通过主BIOS芯片103启动;相应地,主控单元101c在输出用于选通从BIOS芯片104的片选信号时,可以输出用于选通与从BIOS芯片104连接的开关芯片107上B组管脚的片选信号,以供CPU通过从BIOS芯片104启动。
图3为本申请示例性实施例提供的一种主从BIOS切换方法的流程示意图;应用于包含互为主从关系的两个BIOS芯片和处理器CPU的板卡,板卡还包括切换控制器和两个开关芯片;每个开关芯片的一端通过SPI与一个BIOS芯片连接,另一端通过SPI与CPU连接;CPU通过低引脚数LPC总线与切换控制器连接;切换控制器还与两个开关芯片连接,用以切换与CPU互联的BIOS芯片。关于所述板卡的详细结构可参见前述实施例的描述,在此不再赘述。在本实施例中,重点从切换控制器角度对主从BIOS切换过程进行描述。如图3所示,该方法包括:
31、在CPU通过当前与其互联的BIOS芯片启动失败的情况下,通过与另一BIOS芯片连接的开关芯片控制另一BIOS芯片与CPU互联;
32、控制CPU通过另一BIOS芯片启动。
在一可选实施例中,通过与另一BIOS芯片连接的开关芯片控制另一BIOS芯片与CPU互联,包括:读取CPU通过LPC总线向切换控制器中的状态寄存器中写入启动状态值,启动状态值表示CPU通过当前与其互联的BIOS芯片启动成功与否;在启动状态值表示CPU通过当前与其互联的BIOS芯片启动失败的情况下,将切换控制器中的控制寄存器中的控制状态值取反;根据取反后的控制状态值向与另一BIOS芯片连接的开关芯片输出用于选通另一BIOS芯片的片选信号,以使另一BIOS芯片与CPU互联。
在一可选实施例中,确定状态寄存器中的默认启动状态值表示CPU通过当前与其互联的BIOS芯片启动失败,包括:在CPU未能在切换控制器中的计时器计时结束之前改写状态寄存器中的默认启动状态值的情况下,确定状态寄存器中的默认启动状态值表示CPU通过当前与其互联的BIOS芯片启动失败。
在一可选实施例中,根据取反后的控制状态值向与另一BIOS芯片连接的开关芯片输出用于选通另一BIOS芯片的片选信号,包括:计算切换控制器中的片选寄存器中的片选值和取反后的控制状态值之间的状态关系;若状态关系为同或关系,则确定主BIOS芯片为另一BIOS芯片,并输出用于选通主BIOS芯片的片选信号;若状态关系为异或关系,则确定从BIOS芯片为另一BIOS芯片,并输出用于选通从BIOS芯片的片选信号。
在一可选实施例中,本实施例提供的方法还包括:获取配置人员依据控制寄存器中的控制状态值所配置的第一目标片选值,并将片选寄存器中的片选值更新为第一目标片选值;计算第一目标片选值和控制寄存器中的控制状态值之间的状态关系;若状态关系为同或关系,则输出用于选通主BIOS芯片的片选信号,并控制CPU通过主BIOS芯片启动;若状态关系为异或关系,则输出用于选通从BIOS芯片连接的片选信号,并控制CPU通过从BIOS芯片启动。
在一可选实施例中,板卡还包括基本管理控制器BMC;每片开关芯片上的管脚分为A组和B组,BMC分别与每个开关芯片上的A组管脚连接,CPU分别与每个开关芯片上的B组管脚连接;每个开关芯片上的A组管脚和B组管脚与其对应BIOS芯片并联;切换控制器还与每个开关芯片上与A组管脚和B组管脚各自对应的片选端连接;本实施例提供的方法还包括:通过每个开关芯片上的片选端选通BMC或CPU与该开关芯片连接的BIOS芯片互联。
在一可选实施例中,通过每个开关芯片上的片选端选通BMC与该开关芯片连接的BIOS芯片互联,包括:接收BMC通过内置集成电路I2C总线发送的升级指令,根据升级指令,向BMC返回控制寄存器中的控制状态值;以及接收BMC返回的第二目标片选值并将片选寄存器中的片选值更新为第二目标片选值;其中,第二目标片选值是升级人员根据控制寄存器中的控制状态值配置的;计算第二目标片选值和控制寄存器中的控制状态值之间的状态关系;若状态关系为同或关系,则输出用于选通与主BIOS芯片连接的开关芯片上A组管脚的片选信号,以供BMC对主BIOS芯片进行升级;若状态关系为异或关系,则输出用于选通与从BIOS芯片连接的开关芯片上A组管脚的片选信号,以供BMC对从BIOS芯片进行升级。
在一可选实施例中,通过每个开关芯片上的片选端选通CPU与该开关芯片连接的BIOS芯片互联,则输出用于选通主BIOS芯片的片选信号,包括:输出用于选通与主BIOS芯片连接的开关芯片上B组管脚的片选信号,以供CPU通过主BIOS芯片启动;相应地,输出用于选通从BIOS芯片的片选信号,包括:输出用于选通与从BIOS芯片连接的开关芯片上B组管脚的片选信号,以供CPU通过从BIOS芯片启动。
在本申请实施例中,在包含主从BIOS芯片的板卡中增加切换控制器和两个开关芯片,切换控制器分别通过两个开关芯片与两个BIOS芯片连接,用以切换与CPU互联的BIOS芯片。基于此,在CPU通过当前与其互联的BIOS芯片启动失败的情况下,切换控制器可以通过与另一BIOS芯片连接的开关芯片控制CPU与另一BIOS芯片互联,从而控制CPU通过另一BIOS芯片启动,实现了主BIOS芯片和从BIOS芯片之间的自动切换,减少了手动配置带来的消耗,提高了板卡的可用性。
需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤31至步骤32的执行主体可以为设备A;又比如,步骤31和32的执行主体可以为设备A,步骤32的执行主体可以为设备B;等等。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如31、32等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
图4为本申请示例性实施例提供的一种计算机设备的结构示意图;如图4所示,该计算机设备400包括:板卡401,板卡401包括切换控制器401a、两个BIOS芯片:BIOS芯片401b和BIOS芯片401c、两个开关芯片:开关芯片401d和开关芯片401e以及处理器(CPU)401f,其中,两个BIOS芯片互为主从关系;每个开关芯片的一端与一个BIOS芯片连接,另一端通过SPI与CPU 401f连接;CPU 401f通过低引脚数LPC总线与切换控制器连接;切换控制器401a还与两个开关芯片连接,用以切换与CPU 401f互联的BIOS芯片。
CPU 401f,用于通过当前与其互联的BIOS芯片进行启动;切换控制器401a,用于在CPU 401f通过当前与其互联的BIOS芯片启动失败的情况下,通过与另一BIOS芯片连接的开关芯片控制另一BIOS芯片与CPU 401f互联,并控制CPU401f通过另一BIOS芯片启动。
进一步,切换控制器401a包括状态控制器、控制寄存器、主控单元、片选寄存器以及计时器,关于切换控制器401a内部的各器件的结构,可参见图1b或图1c。
在一可选实施例中,CPU 401f可通过LPC总线向切换控制器401a的状态寄存器中写入启动状态值,启动状态值表示CPU通过当前与其互联的BIOS芯片启动成功与否;切换控制器401a的主控单元在通过与另一BIOS芯片连接的开关芯片控制另一BIOS芯片与CPU401f互联时,具体用于:读取CPU 401f通过LPC总线向切换控制器中的状态寄存器中写入启动状态值,启动状态值表示CPU 401f通过当前与其互联的BIOS芯片启动成功与否;在启动状态值表示CPU 401f通过当前与其互联的BIOS芯片启动失败的情况下,将切换控制器中的控制寄存器中的控制状态值取反;根据取反后的控制状态值向与另一BIOS芯片连接的开关芯片输出用于选通另一BIOS芯片的片选信号,以使另一BIOS芯片与CPU互联。
在一可选实施例中,CPU 401f在通过LPC总线向状态寄存器中写入启动状态值时,具体用于:若在切换控制器401a的计时器计时结束之前,通过当前与其互联的BIOS芯片启动成功,则通过LPC总线将状态寄存器中的默认启动状态值改写为表示启动成功的启动状态值;切换控制器401a的主控单元在确定状态寄存器中的默认启动状态值表示CPU 401f通过当前与其互联的BIOS芯片启动失败时,具体用于:在CPU 401f未能在切换控制器401a的计时器计时结束之前改写状态寄存器中的默认启动状态值的情况下,确定状态寄存器中的默认启动状态值表示CPU 401f通过当前与其互联的BIOS芯片启动失败。
在一可选实施例中,切换控制器401a的主控单元在向与另一芯片连接的开关芯片输出用于选通另一BIOS芯片的片选信号时,具体用于:计算片选寄存器中的片选值和取反后的控制状态值之间的状态关系;若状态关系为同或关系,则确定主BIOS芯片为另一BIOS芯片,并输出用于选通主BIOS芯片的片选信号;若状态关系为异或关系,则确定从BIOS芯片为另一BIOS芯片,并输出用于选通从BIOS芯片的片选信号。
在一可选实施例中,切换控制器401a的主控单元还用于:获取配置人员依据控制寄存器中的控制状态值所配置的第一目标片选值,并将片选寄存器中的片选值更新为第一目标片选值;计算第一目标片选值和控制寄存器中的控制状态值之间的状态关系;若状态关系为同或关系,则输出用于选通主BIOS芯片的片选信号,并控制CPU 401f通过主BIOS芯片启动;若状态关系为异或关系,则输出用于选通从BIOS芯片连接的片选信号,并控制CPU401f通过从BIOS芯片启动。
在一可选实施例中,板卡401还包括基本管理控制器BMC;每片开关芯片上的管脚分为A组和B组,BMC分别与每个开关芯片上的A组管脚连接,CPU401f分别与每个开关芯片上的B组管脚连接;每个开关芯片上的A组管脚和B组管脚与其对应BIOS芯片并联;切换控制器401a的主控单元还与每个开关芯片上A组管脚和B组管脚各自对应的片选端连接,还用于通过每个开关芯片上的片选端选通BMC或CPU 401f与该开关芯片连接的BIOS芯片互联。
在一可选实施例中,切换控制器401a的主控单元在通过每个开关芯片上的片选端选通BMC与该开关芯片连接的BIOS芯片互联时,具体用于:接收BMC通过内置集成电路I2C总线发送的升级指令,根据升级指令,向BMC返回控制寄存器中的控制状态值;以及接收BMC返回的第二目标片选值并将片选寄存器中的片选值更新为第二目标片选值;其中,第二目标片选值是升级人员根据控制寄存器中的控制状态值配置的;计算第二目标片选值和控制寄存器中的控制状态值之间的状态关系;若状态关系为同或关系,则输出用于选通与主BIOS芯片连接的开关芯片上A组管脚的片选信号,以供BMC对主BIOS芯片进行升级;若状态关系为异或关系,则输出用于选通与从BIOS芯片连接的开关芯片上A组管脚的片选信号,以供BMC对从BIOS芯片进行升级。
在一可选实施例中,切换控制器401a的主控单元在输出用于选通主BIOS芯片的片选信号时,具体用于:输出用于选通与主BIOS芯片连接的开关芯片上B组管脚的片选信号,以供CPU 401f通过主BIOS芯片启动;相应地,切换控制器401a的主控单元在输出用于选通从BIOS芯片的片选信号时,具体用于:输出用于选通与从BIOS芯片连接的开关芯片上B组管脚的片选信号,以供CPU401f通过从BIOS芯片启动。
进一步,如图4所示,该计算机设备还包括:通信组件402、显示器403、电源组件404、音频组件405等其它组件。图4中仅示意性给出部分组件,并不意味着计算机设备只包括图4所示组件。需要说明的是,图4中虚线框内的组件为可选组件,而非必选组件,具体可视计算机设备的产品形态而定。
上述图4中的通信组件被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理***的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件还可以包括近场通信(NFC)模块,射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术等。
上述图4中的显示器包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
上述图4中的电源组件,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理***,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
上述图4中的音频组件,可被配置为输出和/或输入音频信号。例如,音频组件包括一个麦克风(MIC),当音频组件所在设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器或经由通信组件发送。在一些实施例中,音频组件还包括一个扬声器,用于输出音频信号。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (14)

1.一种板卡,其特征在于,包括:切换控制器、两个基本输入输出***BIOS芯片、两个开关芯片和处理器CPU,其中,所述两个BIOS芯片互为主从关系;
每个开关芯片的一端通过串行外设接口SPI与一个BIOS芯片连接,另一端通过SPI与所述CPU连接;所述CPU通过低引脚数LPC总线与所述切换控制器连接;所述切换控制器还与所述两个开关芯片连接,用以切换与所述CPU互联的BIOS芯片;
所述切换控制器,用于在所述CPU通过当前与其互联的BIOS芯片启动失败的情况下,通过与另一BIOS芯片连接的开关芯片控制所述另一BIOS芯片与所述CPU互联,并控制所述CPU通过所述另一BIOS芯片启动。
2.根据权利要求1所述的板卡,其特征在于,所述切换控制器包括主控单元、状态寄存器和控制寄存器;
所述CPU通过所述LPC总线向所述状态寄存器中写入启动状态值,所述启动状态值表示所述CPU通过当前与其互联的BIOS芯片启动成功与否;
所述主控单元,用于在所述启动状态值表示所述CPU通过当前与其互联的BIOS芯片启动失败的情况下,将所述控制寄存器中的控制状态值取反,根据取反后的控制状态值向与另一BIOS芯片连接的开关芯片输出用于选通所述另一BIOS芯片的片选信号以使所述另一BIOS芯片与所述CPU互联,并控制所述CPU通过所述另一BIOS芯片启动。
3.根据权利要求2所述的板卡,其特征在于,所述切换控制器还包括:计时器,用于在检测到所述CPU的上电启动信号时,针对设定的计时时间段开始计时;
所述CPU具体用于:若在所述计时器计时结束之前,通过当前与其互联的BIOS芯片启动成功,则通过所述LPC总线将所述状态寄存器中的默认启动状态值改写为表示启动成功的启动状态值;
所述主控单元具体用于:在所述CPU未能在所述计时器计时结束之前改写所述状态寄存器中的默认启动状态值的情况下,确定所述状态寄存器中的默认启动状态值表示所述CPU通过当前与其互联的BIOS芯片启动失败。
4.根据权利要求2所述的板卡,其特征在于,所述切换控制器还包括:片选寄存器,存储有片选值;
所述主控单元在向与另一芯片连接的开关芯片输出用于选通所述另一BIOS芯片的片选信号时,具体用于:计算所述片选寄存器中的片选值和所述取反后的控制状态值之间的状态关系;若所述状态关系为同或关系,则确定主BIOS芯片为另一BIOS芯片,并输出用于选通主BIOS芯片的片选信号;若所述状态关系为异或关系,则确定从BIOS芯片为另一BIOS芯片,并输出用于选通从BIOS芯片的片选信号。
5.根据权利要求4所述的板卡,其特征在于,所述主控单元还用于:
获取配置人员依据所述控制寄存器中的控制状态值所配置的第一目标片选值,并将所述片选寄存器中的片选值更新为所述第一目标片选值;
计算所述第一目标片选值和所述控制寄存器中的控制状态值之间的状态关系;
若所述状态关系为同或关系,则输出用于选通主BIOS芯片的片选信号,并控制所述CPU通过主BIOS芯片启动;
若所述状态关系为异或关系,则输出用于选通从BIOS芯片连接的片选信号,并控制所述CPU通过从BIOS芯片启动。
6.根据权利要求4所述的板卡,其特征在于,还包括:基本管理控制器BMC;
每个开关芯片上的管脚分为A组和B组,所述BMC分别与每个开关芯片上的A组管脚连接,所述CPU分别与每个开关芯片上的B组管脚连接;每个开关芯片上的A组管脚和B组管脚与其对应BIOS芯片并联;
所述主控单元还与每个开关芯片上A组管脚和B组管脚各自对应的片选端连接,还用于通过每个开关芯片上的片选端选通所述BMC或所述CPU与该开关芯片连接的BIOS芯片互联。
7.根据权利要求6所述的板卡,其特征在于,所述主控单元具体用于:
接收所述BMC通过内置集成电路I2C总线发送的升级指令,根据所述升级指令,向所述BMC返回所述控制寄存器中的控制状态值;以及
接收所述BMC返回的第二目标片选值并将所述片选寄存器中的片选值更新为所述第二目标片选值;其中,所述第二目标片选值是升级人员根据所述控制寄存器中的控制状态值配置的;
计算所述第二目标片选值和所述控制寄存器中的控制状态值之间的状态关系;
若所述状态关系为同或关系,则输出用于选通与主BIOS芯片连接的开关芯片上A组管脚的片选信号,以供所述BMC对主BIOS芯片进行升级;
若所述状态关系为异或关系,则输出用于选通与从BIOS芯片连接的开关芯片上A组管脚的片选信号,以供所述BMC对从BIOS芯片进行升级。
8.根据权利要求6所述的板卡,其特征在于,所述主控单元在输出用于选通主BIOS芯片的片选信号时,具体用于:输出用于选通与主BIOS芯片连接的开关芯片上B组管脚的片选信号,以供所述CPU通过所述主BIOS芯片启动;
相应地,所述主控单元在输出用于选通从BIOS芯片的片选信号时,具体用于:输出用于选通与从BIOS芯片连接的开关芯片上B组管脚的片选信号,以供所述CPU通过所述从BIOS芯片启动。
9.根据权利要求1-8任一项所述的板卡,其特征在于,所述切换控制器为基于CPLD或FPGA实现的芯片。
10.一种主从BIOS切换方法,其特征在于,应用于包含互为主从关系的两个基本输入输出***BIOS芯片和处理器CPU的板卡,所述板卡还包括切换控制器和两个开关芯片;每个开关芯片的一端通过串行外设接口SPI与一个BIOS芯片连接,另一端通过SPI与所述CPU连接;所述CPU通过低引脚数LPC总线与所述切换控制器连接;所述切换控制器还与所述两个开关芯片连接,用以切换与所述CPU互联的BIOS芯片;
所述方法包括:
在所述CPU通过当前与其互联的BIOS芯片启动失败的情况下,通过与另一BIOS芯片连接的开关芯片控制所述另一BIOS芯片与所述CPU互联;
控制所述CPU通过所述另一BIOS芯片启动。
11.根据权利要求10所述的方法,其特征在于,通过与另一BIOS芯片连接的开关芯片控制所述另一BIOS芯片与所述CPU互联,包括:
读取所述CPU通过所述LPC总线向所述切换控制器中的状态寄存器中写入的启动状态值,所述启动状态值表示所述CPU通过当前与其互联的BIOS芯片启动成功与否;
在所述启动状态值表示所述CPU通过当前与其互联的BIOS芯片启动失败的情况下,将所述切换控制器中的控制寄存器中的控制状态值取反;
根据取反后的控制状态值向与另一BIOS芯片连接的开关芯片输出用于选通所述另一BIOS芯片的片选信号,以使所述另一BIOS芯片与所述CPU互联。
12.根据权利要求11所述的方法,其特征在于,根据取反后的控制状态值向与另一BIOS芯片连接的开关芯片输出用于选通所述另一BIOS芯片的片选信号,包括:
计算所述切换控制器中的片选寄存器中的片选值和所述取反后的控制状态值之间的状态关系;
若所述状态关系为同或关系,则确定主BIOS芯片为另一BIOS芯片,并输出用于选通主BIOS芯片的片选信号;
若所述状态关系为异或关系,则确定从BIOS芯片为另一BIOS芯片,并输出用于选通从BIOS芯片的片选信号。
13.根据权利要求12所述的方法,其特征在于,所述板卡还包括基本管理控制器BMC;每片开关芯片上的管脚分为A组和B组,所述BMC分别与每个开关芯片上的A组管脚连接,所述CPU分别与每个开关芯片上的B组管脚连接;每个开关芯片上的A组管脚和B组管脚与其对应BIOS芯片并联;所述切换控制器还与每个开关芯片上与A组管脚和B组管脚各自对应的片选端连接;
所述方法还包括:通过每个开关芯片上的片选端选通所述BMC或所述CPU与该开关芯片连接的BIOS芯片互联。
14.一种计算机设备,其特征在于,包括:板卡,所述板卡包括切换控制器、两个基本输入输出***BIOS芯片、两个开关芯片和处理器CPU,其中,所述两个BIOS芯片互为主从关系;每个开关芯片的一端与一个BIOS芯片连接,另一端通过串行外设接口SPI与所述CPU连接;所述CPU通过低引脚数LPC总线与所述切换控制器连接;所述切换控制器还与所述两个开关芯片连接,用以切换与所述CPU互联的BIOS芯片;
所述CPU,用于通过当前与其互联的BIOS芯片进行启动;所述切换控制器,用于在所述CPU通过当前与其互联的BIOS芯片启动失败的情况下,通过与另一BIOS芯片连接的开关芯片控制所述另一BIOS芯片与所述CPU互联,并控制所述CPU通过所述另一BIOS芯片启动。
CN202010778785.0A 2020-08-05 2020-08-05 主从bios切换方法、板卡及设备 Active CN112084064B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010778785.0A CN112084064B (zh) 2020-08-05 2020-08-05 主从bios切换方法、板卡及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010778785.0A CN112084064B (zh) 2020-08-05 2020-08-05 主从bios切换方法、板卡及设备

Publications (2)

Publication Number Publication Date
CN112084064A true CN112084064A (zh) 2020-12-15
CN112084064B CN112084064B (zh) 2023-03-31

Family

ID=73736038

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010778785.0A Active CN112084064B (zh) 2020-08-05 2020-08-05 主从bios切换方法、板卡及设备

Country Status (1)

Country Link
CN (1) CN112084064B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114138301A (zh) * 2021-11-26 2022-03-04 浪潮电子信息产业股份有限公司 一种bios芯片在线更新的装置及服务器
CN117472457A (zh) * 2023-12-27 2024-01-30 苏州元脑智能科技有限公司 一种双bios***、***切换方法、装置、设备及存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020099974A1 (en) * 1999-05-05 2002-07-25 Hou-Yuan Lin Dual basic input/output system for a computer
TW200707291A (en) * 2005-08-08 2007-02-16 Inventec Corp Selective apparatus for main/backup basic input/output system (BIOS)
CN101499909A (zh) * 2008-02-03 2009-08-05 中兴通讯股份有限公司 单板启动***和方法
CN101908008A (zh) * 2009-06-03 2010-12-08 大唐移动通信设备有限公司 一种bios切换装置及切换方法
CN102736941A (zh) * 2012-07-03 2012-10-17 江西省电力公司信息通信分公司 一种实现自动双flash启动cpu***的方法
CN104391722A (zh) * 2014-12-03 2015-03-04 浪潮集团有限公司 一种基于服务器***的双bios设计
CN105159719A (zh) * 2015-09-06 2015-12-16 浙江大华技术股份有限公司 一种主备用基本输入输出***的启动方法及装置
US9542195B1 (en) * 2013-07-29 2017-01-10 Western Digital Technologies, Inc. Motherboards and methods for BIOS failover using a first BIOS chip and a second BIOS chip
CN107844330A (zh) * 2017-10-25 2018-03-27 郑州云海信息技术有限公司 一种增强arm服务器启动代码可靠性的方法与***

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020099974A1 (en) * 1999-05-05 2002-07-25 Hou-Yuan Lin Dual basic input/output system for a computer
TW200707291A (en) * 2005-08-08 2007-02-16 Inventec Corp Selective apparatus for main/backup basic input/output system (BIOS)
CN101499909A (zh) * 2008-02-03 2009-08-05 中兴通讯股份有限公司 单板启动***和方法
CN101908008A (zh) * 2009-06-03 2010-12-08 大唐移动通信设备有限公司 一种bios切换装置及切换方法
CN102736941A (zh) * 2012-07-03 2012-10-17 江西省电力公司信息通信分公司 一种实现自动双flash启动cpu***的方法
US9542195B1 (en) * 2013-07-29 2017-01-10 Western Digital Technologies, Inc. Motherboards and methods for BIOS failover using a first BIOS chip and a second BIOS chip
CN104391722A (zh) * 2014-12-03 2015-03-04 浪潮集团有限公司 一种基于服务器***的双bios设计
CN105159719A (zh) * 2015-09-06 2015-12-16 浙江大华技术股份有限公司 一种主备用基本输入输出***的启动方法及装置
CN107844330A (zh) * 2017-10-25 2018-03-27 郑州云海信息技术有限公司 一种增强arm服务器启动代码可靠性的方法与***

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114138301A (zh) * 2021-11-26 2022-03-04 浪潮电子信息产业股份有限公司 一种bios芯片在线更新的装置及服务器
CN114138301B (zh) * 2021-11-26 2024-02-23 浪潮电子信息产业股份有限公司 一种bios芯片在线更新的装置及服务器
CN117472457A (zh) * 2023-12-27 2024-01-30 苏州元脑智能科技有限公司 一种双bios***、***切换方法、装置、设备及存储介质
CN117472457B (zh) * 2023-12-27 2024-04-23 苏州元脑智能科技有限公司 一种双bios***、***切换方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN112084064B (zh) 2023-03-31

Similar Documents

Publication Publication Date Title
US10055218B2 (en) System and method for adding and storing groups of firmware default settings
US10067834B1 (en) Systems and methods for resetting one or more system components in response to a watchdog timer (WDT) event
US7613937B2 (en) Method and apparatus for utilizing a microcontroller to provide an automatic order and timing power and reset sequencer
US10776129B2 (en) Method and apparatus for controlling a startup bootstrap program of an intelligent TV set
CN112084064B (zh) 主从bios切换方法、板卡及设备
US20130080752A1 (en) Method and apparatus for implementing compatiblity of different processors
CN102165418A (zh) 涡轮引导***和方法
CN104025047A (zh) 信息处理装置、信息处理方法以及计算机程序
US9715267B2 (en) Method for switching operating systems and electronic apparatus
US20100106956A1 (en) Bios switching system and a method thereof
KR20200090010A (ko) 펌웨어 업데이트 방법, 이를 위한 전자 장치 및 저장 매체
CN114661368B (zh) 一种芯片及其启动方法
TWI515557B (zh) 電腦系統與控制方法
KR100703164B1 (ko) 데이터 처리장치 및 그 제어방법
TW201716999A (zh) 開機檢查方法及電腦系統
CN114020340B (zh) 一种服务器***及其数据处理方法
CN101667133A (zh) 固件更新方法和使用该方法更新固件的芯片
CN101727333A (zh) 微处理器中固件更新的方法及固件更新***
TWI750215B (zh) Bios切換裝置
CN116088945A (zh) 一种***固件启动方法、装置、设备及计算机存储介质
US20140181492A1 (en) Method of booting an electronic system and an electronic system applying the same
CN111338771B (zh) 引导程序切换处理方法及装置、计算机设备、介质
TW202223655A (zh) 可自我監視及恢復作業系統運作的電腦系統及方法
CN112214235A (zh) 快充固件升级方法、装置、移动终端和存储介质
CN111381892A (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
GR01 Patent grant
GR01 Patent grant