Dual BIOS system, system switching method, device, equipment, and storage medium
The dual BIOS system with two BIOS chips and a BMC control chip addresses boot failures by enabling seamless subsystem switching and data synchronization, ensuring stable server operation and efficient recovery.
Patent Information
- Application Number
- JP2025537114
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-12-27
- Filing Date
- 2024-05-28
- Publication Date
- 2026-01-23
AI Technical Summary
The failure of a BIOS chip in a server system leads to system boot failures, reducing efficiency and causing user losses, as existing systems lack a robust mechanism for ensuring stable operation and swift recovery.
A dual BIOS system with two BIOS chips, a BMC control chip, and a platform controller hub, enabling subsystem switching and refreshes based on trigger conditions, including automatic, manual, and dual BIOS refresh triggers, ensuring seamless operation and data synchronization.
Ensures stable operation by allowing quick subsystem switching and data synchronization, reducing downtime and maintaining system efficiency by avoiding boot failures and enhancing recovery mechanisms.
Smart Images

Figure 2026502439000001_ABST
Abstract
Description
[Technical Field]
[0001] [CROSS-REFERENCE TO RELATED APPLICATIONS] This application claims priority to a Chinese patent application bearing application number 202311824634.4 and entitled "Dual BIOS system, system switching method, device, equipment, and storage medium" filed with the China Patent Office on December 27, 2023, the entire contents of which are incorporated herein by reference.
[0002] TECHNICAL FIELD The present application relates to the technical field of operating systems, and more particularly to a dual BIOS system, a system switching method, an apparatus, a device, and a non-volatile readable storage medium. [Background technology]
[0003] In a server system, the Basic Input Output System (BIOS) chip is responsible for guiding the entire system, initializing the hardware, and loading the operating system. It also provides the basic services required during system operation, playing an important role in the entire server system.
[0004] If a BIOS chip fails, the server system will be unable to boot normally and will need to have the BIOS chip repaired before it can be restarted, which will result in a reduction in the overall system's working efficiency and cause losses to users. Summary of the Invention [Problem to be solved by the invention]
[0005] Some embodiments of the present application provide a dual BIOS system, a system switching method, an apparatus, a device, and a non-volatile readable storage medium to ensure stable operation of the BIOS system. [Means for solving the problem]
[0006] A first aspect of some embodiments of the present application is a first BIOS chip used to operate the first BIOS subsystem; a second BIOS chip used to operate the second BIOS subsystem; a baseboard management controller (BMC) chip used to run a BMC program; a BMC control chip used to control the BMC chip and the second BIOS chip and connected to the BMC chip and the second BIOS chip; A dual BIOS system is provided, which includes a platform controller hub used to control a first BIOS chip and a BMC control chip, connected to the first BIOS chip via a first bus and connected to the BMC control chip via a second bus, wherein the first bus and the second bus are connected and the platform controller hub is connected to a CPU.
[0007] Optionally, the access entities of the dual BIOS system include a host and a BMC control chip, and the host and the BMC control chip perform interactive access by sending commands.
[0008] Optionally, the BMC control chip performs a subsystem refresh on the first BIOS chip, and then sends a subsystem switching request command to the host. When the host receives a subsystem switching request command, it switches the first BIOS subsystem to the second BIOS subsystem; When the first BIOS subsystem is switched to the second BIOS subsystem, the BMC control chip refreshes the second BIOS subsystem in the second BIOS chip; When the refresh of the second BIOS subsystem in the second BIOS chip is completed, the BMC control chip sends a subsystem switching request command to the host; When the host receives the subsystem switching request command, it switches the second BIOS subsystem to the first BIOS subsystem.
[0009] Optionally, the host performs a subsystem refresh on the first BIOS subsystem in the first BIOS chip, and then switches the first BIOS subsystem to the second BIOS subsystem; When the first BIOS subsystem is switched to the second BIOS subsystem, the host refreshes the second BIOS subsystem in the second BIOS chip; When the refresh of the second BIOS subsystem in the second BIOS chip is completed, the host switches the second BIOS subsystem to the first BIOS subsystem.
[0010] Optionally, the BMC control chip, upon receiving the subsystem switching command, sends a subsystem switching request command to the host; When the host receives the subsystem switching request command, it switches the first BIOS subsystem to the second BIOS subsystem.
[0011] Optionally, the first BIOS subsystem is switched to the second BIOS subsystem when the host actively switches subsystems.
[0012] Optionally, the BMC control chip sends a subsystem switching request command to the host when it detects a boot failure of the operating system; When the host receives the subsystem switching request command, it switches the first BIOS subsystem to the second BIOS subsystem.
[0013] Optionally, the host, if operating normally, reads data in the first BIOS chip; The host sends a data read command to the BMC control chip, When the BMC control chip receives a data read command, it sends the data in the second BIOS chip to the host; The host performs data verification on the data in the first BIOS chip and the data in the second BIOS chip; The host synchronizes the data between the first BIOS chip and the second BIOS chip according to the data verification result.
[0014] A second aspect of some embodiments of the present application is applied to a dual BIOS system, If the first BIOS subsystem is operational, determining whether a subsystem switch is required; If a subsystem switch is required, determining switch trigger conditions satisfied by the dual BIOS system, the switch trigger conditions including a redual BIOS refresh trigger, an automatic switch trigger, and a manual switch trigger; switching the currently operating first BIOS subsystem to the second BIOS subsystem according to a corresponding switching scheme in response to a switching trigger condition; if the first BIOS subsystem is switched to the second BIOS subsystem, obtaining a value of a flag register; determining the BIOS subsystem to be used for data access from the value of the flag register; and performing data access using the BIOS subsystem.
[0015] Optionally, the step of switching the currently operating first BIOS subsystem to the second BIOS subsystem by a corresponding switching scheme in response to a switching trigger condition comprises: If the switching trigger condition is a dual BIOS refresh trigger, determining an execution entity to refresh the first BIOS subsystem; If the execution entity is a BMC control chip, sending a first switching request to the host by the BMC control chip; The host switches the first BIOS subsystem to the second BIOS subsystem in accordance with the first switching request.
[0016] Optionally, before sending the first switching request to the host by the BMC control chip, the method further comprises: refreshing a first BIOS subsystem by a BMC control chip; setting the value of the flag register to a second preset value.
[0017] Optionally, the method comprises: If the executing subject is the host, the first BIOS subsystem is switched to the second BIOS subsystem by the host.
[0018] Optionally, before switching the first BIOS subsystem to the second BIOS subsystem by the host, the method further comprises: refreshing a first BIOS subsystem by the host; setting the value of the flag register to a third preset value.
[0019] Optionally, the method comprises: receiving a subsystem switching command by the BMC control chip if the switching trigger condition is a manual switching trigger; sending a second switching request to the host by the BMC control chip; The host further includes switching the first BIOS subsystem to the second BIOS subsystem in accordance with the second switching request.
[0020] Optionally, the method comprises: If the switching trigger condition is an automatic switching trigger, determining an execution subject corresponding to the automatic switching trigger; If the execution subject is the BMC control chip, sending a third switching request to the host by the BMC control chip; The host further includes switching the first BIOS subsystem to the second BIOS subsystem in accordance with the third switching request.
[0021] Optionally, the method comprises: If the executing subject is the host, the method further includes the step of switching the first BIOS subsystem to the second BIOS subsystem by the host.
[0022] Optionally, the step of determining the BIOS subsystem to be used for data access from the value of the flags register comprises: determining that the BIOS subsystem used for data access is the second BIOS subsystem if the value of the flag register is the first preset value; determining that the BIOS subsystem used for data access is the first BIOS subsystem if the value of the flag register is a second preset value; and determining that the BIOS subsystem used for data access is the first BIOS subsystem if the value of the flag register is a third preset value.
[0023] Optionally, the method comprises: refreshing the second BIOS subsystem by the BMC control chip when the value of the flag register is a second preset value; sending a fourth switching request to the host when the refresh of the second BIOS subsystem is completed; The host further includes a step of switching the second BIOS subsystem to the first BIOS subsystem in accordance with the fourth switching request.
[0024] Optionally, the method comprises: refreshing the second BIOS subsystem by the host if the value of the flag register is a third preset value; when the refresh of the second BIOS subsystem is completed, switching the second BIOS subsystem to the first BIOS subsystem by the host; changing the value of the flag register to a first preset value.
[0025] Optionally, the method comprises: If the host operates normally, reading system data of a first BIOS subsystem; reading system data of a second BIOS subsystem; performing data verification on the system data of the first BIOS subsystem and the system data of the second BIOS subsystem; The method further includes performing data synchronization on the system data of the first BIOS subsystem and the system data of the second BIOS subsystem according to the data verification result.
[0026] Optionally, the step of performing data synchronization on the system data of the first BIOS subsystem and the system data of the second BIOS subsystem according to the data verification result includes: When a parameter of the first BIOS subsystem is changed, synchronizing and backing up the changed parameter to the second BIOS subsystem; If the first BIOS subsystem performs a configuration preserve refresh, writing a configuration preserve to the first BIOS subsystem; backing up system data of a first BIOS subsystem to a second BIOS subsystem; If the first BIOS subsystem performs data rollback synchronization, reading system data of the second BIOS subsystem; and synchronizing the system data of the second BIOS subsystem with the first BIOS subsystem.
[0027] Optionally, the method comprises: The method further includes the step of switching from the first BIOS subsystem to the second BIOS subsystem when an abnormality occurs in the operation of the host.
[0028] A third aspect of some embodiments of the present application is a first BIOS chip used to operate the first BIOS subsystem; a second BIOS chip used to operate the second BIOS subsystem; a BMC chip used to run a BMC program; a switch used to control the first BIOS chip to be connected to the second BIOS chip, and connected to the first BIOS chip and the second BIOS chip; a complex programmable logic device connected to the switch, the complex programmable logic device being used to control the switch to switch links; a BMC control chip used for controlling the BMC chip, connected to the BMC chip, connected to the complex programmable logic device, and connected to the switch; A dual BIOS system is provided, comprising: a platform controller hub connected to a switch via a first bus, connected to a BMC control chip via a second bus, and connected to a CPU, the platform controller hub connecting the first bus and the second bus.
[0029] Optionally, the access entities in a dual BIOS system include the host and the BMC control chip.
[0030] Optionally, when the BMC control chip receives the subsystem switching command, it sends a subsystem switching request command to the complex programmable logic device; The BMC control chip controls the dual BIOS system to perform the shutdown operation. When the complex programmable logic device receives a subsystem switching request command, it sends a line switching command to the switch; When the switch receives a line switching command, it switches the connected chip from the first BIOS chip to the second BIOS chip, A dual BIOS system uses a second BIOS subsystem for turn-on bootup.
[0031] Optionally, the BMC control chip sends a subsystem switch request instruction to the complex programmable logic device when an operating system boot failure occurs; The BMC control chip controls the dual BIOS system to perform the shutdown operation. When the complex programmable logic device receives a subsystem switching request command, it sends a line switching command to the switch; When the switch receives a line switching command, it switches the connected chip from the first BIOS chip to the second BIOS chip, A dual BIOS system uses a second BIOS subsystem for turn-on bootup.
[0032] Optionally, the BMC control chip sends a subsystem switch request instruction to the complex programmable logic device when a subsystem refresh needs to be performed for a dual BIOS system; The BMC control chip controls the dual BIOS system to perform the shutdown operation. When the complex programmable logic device receives the subsystem switching request command, it sends a first line switching command to the switch; When the switch receives the first line switching command, it switches the connected chip from the first BIOS chip to the second BIOS chip; A complex programmable logic chip sends a second line switching command to the switch, When the switch receives the second line switching command, it switches the access subject from the host to the BMC control chip; the BMC control chip refreshes the second BIOS subsystem in the second BIOS chip; When the refresh of the second BIOS subsystem in the second BIOS chip is completed, the BMC control chip sends a subsystem switch request command to the complex programmable logic device; the programmable logic device, when receiving the subsystem switching request command, sends a third line switching command to the switch; When the switch receives a third line switching command, it switches the connected chip from the second BIOS chip to the first BIOS chip; The BMC control chip refreshes the first BIOS subsystem in the first BIOS chip; When the refresh of the first BIOS subsystem in the first BIOS chip is completed, the complex programmable logic chip sends a fourth line switching instruction to the switch; When the switch receives the fourth line switching command, it switches the access subject from the BMC control chip to the host, A dual BIOS system will turn on and boot using the first BIOS subsystem.
[0033] A fourth aspect of some embodiments is applied to a dual BIOS system, determining a switching trigger condition that the dual BIOS system satisfies if the first BIOS subsystem operates, the switching trigger condition including a manual switching trigger, an automatic switching trigger, and a redual BIOS refresh trigger; and executing a corresponding subsystem switchover flow in response to a switchover trigger condition.
[0034] Optionally, the step of executing a corresponding subsystem switchover flow in response to a switchover trigger condition comprises: If the switch trigger condition is a manual switch trigger, controlling, by a complex programmable logic device, a switch to switch the first BIOS subsystem to the second BIOS subsystem; the BMC control chip controls the dual BIOS system to perform a shutdown operation; determining a value in a flag register; and if the value of the flag register is not the first preset value, performing a turn-on boot using the second BIOS subsystem.
[0035] Optionally, the method comprises: If the switching trigger condition is an automatic switching trigger, the BMC control chip sends a subsystem switching request command to the complex programmable logic device; the BMC control chip controls the dual BIOS system to perform a shutdown operation; the complex programmable logic device controls the switch to switch the first BIOS subsystem to the second BIOS subsystem when receiving a subsystem switching request command; determining a value in a flag register; If the value of the flag register is not the first preset value, performing a turn-on boot using the second BIOS subsystem.
[0036] Optionally, the method comprises: If the switching trigger condition is a redual BIOS refresh trigger, setting the value of the flag register to a first preset value; The BMC control chip sends a subsystem switching request command to the complex programmable logic device; the BMC control chip controls the dual BIOS system to perform a shutdown operation; a complex programmable logic device controlling a switch to switch from the first BIOS subsystem to the second BIOS subsystem; obtaining a value of a flag register; When the value of the flag register is a first preset value, the complex programmable logic device controls the switch to switch the access subject of the dual BIOS system from the host to the BMC control chip; the BMC control chip refreshes the second BIOS subsystem; When the refresh of the second BIOS subsystem is completed, the BMC control chip sends a subsystem switch request command to the complex programmable logic device; When the complex programmable logic device receives a subsystem switching request command, the switch controls the switch to switch the second BIOS subsystem to the first BIOS subsystem; the BMC control chip refreshes a first BIOS subsystem; clearing the value of the flags register if the refresh of the first BIOS subsystem is completed; The complex programmable logic device controls the switch to switch the access subject of the dual BIOS system from the BMC control chip to the host; The dual BIOS system further includes the step of performing turn-on boot using the first BIOS subsystem.
[0037] A fifth aspect of some embodiments of the present application is a switching determination module used to determine whether a subsystem switching is necessary when the first BIOS subsystem is operational; a switching trigger condition determination module used to determine switching trigger conditions that the dual BIOS system satisfies when subsystem switching is required, the switching trigger conditions including a redual BIOS refresh trigger, an automatic switching trigger, and a manual switching trigger; a subsystem switching module used for switching the currently working first BIOS subsystem to the second BIOS subsystem through a corresponding switching scheme according to a switching trigger condition; a value acquisition module used to acquire the value of the flag register when the first BIOS subsystem is switched to the second BIOS subsystem; a subsystem determination module used to determine a BIOS subsystem to be used for data access from a value of a flag register; and a data access module used to access data using the BIOS subsystem.
[0038] Optionally, the subsystem switching module: a first execution subject confirmation submodule, which is used to determine an execution subject for refreshing the first BIOS subsystem when the switching trigger condition is a dual BIOS refresh trigger; a first sending sub-module, when the execution body is a BMC control chip, used by the BMC control chip to send a first switching request to the host; The host includes a first switching sub-module used for switching the first BIOS subsystem to the second BIOS subsystem according to the first switching request.
[0039] Optionally, the apparatus comprises: a first data refresh sub-module used by the BMC control chip to refresh the first BIOS subsystem; The flag register further includes a first register value setting sub-module, which is used to set the value of the flag register to a second preset value.
[0040] Optionally, the apparatus comprises: When the execution subject is the host, the second switching sub-module is used for switching the first BIOS subsystem to the second BIOS subsystem by the host.
[0041] Optionally, the apparatus comprises: a second data refresh sub-module used by the host to refresh the first BIOS subsystem; and a second register value setting sub-module, used for setting the value of the flag register to a third preset value.
[0042] Optionally, the apparatus comprises: a first receiving sub-module, which is used to receive a subsystem switching command from the BMC control chip when the switching trigger condition is a manual switching trigger; a second sending sub-module, used by the BMC control chip to send a second switching request to the host; The host further includes a third subsystem switching sub-module used to switch the first BIOS subsystem to the second BIOS subsystem according to the second switching request.
[0043] Optionally, the apparatus comprises: a second execution subject confirmation submodule, used for determining an execution subject corresponding to the automatic switching trigger when the switching trigger condition is an automatic switching trigger; a third sending sub-module, when the execution body is a BMC control chip, used by the BMC control chip to send a third switching request to the host; The host further includes a third switching sub-module used for switching the first BIOS subsystem to the second BIOS subsystem according to a third switching request.
[0044] Optionally, the apparatus comprises: When the execution subject is the host, the fourth switching sub-module is used for switching the first BIOS subsystem to the second BIOS subsystem by the host.
[0045] Optionally, the subsystem determination module: a first subsystem confirmation sub-module for determining that the BIOS subsystem used for data access is the second BIOS subsystem when the value of the flag register is a first preset value; a second subsystem confirmation sub-module, which is used to determine that the BIOS subsystem used for data access is the first BIOS subsystem when the value of the flag register is a second preset value; and a third subsystem confirmation sub-module used to determine that the BIOS subsystem used for data access is the first BIOS subsystem if the value of the flag register is a third preset value.
[0046] Optionally, the apparatus comprises: a third data refresh sub-module, which is used by the BMC control chip to refresh the second BIOS subsystem when the value of the flag register is a second preset value; a fourth sending sub-module, used for sending a fourth switching request to the host by the BMC control chip when the second BIOS subsystem has been refreshed; The host further includes a fourth switching sub-module used for switching the second BIOS subsystem to the first BIOS subsystem according to the fourth switching request.
[0047] Optionally, the apparatus comprises: a fourth data refresh sub-module, which is used by the host to refresh the second BIOS subsystem when the value of the flag register is a third preset value; a fifth switching sub-module, used by the host to switch the second BIOS subsystem to the first BIOS subsystem when the refresh of the second BIOS subsystem is completed; and a third register value setting sub-module, used for changing the value of the flag register to a first preset value.
[0048] Optionally, the apparatus comprises: a first data reading module used to read system data of a first BIOS subsystem when the host operates normally; a second data reading module used to read system data of a second BIOS subsystem; a data verification module used to perform data verification on the system data of the first BIOS subsystem and the system data of the second BIOS subsystem; The system further includes a data synchronization module used to perform data synchronization on the system data of the first BIOS subsystem and the system data of the second BIOS subsystem according to the data verification result.
[0049] Optionally, the data synchronization module: a first data synchronization sub-module, which is used to synchronize and back up the changed parameters to the second BIOS subsystem when the parameters of the first BIOS subsystem are changed; a data writing submodule used to write the configuration retention to the first BIOS subsystem when the first BIOS subsystem performs a configuration retention refresh; a second data synchronization sub-module used to back up system data of the first BIOS subsystem to the second BIOS subsystem; a third data synchronization sub-module, used to read the system data of the second BIOS subsystem when the first BIOS subsystem performs data rollback synchronization; and a fourth data synchronization sub-module used to synchronize the system data of the second BIOS subsystem with the first BIOS subsystem.
[0050] Optionally, the apparatus comprises: The system further includes a second subsystem switching module used to switch from the first BIOS subsystem to the second BIOS subsystem when an abnormality occurs in the operation of the host.
[0051] A sixth aspect of some embodiments of the present application is a switching trigger condition determination module used to determine a switching trigger condition that the dual BIOS system satisfies when the first BIOS subsystem is operating, the switching trigger condition including a manual switching trigger, an automatic switching trigger, and a redual BIOS refresh trigger; a system switching flow execution module used to execute a corresponding subsystem switching flow according to a switching trigger condition.
[0052] Optionally, the system switching flow execution module: a manual switching sub-module, which is used to control a switch to switch the first BIOS subsystem to the second BIOS subsystem through a complex programmable logic device when the switching trigger condition is a manual switching trigger; The BMC control chip includes a first shutdown operation sub-module, which is used to control the dual BIOS system to perform a shutdown operation; a first data determination sub-module used to determine the value of a flag register; a first turn-on startup sub-module used to perform turn-on startup using the second BIOS subsystem if the value of the flag register is not the first preset value.
[0053] Optionally, the system switching flow execution module: When the switching trigger condition is an automatic switching trigger, the BMC control chip includes an automatic switching sub-module, which is used to send a subsystem switching request command to the complex programmable logic device; The BMC control chip includes a second shutdown operation sub-module, which is used to control the dual BIOS system to perform a shutdown operation; The complex programmable logic device includes an automatic switching execution submodule, which is used to control the switch to switch the first BIOS subsystem to the second BIOS subsystem when receiving a subsystem switching request command; a second value determination sub-module used to determine the value of a flag register; and a second turn-on startup sub-module, which is used to perform turn-on startup using a second BIOS subsystem if the value of the flag register is not the first preset value.
[0054] Optionally, the system switching flow execution module: a value setting sub-module, used for setting the value of the flag register to a first preset value when the switching trigger condition is a dual BIOS refresh trigger; The BMC control chip includes a first command sending sub-module, which is used to send a subsystem switching request command to the complex programmable logic device; The BMC control chip includes a third shutdown operation sub-module, which is used to control the dual BIOS system to perform a shutdown operation; The complex programmable logic device includes a first refresh switching execution sub-module, which is used to control the switch to switch the first BIOS subsystem to the second BIOS subsystem; a third numerical determination submodule used to obtain the value of a flag register; When the value of the flag register is a first preset value, the complex programmable logic device includes an access subject switching submodule, which is used to control the switch to switch the access subject of the dual BIOS system from the host to the BMC control chip; The BMC control chip includes a first subsystem refresh sub-module for refreshing the second BIOS subsystem; When the second BIOS subsystem is refreshed, the BMC control chip sends a second command sending sub-module to the complex programmable logic device to request a subsystem switchover; The complex programmable logic device includes a second refresh switching execution sub-module, which is used to control the switch to switch the second BIOS subsystem to the first BIOS subsystem when receiving a subsystem switching; The BMC control chip includes a second subsystem refresh sub-module for refreshing the first BIOS subsystem; a value clear sub-module, which is used to clear the value of the flag register when the refresh of the first BIOS subsystem is completed; The complex programmable logic device includes a second access subject switching sub-module, which is used to control the switch to switch the access subject of the dual BIOS system from the BMC control chip to the host; The dual BIOS system further includes a third turn-on boot sub-module used to perform turn-on boot using the first BIOS subsystem.
[0055] A seventh aspect of some embodiments of the present application provides a non-volatile readable storage medium having a computer program stored thereon, the computer program implementing the steps of the method according to the first aspect of the present application when executed by a processor.
[0056] An eighth aspect of some embodiments of the present application provides an electronic device including a memory, a processor, and a computer program stored in the memory and operable on the processor, wherein the processor, when executing the computer program, implements the steps of the method described in the first aspect of the present application.
[0057] According to the dual BIOS system of the present application, the system: a first BIOS chip used to operate the first BIOS subsystem; a second BIOS chip used to operate the second BIOS subsystem; a BMC chip used to run a BMC program; a BMC control chip used to control the BMC chip and the second BIOS chip and connected to the BMC chip and the second BIOS chip; and a platform controller hub used to control a first BIOS chip and a BMC control chip, connected to the first BIOS chip via a first bus and to the BMC control chip via a second bus, the first bus and the second bus being connected to a central processing unit (CPU). In this system, the platform controller hub is connected to the first BIOS chip via a first bus, SPI, and to the second BIOS chip via a second bus, Enhanced Serial Peripheral Interface (ESPI), the ESPI and the Serial Peripheral Interface (SPI) are connected, the host controls the first BIOS chip connected to the SPI, the BMC control chip controls the second BIOS chip, the host side can access the second BIOS chip under the BMC control chip by an ESPI command, and the BMC control chip can access the first BIOS chip on the host side by an ESPI request. To meet the needs of the host and BMC to access the first and second BIOS chips, the ESPI flash (flash memory) access channel and sharing function are utilized to enable the flash access link in each direction when the host and BMC meet the conditions, and data synchronization can also be performed. The system does not rely on complex programmable logic devices (CPLDs) and switches, thereby reducing the cost of the architecture and improving the efficiency of subsystem switching in a dual-BIOS system. [Effects of the Invention]
[0058] The system switching method of the present invention determines whether subsystem switching is necessary when the first BIOS subsystem is operating, and if subsystem switching is necessary, determines the switching trigger conditions satisfied by the dual BIOS system, including a redual BIOS refresh trigger, an automatic switching trigger, and a manual switching trigger. According to the switching trigger conditions, the currently operating first BIOS subsystem is switched to the second BIOS subsystem using a corresponding switching method. When the first BIOS subsystem is switched to the second BIOS subsystem, the value of a flag register is obtained, and the BIOS subsystem to be used for data access is determined from the value of the flag register, and the data access is performed using the BIOS subsystem. In this method, when the currently operating first BIOS subsystem needs to be switched, the switching trigger conditions satisfied by the dual BIOS system are determined, and according to the switching trigger conditions, the first BIOS subsystem is switched to the second BIOS subsystem using a corresponding method. Considering the need for subsystem switching based on various needs of the dual BIOS system, this ensures that the operating system can quickly switch to another BIOS subsystem if a failure occurs during startup, thereby ensuring stable operation of the operating system. [Brief explanation of the drawings]
[0059] In order to more clearly describe the technical solutions of some embodiments of the present application, the following briefly introduces drawings necessary for describing some embodiments of the present application. However, the drawings in the following description are only some embodiments of the present application, and it is obvious that those skilled in the art can obtain other drawings based on these drawings without paying creative labor. [Figure 1] 1 is a schematic diagram of the configuration of a dual BIOS system proposed in some embodiments of the present application. [Figure 2] 1 is a flow chart of a system switching method proposed in some embodiments of the present application; [Figure 3]1 is a schematic diagram of the switching flow of a dual BIOS system proposed in some embodiments of the present application. [Figure 4] 1 is a schematic diagram of the data synchronization flow of a dual BIOS system proposed in some embodiments of the present application; [Figure 5] 1 is a schematic diagram of the configuration of a dual BIOS system proposed in some embodiments of the present application. [Figure 6] 1 is a flow chart of a system switching method proposed in some embodiments of the present application; [Figure 7] 1 is a schematic diagram of the switching flow of a dual BIOS system proposed in some embodiments of the present application. [Figure 8] 1 is a schematic diagram of a system switching device proposed in some embodiments of the present application; [Figure 9] 1 is a schematic diagram of a system switching device proposed in some embodiments of the present application; [Figure 10] 1 is a schematic diagram of an electronic device proposed in some embodiments of the present application. DETAILED DESCRIPTION OF THE INVENTION
[0060] Hereinafter, the technical solutions in some embodiments of the present application will be clearly and completely described with reference to the drawings in some embodiments of the present application, but it is clear that the described some embodiments are some embodiments of the present application, not all embodiments. Based on some embodiments of the present application, all other embodiments obtained by those skilled in the art without paying creative labor belong to the protection scope of the present application.
[0061] In some examples, the nouns that appear will be explained for ease of understanding.
[0062] Enhanced Serial Peripheral Interface (ESPI) Central Processing Unit (CPU) Basic Input / Output System (BIOS) Baseboard Management Controller (BMC) Serial Peripheral Interface (SPI) Platform Controller Hub (PCH) Complex Programmable Logic Device (CPLD) switch
[0063] Referring to FIG. 1, FIG. 1 is a schematic diagram of a dual BIOS system proposed in some embodiments of the present application. As shown in FIG. 1, the system includes a first BIOS chip, a second BIOS chip, a BMC chip, a BMC control chip, and a platform controller hub.
[0064] The first BIOS chip is used to operate the first BIOS subsystem.
[0065] In some embodiments of the present application, a first BIOS subsystem is run on a BIOS chip. The BIOS system is a program run when the operating system starts up, and stores the computer's most important basic input / output programs and system auto-start programs. Its main function is to provide the computer with the most basic and straightforward hardware configuration and control. The first BIOS chip is one of the BIOS chips in a dual BIOS system, and the first BIOS subsystem is one of the BIOS systems run on the first BIOS chip.
[0066] The second BIOS chip is used to operate a second BIOS subsystem.
[0067] In some embodiments of the present application, the second BIOS chip is the other BIOS chip of a dual BIOS system, and the second BIOS subsystem is the other BIOS system operated by the second BIOS chip.
[0068] In some embodiments of the present application, the first BIOS subsystem and the second BIOS subsystem operate independently of each other, and the data stored in the first BIOS chip and the second BIOS chip are the same and are updated synchronously in real time.
[0069] The BMC chip is used to run the BMC program.
[0070] In some embodiments of the present application, a BMC chip is used to run a BMC program, and the BMC is a device independent of the server, which can manage server information such as the server model and manufacturing date, monitor and manage server status such as the server status and the status of the server hard disk, remotely control and manage the server such as turning on, shutting down, and restarting the server, and perform server maintenance management such as log management, user management, BIOS management, and alarm management.
[0071] The BMC control chip is used to control the BMC chip and the second BIOS chip, and is connected to the BMC chip and the second BIOS chip.
[0072] In some embodiments of the present application, the BMC control chip is used to control the operation of the BMC chip, issue commands to the BMC chip, send requests to the host side, etc., and is connected to the BMC chip and the second BIOS chip.
[0073] The platform controller hub is used to control the first BIOS chip and the BMC control chip, and is connected to the first BIOS chip via a first bus and to the BMC control chip via a second bus. The first bus and the second bus are connected, and the platform controller hub is connected to the CPU.
[0074] In some embodiments of the present application, a platform controller hub (PCH) is used to control a first BIOS chip and a BMC control chip, and the platform controller hub is provided with a first bus, SPI, and a second bus, ESPI, and these two interfaces are managed and controlled by an SPI control program and an ESPI control program. The platform controller hub is connected to the first BIOS chip via SPI and to the BMC control chip via ESPI, and the other end of the platform controller hub is also connected to a CPU. In the platform controller hub, the ESPI is connected to the SPI, which is a high-speed serial bus interface, while the ESPI is another high-speed serial bus interface extended based on the SPI. When the ESPI operates, some functions of the SPI are called, and the SPI and the ESPI are connected to each other, allowing data transmission and access.
[0075] In some embodiments of the present application, the access entities of the dual BIOS system include a host and a BMC control chip, and the host and the BMC control chip use the ESPI data transmission protocol to send commands and perform interactive access.
[0076] In some embodiments of the present application, the host is configured with a link of CPU-SPI-first BIOS chip, and may be called the host of a dual BIOS system, in which the BMC control chip and the host are two independent access entities, and the host and the BMC control chip send commands and perform interactive access using the ESPI data transmission protocol.
[0077] In some embodiments of the present application, two entities can access the BIOS chips connected below them at any time. When a host needs to access a second BIOS chip below a BMC, it sends an ESPI command to the BMC using the ESPI data transmission protocol to enable the chip access function of the BMC. The host can then read, write, and access the firmware content of the second BIOS chip using an SPI data transmission protocol compatible with ESPI. When a BMC wants to access a first BIOS chip below the host, the BMC sends an ESPI request to the host, and the host sends an ESPI command to the BMC to enable the chip access function of the host. The BMC can then read, write, and access the firmware content of the first BIOS chip using an SPI data transmission protocol compatible with ESPI.
[0078] In some embodiments of the present application, a dual BIOS system based on ESPI is proposed, in which a first BIOS chip is directly connected to the SPI of a platform controller hub of a server system, a second BIOS chip is connected to a BMC control chip, and further connected to the ESPI of the platform controller hub via the BMC control chip, and the ESPI data transmission protocol, SPI and a data transmission protocol compatible with ESPI, are used to perform interactive access, read, and write to the contents of the two BIOS chips. Based on this physical architecture, the functional logic and implementation scheme of the dual BIOS system and its subsystems are established. This scheme optimizes and improves the switching of the subsystems of the dual BIOS system, reduces the cost of the architecture, and improves the switching efficiency of the subsystems.
[0079] The accessing entities of the dual BIOS system include the host and the BMC control chip, and the host and the BMC control chip perform interactive access by sending commands.
[0080] The BMC control chip performs a system refresh on the first BIOS chip, and then transmits a subsystem switching request command to the host.
[0081] In some embodiments of the present application, the subsystem switching request command is a command sent by the BMC control chip to the host, and is used to request the host to perform subsystem switching.
[0082] When the host receives the subsystem switching request command, it executes a subsystem switching operation to switch the first BIOS subsystem to the second BIOS subsystem.
[0083] When the subsystem switching is completed, the BMC control chip performs a subsystem refresh on the second BIOS chip.
[0084] When the refresh of the second BIOS subsystem in the second BIOS chip is completed, the BMC control chip sends a subsystem switching request command to the host.
[0085] When the host receives the subsystem switching request command, it executes a subsystem switching operation to switch the second BIOS subsystem to the first BIOS subsystem.
[0086] After refreshing the first BIOS subsystem in the first BIOS chip, the host performs a subsystem switching operation to switch the first BIOS subsystem to the second BIOS subsystem.
[0087] When the subsystem switching is completed, the host performs a subsystem refresh on the second BIOS chip.
[0088] When the refresh of the second BIOS subsystem is completed, the host performs a subsystem switching operation to switch the second BIOS subsystem to the first BIOS subsystem.
[0089] When the BMC control chip receives the subsystem switching request command, it sends the subsystem switching request command to the host.
[0090] When the host receives the subsystem switching request command, it executes a subsystem switching operation to switch the first BIOS subsystem to the second BIOS subsystem.
[0091] When the host needs to actively switch subsystems, it performs a subsystem switching operation to switch the first BIOS subsystem to the second BIOS subsystem.
[0092] If the BMC detects a system startup failure, it sends a subsystem switching request command to the host. When the host receives the subsystem switching request command, it executes a subsystem switching operation to switch the first BIOS subsystem to the second BIOS subsystem.
[0093] If the host operates normally, it reads the data in the first BIOS chip.
[0094] The host sends a data read command to the BMC control chip.
[0095] When the BMC control chip receives a data read command, it transmits the data in the second BIOS chip to the host.
[0096] The host performs data verification on the data in the first BIOS chip and the data in the second BIOS chip.
[0097] According to the data verification result, data synchronization is performed for the first BIOS chip and the second BIOS chip.
[0098] 2, which is a flowchart of a system switching method proposed in some embodiments of the present application, which is applied to a dual BIOS system. As shown in FIG. 2, the method includes the following steps S11 to S16:
[0099] S11: If the first BIOS subsystem works, determine whether a subsystem switch is necessary.
[0100] In some embodiments of the present application, reference is made to FIG. 3, which is a flow diagram of dual BIOS system switching proposed in some embodiments of the present application. When a dual BIOS system operates with a first BIOS subsystem, the dual BIOS system determines whether subsystem switching is required. When the system receives a switching request from the outside, when the host actively sends a switching command, or when the BMC requests switching, these are all cases where subsystem switching is required. When the system is operating normally and neither the outside nor the executing entity sends a switching command or switching request, subsystem switching is not required.
[0101] S12: If subsystem switching is required, determine the switching trigger conditions that the dual BIOS system meets, where the switching trigger conditions include a redual BIOS refresh trigger, an automatic switching trigger, and a manual switching trigger.
[0102] In some embodiments of the present application, the switching trigger conditions are conditions for triggering subsystem switching in a dual BIOS system, including a dual BIOS refresh trigger, an automatic switching trigger, and a manual switching trigger. A dual BIOS refresh trigger means that during BIOS operation, after one BIOS subsystem is refreshed, the other BIOS subsystem must also be synchronously refreshed. In this case, the other BIOS subsystem must be switched to and refreshed, so the switching trigger condition, called a dual BIOS refresh trigger, is met. An automatic switching condition means that the BMC or the host detects that BIOS subsystem switching is necessary due to a system failure, and the host initiates the switching, or the BMC requests the host to switch the system. In this case, the automatic switching trigger condition is met. A manual switching trigger means that a user manually sends a subsystem switching command to the BMC when they need to switch BIOS subsystems. In this case, the switching trigger condition that is met is the manual switching trigger.
[0103] In some embodiments of the present application, as shown in FIG. 3, assuming that the currently operating BIOS system is the first BIOS subsystem, when it is necessary to switch the currently operating first BIOS subsystem, it is first necessary to determine the switching trigger conditions satisfied by the dual BIOS system.
[0104] As an example, when a subsystem switching command manually sent by an administrator is received, it is determined that the switching trigger condition that is met is a manual switching trigger; when the host detects a system failure and actively initiates subsystem switching, it is determined that the trigger condition that is met is an automatic switching trigger; and when the host or BMC refreshes the BIOS subsystem, it is determined that the trigger condition that is met is a dual BIOS refresh trigger.
[0105] S13: Switch the currently working first BIOS subsystem to the second BIOS subsystem according to a corresponding switching scheme according to the trigger condition.
[0106] In some embodiments of the present application, different system switching methods are used for different trigger conditions. After the trigger condition is determined, the currently operating first BIOS subsystem is switched to the second BIOS subsystem according to the corresponding switching method.
[0107] In some embodiments of the present application, the specific steps of switching the currently working first BIOS subsystem to the second BIOS subsystem according to the trigger condition and through the corresponding switching manner include the following steps S13-1 to S13-3.
[0108] S13-1: If the switching trigger condition is a dual BIOS refresh trigger, determine the execution entity that refreshes the first BIOS subsystem.
[0109] In some embodiments of the present application, as shown in FIG. 3, if the trigger condition is a dual BIOS refresh trigger, first, the executing entity for refreshing the first BIOS subsystem is determined.
[0110] In some embodiments of the present application, the system switching method when the execution entity is the host differs from the system switching method when the execution entity is the BMC control chip, so it is necessary to determine the execution entity that will refresh the BIOS subsystem. After refreshing the first BIOS subsystem, the execution entity switches to the second BIOS subsystem and refreshes the second BIOS subsystem.
[0111] S13-2: If the executing entity is the BMC control chip, the BMC control chip sends a first switching request to the host.
[0112] In some embodiments of the present application, the first switching request is an ESPI request command based on the ESPI protocol and is sent by the BMC control chip to the host.
[0113] In some embodiments of the present application, when the executing entity is a BMC control chip, to ensure that the data in the second BIOS subsystem is the same as the data in the current first BIOS subsystem, the BMC control chip needs to synchronize and refresh the second BIOS subsystem after refreshing the first BIOS subsystem. In this case, the BMC control chip sends an ESPI request command to the host to request BIOS subsystem switching.
[0114] S13-3: The host switches the first BIOS subsystem to the second BIOS subsystem in accordance with the first switching request.
[0115] In some embodiments of the present application, when the host receives a first switching request, it performs a BIOS subsystem switching operation in response to a request sent by the BMC, and sends an ESPI command to the BMC to switch the subsystem currently used for data access in the dual BIOS system from the first BIOS subsystem to the second BIOS subsystem.
[0116] In some embodiments of the present application, after the first BIOS subsystem is switched to the second BIOS subsystem, both the host and the BMC perform data access through the second BIOS subsystem.
[0117] In some embodiments of the present application, the method further includes the following step S13-4.
[0118] S13-4: If the executing subject is the host, the first BIOS subsystem is switched to the second BIOS subsystem by the host.
[0119] In some embodiments of the present application, when the executing subject is the host, the host directly sends an ESPI command to the BMC to perform the BIOS access switching operation, and after the operation is completed, both the host and the BMC perform data access through the second BIOS subsystem.
[0120] In some embodiments of the present application, the method further includes the following steps S13-5 to S13-7.
[0121] S13-5: If the switching trigger condition is a manual switching trigger, receive a subsystem switching command by the BMC control chip.
[0122] In some embodiments of the present application, the subsystem switching command is a command issued by an administrator to the BMC control chip, and is used to instruct the BMC control chip to perform subsystem switching.
[0123] In some embodiments of the present application, if the trigger condition is a manual switching trigger, the BMC control chip receives a subsystem switching command, and the administrator can control the entire system through the BMC.
[0124] S13-6: The BMC control chip sends a second switching request to the host.
[0125] In some embodiments of the present application, the second switching request is a corresponding request sent to the host by the BMC control chip and generated by the BMC control chip upon receiving the first switching command.
[0126] In some embodiments of the present application, when the BMC control chip receives the subsystem switching command, it sends a second switching request to the host.
[0127] S13-7: The host switches the first BIOS subsystem to the second BIOS subsystem in accordance with the second switching request.
[0128] In some embodiments of the present application, when the host receives the second switching request, it issues an ESPI command to the BMC control chip in response to the second switching request, causing the BMC control chip to perform an operation to switch the BIOS chip, and switching the host and BMC access data subsystem from the first BIOS subsystem to the second BIOS subsystem.
[0129] In some embodiments of the present application, the method further includes the following steps S13-8 to S13-10.
[0130] S13-8: If the switching trigger condition is an automatic switching trigger, an execution subject corresponding to the automatic switching trigger is determined.
[0131] In some embodiments of the present application, if the trigger condition is an automatic switching trigger, an execution entity that executes the automatic switching trigger operation is determined.
[0132] S13-9: If the executing entity is the BMC control chip, the BMC control chip sends a third switching request to the host.
[0133] In some embodiments of the present application, the third switching request is a switching request sent by the BMC control chip to the host and spontaneously issued when the BMC control chip detects a server failure.
[0134] In some embodiments of the present application, when the executing entity is a BMC control chip, upon detecting a problem such as a server going down, the BMC entity autonomously initiates switching access of the BIOS chip, and the BMC control chip sends a third switching request to the host.
[0135] S13-10: The host switches the first BIOS subsystem to the second BIOS subsystem in accordance with the third switching request.
[0136] In some embodiments of the present application, when the host receives the third switching request, it responds to the request by sending an ESPI command to the BMC control chip to perform a BIOS switching operation, thereby switching the currently operating first BIOS subsystem of the system to the second BIOS subsystem.
[0137] In some embodiments of the present application, the method further includes the following step S13-11.
[0138] S13-11: If the executing subject is the host, the first BIOS subsystem is switched to the second BIOS subsystem by the host.
[0139] In some embodiments of the present application, when the executing subject is a host, the host subject actively switches the BIOS chip to perform data access, and at this time, the host directly sends an ESPI command to the BMC control chip to perform a BIOS subsystem switching operation, and switches the subsystem that performs data access from the first BIOS subsystem to the second BIOS subsystem.
[0140] S14: The current value of the flag register is obtained.
[0141] In some embodiments of the present application, as shown in FIG. 3, after subsystem switching in a dual BIOS system is completed, i.e., the first BIOS subsystem is switched to the second BIOS subsystem, the current flag register value is obtained.
[0142] S15: The BIOS subsystem to be used for data access is determined from the value of the flag register.
[0143] In some embodiments of the present application, the specific steps of determining the BIOS subsystem to be used for data access from the value of the flag register include the following steps S15-1 to S15-3.
[0144] S15-1: If the value of the flag register is the first preset value, determine that the BIOS subsystem used for data access is the second BIOS subsystem.
[0145] In some embodiments of the present application, the first preset value is a default value of a flags register.
[0146] In some embodiments of the present application, if the value of the register is marked as the first preset value, the value of the flag register has never changed, i.e., indicates that the subsystem switch is not triggered by the dual BIOS system refresh, and therefore determines that the BIOS subsystem used for data access is the second BIOS subsystem, and directly uses the second BIOS subsystem to access the data.
[0147] As an example, the first preset value is zero.
[0148] S15-2: If the value of the flag register is the second preset value, determine that the BIOS subsystem used for data access is the first BIOS subsystem.
[0149] In some embodiments of the present application, if the value of the flag register is a second preset value, it indicates that the BMC performs subsystem switching when refreshing the first BIOS subsystem, and in this case, determines that the BIOS subsystem used for data access is the first BIOS subsystem.
[0150] S15-3: If the value of the flag register is the third preset value, determine that the BIOS subsystem used for data access is the first BIOS subsystem.
[0151] In some embodiments of the present application, if the value of the flag register is a third preset value, it indicates that a subsystem switch is performed when the host refreshes the first BIOS subsystem, and in this case, it determines that the BIOS subsystem used for data access is the first BIOS subsystem.
[0152] In some other embodiments of the present application, the method further includes the following steps S15-4 to S15-6.
[0153] S15-4: If the value of the flag register is the second preset value, refresh the second BIOS subsystem by the BMC control chip.
[0154] In some embodiments of the present application, as shown in FIG. 3, when the value of the flag register is a second preset value, the BMC control chip refreshes the second BIOS subsystem.
[0155] S15-5: When the refresh of the second BIOS subsystem is completed, the BMC control chip sends a fourth switching request to the host.
[0156] In some embodiments of the present application, the fourth switching request is a request sent by the BMC control chip to the host, and the fourth switching request is a request generated after the second BIOS subsystem refresh is completed.
[0157] In some embodiments of the present application, after the second BIOS subsystem refresh is completed, a fourth switching request is sent to the BMC control chip host.
[0158] S15-6: The host switches the second BIOS subsystem to the first BIOS subsystem in accordance with the fourth switching request.
[0159] In some embodiments of the present application, upon receiving the fourth switching request, the host sends an ESPI command to the BMC control chip to perform a BIOS subsystem switching operation, thereby switching the second BIOS subsystem to the first BIOS subsystem.
[0160] In some other embodiments of the present application, the method further includes the following steps S15-7 to S15-9.
[0161] S15-7: If the value of the flag register is the third preset value, refresh the second BIOS subsystem by the host.
[0162] In some embodiments of the present application, as shown in FIG. 3, when the value of the flag register is a third preset value, the second BIOS subsystem is refreshed by the host.
[0163] S15-8: When the refresh of the second BIOS subsystem is completed, the second BIOS subsystem is switched to the first BIOS subsystem by the host.
[0164] In some embodiments of the present application, after refreshing the second BIOS subsystem, the host performs a BIOS subsystem switching operation to switch the second BIOS subsystem to the first BIOS subsystem.
[0165] S15-9: The value of the flag register is changed to a first preset value.
[0166] In some embodiments of the present application, after the dual BIOS system refresh is completed and switched back to the original BIOS subsystem, the value of the flag register is changed to the first preset value, i.e., the value of the flag register is restored to the default value.
[0167] S16: Data access is performed using the BIOS subsystem.
[0168] In some embodiments of the present application, after determining the BIOS subsystem to be used for data access, that subsystem is used to access the data.
[0169] In some other embodiments of the present application, when the execution body is a BMC control chip, before the BMC control chip sends the first switching request to the host, the method further includes the following steps S21 and S22.
[0170] S21: Refresh the first BIOS subsystem by the BMC control chip.
[0171] In some embodiments of the present application, as shown in FIG. 3, if it is determined that the executing entity is the BMC control chip, the data in the first BIOS subsystem is refreshed by the BMC control chip.
[0172] S22: Set the value of the flag register to a second preset value.
[0173] In some embodiments of the present application, a flag register (FlashFlag) is used to flag the refresh subject of the first BIOS subsystem, and when the value of the flag register is a second preset value, it indicates that the refresh subject of the first BIOS subsystem is the BMC control chip.
[0174] In some embodiments of the present application, after refreshing the first BIOS subsystem by the BMC control chip, the value of the flag register is set to a second preset value.
[0175] As an example, the second preset value is one.
[0176] In some other embodiments of the present application, when the executing subject is the host, before the host switches the first BIOS subsystem to the second BIOS subsystem, the method further includes the following steps S41 and S42.
[0177] S41: Refresh the first BIOS subsystem by the host.
[0178] In some embodiments of the present application, if it is determined that the executing entity is the host, the host refreshes the data in the first BIOS subsystem.
[0179] S42: The value of the flag register is set to a third preset value.
[0180] In some embodiments of the present application, the third preset value indicates that the executing entity that refreshes the first BIOS subsystem is the host.
[0181] In some embodiments of the present application, the host is used to refresh the data in the first BIOS subsystem and then set the value of the flag register to a third preset value.
[0182] In some other embodiments of the present application, the method further includes the following steps S51 to S54.
[0183] S51: If the host operates normally, read the system data of the first BIOS subsystem.
[0184] In some embodiments of the present application, as shown in Figure 4, Figure 4 is a schematic diagram of the data synchronization flow of the dual BIOS system proposed in some embodiments of the present application. When the host operates normally, it reads the system data of the first BIOS subsystem.
[0185] In some embodiments of the present application, when the host reads the system data of the first BIOS subsystem, it reads it directly from the connected first BIOS chip.
[0186] S52: Read the system data of the second BIOS subsystem.
[0187] In some embodiments of the present application, after reading the data of a first BIOS subsystem, the system data of a second BIOS subsystem is read.
[0188] In some embodiments of the present application, when the host reads system data of the second BIOS subsystem, it sends an ESPI data access command to the BMC to access the system data of the second BIOS subsystem connected to the BMC control chip.
[0189] S53: Data verification is performed on the system data of the first BIOS subsystem and the system data of the second BIOS subsystem.
[0190] In some embodiments of the present application, data verification is performed on the data of the first BIOS subsystem and the system data of the second BIOS subsystem, the system data of the two subsystems is compared, and differences between the system data of the two subsystems are determined.
[0191] S54: According to the data verification result, data synchronization is performed between the system data of the first BIOS subsystem and the system data of the second BIOS subsystem.
[0192] In some embodiments of the present application, the specific steps of performing data synchronization on the system data of the first BIOS subsystem and the system data of the second BIOS subsystem according to the verification result include the following steps S54-1 to S54-5.
[0193] S54-1: When the parameters of the first BIOS subsystem are changed, the changed parameters are synchronized with the second BIOS subsystem and backed up.
[0194] In some embodiments of the present application, as shown in FIG. 4, when parameters of a first BIOS subsystem are changed, the changed parameters are written to the chip where the current BIOS subsystem resides, and the difference, i.e., the changed parameters, are synchronized and backed up to the second BIOS subsystem, i.e., written to the chip where the second BIOS subsystem resides.
[0195] S54-2: If the first BIOS subsystem performs a configuration retention refresh, write the configuration retention to the first BIOS subsystem.
[0196] In some embodiments of the present application, a configuration-preserving refresh preserves and refreshes some of the existing parameters, and the preserved configuration remains unchanged.
[0197] In some embodiments of the present application, when a configuration-preserving refresh is performed, the preserved configuration is written to the first BIOS chip of the first BIOS subsystem, which is the current BIOS subsystem.
[0198] S54-3: Back up the system data of the first BIOS subsystem to the second BIOS subsystem.
[0199] In some embodiments of the present application, after a configuration-preserving refresh is performed on a first BIOS subsystem, the data after the first BIOS subsystem refresh is backed up to a second BIOS subsystem, i.e., stored in a second BIOS chip.
[0200] S54-4: If the first BIOS subsystem performs data rollback synchronization, read the system data of the second BIOS subsystem.
[0201] In some embodiments of the present application, data rollback synchronization refers to rolling back data in a first BIOS subsystem until it is the same as the system data in a second BIOS subsystem, and when a failure occurs in the first BIOS subsystem, the method is used to delete the abnormal data and perform data recovery.
[0202] In some embodiments of the present application, when the first BIOS subsystem performs data rollback synchronization, it reads the system data of the second BIOS subsystem and obtains the data from the second BIOS chip.
[0203] S54-5: Synchronize the system data of the second BIOS subsystem with the first BIOS subsystem.
[0204] In some embodiments of the present application, after reading the system data of the second BIOS subsystem in the second BIOS chip, the system data of the second BIOS subsystem is synchronized with the first BIOS subsystem.
[0205] In some other embodiments of the present application, the method further includes the following step S61.
[0206] S61: If an abnormality occurs in the operation of the host, the first BIOS subsystem is switched to the second BIOS subsystem.
[0207] In some embodiments of the present application, as shown in FIG. 4, if an abnormality occurs in the operation of the host, it is determined that subsystem switching of the dual BIOS system is necessary. At this time, the subsystem switching flow is executed, and after the switching flow is completed, data synchronization is performed.
[0208] Some embodiments of the present application can realize real-time access of dual BIOS system data and synchronization of subsystems, and can simultaneously access dual BIOS firmware data content in real time and verify the data. Supports synchronization of the configuration to the backup BIOS chip after a running BIOS change, supports synchronization of the configuration content to the backup BIOS chip after a BIOS configuration retention refresh, and supports switching to the backup BIOS due to an abnormality in the running BIOS and booting normally, and then synchronizing and updating the data of the backup BIOS subsystem to the abnormal BIOS subsystem, thereby further improving the reliability of the server system.
[0209] Some embodiments of this application fully adopt the standard protocol specifications of SPI and ESPI. Based on this, the ESPI chip access channel and sharing function are utilized to enable chip access links in each direction between the host and BMC control chips when conditions are met. The BIOS subsystems can be freely switched and data synchronized, significantly reducing the cost of the architecture and improving the efficiency of subsystem switching and data synchronization. Based on a new physical architecture, subsystem switching in dual-BIOS systems is optimized, enabling manual switching of the BIOS subsystem in abnormal and normal server startup situations. Automatic switching of the BIOS subsystem can be performed when an abnormality such as an operating system boot failure occurs. Support for switching and refreshing the BIOS subsystem when refreshing the BIOS using an out-of-band system or tool such as a BMC is supported. A new function for switching and refreshing the BIOS chip when refreshing the BIOS under the operating system is added. Furthermore, all corresponding switching control and actions are performed by the two parties, the host and BMC, using the interaction of ESPI and SPI instructions, without the involvement of third-party chip control devices. Data can be synchronized and updated in real time as needed, supporting data updating between the two BIOS chips in various situations.
[0210] Referring to Figure 5, Figure 5 is a schematic diagram of a dual BIOS system proposed in some embodiments of the present application, which includes a first BIOS chip, a second BIOS chip, a BMC chip, a switch, a complex programmable logic device, a BMC control chip, and a platform controller hub.
[0211] The first BIOS chip is used to operate the first BIOS subsystem.
[0212] The second BIOS chip is used to operate a second BIOS subsystem.
[0213] The BMC chip is used to run the BMC program.
[0214] The switch is used to control the first BIOS chip to be connected to the second BIOS chip, and is connected to the first BIOS chip and the second BIOS chip.
[0215] Complex programmable logic devices are connected to the switches and are used to control the switches to switch links.
[0216] In some embodiments of the present application, a switch can control the execution entity of the dual BIOS system to be connected to the first BIOS chip or the second BIOS chip, and the connected link can be freely switched according to the actual situation.
[0217] The BMC control chip is used to control the BMC chip, is connected to the BMC chip, is connected to the complex programmable logic device, and is connected to the switch; the platform controller hub is connected to the switch via a first bus, is connected to the BMC control chip via a second bus, and is connected to the CPU; and the first bus and the second bus are connected together.
[0218] In some embodiments of the present application, the first bus is an SPI and the second bus is an ESPI.
[0219] In some embodiments of the present application, the access entities of a dual BIOS system include the host and the BMC control chip.
[0220] In some embodiments of the present application, when the BMC control chip receives a subsystem switching command, it sends a subsystem switching request command to the complex programmable logic device.
[0221] In some embodiments of the present application, the subsystem switching command is a command issued by an operator to the BMC control chip to switch the currently operating BIOS subsystem, and the subsystem switching request command is a command sent by the BMC control chip to request the currently operating BIOS subsystem to be switched.
[0222] In some embodiments of the present application, the BMC control chip controls the dual BIOS system to perform a shutdown operation.
[0223] In some embodiments of the present application, the complex programmable logic device sends a line switching command to the switch when it receives a subsystem switching request command.
[0224] In some embodiments of the present application, the line switching command is a command generated by a complex programmable logic device when it receives a subsystem switching request command, and is used to control the switch to switch the currently connected BIOS chip.
[0225] In some embodiments of the present application, the switch switches the connected chip from the first BIOS chip to the second BIOS chip when it receives a line switching command.
[0226] In some embodiments of the present application, a dual BIOS system uses a second BIOS subsystem for turn-on bootup.
[0227] In some embodiments of the present application, the BMC control chip sends a subsystem switch request command to the complex programmable logic device when an operating system boot failure occurs.
[0228] In some embodiments of the present application, the BMC control chip controls the dual BIOS system to perform a shutdown operation.
[0229] In some embodiments of the present application, the complex programmable logic device sends a line switching command to the switch when it receives a subsystem switching request command.
[0230] In some embodiments of the present application, the switch switches the connected chip from the first BIOS chip to the second BIOS chip when it receives a line switching command.
[0231] In some embodiments of the present application, a dual BIOS system uses a second BIOS subsystem for turn-on bootup.
[0232] In some embodiments of the present application, when a BMC control chip needs to perform a subsystem refresh for a dual BIOS system, it sends a subsystem switch request command to a complex programmable logic device.
[0233] In some embodiments of the present application, the BMC control chip controls the dual BIOS system to perform a shutdown operation.
[0234] In some embodiments of the present application, the complex programmable logic device sends a first line switching command to the switch when it receives a subsystem switching request command.
[0235] In some embodiments of the present application, when the switch receives a first line switching command, it switches the connected chip from the first BIOS chip to the second BIOS chip.
[0236] In some embodiments of the present application, a complex programmable logic chip sends a second line switching command to the switch.
[0237] In some embodiments of the present application, when the switch receives a second line switching command, it switches the access subject from the host to the BMC control chip.
[0238] In some embodiments of the present application, the BMC control chip performs a subsystem refresh on the second BIOS chip.
[0239] In some embodiments of the present application, when the first BIOS chip completes the subsystem refresh, it sends a subsystem switch request command to the BMC complex programmable logic device.
[0240] In some embodiments of the present application, the programmable logic device, upon receiving the subsystem switch request command, sends a third line switch command to the switch.
[0241] In some embodiments of the present application, when the switch receives a third line switching command, it switches the connected chip from the second BIOS chip to the first BIOS chip.
[0242] In some embodiments of the present application, the BMC control chip performs a subsystem refresh on the first BIOS chip.
[0243] In some embodiments of the present application, when the refresh of the subsystem of the second BIOS chip is completed, the complex programmable logic chip sends a fourth line switching command to the switch.
[0244] In some embodiments of the present application, when the switch receives a fourth line switching command, it switches the access subject from the BMC control chip to the host.
[0245] In some embodiments of the present application, a dual BIOS system performs turn-on boot using the first BIOS subsystem.
[0246] In some embodiments of the present application, a switch connects a first BIOS chip to a second BIOS chip and an SPI, and a CPLD is responsible for controlling the switch, as shown in Figure 5. In such a configuration, the CPLD controls the connection to communicate with and access data from any of the BIOS chips, and only one of the controllers in the platform controller hub or BMC control chip has access to the gated BIOS chip.
[0247] Referring to FIG. 6, FIG. 6 is a flow chart of a system switching method proposed in some embodiments of the present application. As shown in FIG. 6, the method includes the following steps S111 and S112.
[0248] S111: When the first BIOS subsystem operates, determine the switching trigger conditions that the dual BIOS system meets, where the switching trigger conditions include a manual switching trigger, an automatic switching trigger, and a redual BIOS refresh trigger.
[0249] In some embodiments of the present application, when the first BIOS subsystem operates, the dual BIOS system determines a switching trigger condition to be satisfied, and the switching trigger condition includes a manual switching trigger, an automatic switching trigger, and a redual BIOS refresh trigger.
[0250] S112: According to the switching trigger condition, execute the corresponding subsystem switching flow.
[0251] In some embodiments of the present application, if a subsystem switchover is required, a corresponding subsystem switchover flow is executed according to the switchover trigger condition.
[0252] In some embodiments of the present application, the step of executing the corresponding subsystem switching flow in response to the switching trigger condition includes the following steps S112-1 to S112-4.
[0253] S112-1: If the switching trigger condition is a manual switching trigger, the complex programmable logic device controls the switch to switch the first BIOS subsystem to the second BIOS subsystem.
[0254] In some embodiments of the present application, if the switch trigger condition is a manual switch trigger, a complex programmable logic device controls a switch to switch from the first BIOS subsystem to the second BIOS subsystem.
[0255] S112-2: The BMC control chip controls the dual BIOS system to perform a shutdown operation.
[0256] In some embodiments of the present application, the BMC control chip controls the dual BIOS system to perform a shutdown operation.
[0257] S112-3: The value of the flag register is determined.
[0258] In some embodiments of the present application, when a BMC-controlled dual BIOS system performs a shutdown operation and then a turn-on startup, it determines the value of the current flag register.
[0259] S112-4: If the value of the flag register is not the first preset value, perform turn-on startup using the second BIOS subsystem.
[0260] In some embodiments of the present application, if the value of the flags register is not the first preset value, a second BIOS subsystem is used to perform turn-on startup.
[0261] In some embodiments of the present application, the method further includes the following steps S112-5 to S112-9.
[0262] S112-5: If the switching trigger condition is an automatic switching trigger, the BMC control chip sends a subsystem switching request command to the complex programmable logic device.
[0263] In some embodiments of the present application, if the switchover trigger condition is automatic switchover, the BMC control chip sends a subsystem switchover request command to the complex programmable logic device.
[0264] S112-6: The BMC control chip controls the dual BIOS system to perform a shutdown operation.
[0265] In some embodiments of the present application, the BMC control chip controls the dual BIOS system to perform a shutdown operation.
[0266] S112-7: When the complex programmable logic device receives a subsystem switching request command, it controls the switch to switch the first BIOS subsystem to the second BIOS subsystem.
[0267] In some embodiments of the present application, the complex programmable logic device controls the switch to switch from the first BIOS subsystem to the second BIOS subsystem upon receiving a subsystem switch request command.
[0268] S112-8: The value of the flag register is determined.
[0269] Some embodiments of the present application determine the value of the current flags register.
[0270] S112-9: If the value of the flag register is not the first preset value, perform turn-on startup using the second BIOS subsystem.
[0271] In some embodiments of the present application, if the value of the flags register is not the first preset value, a second BIOS subsystem is used to perform turn-on startup.
[0272] In some embodiments of the present application, the method further includes the following steps S112-10 to S112-22.
[0273] S112-10: If the switching trigger condition is a redual BIOS refresh trigger, set the value of the flag register to a first preset value.
[0274] In some embodiments of the present application, if the switching trigger condition is a redual BIOS refresh trigger, set the value of the current flag register to a first preset value.
[0275] S112-11: The BMC control chip sends a subsystem switching request command to the complex programmable logic device.
[0276] In some embodiments of the present application, the BMC control chip sends a subsystem switch request command to the complex programmable logic device.
[0277] S112-12: The BMC control chip controls the dual BIOS system to perform shutdown operation.
[0278] In some embodiments of the present application, the BMC control chip controls the dual BIOS system to perform a shutdown operation.
[0279] S112-13: The complex programmable logic device controls the switch to switch the first BIOS subsystem to the second BIOS subsystem.
[0280] In some embodiments of the present application, a complex programmable logic device controls a switch to switch from a first BIOS subsystem to a second BIOS subsystem.
[0281] S112-14: The value of the flag register is obtained.
[0282] In some embodiments of the present application, the value of a flag register is obtained.
[0283] S112-15: If the value of the flag register is the first preset value, the complex programmable logic device controls the switch to switch the access subject of the dual BIOS system from the host to the BMC control chip.
[0284] In some embodiments of the present application, when the value of the flag register is a first preset value, the complex programmable logic device controls the switch to switch the current access subject from the host to the BMC control chip.
[0285] S112-16: The BMC control chip refreshes the second BIOS subsystem.
[0286] In some embodiments of the present application, the BMC control chip performs a subsystem refresh on the second BIOS subsystem.
[0287] S112-17: When the refresh of the second BIOS subsystem is completed, the BMC control chip sends a subsystem switching request command to the complex programmable logic device.
[0288] In some embodiments of the present application, when the refresh of the second BIOS subsystem is completed, the BMC control chip sends a subsystem switch request command to the complex programmable logic device.
[0289] S112-18: When the complex programmable logic device receives the subsystem switch, it controls the switch to switch the second BIOS subsystem to the first BIOS subsystem.
[0290] In some embodiments of the present application, the complex programmable logic device controls the switch to switch the second BIOS subsystem to the first BIOS subsystem when a subsystem switch is received.
[0291] S112-19: The BMC control chip refreshes the first BIOS subsystem.
[0292] In some embodiments of the present application, the BMC control chip performs a subsystem refresh on the first BIOS subsystem.
[0293] S112-20: If the refresh of the first BIOS subsystem is completed, clear the value of the flag register.
[0294] In some embodiments of the present application, when the refresh of the first BIOS subsystem is completed, the value of the flag register is cleared.
[0295] S112-21: A complex programmable logic device controls a switch to switch the access subject of a dual BIOS system from the BMC control chip to the host.
[0296] In some embodiments of the present application, a complex programmable logic device controls a switch to switch the current access entity from the BMC control chip to the host.
[0297] S112-22: The dual BIOS system performs turn-on boot using the first BIOS subsystem.
[0298] In some embodiments of the present application, a dual BIOS system performs turn-on boot using the first BIOS subsystem.
[0299] In some embodiments of the present application, the flow of BIOS switching subsystems is shown in Figure 7, which is a schematic diagram of the switching flow of the dual BIOS system proposed in some embodiments of the present application. The switching steps are as follows:
[0300] S000: Start subsystem switching.
[0301] S001: Assume that the system is started using the first BIOS chip as default (for the second BIOS chip, the second BIOS chip in the subsequent steps can be changed to the first BIOS chip).
[0302] S002: Determine the trigger condition for switching the BIOS subsystem to the second BIOS subsystem, and if it is a manual switching trigger, execute S003; if it is an out-of-band dual BIOS refresh trigger, execute S004; and if it is an automatic switching trigger, execute S005.
[0303] S003: A switching command to the second BIOS chip, that is, a subsystem switching command is manually sent by the tool, and then S006 is executed.
[0304] S004: The BIOS sets the flag register value (FlashFlag) indicating refresh dual BIOS to 1, and in the subsequent steps, takes action according to the flag register value.
[0305] S005: The BMC control chip voluntarily sends a command to switch to the second BIOS subsystem to the CPLD, and notifies the CPLD to prepare for switching to the second BIOS subsystem.
[0306] S006: The BMC control chip executes the shutdown command and shuts down the system.
[0307] S007: The CPLD controls the channel of the SPI switch to switch and connect the switch to the second BIOS chip.
[0308] S008: Determine whether the flag register value is 1 or not. If it is 1, execute step S009; if it is not 1, execute step S015.
[0309] S009: The CPLD controls the channel of the SPI switch to switch the SPI access of the switch to the BMC system.
[0310] S010: The BMC begins to access the second BIOS subsystem to perform a BIOS version refresh.
[0311] S011: The BMC control chip voluntarily sends a command to switch to the first BIOS subsystem to the CPLD, notifying the CPLD to prepare for switching to the first BIOS subsystem.
[0312] S012: The CPLD controls the channel of the SPI switch to switch and connect the switch to the first BIOS chip.
[0313] S013: The BMC starts accessing the first BIOS subsystem to perform a BIOS version refresh and clears the value of the flag register to 0.
[0314] S014: The CPLD controls the channel of the SPI exchange and switches the exchanged SPI access to the host.
[0315] S015: The dual BIOS system performs turn-on boot using the first BIOS subsystem, and then executes step S017.
[0316] S016: The dual BIOS system performs turn-on boot using the second BIOS subsystem.
[0317] S017: The switching subsystem is terminated.
[0318] In some embodiments of the present application, when the first BIOS subsystem is operating, the dual BIOS system determines whether a switching trigger condition is met, and if a subsystem switching is required, executes a corresponding subsystem switching procedure according to the switching trigger condition, ensuring that the BIOS system can operate normally when the server operating system is booted, and further ensuring stable boot and operation of the operating system.
[0319] Based on the same inventive concept, some embodiments of the present application provide a system switching device. Referring to Fig. 8, Fig. 8 shows a schematic diagram of a system switching device 800 proposed in some embodiments of the present application. As shown in Fig. 8, the device includes: A switching decision module 801 is used to determine whether a subsystem switching is necessary when the first BIOS subsystem is operating; A switching trigger condition determination module 802 is used to determine the switching trigger conditions that the dual BIOS system meets when subsystem switching is required, where the switching trigger conditions include a dual BIOS refresh trigger, an automatic switching trigger, and a manual switching trigger; a subsystem switching module 803, used for switching the currently working first BIOS subsystem to a second BIOS subsystem according to a trigger condition through a corresponding switching method; a value acquisition module 804 used to acquire the value of the flag register when the subsystem switching is completed; a subsystem determination module 805 used to determine the BIOS subsystem to be used for data access from the value of the flag register; and a data access module 806 used to perform data access using the BIOS subsystem.
[0320] Optionally, the subsystem switching module: a first execution subject confirmation submodule, which is used to determine an execution subject for refreshing the first BIOS subsystem when the switching trigger condition is a dual BIOS refresh trigger; a first sending sub-module, when the execution body is a BMC control chip, used by the BMC control chip to send a first switching request to the host; The host includes a first switching sub-module used for switching the first BIOS subsystem to the second BIOS subsystem according to the first switching request.
[0321] Optionally, the apparatus comprises: a first data refresh sub-module used by the BMC control chip to refresh the first BIOS subsystem; The flag register further includes a first register value setting sub-module, which is used to set the value of the flag register to a second preset value.
[0322] Optionally, the apparatus comprises: When the execution subject is the host, the second switching sub-module is used for switching the first BIOS subsystem to the second BIOS subsystem by the host.
[0323] Optionally, the apparatus comprises: a second data refresh sub-module used by the host to refresh the first BIOS subsystem; and a second register value setting sub-module, used for setting the value of the flag register to a third preset value.
[0324] Optionally, the apparatus comprises: a first receiving sub-module, which is used to receive a subsystem switching command from the BMC control chip when the switching trigger condition is a manual switching trigger; a second sending sub-module, used by the BMC control chip to send a second switching request to the host; The host further includes a third subsystem switching sub-module used to switch the first BIOS subsystem to the second BIOS subsystem according to the second switching request.
[0325] Optionally, the apparatus comprises: a second execution subject confirmation submodule, used for determining an execution subject corresponding to the automatic switching trigger when the switching trigger condition is an automatic switching trigger; a third sending sub-module, when the execution body is a BMC control chip, used by the BMC control chip to send a third switching request to the host; The host further includes a third switching sub-module used for switching the first BIOS subsystem to the second BIOS subsystem according to a third switching request.
[0326] Optionally, the apparatus comprises: When the execution subject is the host, the fourth switching sub-module is used for switching the first BIOS subsystem to the second BIOS subsystem by the host.
[0327] Optionally, the subsystem determination module: a first subsystem confirmation sub-module for determining that the BIOS subsystem used for data access is the second BIOS subsystem when the value of the flag register is a first preset value; a second subsystem confirmation sub-module, which is used to determine that the BIOS subsystem used for data access is the first BIOS subsystem when the value of the flag register is a second preset value; and a third subsystem confirmation sub-module used to determine that the BIOS subsystem used for data access is the first BIOS subsystem when the value of the flag register is a third preset value.
[0328] Optionally, the apparatus comprises: a third data refresh sub-module, which is used by the BMC control chip to refresh the second BIOS subsystem when the value of the flag register is a second preset value; a fourth sending sub-module, used for sending a fourth switching request to the host by the BMC control chip when the second BIOS subsystem has been refreshed; The host further includes a fourth switching sub-module used for switching the second BIOS subsystem to the first BIOS subsystem according to the fourth switching request.
[0329] Optionally, the apparatus comprises: a fourth data refresh sub-module, which is used by the host to refresh the second BIOS subsystem when the value of the flag register is a third preset value; a fifth switching sub-module, used by the host to switch the second BIOS subsystem to the first BIOS subsystem when the refresh of the second BIOS subsystem is completed; and a third register value setting sub-module, used for changing the value of the flag register to a first preset value.
[0330] Optionally, the apparatus comprises: a first data reading module used to read system data of a first BIOS subsystem when the host operates normally; a second data reading module used to read system data of a second BIOS subsystem; a data verification module used to perform data verification on the system data of the first BIOS subsystem and the system data of the second BIOS subsystem; The system further includes a data synchronization module used to perform data synchronization on the system data of the first BIOS subsystem and the system data of the second BIOS subsystem according to the data verification result.
[0331] Optionally, the data synchronization module: a first data synchronization sub-module, which is used to synchronize and back up the changed parameters to the second BIOS subsystem when the parameters of the first BIOS subsystem are changed; a data writing submodule used to write the configuration retention to the first BIOS subsystem when the first BIOS subsystem performs a configuration retention refresh; a second data synchronization sub-module used to back up system data of the first BIOS subsystem to the second BIOS subsystem; a third data synchronization sub-module, used to read the system data of the second BIOS subsystem when the first BIOS subsystem performs data rollback synchronization; and a fourth data synchronization sub-module used to synchronize the system data of the second BIOS subsystem with the first BIOS subsystem.
[0332] Optionally, the apparatus comprises: The system further includes a second subsystem switching module used to switch from the first BIOS subsystem to the second BIOS subsystem when an abnormality occurs in the operation of the host.
[0333] Based on the same inventive concept, some embodiments of the present application provide a system switching device. Referring to Fig. 9, Fig. 9 is a schematic diagram of a system switching device 900 proposed in some embodiments of the present application. As shown in Fig. 9, the device includes: A switching trigger condition determination module 901 is used to determine the switching trigger conditions that the dual BIOS system satisfies when the first BIOS subsystem is operating, where the switching trigger conditions include a manual switching trigger, an automatic switching trigger, and a redual BIOS refresh trigger; a system switching flow execution module 902, which is used to execute a corresponding subsystem switching flow according to a switching trigger condition.
[0334] Optionally, the system switching flow execution module: a manual switching sub-module, which is used to control a switch to switch the first BIOS subsystem to the second BIOS subsystem through a complex programmable logic device when the switching trigger condition is a manual switching trigger; The BMC control chip includes a first shutdown operation sub-module, which is used to control the dual BIOS system to perform a shutdown operation; a first data determination sub-module used to determine the value of a current flag register; a first turn-on startup sub-module used to perform turn-on startup using the second BIOS subsystem if the value of the flag register is not the first preset value.
[0335] Optionally, the system switching flow execution module: When the switching trigger condition is an automatic switching trigger, the BMC control chip includes an automatic switching sub-module, which is used to send a subsystem switching request command to the complex programmable logic device; The BMC control chip includes a second shutdown operation sub-module, which is used to control the dual BIOS system to perform a shutdown operation; The complex programmable logic device includes an automatic switching execution submodule, which is used to control the switch to switch the first BIOS subsystem to the second BIOS subsystem when receiving a subsystem switching request command; Determines the current flag register value, and a second value determination sub-module, which is used to perform turn-on startup using a second BIOS subsystem if the value of the flag register is not the first preset value.
[0336] Optionally, the system switching flow execution module: a value setting sub-module, used for setting the value of the flag register to a first preset value when the switching trigger condition is a dual BIOS refresh trigger; The BMC control chip includes a first command sending sub-module, which is used to send a subsystem switching request command to the complex programmable logic device; The BMC control chip includes a third shutdown operation sub-module, which is used to control the dual BIOS system to perform a shutdown operation; The complex programmable logic device includes a first refresh switching execution sub-module, which is used to control the switch to switch the first BIOS subsystem to the second BIOS subsystem; a third numerical determination submodule used to obtain the value of a flag register; When the value of the flag register is a first preset value, the complex programmable logic device includes an access subject switching submodule, which is used to control the switch to switch the access subject of the dual BIOS system from the host to the BMC control chip; The BMC control chip includes a first subsystem refresh sub-module for refreshing the second BIOS subsystem; When the second BIOS subsystem is refreshed, the BMC control chip sends a second command sending sub-module to the complex programmable logic device to request a subsystem switchover; The complex programmable logic device includes a second refresh switching execution sub-module, which is used to control the switch to switch the second BIOS subsystem to the first BIOS subsystem when receiving a subsystem switching; The BMC control chip includes a second subsystem refresh sub-module for refreshing the first BIOS subsystem; a value clear sub-module, which is used to clear the value of the flag register when the refresh of the first BIOS subsystem is completed; The complex programmable logic device includes a second access subject switching sub-module, which is used to control the switch to switch the access subject of the dual BIOS system from the BMC control chip to the host; The dual BIOS system further includes a third turn-on boot sub-module used to perform turn-on boot using the first BIOS subsystem.
[0337] Based on the same inventive concept, some other embodiments of the present application provide a non-volatile readable storage medium storing a computer program that, when executed by a processor, implements the steps of the system switching method described in some embodiments of the present application.
[0338] Based on the same inventive concept, some other embodiments of the present application provide an electronic device, as shown in FIG. 10. FIG. 10 is a schematic diagram of an electronic device 1000 proposed in some embodiments of the present application, the electronic device 1000 including a memory 1002, a processor 1001, and a computer program stored in the memory and operable on the processor, and when the processor executes the computer program, the steps of the system switching method of some embodiments of the present application are realized.
[0339] Since some embodiments of the apparatus are substantially similar to some embodiments of the method, the description thereof will be relatively simple, and reference may be made to the description of some embodiments of the method for relevant points.
[0340] The embodiments in this specification are all described step by step, with each embodiment being described with an emphasis on the differences from other embodiments, and the same and similar parts between the embodiments may be mutually referenced.
[0341] Those skilled in the art will appreciate that some embodiments of the present application may be provided as a method, an apparatus, or a computer program product. Accordingly, some embodiments of the present application may take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, some embodiments of the present application may take the form of a computer program product embodied on one or more computer-usable non-volatile readable storage media (including, but not limited to, magnetic disk storage, CD-ROM, optical memory, etc.) containing computer-usable program code.
[0342] Some embodiments of the present application will be described with reference to flowcharts and / or block diagrams of methods, terminal devices (systems), and computer program products according to some embodiments of the present application. It should be understood that each flow and / or block in the flowcharts and / or block diagrams, and combinations of flows and / or blocks in the flowcharts and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing terminal, and can generate a machine such that the instructions, executed by the processor of the computer or other programmable data processing terminal, generate means for implementing the functions specified in one or more flows in the flowcharts and / or one or more blocks in the block diagrams.
[0343] These computer program instructions may also be stored in a computer-readable memory that can cause a computer or other programmable data processing terminal device to operate in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means for implementing the functions specified in one or more flows of the flowcharts and / or one or more blocks of the block diagrams.
[0344] These computer program instructions may be loaded into a computer or other programmable data processing terminal, which then executes a series of operational steps to generate a computer-implemented process, the instructions executing on the computer or other programmable terminal providing steps for implementing the functions specified in one or more flows of the flowcharts and / or one or more blocks of the block diagrams.
[0345] Although preferred embodiments of the present application have been described, additional changes and modifications can be made to these embodiments by those skilled in the art once they have acquired the basic creative concept. Therefore, it is intended that the appended claims be interpreted to include all changes and modifications that fall within the scope of the preferred embodiments and the present application.
[0346] Finally, it should be noted that, in this specification, relational terms such as "first" and "second" are merely used to distinguish one entity or operation from another and do not necessarily require or imply the existence of any actual relationship or order between those entities or operations. Furthermore, the terms "comprise," "comprises," or any other variant thereof are intended to encompass a non-exclusive inclusion, such that a process, method, article, or device that includes a set of elements includes not only those elements but also other elements not expressly listed, or elements inherent in such process, method, article, or device. Unless further limited, an element defined by the phrase "comprises" does not exclude the presence of other identical elements in the process, method, article, or device that includes that element.
[0347] Although the present application has provided a detailed introduction to the system switching method, device, equipment, and non-volatile readable storage medium, the present application has been described with reference to specific examples. However, the above examples are merely intended to facilitate understanding of the present application and its core concept. Furthermore, those skilled in the art will recognize that there may be changes in the specific embodiments and application scope based on the concept of the present application. Therefore, the contents of this application should not be construed as limitations on the present application.
Claims
1. a first BIOS chip used to operate the first BIOS subsystem; a second BIOS chip used to operate the second BIOS subsystem; a BMC chip used to run a BMC program; a BMC control chip used to control the BMC chip and the second BIOS chip and connected to the BMC chip and the second BIOS chip; A dual BIOS system comprising: a platform controller hub used to control the first BIOS chip and the BMC control chip, connected to the first BIOS chip via a first bus and connected to the BMC control chip via a second bus, wherein the first bus and the second bus are connected and the platform controller hub is connected to a CPU.
2. 2. The dual BIOS system according to claim 1, wherein access entities of the dual BIOS system include a host and the BMC control chip, and the host and the BMC control chip perform interactive access by transmitting commands.
3. the BMC control chip performs a subsystem refresh on the first BIOS chip, and then transmits a subsystem switching request command to the host; When the host receives the subsystem switching request command, the host switches the first BIOS subsystem to the second BIOS subsystem; When the first BIOS subsystem is switched to the second BIOS subsystem, the BMC control chip refreshes the second BIOS subsystem in the second BIOS chip; When the refresh of the second BIOS subsystem in the second BIOS chip is completed, the BMC control chip sends the subsystem switching request command to the host; 3. The dual BIOS system according to claim 2, wherein the host switches the second BIOS subsystem to the first BIOS subsystem when the host receives the subsystem switching request command.
4. the host performs a subsystem refresh on the first BIOS subsystem in the first BIOS chip, and then switches the first BIOS subsystem to the second BIOS subsystem; When the first BIOS subsystem is switched to the second BIOS subsystem, the host refreshes the second BIOS subsystem in the second BIOS chip; 3. The dual BIOS system of claim 2, wherein when refresh of the second BIOS subsystem in the second BIOS chip is completed, the host switches the second BIOS subsystem to the first BIOS subsystem.
5. When the BMC control chip receives a subsystem switching command, it sends a subsystem switching request command to the host; 3. The dual BIOS system according to claim 2, wherein the host switches from the first BIOS subsystem to the second BIOS subsystem when the host receives the subsystem switching request command.
6. 3. The dual BIOS system of claim 2, wherein the first BIOS subsystem is switched to the second BIOS subsystem when the host actively switches subsystems.
7. When the BMC control chip detects a boot failure of the operating system, it sends a subsystem switching request command to the host; 3. The dual BIOS system according to claim 2, wherein the host switches from the first BIOS subsystem to the second BIOS subsystem when the host receives the subsystem switching request command.
8. When the host operates normally, it reads the data in the first BIOS chip; The host sends a data read command to the BMC control chip; When the BMC control chip receives the data read command, it transmits the data in the second BIOS chip to the host; the host performs data verification on the data in the first BIOS chip and the data in the second BIOS chip; 3. The dual BIOS system according to claim 2, wherein the host synchronizes data between the first BIOS chip and the second BIOS chip according to a data verification result.
9. It is applied to the dual BIOS system described in claims 1 to 8, If the first BIOS subsystem is operational, determining whether a subsystem switch is necessary; If a subsystem switch is required, determining switch trigger conditions satisfied by the dual BIOS system, the switch trigger conditions including a dual BIOS refresh trigger, an automatic switch trigger, and a manual switch trigger; switching the currently operating first BIOS subsystem to a second BIOS subsystem according to a corresponding switching scheme in response to the switching trigger condition; obtaining a value of a flag register when the first BIOS subsystem is switched to the second BIOS subsystem; determining a BIOS subsystem to be used for data access from the value of said flag register; and performing data access using the BIOS subsystem.
10. The step of switching the currently operating first BIOS subsystem to a second BIOS subsystem according to a corresponding switching method in response to the switching trigger condition includes: determining an execution entity for refreshing the first BIOS subsystem when the switching trigger condition is the dual BIOS refresh trigger; When the execution entity is a BMC control chip, sending a first switching request to a host by the BMC control chip; 10. The method of claim 9, further comprising the step of: the host switching from the first BIOS subsystem to the second BIOS subsystem in accordance with the first switching request.
11. Before sending a first switching request to a host by the BMC control chip, the method includes: refreshing the first BIOS subsystem by the BMC control chip; 11. The method of claim 10, further comprising the step of: setting the value of the flags register to a second preset value.
12. The method comprises:
11. The method of claim 10, further comprising the step of, if the execution subject is the host, switching the first BIOS subsystem to the second BIOS subsystem by the host.
13. Before switching the first BIOS subsystem to the second BIOS subsystem by the host, the method further comprises: refreshing the first BIOS subsystem by the host; 13. The method of claim 12, further comprising: setting the value of the flags register to a third preset value.
14. The method comprises: receiving a subsystem switching command by a BMC control chip if the switching trigger condition is the manual switching trigger; sending a second switching request to the host by the BMC control chip; 10. The method of claim 9, further comprising the step of the host switching from the first BIOS subsystem to the second BIOS subsystem in accordance with the second switching request.
15. The method comprises: If the switching trigger condition is the automatic switching trigger, determining an execution subject corresponding to the automatic switching trigger; When the execution entity is a BMC control chip, sending a third switching request to a host by the BMC control chip; 10. The method of claim 9, further comprising the step of the host switching from the first BIOS subsystem to the second BIOS subsystem in accordance with the third switching request.
16. The method comprises:
16. The method of claim 15, further comprising the step of, if the execution subject is a host, switching the first BIOS subsystem to the second BIOS subsystem by the host.
17. The step of determining the BIOS subsystem to be used for data access from the value of the flag register comprises: determining that the BIOS subsystem used for the data access is the second BIOS subsystem if the value of the flag register is a first preset value; determining that the BIOS subsystem used for the data access is the first BIOS subsystem if the value of the flag register is a second preset value; and determining that the BIOS subsystem used for the data access is the first BIOS subsystem if the value of the flag register is a third preset value.
18. The method comprises: refreshing the second BIOS subsystem by a BMC control chip when the value of the flag register is the second preset value; sending a fourth switching request to a host by the BMC control chip when the refresh of the second BIOS subsystem is completed; 18. The method of claim 17, further comprising the step of the host switching from the second BIOS subsystem to the first BIOS subsystem in accordance with the fourth switching request.
19. The method comprises: refreshing the second BIOS subsystem by a host if the value of the flag register is the third preset value; when the refresh of the second BIOS subsystem is completed, switching the second BIOS subsystem to the first BIOS subsystem by the host; 18. The method of claim 17, further comprising: changing the value of the flags register to the first preset value.
20. The method comprises: If the host operates normally, reading system data of the first BIOS subsystem; reading system data of the second BIOS subsystem; performing data verification on the system data of the first BIOS subsystem and the system data of the second BIOS subsystem; 10. The method of claim 9, further comprising: performing data synchronization on the system data of the first BIOS subsystem and the system data of the second BIOS subsystem according to a data verification result.
21. The step of performing data synchronization between the system data of the first BIOS subsystem and the system data of the second BIOS subsystem according to the data verification result includes: When a parameter of the first BIOS subsystem is changed, synchronizing and backing up the changed parameter to the second BIOS subsystem; if the first BIOS subsystem performs a configuration preserve refresh, writing a configuration preserve to the first BIOS subsystem; backing up system data of the first BIOS subsystem to the second BIOS subsystem; If the first BIOS subsystem performs data rollback synchronization, reading system data of the second BIOS subsystem; and synchronizing system data of the second BIOS subsystem with the first BIOS subsystem.
22. The method comprises:
22. The method of claim 21, further comprising the step of switching from the first BIOS subsystem to the second BIOS subsystem if an abnormality occurs in the operation of the host.
23. a first BIOS chip used to operate the first BIOS subsystem; a second BIOS chip used to operate the second BIOS subsystem; a BMC chip used to run a BMC program; a switch connected to the first BIOS chip and the second BIOS chip, the switch being used to control the first BIOS chip to be connected to the second BIOS chip; a complex programmable logic device connected to the switch and used to control the switch to perform link switching; a BMC control chip used to control the BMC chip, connected to the BMC chip, connected to the complex programmable logic device, and connected to the switch; A dual BIOS system comprising: a platform controller hub connected to the switch via a first bus, connected to the BMC control chip via a second bus, and connected to a CPU, the platform controller hub connecting the first bus and the second bus.
24. 24. The dual BIOS system according to claim 23, wherein access entities of the dual BIOS system include a host and the BMC control chip.
25. When the BMC control chip receives a subsystem switching command, it sends a subsystem switching request command to the complex programmable logic device; The BMC control chip controls the dual BIOS system to perform a shutdown operation; When the complex programmable logic device receives the subsystem switching request command, it sends a line switching command to the switch; When the switch receives the line switching command, the switch switches the connected chip from the first BIOS chip to the second BIOS chip; 25. The dual BIOS system of claim 24, wherein the dual BIOS system performs turn-on boot using the second BIOS subsystem.
26. The BMC control chip sends a subsystem switching request command to the complex programmable logic device when an operating system boot failure occurs; The BMC control chip controls the dual BIOS system to perform a shutdown operation; When the complex programmable logic device receives the subsystem switching request command, it sends a line switching command to the switch; When the switch receives the line switching command, the switch switches the connected chip from the first BIOS chip to the second BIOS chip; 25. The dual BIOS system of claim 24, wherein the dual BIOS system performs turn-on boot using the second BIOS subsystem.
27. When the BMC control chip needs to perform a subsystem refresh for the dual BIOS system, it sends a subsystem switching request command to the complex programmable logic device; The BMC control chip controls the dual BIOS system to perform a shutdown operation; When the complex programmable logic device receives the subsystem switching request command, it sends a first line switching command to the switch; when the switch receives the first line switching command, it switches the connected chip from the first BIOS chip to the second BIOS chip; the complex programmable logic chip sends a second line switching command to the switch; When the switch receives the second line switching command, it switches the access subject from the host to the BMC control chip; the BMC control chip refreshes the second BIOS subsystem in the second BIOS chip; When the refresh of the second BIOS subsystem in the second BIOS chip is completed, the BMC control chip sends a subsystem switch request command to the complex programmable logic device; when the programmable logic device receives the subsystem switching request command, it transmits a third line switching command to the switch; when the switch receives the third line switching command, it switches the connected chip from the second BIOS chip to the first BIOS chip; the BMC control chip refreshes the first BIOS subsystem in the first BIOS chip; When the refresh of the first BIOS subsystem in the first BIOS chip is completed, the complex programmable logic chip sends a fourth line switching command to the switch; When the switch receives the fourth line switching command, the switch switches the access subject from the BMC control chip to the host; 25. The dual BIOS system of claim 24, wherein the dual BIOS system performs turn-on boot using the first BIOS subsystem.
28. The present invention is applied to the dual BIOS system according to claims 23 to 27, determining a switching trigger condition satisfied by the dual BIOS system if the first BIOS subsystem is operational, the switching trigger condition including a manual switching trigger, an automatic switching trigger, and a redual BIOS refresh trigger; and executing a corresponding subsystem switching flow in response to the switching trigger condition.
29. The step of executing a corresponding subsystem switching flow in response to the switching trigger condition includes: If the switch trigger condition is the manual switch trigger, controlling a switch by a complex programmable logic device to switch the first BIOS subsystem to a second BIOS subsystem; The BMC control chip controls the dual BIOS system to perform a shutdown operation; determining a value in a flag register; 29. The method of claim 28, further comprising: if the value of the flags register is not a first preset value, performing a turn-on boot using the second BIOS subsystem.
30. The method comprises: If the switch trigger condition is the automatic switch trigger, the BMC control chip sends a subsystem switch request command to the complex programmable logic device; the BMC control chip controls the dual BIOS system to perform a shutdown operation; the complex programmable logic device controls the switch to switch the first BIOS subsystem to the second BIOS subsystem when receiving the subsystem switching request command; determining a value of the flag register; 30. The method of claim 29, further comprising: if the value of the flags register is not the first preset value, performing a turn-on boot using the second BIOS subsystem.
31. The method comprises: If the switching trigger condition is the dual BIOS refresh trigger, setting the value of the flag register to the first preset value; the BMC control chip sending the subsystem switch request command to the complex programmable logic device; the BMC control chip controls the dual BIOS system to perform a shutdown operation; the complex programmable logic device controlling the switch to switch from the first BIOS subsystem to the second BIOS subsystem; obtaining the value of the flag register; When the value of the flag register is the first preset value, the complex programmable logic device controls the switch to switch the access subject of the dual BIOS system from the host to the BMC control chip; the BMC control chip refreshes the second BIOS subsystem; When the refresh of the second BIOS subsystem is completed, the BMC control chip sends the subsystem switch request command to the complex programmable logic device; the complex programmable logic device controls the switch to switch the second BIOS subsystem to the first BIOS subsystem when receiving the subsystem switching request command; the BMC control chip refreshes the first BIOS subsystem; clearing the value of the flag register when the refresh of the first BIOS subsystem is completed; The complex programmable logic device controls the switch to switch the access subject of the dual BIOS system from the BMC control chip to the host; 31. The method of claim 30, further comprising the step of: the dual BIOS system turning on and booting using the first BIOS subsystem.
32. a switching decision module used to determine whether a subsystem switching is necessary when the first BIOS subsystem is operational; a switching trigger condition determination module for determining switching trigger conditions satisfied by the dual BIOS system when a subsystem switching is required, the switching trigger conditions including a dual BIOS refresh trigger, an automatic switching trigger, and a manual switching trigger; a subsystem switching module, which is used to switch the currently operating first BIOS subsystem to a second BIOS subsystem through a corresponding switching manner according to the switching trigger condition; a value acquisition module used to acquire a value of a flag register when the first BIOS subsystem is switched to the second BIOS subsystem; a subsystem determination module used to determine a BIOS subsystem to be used for data access from the value of the flag register; a data access module used to access data using the BIOS subsystem.
33. a switching trigger condition determination module used to determine a switching trigger condition satisfied by the dual BIOS system when the first BIOS subsystem is operating, the switching trigger condition including a manual switching trigger, an automatic switching trigger, and a redual BIOS refresh trigger; a subsystem switching module adapted to execute a corresponding subsystem switching flow according to the switching trigger condition.
34. A computer non-volatile readable storage medium having a computer program stored thereon, the computer program implementing the steps of the method according to any one of claims 9 to 22 or 28 to 31 when executed by a processor.
35. An electronic device comprising a memory, a processor, and a computer program stored in the memory and operable by the processor, wherein the processor, when executing the computer program, performs the steps of the method according to any one of claims 9 to 22 or 28 to 31.
Citation Information
Patent Citations
Method and device for controlling dual bios
JP2003316582A
Information processing apparatus and firmware updating method of the same
JP2011145910A