Control method to eliminate abnormal operation of management engine
The substrate management controller uses the status buffer and heartbeat signal to quickly detect management engine abnormalities and re-burn program codes, solving the inefficiency and difficulty in restoring when the computer system cannot be turned on, and achieving rapid recovery and normal operation.
Patent Information
- Application Number
- CN202010425357.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2020-05-19
- Publication Date
- 2024-12-13
- Estimated Expiration
- 2040-05-19
AI Technical Summary
When the computer system cannot be turned on, the existing technology requires a lot of time to re-burn the read-only memory, and the power outage without warning will lead to difficulty in remote management restoration, and the existing exception handling methods are inefficient.
Receive remote boot instructions through the substrate management controller, use the status buffer to determine the abnormal status of the management engine, and confirm the firmware abnormality through the heartbeat signal, quickly detect and re-bury the program code to restore normal operation.
It shortens the time to eliminate abnormal operation of management engines, improves the efficiency and reliability of remote power-on, and avoids the difficulty of restoring caused by power outages.
Smart Images

Figure CN113687998B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to a control method, and more particularly to a control method for eliminating abnormal operation of a management engine. Background Art
[0002] Nowadays, when operating a computer system through remote connection, such as remotely performing a boot, if the computer system fails to boot, the user or administrator usually needs to spend a considerable amount of time to analyze the problem. That is to say, the most common method used in the prior art to try to repair the system when the computer system fails to boot is to re-burn the read-only memory (ROM) used to boot the system. However, if the capacity of the entire read-only memory is, for example, 256Mb, it will take up to about 8 to 10 minutes to re-burn the entire read-only memory. If the computer system encounters an unexpected power outage during such a long update process (i.e., the burning process), it will be more difficult to restore the system to a normal operating state through remote management. Therefore, there is a lot of room for improvement in the known exception handling methods of remotely connected computer systems. Summary of the invention
[0003] The technical problem to be solved by the present invention is to provide a control method that effectively shortens the time required to eliminate abnormal operation of a management engine.
[0004] To solve the above technical problems, the present invention provides a control method for eliminating abnormal operation of a management engine, which is applicable to a management engine and a baseboard management controller. The control method includes steps (a) to (c).
[0005] In step (a), when the baseboard management controller receives a remote boot command, the baseboard management controller determines whether the management engine is operating in an abnormal state according to a value stored in a status register corresponding to the management engine.
[0006] In step (b), when the baseboard management controller determines that the management engine is operating in the abnormal state, a heartbeat signal is received from the management engine.
[0007] In step (c), when the baseboard management controller determines that the management engine is operating in the abnormal state and further determines that the logic value of the heartbeat signal does not fluctuate between logic 0 and logic 1, it is determined that the management engine is operating in a firmware abnormal state.
[0008] Preferably, the control method further includes a step (d) after step (c), wherein when the baseboard management controller determines that the management engine is operating in an abnormal state of the firmware, the baseboard management controller re-burns a program code corresponding to a firmware into a predetermined block of a read-only memory, and the predetermined block of the read-only memory is used to store the program code of the firmware corresponding to the management engine.
[0009] Preferably, in step (a), the status register is the Intel ME firmware Status #1 (MEFS1) Register in the Intel Management Engine standard, and the value is the value stored in the Current State field.
[0010] Preferably, in step (a), when the value is equal to 5, the baseboard management controller determines that the management engine is not operating in the abnormal state.
[0011] Preferably, the control method further comprises a step (e) before step (b), wherein a first parameter stored in the management engine is set to a first logic value so that the management engine outputs the heartbeat signal.
[0012] Preferably, in step (e), a second parameter stored in the management engine is set to a preset value, so that the management engine outputs the heartbeat signal at a preset output pin corresponding to the default value, thereby causing the baseboard management controller to receive the heartbeat signal at a corresponding preset input pin.
[0013] Preferably, in step (b), when the management engine is not operating in the abnormal state, the heartbeat signal output by the management engine jumps between logic 0 and logic 1 and has a period equal to 1 second.
[0014] Compared to the prior art, when the baseboard management controller receives the remote boot command, the present invention first determines whether the management engine is operating in the abnormal state according to the value of the status register, and then determines whether the heartbeat signal is normal, so as to correctly determine whether the management engine is operating in the abnormal firmware state. In this way, the baseboard management controller only needs to determine that the management engine is not operating in the abnormal state, that is, most of the operations are normal, based on the value of the status register, and does not need to detect the heartbeat signal every time to determine whether it is not operating in the abnormal state. It can quickly and efficiently detect whether a firmware of the management engine is abnormal, and then can make corresponding processing. BRIEF DESCRIPTION OF THE DRAWINGS
[0015] Other features and effects of the present invention will be clearly presented in the embodiments with reference to the accompanying drawings, in which:
[0016] Figure 1 is a block diagram illustrating a first computer system and a second computer system to which the control method for eliminating abnormal operation of a management engine of the present invention is applicable; and
[0017] Figure 2 The flowchart is a flowchart illustrating an embodiment of the control method for eliminating abnormal operation of a management engine according to the present invention. DETAILED DESCRIPTION
[0018] Before the present invention is described in detail, it should be noted that similar components are denoted by the same reference numerals in the following description.
[0019] See also Figure 1 and Figure 2 An embodiment of the control method for eliminating abnormal operation of a management engine of the present invention is applicable to a first computer system and a second computer system. The first computer system includes a baseboard management controller (BMC) 1, a central processing unit (CPU) 3, and a chipset (PCH) 2 electrically connected to the baseboard management controller 1 and the central processing unit 3, and the chipset 2 includes a management engine (ME) 21.
[0020] The first computer system or the second computer system is, for example, a computer host, a computer server, or a similar computer device. The management engine 21 is, for example, an Intel management engine. In addition, in the present embodiment, the management engine 21 is disposed in the chipset 2, and the baseboard management controller 1, the chipset 2, and the central processing unit 3 are separately disposed hardware components, while in other embodiments, the chipset 2 and the central processing unit 3 may also be integrated into a single hardware component, such as a system chip (SoC), or the management engine 21 may also be separately disposed outside the chipset 2, such as in the form of a microcontroller (MCU).
[0021] The control method includes steps S1 to S5.
[0022] In step S1, when the baseboard management controller 1 receives a remote boot command from the second computer system, the baseboard management controller 1 determines whether the management engine 21 is operating in an abnormal state according to a value stored in a status register included in the chipset 2. In more detail, the status register is the Intel ME firmware Status #1 (MEFS1) Register in the Intel management engine standard, and the value is the value stored in the Current State field. For example, when the baseboard management controller 1 determines that the value is equal to 5, the baseboard management controller 1 determines that the management engine 21 is operating in a normal state. When the value is not equal to 5, it is determined to be operating in the abnormal state. In this embodiment, the baseboard management controller 1, for example, includes a platform environment control interface (PECI) controller, and uses a connection line 4 set between the central processing unit 3 and the baseboard management controller 1 to read the value of the status register using the central processing unit 3 to obtain the value. The connection line 4 supports the protocol of the platform environment control interface (PECI). In other embodiments, the baseboard management controller 1 does not include the platform environment control interface (PECI) controller, and reads the value of the status register through another connection line set between the baseboard management controller 1 and the chipset 2. The other connection line supports the protocol of the intelligent platform management bus (IPMB).
[0023] In step S2, a first parameter stored in the management engine 21 is set to a first logic value, so that the management engine 21 outputs a heartbeat signal (Heartbeat), and a second parameter stored in the management engine 21 is set to a preset value, so that the management engine 21 outputs the heartbeat signal at a preset output pin corresponding to the default value, and then the baseboard management controller 1 receives the heartbeat signal at a corresponding preset input pin. For example, when the first parameter is called HeartBeatMgpio and is set to logic 1 (i.e., the first logic value), the management engine 21 outputs the heartbeat signal, and when the second parameter is set to 5 (i.e., the preset value), the preset output pin numbered 5 outputs the heartbeat signal. Furthermore, for example, by using a tool program (such as spsFITC) provided by Intel Corporation, the values of the first parameter and the second parameter are set during the development stage of a firmware of the management engine 21.
[0024] In step S3, when the baseboard management controller 1 determines that the management engine 21 is operating in the abnormal state, since the baseboard management controller 1 has pre-made an electrical connection between the preset input pin and the default output pin of the management engine 21, the baseboard management controller 1 can receive the heartbeat signal (Heartbeat) output from the management engine 21. For example, when the management engine 21 is not operating in the abnormal state, that is, operating in the normal state, the heartbeat signal output by the management engine 21 jumps between logic 0 and logic 1, and has a period equal to 1 second. When the management engine 21 is operating in the abnormal state, the heartbeat signal is equal to logic 0, for example.
[0025] In step S4, when the baseboard management controller 1 determines that the management engine 21 is operating in the abnormal state, and further determines that the logic value of the heartbeat signal does not fluctuate between logic 0 and logic 1, it is determined that the management engine 21 is operating in a firmware abnormal state. In other words, in this embodiment, the baseboard management controller 1 first determines that the management engine 21 is operating in the abnormal state through step S1, and then controls the management engine 21 to generate and receive the heartbeat signal in steps S2 and S3, so as to further determine whether the management engine 21 is operating in the firmware abnormal state according to the result of determining the heartbeat signal in step S4. In other embodiments, either or both of steps S2 and S3 can also be omitted, so that the baseboard management controller 1 is preset to be in a state of receiving the heartbeat signal from the management engine 21, and the same order of judgment can also be achieved.
[0026] Step S5, when the baseboard management controller 1 determines that the management engine 21 is operating in the abnormal firmware state, the baseboard management controller 1 re-burns a program code corresponding to the firmware in a predetermined block of the read-only memory, and the predetermined block of the read-only memory is used to store the program code of the firmware corresponding to the management engine 21. In other words, when the baseboard management controller 1 determines that the management engine 21 is operating abnormally, the baseboard management controller 1 re-burns the program code of the corresponding firmware to provide a corresponding solution to the abnormal firmware state of the management engine 21.
[0027] Next, the baseboard management controller 1 controls the management engine 21 to restart, and after determining that the management engine 21 operates in the normal state, notifies the basic input and output system (BIOS) to execute a power on self test (POST) program, and completes the startup of the first computer system after the POST program is successfully executed.
[0028] In more detail, in the present embodiment, the chipset 2 further includes the read-only memory, and the read-only memory (such as BIOS flash) stores the program code and setting parameters of the basic input and output system (BIOS), and the program code of the firmware of the management engine 21, wherein the predetermined block of the read-only memory stores the program code of the firmware of the management engine 21. When the baseboard management controller 1 determines that the management engine 21 is operating in the abnormal state of the firmware, the baseboard management controller 1 actively downloads the program code of the firmware, such as the latest version, to a remote server or to a preset server, and stores it in an external memory, and then transmits and stores it in the predetermined block. Then, the baseboard management controller 1 actively controls the chipset 2 to restart, and the program code of the firmware stored in the predetermined block and updated can be executed.
[0029] It is also particularly noted that when the baseboard management controller 1 determines that the management engine 21 is operating in the normal state, that is, another determination result of step S1, the baseboard management controller 1 notifies the basic input and output system (BIOS) to execute the power-on self-test (POST) program, and after the POST program is successfully executed, the startup of the first computer system is completed. In addition, when the baseboard management controller 1 determines that the management engine 21 is operating in the abnormal state but not in the firmware abnormal state, that is, when the baseboard management controller 1 determines that the logic value of the heartbeat signal determined by the management engine 21 is jumping between logic 0 and logic 1, that is, another determination result of step S4, the management engine 21 only needs to be restarted, for example, the chipset 2 containing the management engine 21 is restarted, or the independently set management engine 21 is restarted, and it can be operated in the normal state again.
[0030] In summary, when the baseboard management controller receives the remote boot command, it first determines whether the management engine is operating in the abnormal state according to the value of the status register corresponding to the management engine, and then determines whether the heartbeat signal is normal when operating in the abnormal state, so as to correctly determine whether the management engine is operating in the firmware abnormal state. In this way, the baseboard management controller only needs to determine that the management engine is not operating in the abnormal state, that is, most of the operations are normal, based on the value of the status register, and does not need to determine that it is operating in the normal state by detecting the heartbeat signal every time, and can quickly and efficiently detect whether the firmware of the management engine is abnormal, and then can make corresponding processing, so the purpose of the present invention can be achieved.
[0031] However, what is described above is only an embodiment of the present invention and should not be used to limit the scope of implementation of the present invention. All simple equivalent changes and modifications made according to the claims and the contents of the patent specification of the present invention are still within the scope of the patent of the present invention.
Claims
1. A control method, applicable to a management engine and a baseboard management controller, characterized in that: The control method comprises the following steps: (a) when the baseboard management controller receives a remote power-on command, the baseboard management controller determines whether the management engine is operating in an abnormal state according to a value stored in a status register corresponding to the management engine; (b) when the baseboard management controller determines that the management engine is operating in the abnormal state, receiving a heartbeat signal output from the management engine; and (c) When the baseboard management controller determines that the management engine is operating in the abnormal state, and further determines that the logic value of the heartbeat signal does not jump between logic 0 and logic 1, it is determined that the management engine is operating in a firmware abnormal state; wherein, when the baseboard management controller determines that the management engine is operating in the abnormal state, and further determines that the logic value of the heartbeat signal jumps between logic 0 and logic 1, it is determined that the management engine is operating in the abnormal state but does not belong to the firmware abnormal state.
2. The control method according to claim 1, characterized in that: The method further includes a step (d) after step (c), wherein when the baseboard management controller determines that the management engine is operating in an abnormal state of the firmware, the baseboard management controller re-burns a program code corresponding to a firmware into a predetermined block of a read-only memory, and the predetermined block of the read-only memory is used to store the program code of the firmware corresponding to the management engine.
3. The control method according to claim 1, characterized in that: In step (a), the status register is the Intel ME firmware Status#1 Register in the Intel Management Engine standard, and the value is the value stored in the Current State field.
4. The control method according to claim 3, characterized in that: In step (a), when the value is equal to 5, the baseboard management controller determines that the management engine is not operating in the abnormal state.
5. The control method as claimed in claim 1, further comprising a step (e) before step (b), wherein a first parameter stored in the management engine is set to a first logic value so that the management engine outputs the heartbeat signal.
6. The control method according to claim 5, wherein: In step (e), a second parameter stored in the management engine is set to a preset value, so that the management engine outputs the heartbeat signal at a preset output pin corresponding to the preset value, thereby causing the baseboard management controller to receive the heartbeat signal at a corresponding preset input pin.
7. The control method according to claim 1, wherein: In step (b), when the management engine is not operating in the abnormal state, the heartbeat signal output by the management engine jumps between logic 0 and logic 1 and has a period equal to 1 second.
