Remote burning system and remote burning method
By switching the communication link and writing the firmware image when the BMC fails to boot using a remote burning system, the problem of low BMC burning efficiency is solved, enabling efficient batch repair without disassembling the device, and improving the burning efficiency and success rate of the BMC.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- INSPUR SUZHOU INTELLIGENT TECH CO LTD
- Filing Date
- 2026-05-20
- Publication Date
- 2026-06-19
Smart Images

Figure CN122240141A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of server technology, and in particular to a remote programming system and a remote programming method. Background Technology
[0002] During the development and debugging of the Baseboard Management Controller (BMC), issues such as defective firmware images can easily cause the BMC to fail to boot properly. In related technologies, when the BMC fails to boot, developers need to disassemble the server, remove the corresponding storage device for flashing, and then reassemble it, resulting in low flashing efficiency. Summary of the Invention
[0003] This application provides a remote programming system and a remote programming method to at least solve the problem of low BMC programming efficiency in related technologies.
[0004] This application provides a remote programming system, including: a remote management terminal 1, a server integration module 2, a programming control module 3, and a programmer adapter module 4.
[0005] Server integration module 2, programming control module 3, and programmer adapter module 4 are installed in the server. Server integration module 2 provides a first communication link between remote management terminal 1 and the server. Remote management terminal 1 sends remote programming instructions and firmware images to programming control module 3 when the baseboard management controller fails. Programming control module 3 switches the second communication link between storage device and baseboard management controller to a third communication link between storage device and programmer adapter module 4 according to the remote programming instructions. The storage device is installed in the server and is used to store the firmware program required for the baseboard management controller to run. Programmer adapter module 4 writes the firmware image to storage device through the third communication link according to the remote programming instructions.
[0006] This application provides a remote programming method applied to a server. The server includes a server integration module 2, a programming control module 3, and a programmer adapter module 4. The method includes: establishing a first communication link between a remote management terminal and the server through the server integration module 2; receiving a remote programming command and firmware image sent by the remote management terminal through the programming control module 3 and the first communication link, wherein the remote programming command and firmware image are sent by the remote management terminal when it determines that the baseboard management controller in the server is faulty; according to the remote programming command, switching the second communication link between the storage device and the baseboard management controller to a third communication link between the storage device and the programmer adapter module 4 through the programming control module 3, wherein the storage device is used to store the firmware program required for the baseboard management controller to run; and writing the firmware image to the storage device through the third communication link and the programmer adapter module 4 according to the remote programming command.
[0007] This application also provides an electronic device, including: a memory for storing a computer program; and a processor for executing the computer program to implement the steps of any of the above-described remote programming methods.
[0008] This application also provides a computer-readable storage medium storing a computer program, wherein the computer program, when executed by a processor, implements the steps of any of the above-described remote programming methods.
[0009] This application also provides a computer program product, including a computer program that, when executed by a processor, implements the steps of any of the above-described remote programming methods.
[0010] The remote programming system and method provided in this application are used to perform emergency programming on the storage device corresponding to the baseboard management controller (BMC) when the BMC fails to start, in order to restore the working state of the BMC. The system includes a remote management terminal, a programming control module, a server integration module, and a programmer adapter module. A first communication link is established between the remote management terminal and the server through the server integration module. Remote programming instructions and firmware images are sent through the first communication link. The programming control module receives the remote programming instructions and firmware images, disconnects the second communication link between the baseboard management controller and the storage device, establishes a third communication link between the storage device and the programmer adapter module, and finally writes the firmware image into the storage device through the programmer adapter module. This allows the baseboard management controller to load the firmware image from the storage chip, enabling remote programming when the baseboard management controller lacks communication capabilities, simplifying the programming process and improving programming efficiency. Attached Figure Description
[0011] To more clearly illustrate the embodiments of this application, the accompanying drawings used in the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0012] Figure 1 A schematic diagram of an application environment architecture provided in this application embodiment;
[0013] Figure 2 This is a schematic diagram of a programming system structure provided in an embodiment of this application;
[0014] Figure 3 This is a schematic diagram of a server integration module structure provided in an embodiment of this application;
[0015] Figure 4 This is a schematic diagram illustrating the working principle of a mode switching unit provided in an embodiment of this application;
[0016] Figure 5 This is a schematic diagram of the structure of a programming control module provided in an embodiment of this application;
[0017] Figure 6 A flowchart illustrating a remote programming method provided in this application embodiment. Figure 1 ;
[0018] Figure 7 A flowchart illustrating a remote programming method provided in this application embodiment. Figure 2 ;
[0019] Figure 8 A flowchart illustrating a remote programming method provided in this application embodiment. Figure 3 ;
[0020] Figure 9 A schematic diagram of the structure of the electronic device provided in this application. Detailed Implementation
[0021] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those of ordinary skill in the art without creative effort are within the protection scope of this application.
[0022] It should be noted that, in the description of this application, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. The terms "first," "second," etc., in this application are used to distinguish similar objects and are not used to describe a specific order or sequence.
[0023] Figure 1 This is a schematic diagram of an application environment architecture provided for an embodiment of this application. Figure 1 This includes both servers and clients.
[0024] The server contains a Bootloader (BMC), its corresponding flash memory chip, and a programming device. The BMC is the core management component of the server, responsible for critical functions such as server hardware status monitoring, remote control, and firmware upgrades. The normal operation of the BMC relies on the firmware image stored in the flash memory chip, such as a Serial Peripheral Interface (SPI) NOR flash memory. The programming device is used to write the firmware image to the flash memory chip. When the firmware image stored in the flash memory is corrupted, the BMC may fail to boot. Therefore, in the event of a BMC failure, a valid firmware image can be programmed into the flash memory chip, allowing the BMC to load the correct firmware image and operate normally.
[0025] The client is used to send remote burning commands and a normal firmware image to the server when the BMC fails, so that the burning device can write the normal firmware image into the flash memory chip.
[0026] During the development and debugging of BMC, unexpected situations such as defective firmware images, interruptions during the burning process, and hardware compatibility issues can easily cause BMC to fail to start normally, which is commonly known as "bricking".
[0027] In related technologies, some BMC fault recovery solutions restore firmware images through the BMC remote management interface. This involves communication between the client and the BMC, enabling the programming device to program the flash memory chip. However, this method relies on the BMC being able to communicate normally and cannot address situations where the BMC is completely bricked and unable to boot. Some methods employ dual-core redundancy designs, but these can only handle anomalies during firmware image execution and cannot resolve boot failures caused by programming errors.
[0028] Currently, for servers with a completely "bricked" BMC (Bricked Memory Capacitor), i.e., unable to boot, the primary method of repair is manual offline programming. This method requires first shutting down the server power, disassembling the chassis, removing the corresponding SPI NOR Flash chip for the BMC, then using a dedicated programmer to burn a normal firmware image into the chip, and finally reinstalling the chip into the server and restarting the device. This repair method has several obvious problems. First, the operation is cumbersome and time-consuming, requiring developers to be on-site. The entire process involves power off, disassembly, chip removal, programming, reassembly, and power-on, resulting in long repair times and low efficiency per instance. Second, if multiple servers experience BMC failures simultaneously, the above manual operation must be repeated one by one, making batch repair impossible. Third, frequent disassembly and chip removal can potentially cause secondary failures such as damage to motherboard interfaces, electrostatic discharge damage to chips, and deterioration of chassis sealing. Therefore, there is an urgent need for an emergency programming solution that can remotely batch repair BMCs when they are completely unable to boot.
[0029] The remote programming system provided in this application embodiment is used to remotely program the storage device corresponding to the baseboard management controller when the baseboard management controller cannot start, so as to restore the working state of the baseboard management controller. The system includes a remote management terminal, a programming control module, a server integration module, and a programmer adapter module. The server integration module establishes a first communication link between the remote management terminal and the server. When the baseboard management controller has no communication capability, it sends a remote programming command and firmware image through the first communication link. The programming control module receives the remote programming command and firmware image, cuts off the second communication link between the baseboard management controller and the storage device (Flash chip), establishes a third communication link between the Flash chip and the programmer adapter module, and finally writes the firmware image into the Flash chip through the programmer adapter module. This allows the baseboard management controller to load the firmware image from the storage chip, enabling remote programming when the baseboard management controller has no communication capability, simplifying the programming process and improving programming efficiency.
[0030] To enable those skilled in the art to better understand the present application, the present application will be further described in detail below with reference to the accompanying drawings and specific embodiments.
[0031] Figure 2 This application provides a schematic diagram of a programming system structure, as shown in the embodiment of the present application. Figure 2 As shown, the system includes: a remote management terminal 1, a server integration module 2, a programming control module 3, and a programmer adapter module 4.
[0032] Server integration module 2, programming control module 3, and programmer adapter module 4 are installed in the server and connected in sequence; remote management terminal 1 is connected to the server to enable remote communication.
[0033] The remote management terminal 1 is, for example, a general-purpose computer or server, equipped with a network card, non-volatile memory (such as a hard disk / solid-state drive), and a processor. The processor runs dedicated graphical interface software. The software has a built-in batch management unit, which is stored in the memory as executable code. The batch management unit is used to add or delete server identifiers (such as IP addresses and device numbers), manage firmware image versions, configure and distribute burning parameters, and display the status of each server in real time, such as normal, fault, burning in progress, successful, and failed.
[0034] Server integration module 2 includes a physical interface and an analog switch chip. The physical interface, for example, is an RJ45 Ethernet port or Type-C interface integrated on the front panel of the chassis, supporting Gigabit Ethernet or Universal Serial Bus (USB) communication, used to establish the first communication link. The common terminal of the analog switch chip is connected to the SPI pin of the SPI NOR Flash chip, and the select terminals are connected to the BMC chip and the programmer adapter module 4, respectively, used to switch between the second and third communication links.
[0035] The programming control module 3 is integrated on the server motherboard and specifically includes a microcontroller unit (MCU). The MCU is connected to the reset terminal of the BMC chip, the chip select terminal of the SPI NOR flash memory chip, and the control terminal of the power isolation unit through its general-purpose input / output (GPIO) pins.
[0036] The programmer adapter module 4 includes a programming core circuit, which integrates the core circuitry of the programmer. This circuit comprises an Advanced RISC Machines (ARM) core microcontroller and a Field Programmable Gate Array (FPGA) logic chip, and is compatible with common SPI NOR flash memory chips. Optionally, the programmer adapter module may also include a protocol conversion unit, such as an Ethernet controller chip, for converting Ethernet-transmitted data into SPI protocol data.
[0037] Server integration module 2 provides a first communication link between remote management terminal 1 and the server. Remote management terminal 1 sends remote burning commands and firmware images to burning control module 3 when BMC fails. Burning control module 3 switches the second communication link between storage device and BMC to a third communication link between storage device and burner adapter module 4 according to the remote burning command. The storage device is installed in the server motherboard and is used to store the firmware program required for BMC operation. Burner adapter module 4 writes the firmware image to storage device through the third communication link according to the remote burning command.
[0038] The first communication link is a remote data transmission channel established between the remote management terminal 1 and the server through the server integration module 2. The remote programming command is generated by the remote management terminal 1 and is used to instruct the programming of the storage device. The remote programming command may include programming parameters. The storage device is, for example, a Flash chip. BMC faults may include runtime failures or inability to boot.
[0039] The second communication link is the data transmission channel between the storage device and the BMC, and the third communication link is the data transmission channel between the storage device and the programmer adapter module 4. When the BMC is running normally, the BMC loads the required firmware image from the storage device through the second communication link. When the BMC fails, the second communication link needs to be disconnected and the third communication link needs to be connected.
[0040] When a BMC fault is detected, the remote management terminal 1 sends a remote burning command and firmware image to the server through the first communication link. In the server, the remote burning command and firmware image are transmitted to the burning control module 3 through the server integration module 2. After receiving the remote burning command and firmware image, the burning control module 3 disconnects the second communication link and connects the third communication link, and transmits the remote burning command and firmware image to the programmer adapter module 4. The programmer adapter module 4 transmits the firmware image and writes it to the storage device through the third communication link according to the remote burning command, thus completing the burning process.
[0041] The remote programming system provided in this application embodiment is used to remotely program the storage device corresponding to the baseboard management controller when the baseboard management controller cannot start, so as to restore the working state of the baseboard management controller. The system includes a remote management terminal, a programming control module, a server integration module, and a programmer adapter module. The server integration module establishes a first communication link between the remote management terminal and the server. When the baseboard management controller has no communication capability, it sends a remote programming command and firmware image through the first communication link. The programming control module receives the remote programming command and firmware image, cuts off the second communication link between the baseboard management controller and the storage device (Flash chip), establishes a third communication link between the Flash chip and the programmer adapter module, and finally writes the firmware image into the Flash chip through the programmer adapter module. This allows the baseboard management controller to load the firmware image from the storage chip, enabling remote programming when the baseboard management controller has no communication capability, simplifying the programming process and improving programming efficiency.
[0042] Optional, see Figure 3 , Figure 3 This is a schematic diagram of a server integration module structure provided in an embodiment of this application. The server integration module includes an emergency communication interface 21 and a mode switching unit 22. The emergency communication interface 21 is used to realize the communication connection between the remote management terminal 1 and the server.
[0043] The emergency communication interface 21 is embedded in the front panel of the server chassis and supports Gigabit Ethernet or Universal Serial Bus (USB) communication. The emergency communication interface 21 is a general interface such as RJ45 or Type-C, which enables the remote management terminal 1 to access the server via Ethernet or USB protocol.
[0044] The mode switching unit 22 is used to switch the operating mode of the server integrated module 2 from normal mode to programming mode according to the remote programming command. The mode switching unit 22 is an analog switch chip. The common terminal of the analog switch chip is connected to the SPI pin of the SPINOR Flash chip, and the selection terminals are connected to the BMC chip and the programmer adapter module 4 respectively, to physically connect the second and third communication links. Normal mode means the BMC is working normally, while programming mode means the BMC is faulty and the storage device needs to be programmed.
[0045] The switching of working mode is triggered by the remote burning command. When the remote burning command is received, it automatically switches to burning mode.
[0046] The common terminal of the mode switching unit 22 is connected to the serial peripheral interface pin of the storage device, and the selection terminal of the mode switching unit is connected to the programmer adapter module 4 and the BMC respectively. The mode switching unit 22 is used to conduct the second communication link in normal mode and conduct the third communication link in programming mode.
[0047] See Figure 4 , Figure 4 This is a schematic diagram illustrating the working principle of a mode switching unit provided in an embodiment of this application. The common terminal and the select terminal are pins of the mode switching unit 22 (i.e., the analog switch chip). The common terminal is used to connect to the SPI pin of the storage device, which is the unified interface for communication between the storage device and other modules. The select terminal is connected to the programmer adapter module 4 and the BMC, respectively. In normal mode, the select terminal connects to the BMC chip to enable communication between the storage device and the BMC chip, allowing the BMC to read the firmware image from the storage chip and ensuring normal operation of the BMC. In programming mode, the select terminal connects to the programmer adapter module 4 to enable communication between the programmer adapter module 4 and the storage device, establishing a communication link between the programmer adapter module 4 and the storage device, i.e., the third communication link, for transmitting the firmware image.
[0048] The server integration module connects to the emergency communication interface and mode switching unit. The emergency communication interface provides a universal and reliable remote communication foundation for the remote management terminal and the server. The mode switching unit can switch between normal and burning modes according to remote burning instructions. At the same time, relying on its connection with the storage device, BMC, and burner adapter module, it realizes precise and targeted switching of the corresponding communication link of the storage device. This allows the establishment of remote communication and link switching to form an integrated hardware execution system, enabling remote burning even when the BMC has no communication capability. This avoids disassembling the server for burning, simplifies the burning process, and improves burning efficiency.
[0049] Optional, see Figure 5 , Figure 5 This is a schematic diagram of a programming control module provided in an embodiment of this application. The programming control module 3 includes a power isolation unit 31, which is used to cut off the power supply from the server's main power supply to the storage device and provide independent power supply to the storage device after receiving a remote programming command and firmware image.
[0050] The power isolation unit 31 consists of at least one optocoupler isolation chip and a DC-DC converter, which is used to cut off the power supply of the server main power supply to the flash memory chip after receiving the programming command, and switch to independent 3.3V power supply.
[0051] The power supply of the programming control module 3 is independent of the BMC, so even if the BMC fails to start normally, the programming control module 3 can still work normally. After receiving a remote programming command, the power isolation unit 31 can cut off the power supply from the server's main power supply to the storage device and provide independent power to the storage device to avoid interference caused by fluctuations in the main power supply.
[0052] By setting a power isolation unit in the burning control module, the server's main power supply to the storage device is cut off and an independent power supply is provided after receiving the remote burning command and firmware image. This effectively avoids the impact of main power voltage fluctuations and power supply interference on the firmware burning process, improves the power supply stability of the storage device during the burning stage, ensures the reliable execution of remote emergency burning operations, and avoids the manual power-off operation steps required in related technologies, thus improving burning efficiency.
[0053] Optionally, the pins of the programming control module 3 are connected to the reset terminal of the baseboard management controller, which is used to enable the baseboard management controller to load the firmware image from the storage device after the firmware image is written to the storage device; the pins of the programming control module 3 are also connected to the chip select terminal of the storage device, which is used to control the storage device to establish a second communication link with the baseboard management controller in normal mode and to establish a third communication link with the programmer adapter module 4 in programming mode by changing the level of the chip select terminal.
[0054] The programming control module 3 is connected to the reset terminal of the BMC via a GPIO pin. It triggers the BMC to reset by outputting high and low level signals. After successful programming, the pin outputs a reset signal to restore the BMC to its initial state, clear the original abnormal program residue, and reload the newly written firmware image from the storage device to complete the boot verification. If programming fails, the pin can also be used to trigger the BMC to restart, so as to avoid the abnormal state from lingering.
[0055] The chip select pin is the SPI communication enable pin of the storage device, such as the Chip Select (CS) pin. The programming control module 3 controls its level through the GPIO pin. In programming mode, it pulls the level low so that the storage device only responds to the SPI commands of the programmer adapter module (disconnecting the communication between the BMC and the storage device). After programming is completed, it restores the level to high so that the storage device responds to the SPI commands of the BMC again (turning on the communication between the BMC and the storage device).
[0056] Optionally, the programming control module 3 is also used to detect the working status of the baseboard management controller, and send a fault signal to the remote management terminal 1 when the baseboard management controller fails; the remote management terminal 1 is used to determine the firmware image and generate a remote programming instruction according to the server's identification information when it receives the fault signal, and send the remote programming instruction and firmware image to the programming control module 3; the programming control module 3 is also used to send a programming enable signal and firmware image to the programmer adapter module 4 after receiving the remote programming instruction and firmware image, and the programming enable signal is used to instruct the programmer adapter module 4 to write the firmware image to the storage device.
[0057] The programming control module 3 has built-in status monitoring logic. It detects the initialization signal of the BMC at a preset frequency (e.g., once per second). If it fails to detect the signal three times consecutively, it determines that the BMC has malfunctioned, generates a fault signal, and sends the fault signal to the remote management terminal 1. The fault signal may also include the current server's device information, such as the server's device identifier, model, and Internet Protocol (IP) address.
[0058] After receiving a fault signal, the remote management terminal 1 identifies the device information, determines the server that caused the fault, retrieves the firmware image corresponding to the server from memory, generates a remote burning instruction based on the parameters required to burn the firmware image, and sends the remote burning instruction and firmware image to the burning control module 3.
[0059] After receiving the remote burning command and firmware image, the burning control module 3 generates a burning enable signal according to the remote burning command, and sends the burning enable signal and firmware image to the programmer adapter module 4. The burning enable signal is a digital control signal sent by the burning control module 3 to the programmer adapter module 4 to indicate whether the server integration module 2 has switched its working mode.
[0060] The programmer adapter module 4 integrates the core programmer circuit, which consists of an ARM core chip and an FPGA logic chip. This core circuit is compatible with various commonly used SPI NOR Flash chips, adapting to flash memory chips of different capacities and specifications to meet the adaptation needs of different BMC-supported storage devices. It also integrates an Ethernet-to-SPI protocol conversion unit, capable of converting remotely transmitted Ethernet data into SPI data. The protocol conversion unit supports adjustable communication rates from 1MHz to 10MHz, flexibly adjusting the data transmission rate according to the hardware interface specifications of different server motherboards and the communication rate requirements of the SPI NOR Flash chips. This adapts to the interface requirements of various server motherboards, improving the versatility and adaptability of the entire remote programming system.
[0061] By real-time monitoring of BMC status, automatic triggering of the remote flashing process, and precise matching of the corresponding firmware, coupled with automatic switching of communication links and automatic reset loading after flashing, manual intervention and process waiting steps are greatly reduced, effectively improving the overall execution efficiency of remote flashing and shortening the server failure recovery time.
[0062] After receiving the programming enable signal, the programmer adapter module 4 determines whether the server integrated module 2 has switched its working mode to programming mode. When the working mode is programming mode, the original data in the storage device is erased, the firmware image is converted into SPI data, and the SPI data is programmed into the storage device.
[0063] Furthermore, the programming enable signal is also used to ensure exclusive control of the communication link of the storage device and control the switching power supply. That is, it controls the disconnection of the second communication link, so that the programmer adapter module 4 has exclusive control of the storage device, and controls the disconnection of the main power supply to avoid interference from BMC residual signals and main power fluctuations during programming. The programming enable signal is also time-sensitive. Only when the signal is valid will the storage device respond to subsequent write operation commands to ensure that the programming action is correctly recognized by the storage device. If the programming enable signal is not detected before programming, the programmer adapter module 4 will refuse to perform the firmware programming operation to prevent programming failure or damage to the storage device due to incomplete link switching or power supply isolation, thereby improving the security and stability of programming.
[0064] Optionally, the programmer adapter module 4 is used to verify the firmware image written to the storage device after the firmware image is written to the storage device. If the verification fails, it sends a programming failure message to the remote management terminal 1. If the verification passes, it sends a programming success message to the programming control module 3. The programming control module 3 is used to switch the third communication link to the second communication link after receiving the programming success message, restore the server main power supply to the storage device, control the baseboard management controller to restart, and send a programming success message to the remote management terminal 1.
[0065] The firmware image is verified, for example, by performing a 32-bit Cyclic Redundancy Check-32 (CRC-32) check. The remote flashing command also includes a checksum generated based on the firmware image. After the firmware image is written to the storage device, the checksum of the firmware image is calculated again in the same way. If it matches the checksum in the remote flashing command, the verification passes; otherwise, the verification fails.
[0066] After successful verification, the programming control module 3 switches the control mode switching unit 22 back to normal mode, restores the second communication link, shuts down the independent power supply, restores the main power supply, controls the BMC to restart, and sends a programming success message to the remote management terminal 1.
[0067] The firmware image written to the storage device is automatically verified by the programmer adapter module without manual intervention to check the verification results. After verification, the programmer can quickly feed back the information of failure or success to the corresponding terminal and module. After the verification is successful, the programming control module automatically completes the switching from the third communication link to the second communication link, restores the power supply of the storage device from the server main power supply, and restarts the baseboard management controller. At the same time, it feeds back the programming success information to the remote management terminal, forming an integrated closed-loop execution process from protocol conversion, firmware programming to verification, link switching and device restart. The whole process does not require manual intervention, which greatly reduces the process waiting and manual operation links, effectively improves the overall execution efficiency of remote programming, and significantly shortens the recovery time after the server baseboard management controller fails.
[0068] Optionally, the remote management terminal 1 stores the identification information of at least one server and / or at least one firmware image, which is used to send remote burning instructions and firmware images to at least two servers respectively when the baseboard management controller in at least two servers fails; the remote management terminal 1 is also used to visually display the status information of the server, which is used to indicate the operating status and / or burning status of the baseboard management controller.
[0069] The remote management terminal 1 has a built-in batch management unit that can add or delete identification information for multiple servers, and simultaneously manage multiple servers. It also features firmware image storage and version management functions. Upon receiving a fault signal, it selects the corresponding firmware image version and uses communication rate, verification method, and verification code as burning parameters to generate a remote burning command and send it to the server.
[0070] The remote management terminal 1 is also equipped with management and control software, which can visually display the operating status and burning status of each server. The operating status includes normal and fault, and the burning status includes burning in progress, repair successful, and repair failed. It supports issuing remote burning commands to one or more servers and performing retry operations.
[0071] By managing multiple servers simultaneously through a remote management terminal, it is possible to issue remote burning commands in batches and monitor the status in batches. If multiple servers fail at the same time, each server will independently perform burning of the storage device to achieve batch repair and further improve burning efficiency.
[0072] Optionally, the system may also include a hardware button located on the front panel of the server chassis and connected to the GPIO pin of the programming control module 3. The hardware button is used to switch the normal mode to the programming mode and / or switch the second communication link to the third communication link by responding to the level change triggered by the press operation.
[0073] After the remote management terminal 1 transmits the remote burning command and firmware image to the server, if a situation occurs such as the inability to switch communication links due to a failure of the burning control module 3, the on-site maintenance personnel can directly and manually trigger the mode and link switch through the hardware button to start the burning process immediately, ensuring that the burning operation is not affected by the remote failure.
[0074] By adopting a dual redundancy design of automatic switching via remote command and manual switching via hardware button, the problem of mode switching failure caused by failure of the burning control module can be avoided. There is no need to wait for network troubleshooting and command retransmission. On-site switching can be quickly completed via hardware button, ensuring that the burning process is uninterrupted and unblocked, greatly reducing the time spent on fault handling and improving the overall burning and server fault recovery efficiency.
[0075] The remote burning system provided in this application integrates an emergency communication interface and a mode switching unit in the server, enabling firmware image burning without disassembling the chassis or removing the storage device. This avoids hardware wear and tear and inefficiency caused by frequent disassembly. The remote communication link allows developers to complete the entire process, including fault detection, command issuance, and progress monitoring, from their workstations, saving significant travel time and improving burning efficiency. Simultaneous management of multiple servers allows for batch burning, further enhancing efficiency. The burner adapter module is compatible with common SPI NOR Flash chips, eliminating the need to replace existing burning equipment and reducing deployment costs. It also supports multiple communication interfaces and protocols, adapting to different server motherboard models. An independent power supply unit ensures independent power during the burning process, preventing interference from server mains power fluctuations and improving burning success rate.
[0076] Figure 6 A flowchart illustrating a remote programming method provided in this application embodiment. Figure 1 This method is applied to servers, such as... Figure 6 As shown, the method includes:
[0077] S101. Establish the first communication link between the remote management terminal and the server through the server integration module.
[0078] S102, Receive remote burning instructions and firmware images sent by the remote management terminal through the burning control module and the first communication link.
[0079] The remote burning command and firmware image are sent by the remote management terminal when it determines that the baseboard management controller in the server is faulty.
[0080] Optionally, after step S102, the process may further include: cutting off the power supply from the server's main power supply to the storage device, and providing independent power to the storage device through the power isolation unit in the programming control module.
[0081] S103. According to the remote programming command, the programming control module switches the second communication link between the storage device and the baseboard management controller to the third communication link between the storage device and the programmer adapter module.
[0082] The storage device is used to store the firmware required for the baseboard management controller to run.
[0083] S104. According to the remote burning command, the firmware image is written to the storage device through the third communication link and the burner adapter module.
[0084] Optionally, prior to step S101, the method further includes a step of determining a BMC fault. See [link to relevant documentation] Figure 7 , Figure 7 A flowchart illustrating a remote programming method provided in this application embodiment. Figure 2 The methods include:
[0085] S201. Start the server.
[0086] S202. The status of the baseboard management controller is detected by the programming control module. If no initialization signal is detected, fault information is sent to the remote management terminal.
[0087] S203. Determine the firmware image and remote burning command through the remote management terminal, and send the firmware image and remote burning command to the server.
[0088] S204. Establish the first communication link between the remote management terminal and the server through the server integration module.
[0089] S205. Receive remote burning instructions and firmware images sent by the remote management terminal through the burning control module and the first communication link.
[0090] S206. According to the remote programming command, the programming control module switches the second communication link between the storage device and the baseboard management controller to the third communication link between the storage device and the programmer adapter module.
[0091] S207. According to the remote burning command, the firmware image is written to the storage device through the third communication link and the burner adapter module.
[0092] Optionally, after step S104, the method further includes a step of determining to verify the firmware image and providing feedback on the burning result. See [link to documentation]. Figure 8 , Figure 8 A flowchart illustrating a remote programming method provided in this application embodiment. Figure 3 The methods include:
[0093] S301. Establish the first communication link between the remote management terminal and the server through the server integration module.
[0094] S302, Receive remote burning instructions and firmware images sent by the remote management terminal through the burning control module and the first communication link.
[0095] S303. According to the remote programming command, the programming control module switches the second communication link between the storage device and the baseboard management controller to the third communication link between the storage device and the programmer adapter module.
[0096] S304. According to the remote burning command, the firmware image is written to the storage device through the third communication link and the burner adapter module.
[0097] S305. Verify the firmware image written to the storage device and determine whether the verification was successful.
[0098] If the verification fails, proceed to step S306; if the verification succeeds, proceed to step S307 and subsequent steps.
[0099] S306. Send a burning failure message to the remote management terminal.
[0100] S307. Switch the working mode to normal mode and restore the second communication link.
[0101] S308. Turn off the independent power supply and restore the main power supply to the storage device.
[0102] S309. Restart the board management controller and send a successful programming message to the remote management terminal.
[0103] The remote programming method provided in this application is used to remotely program the storage device corresponding to the baseboard management controller when the baseboard management controller (BMC) cannot start, so as to restore the working state of the BMC. A first communication link is established between the remote management terminal and the server through the server integration module. When the BMC has no communication capability, a remote programming command and firmware image are sent through the first communication link. The second communication link between the BMC and the storage device (Flash chip) is cut off through the programming control module. A third communication link is established between the Flash chip and the programmer adapter module. Finally, the firmware image is written into the Flash chip through the programmer adapter module, so that the baseboard management controller can load the firmware image from the storage chip. This enables remote programming when the BMC has no communication capability, simplifies the programming process, and improves programming efficiency.
[0104] Through the above description of the embodiments, those skilled in the art can clearly understand that the methods according to the above embodiments can be implemented by means of software plus necessary general-purpose hardware platforms. Of course, they can also be implemented by hardware, but in many cases the former is a better implementation method.
[0105] Figure 9 A schematic diagram of the structure of the electronic device provided in this application. Figure 9 As shown, the electronic device 60 provided in this embodiment includes at least one processor 601 and a memory 602. Optionally, the electronic device 60 further includes a communication component 603. The processor 601, memory 602, and communication component 603 are connected via a bus.
[0106] In a specific implementation, at least one processor 601 executes computer execution instructions stored in memory 602, causing at least one processor 601 to execute the above-described remote programming method embodiment.
[0107] The specific implementation process of processor 601 can be found in the above method embodiments, and its implementation principle and technical effect are similar. It will not be repeated here.
[0108] In the above embodiments, it should be understood that the processor can be a Central Processing Unit (CPU), or other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), etc. The general-purpose processor can be a microprocessor or any conventional processor. The steps of the method disclosed in the application can be directly manifested as being executed by a hardware processor, or executed by a combination of hardware and software modules within the processor.
[0109] The memory may include random access memory (RAM) and may also include non-volatile memory (NVM), such as at least one disk storage device.
[0110] The bus can be an Industry Standard Architecture (ISA) bus, a Peripheral Component Interconnect (PCI) bus, or an Extended Industry Standard Architecture (EISA) bus, etc. Buses can be categorized as address buses, data buses, control buses, etc. For ease of illustration, the buses shown in the accompanying drawings are not limited to a single bus or a single type of bus.
[0111] Embodiments of this application also provide a computer-readable storage medium storing a computer program, wherein the computer program is configured to execute the steps in any of the above-described remote programming method embodiments when running.
[0112] In one exemplary embodiment, the aforementioned computer-readable storage medium may include, but is not limited to, various media capable of storing computer programs, such as USB flash drives, read-only memory (ROM), random access memory (RAM), portable hard drives, magnetic disks, or optical disks.
[0113] The embodiments of this application also provide a computer program product, which includes a computer program that, when executed by a processor, implements the steps in any of the above-described remote programming method embodiments.
[0114] Embodiments of this application also provide another computer program product, including a non-volatile computer-readable storage medium storing a computer program, which, when executed by a processor, implements the steps in any of the above-described remote programming method embodiments.
[0115] Any of the components, modules, units, parts, methods, and operations described herein can be implemented using software, firmware, hardware (e.g., fixed logic circuitry), manual processing, or any combination thereof. Alternatively or additionally, any functionality described herein can be performed at least in part by one or more hardware logic components, such as, but not limited to, a central processing unit (CPU), a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), an application-specific standard product (ASSP), a system-on-chip (SoC), a complex programmable logic device (CPLD), a microprocessor (MCU), etc. The terms "system," "computing device," or "apparatus" as used herein encompass various means, devices, and machines for processing data, including, for example, one or more programmable processors, computers, SoCs, or combinations thereof. The apparatus may also include code that creates an execution environment for the computer program in question, such as code constituting processor firmware, a protocol stack, a database management system, an operating system, a cross-platform runtime environment, a virtual machine, or a combination thereof. The aforementioned computer program (also known as a program, software, software application, app, script, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and can be deployed in any form, including as a standalone program or as a module, component, subroutine, object, or other unit suitable for a computing environment.
[0116] Those skilled in the art will further recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of both. To clearly illustrate the interchangeability of hardware and software, the components and steps of the various examples have been generally described in terms of functionality in the foregoing description. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.
[0117] The foregoing has provided a detailed description of the remote programming system and method provided in this application. Specific examples have been used to illustrate the principles and implementation methods of this application. The descriptions of the embodiments above are only intended to help understand the method and core ideas of this application. It should be noted that those skilled in the art can make various improvements and modifications to this application without departing from its principles, and these improvements and modifications also fall within the protection scope of the claims of this application.
Claims
1. A remote programming system, characterized in that, include: The system comprises a remote management terminal (1), a server integration module (2), a programming control module (3), and a programmer adapter module (4), among which... The server integration module (2), the burning control module (3) and the burner adapter module (4) are installed in the server. The server integration module (2) is used to provide a first communication link between the remote management terminal (1) and the server. The remote management terminal (1) is used to send remote burning instructions and firmware images to the burning control module (3) when the baseboard management controller fails. The programming control module (3) is used to switch the second communication link between the storage device and the baseboard management controller to the third communication link between the storage device and the programmer adapter module (4) according to the remote programming instruction. The storage device is installed in the server and is used to store the firmware program required for the operation of the baseboard management controller. The programmer adapter module (4) is used to write the firmware image into the storage device through the third communication link according to the remote programming instruction.
2. The remote programming system according to claim 1, characterized in that, The server integration module (2) includes an emergency communication interface (21) and a mode switching unit (22). The emergency communication interface (21) is used to provide a general interface to enable the communication connection between the remote management terminal (1) and the server; The mode switching unit (22) is used to switch the working mode of the server integration module (2) from normal mode to burning mode according to the remote burning instruction; The common terminal of the mode switching unit (22) is connected to the serial peripheral interface pin of the storage device. The select terminal of the mode switching unit (22) is connected to the programmer adapter module (4) and the baseboard management controller respectively. The mode switching unit (22) is used to turn on the second communication link in the normal mode and turn on the third communication link in the programming mode.
3. The remote programming system according to claim 1, characterized in that, The burning control module (3) includes a power isolation unit (31). The power isolation unit (31) is used to cut off the power supply from the server main power supply to the storage device and provide independent power supply to the storage device after receiving the remote burning command and the firmware image.
4. The remote programming system according to claim 1 or 2, characterized in that, The pin of the burning control module (3) is connected to the reset terminal of the baseboard management controller, and is used to enable the baseboard management controller to load the firmware image from the storage device after the firmware image is written to the storage device; The pins of the programming control module (3) are also connected to the chip select terminal of the storage device, and are used to control the storage device to establish the second communication link with the substrate management controller in normal mode and establish the third communication link with the programmer adapter module (4) in programming mode by changing the level of the chip select terminal.
5. The remote programming system according to claim 1, characterized in that, The programming control module (3) is also used to detect the working status of the substrate management controller and send a fault signal to the remote management terminal (1) when the substrate management controller fails. The remote management terminal (1) is used to determine the firmware image and generate the remote burning instruction according to the server's identification information when it receives the fault signal, and send the remote burning instruction and the firmware image to the burning control module (3). The burning control module (3) is also used to send a burning enable signal and the firmware image to the burner adapter module (4) after receiving the remote burning instruction and the firmware image. The burning enable signal is used to instruct the burner adapter module (4) to write the firmware image into the storage device.
6. The remote programming system according to claim 5, characterized in that, The programmer adapter module (4) is used to convert the firmware image into serial peripheral interface protocol data after receiving the programming enable signal and the firmware image, and to program the serial peripheral interface protocol data into the storage device.
7. The remote programming system according to claim 1, characterized in that, The programmer adapter module (4) is used to verify the firmware image written in the storage device after the firmware image is written to the storage device. If the verification fails, it sends a burning failure message to the remote management terminal (1). If the verification passes, it sends a burning success message to the burning control module (3). The programming control module (3) is used to switch the third communication link to the second communication link after receiving the programming success information, restore the power supply of the server main power to the storage device, control the baseboard management controller to restart, and send the programming success information to the remote management terminal (1).
8. The remote programming system according to claim 1, characterized in that, The remote management terminal (1) stores the identification information of at least one server and / or at least one firmware image, and is used to send the remote burning command and the firmware image to the at least two servers respectively when the baseboard management controller in at least two servers fails. The remote management terminal (1) is also used to visually display the status information of the server, which is used to indicate the operating status and / or burning status of the baseboard management controller.
9. A remote programming method, characterized in that, Applied to a server, the server includes a server integration module (2), a programming control module (3), and a programmer adapter module (4), the method includes: The first communication link between the remote management terminal and the server is established through the server integration module (2); The remote burning command and firmware image sent by the remote management terminal are received through the burning control module (3) and the first communication link. The remote burning command and firmware image are sent by the remote management terminal when it determines that the baseboard management controller in the server is faulty. According to the remote burning command, the second communication link between the storage device and the baseboard management controller is switched to the third communication link between the storage device and the programmer adapter module (4) through the burning control module (3), wherein the storage device is used to store the firmware program required for the baseboard management controller to run; According to the remote burning instruction, the firmware image is written to the storage device through the third communication link and the burner adapter module (4).
10. The remote programming method according to claim 9, characterized in that, After receiving the remote burning command and firmware image sent by the remote management terminal through the burning control module (3) and the first communication link, the method further includes: cutting off the power supply of the server's main power supply to the storage device, and independently powering the storage device through the power isolation unit in the burning control module (3).