Firmware upgrading method, firmware upgrading system and related equipment

By introducing the parallel transmission technology of upgrade devices and BMC in the server hardware component architecture, the problem of low firmware upgrade efficiency is solved, the efficient parallel upgrade has been achieved, and the user experience is improved.

CN119376752AActive Publication Date: 2025-01-28HUAWEI TECH CO LTD

Patent Information

Application Number
CN202310926421.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-07-26
Publication Date
2025-01-28
Estimated Expiration
2043-07-26

AI Technical Summary

Technical Problem

Under the server hardware component architecture, firmware upgrades can only be serially upgraded, resulting in low upgrade efficiency, prolonging business interruption time, and affecting user experience.

Method used

Provide a firmware upgrade method and system. Through the connection between the upgrade device to the BMC, multiple output interfaces transmit the firmware upgrade package parallel to achieve parallel upgrade of multiple components.

Benefits of technology

It improved the efficiency of firmware upgrade, reduced business interruption time, improved the user experience, and avoided the effect of firmware upgrade on server business operations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119376752A_ABST
    Figure CN119376752A_ABST
Patent Text Reader

Abstract

A firmware upgrading method, a firmware upgrading system and related equipment.The method is executed by a computing device comprising an upgrading device and a BMC, an upgrading interface of the upgrading device is connected with an upgrading interface of the BMC, and the upgrading device further comprises a plurality of output interfaces. One output interface in the plurality of output interfaces is used for being connected with one to-be-upgraded component to form a transmission channel, so that when the plurality of firmware are upgraded, the upgrading device can obtain upgrading packages of the plurality of firmware, and then the matched upgrading packages are sent to the plurality of to-be-upgraded components through the plurality of transmission channels; in this way, parallel upgrading of the multiple pieces of firmware is achieved through the multiple transmission channels of the upgrading device, parallel upgrading of firmware upgrading of the server can be achieved, and the firmware upgrading efficiency is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of computers, and in particular to a firmware upgrade method, a firmware upgrade system, and related equipment. Background Art

[0002] The componentization technology of server hardware is a technology that splits server hardware into multiple independent components. The above-mentioned multiple components may include but are not limited to computing components, acceleration components, memory expansion components and heat dissipation components, etc. Each component is responsible for a specific function, and communication and collaboration between components are achieved by defining clear interfaces and protocols. In this way, each component can be independently developed, tested and deployed, reducing the coupling degree of the system and improving the maintainability, scalability, reusability and testability of the system.

[0003] However, when upgrading hardware components, the server under this architecture needs to send firmware upgrade packages to each hardware component through the baseboard management controller (BMC) chip. The BMC chip establishes communication connections with each hardware component through pins. However, the number of pins of the BMC chip is limited, and each pin has its corresponding purpose. The number of pins that can be used for firmware upgrade is limited. For example, only one pin is used as an upgrade interface. When upgrading components, the BMC chip can only achieve firmware upgrades of multiple hardware components through serial upgrades one by one. That is, the BMC chip establishes a connection with the first component through the upgrade pin interface, transmits the upgrade package of the first component to the first component, and then establishes a connection with the second component through the upgrade interface, transmits the upgrade package of the second component to the second component, and then establishes a connection with the third component, and so on, to complete the upgrade of multiple firmware. This serial upgrade method will greatly prolong the upgrade time. For example, if the number of firmware to be upgraded is 5 and the average upgrade time of each firmware is 2 minutes, the serial upgrade time will reach 10 minutes. This upgrade efficiency greatly prolongs the customer's business interruption time, affects the server business operation, and reduces the user experience. Summary of the invention

[0004] The present application provides a firmware upgrade method, a firmware upgrade system and related equipment, which are used to solve the problem that server firmware upgrade can only be upgraded serially, resulting in low firmware upgrade efficiency.

[0005] In the first aspect, the present application provides a firmware upgrade method, which is executed by a computer device including an upgrade device and a baseboard management controller BMC. The upgrade interface of the upgrade device is connected to the upgrade interface of the BMC. The upgrade device also includes multiple output interfaces, and one of the multiple output interfaces is used to connect to a component to be upgraded to form a transmission channel. The method includes the following steps: the upgrade device receives a firmware upgrade request, then obtains multiple firmware upgrade packages, and then sends matching upgrade packages to multiple components to be upgraded in parallel through multiple transmission channels, and finally obtains the upgrade results of the multiple components to be upgraded.

[0006] The method described in the first aspect is implemented by connecting the upgrade interface of the upgrade device with the upgrade interface of the BMC, and then connecting multiple output interfaces of the upgrade device with multiple components to be upgraded to form a transmission channel, so that when multiple firmware are upgraded, the upgrade device can obtain upgrade packages of multiple firmware, and then send matching upgrade packages to multiple components to be upgraded through multiple transmission channels. In this way, parallel upgrades of multiple firmware are achieved through multiple transmission channels of the upgrade device, so that the firmware upgrade of the server no longer depends on the number of pins of the BMC chip, thereby avoiding the impact of firmware upgrade on server business operations and improving user experience.

[0007] In a possible implementation, the upgrade device is implemented by a complex programmable logic device (CPLD) or a field programmable gate array (FPGA), and the upgrade device is integrated into the BMC, or the upgrade device is externally mounted on the BMC.

[0008] It should be noted that the hardware components where multiple firmwares are located include computing components, acceleration components, memory expansion components and heat dissipation components, wherein the computing components include CPU, double-rate synchronous dynamic random access memory DDR and power supply; the acceleration components include a carrier board and an acceleration card interconnection switch switch, wherein the acceleration card includes one or more of a graphics processor GPU, a processor distributed processing unit DPU, and a neural network processor NPU; the memory expansion component includes a carrier board, and also includes one or more of a memory expansion chip, a dual in-line memory module DIMM, and a memory-level storage medium SCM medium; the heat dissipation component includes one or more of air cooling and liquid cooling.

[0009] Optionally, when the upgrade device is externally mounted on the BMC, the upgrade device is a device independent of the BMC chip, and establishes a communication connection with the BMC chip and each component through an interface, wherein the upgrade interface between the upgrade device and the BMC chip may include but is not limited to a two-wire serial bus (inter-integrated circuit, I2C) interface, a serial peripheral interface (serial peripheral interface, SPI), and a universal asynchronous receiver transmitter (UART) interface. The output interface between the upgrade device and the acceleration component, the memory expansion component, and the heat dissipation component may include an I2C interface, an SPI interface, and a UART interface, etc. The above communication connection may be a direct connection or an indirect connection, which is not specifically limited in this application. In a specific implementation, the upgrade device establishes a communication connection with the BMC chip through an out-of-band bus, such as an SPI bus, an SMBUS bus, etc., and the upgrade device is deployed with a corresponding out-of-band bus controller to realize the above communication connection. The upgrade device establishes a communication connection with the computing component (such as a CPU) and the basic board through a high-speed bus, such as a PCIE bus, an UB bus, etc., which is not specifically limited in this application.

[0010] Optionally, when the upgrade device is integrated into the BMC, the upgrade device is encapsulated in the BMC chip or the MCU chip, and the upgrade device establishes a communication connection with multiple components through an output interface, which may include an I2C interface, an SPI interface, and a UART interface, etc. The upgrade device communicates with the IO component, the storage component, and the acceleration component through an out-of-band bus, where the out-of-band bus may include but is not limited to a synchronous serial bus (serial peripheral interface, SPI), a system management bus (system management bus, SMBUS) bus, an intelligent platform management interface (intelligent platform management interface, IPMI), etc. The upgrade device may also be deployed with a corresponding out-of-band bus controller to achieve communication connection with the IO component, the storage component, and the acceleration component. The upgrade device communicates with the computing component through a high-speed bus, such as a PCIE bus, a UB bus, etc. The upgrade device may also be deployed with a corresponding high-speed bus controller, such as an endpoint (endpoint, EP) controller of PCIE, an EP controller of UB, etc., which is not specifically limited in this application.

[0011] By implementing the above implementation method, the upgrade device provided by the present application is very flexible in deployment, which makes the solution highly reliable and feasible. At the same time, by externalizing or integrating the upgrade device into the BCM, the upgrade interface of the BMC can be expanded, and the firmware upgrade can be implemented using the pins of the upgrade device. The parallel upgrade of multiple firmwares can be achieved through multiple transmission channels of the upgrade device, so that the firmware upgrade of the server no longer depends on the number of pins of the BMC chip, thereby avoiding the impact of the firmware upgrade on the server business operation and improving the user experience.

[0012] In a possible implementation, the upgrade device receives multiple firmware upgrade packages sent by the BMC, as well as channel information and component information corresponding to each firmware upgrade package, wherein the component information includes information of a component to be upgraded that matches the firmware upgrade package, and the channel information includes information of a transmission channel corresponding to the firmware upgrade package, and the channel information and component information are determined by the BMC according to types of the multiple firmware upgrade packages and component types.

[0013] In a specific implementation, the process of parsing the upgrade package to determine the component information corresponding to the upgrade package can be as follows: first, obtain the model and version information of the component by scanning the component that establishes a connection with the BMC, which can be implemented through the device management protocol or device identification technology, and then compare the obtained device information with the compatibility list of the firmware package to determine the hardware upgrade object applicable to the firmware package; or, by establishing a matching database of devices and firmware packages, the database contains the model and version information of the device and the compatibility category of the firmware package, and determines the hardware upgrade object corresponding to each firmware package by matching the database. Of course, other methods can also be used to match hardware upgrade objects, which are not specifically limited in this application.

[0014] In a specific implementation, the process of parsing the upgrade package to determine the corresponding effectiveness mode and channel information of the upgrade package can be as follows: after downloading the upgrade package, obtain the update instructions from the upgrade package, parse the content in the update instructions, and the update instructions may include the content of the firmware update, the requirements of the transmission channel, and the effectiveness mode. According to the update instructions, the available effectiveness mode and channel information of the upgrade package can be obtained. In some application scenarios, the update instructions may record special update requirements for the firmware installation package, such as the need to copy it to a specific location on the device and use specific tools or menu options on the device to perform the upgrade. The BMC can also send this part as part of the channel information to the upgrade device for upgrade.

[0015] By implementing the above implementation method, multiple firmware packages are parsed through the BMC to obtain the channel information and component information corresponding to each firmware package, and then the channel information and component information corresponding to each firmware package are sent to the upgrade device, so that the upgrade device can create a transmission channel based on the channel information of each firmware package, and then send the firmware package to the matching component to be upgraded through the transmission channel according to the component information corresponding to each firmware package. In this way, the upgrade device only needs to have the ability to transmit firmware packages in parallel, the processing pressure of the upgrade device is small, and the efficiency of firmware upgrade can be improved.

[0016] In a possible implementation, the upgrade packages of multiple firmwares can be different upgrade packages or the same upgrade packages, which can be determined according to the requirements of the firmware. Among them, the components upgraded using the same upgrade package can be components of the same model and version, such as 2 CPUs of the same model, 2 network cards of the same model, etc., then the upgrade packages used when upgrading the components of the same model are exactly the same; the components upgraded using the same upgrade package can also refer to components of the same model but different firmware versions, and there may be slight differences in the upgrade packages of different versions, and the manufacturer may use the same firmware upgrade package to upgrade the software of these devices; the components upgraded using the same upgrade package can also refer to components of different device models and versions but belonging to the same series of products, such as a manufacturer provides multiple models of devices, and these models of devices belong to a series of products, and these products can use the same upgrade package to update the software of these devices. It should be understood that the above examples are for illustration and are not specifically limited in this application.

[0017] Optionally, when the upgrade packages required by multiple firmwares to be upgraded are the same, the BMC can send multiple identical upgrade packages to the upgrade device, or send one upgrade package, and the upgrade device sends the upgrade package to multiple firmwares. The specific decision can be made according to the actual application scenario, and this application does not make specific limitations. For another example, when the upgrade packages required by multiple firmwares to be upgraded are different, the BMC can send multiple different upgrade packages required by the multiple firmwares to the upgrade device, and send the corresponding relationship between the different upgrade packages and the components where the firmwares are located to the upgrade device.

[0018] By implementing the above implementation method, by grouping the same firmware packages and then sending the same upgrade packages to the upgrade device, these upgrade packages do not need to consider the matching components to be upgraded, because these components are upgraded using the same upgrade package. The BMC can only send the information of multiple components matched by the group of upgrade packages, and does not need to determine the information corresponding to each component, thereby reducing the processing pressure of the BMC and the amount of data transmitted by the BMC to the upgrade device. Furthermore, since multiple upgrade packages in the same group are the same, the BMC can also only send one upgrade package to the upgrade device, and the upgrade device will then copy it and send it to multiple firmwares, which can further increase the data transmission volume between the BMC and the upgrade device, reduce network occupancy, and improve transmission efficiency.

[0019] In a possible implementation, the upgrading device sends the upgrading result to the BMC, and the upgrading result is used for the BMC to display the upgrading progress of each component to be upgraded to the user.

[0020] In a specific implementation, the upgrade device can feed back the transmission progress to the BMC according to the transmission progress, and the BMC can display the transmission progress to the user, so that the user can see the progress of each firmware upgrade. Since the upgrade device transmits multiple upgrade packages to multiple components in parallel, the multiple firmware upgrade progresses seen by the user are also refreshed in parallel. For example, at time T1, the upgrade progress of firmware 1 is 50%, and the upgrade progress of firmware 2 is 10%. At time T2, the upgrade progress of firmware 1 is 90%, and the upgrade progress of firmware 2 is 50%. The above examples are for illustration only and are not specifically limited in this application.

[0021] Optionally, the upgrade device may feed back the parallel upgrade progress of multiple firmwares to the BMC at a fixed frequency, or feed back the parallel upgrade progress of multiple firmwares to the BMC when the upgrade progress reaches a threshold, which is not specifically limited in this application.

[0022] By implementing the above implementation method, through the firmware upgrade method provided by the present application, the user can timely learn the upgrade progress of each firmware, and each firmware is upgraded in parallel. Compared with the traditional firmware upgrade of multiple hardware components through serial upgrade, the method provided by the present application can improve the efficiency of firmware upgrade and improve the user experience. For example, if the number of firmware to be upgraded is 5 and the upgrade time of each firmware is 2 minutes, the serial upgrade time will reach 10 minutes. Using the method provided by the present application, it only takes 2 minutes to complete the firmware upgrade, which reduces the impact of the firmware upgrade on the user's business and improves the user experience.

[0023] In a possible implementation, the upgrade result is also used by the BMC to determine the effectiveness mode of each firmware according to the upgrade progress of each component to be upgraded, the available effectiveness modes and preset rules. The preset rules include the priorities of different available effectiveness modes. The available effectiveness modes are obtained after the BMC parses the upgrade packages of multiple firmwares. The priorities of different available effectiveness modes are determined according to the impact of the available effectiveness modes on the business.

[0024] In a specific implementation, the preset rules may include priorities of different effectiveness modes, and the effectiveness mode with lower impact on the business has higher priority, for example, the priority of seamless upgrade is the highest, the priority of BMC restart upgrade is the second, the priority of operating system OS restart upgrade is the third, and the priority of AC power-off upgrade is the lowest. Among them, seamless upgrade means that the upgrade can be completed after the firmware upgrade package is transmitted, and no restart operation is required. The user can complete the firmware upgrade without perception. BMC restart upgrade means that the BMC needs to be restarted to complete the upgrade after the firmware upgrade package is transmitted. Operating system OS restart means that the operating system needs to be restarted to complete the upgrade after the firmware upgrade package is transmitted. AC power-off upgrade means that the computing device is powered off and restarted to complete the upgrade. It should be understood that the above examples of different effectiveness modes are for illustration only and are not specifically limited in this application.

[0025] Optionally, the effectiveness policy is that the available effectiveness methods with greater impact on the business have lower priorities, while the available effectiveness methods with smaller impact on the business have higher priorities. The firmware with lower available effectiveness method priorities will be put in the later order of effectiveness, while the firmware with higher available effectiveness method priorities will be put in the earlier order of effectiveness.

[0026] Optionally, the effectiveness strategy may include the effectiveness order of each firmware, and may also include a unified effectiveness method of the firmware. Specifically, it can be selected according to the actual application scenario whether to take effect in the effectiveness order, in a unified effectiveness method, or to take effect partially one by one and partially uniformly. This application does not make any specific limitations.

[0027] In a specific implementation, the unified effectiveness strategy can select the available effectiveness mode with the lowest priority for unified effectiveness according to the available effectiveness modes of each firmware. Optionally, the effectiveness strategy of taking effect one by one can further determine the effectiveness strategy according to the effectiveness mode of each firmware and the firmware upgrade progress, wherein for firmwares with the same priority of available effectiveness modes, the firmware with the slower firmware upgrade progress will have a later effectiveness order.

[0028] By implementing the above implementation method, the firmware upgrade can be effective in the best effectiveness mode, avoiding the impact of repeated power failures and restarts on the business during the firmware upgrade process, reducing the impact of the firmware upgrade on the business, and improving the user experience.

[0029] It should be noted that the upgrade device provided in the present application can be a computing device with processing capabilities. The upgrade device can obtain multiple upgrade packages from the BMC through the upgrade interface, and then send multiple upgrade packages to multiple components to be upgraded in parallel through multiple output interfaces to achieve parallel upgrades, and feedback the firmware upgrade results to the BMC according to the transmission progress.

[0030] Optionally, the upgrade device provided in the present application may also have a storage device with storage capacity. The upgrade device can receive and store multiple upgrade packages sent by the BMC through the upgrade interface. Multiple components to be upgraded can obtain multiple upgrade packages in parallel from the upgrade device to achieve parallel upgrades. Multiple components to be upgraded can feedback the firmware upgrade results to the BMC based on the transmission progress of the upgrade packages.

[0031] In one possible implementation, the firmware upgrade method provided in the present application can also be applied to a server without a BMC. For example, if the server relies on a microcontroller unit (MCU) to implement firmware upgrades, the BMC in each implementation of the method described in the first aspect above can be replaced by an MCU, which will not be repeated here.

[0032] Furthermore, the firmware upgrade method provided in the present application can also be applied to other electronic devices other than servers, which include a processor and multiple components. When the firmware of multiple components is upgraded, it depends on the number of pins of the processor, which makes it impossible to upgrade the firmware in parallel. For example, hosts, chips, etc. in embedded fields such as instruments and meters, then the BMC in each implementation of the method described in the first aspect above can be replaced by the processor of the electronic device, such as a central processing unit (CPU), and this application does not make specific limitations.

[0033] In a second aspect, a firmware upgrade system is provided, which includes an upgrade device, a baseboard management controller BMC and components, wherein an upgrade interface of the upgrade device is connected to an upgrade interface of the BMC, and the upgrade device also includes multiple output interfaces, one of the multiple output interfaces is used to connect to a component to be upgraded to form a transmission channel, and the upgrade device is used to receive a firmware upgrade request, obtain multiple firmware upgrade packages, send matching upgrade packages to multiple components to be upgraded in parallel through multiple transmission channels, and obtain upgrade results of multiple components to be upgraded.

[0034] In a possible implementation, the upgrade device is implemented by a complex programmable logic device (CPLD) or a field programmable gate array (FPGA), and the upgrade device is integrated into the BMC, or the upgrade device is externally mounted on the BMC.

[0035] In one possible implementation, the BMC is used to determine channel information and component information corresponding to each of the multiple firmware upgrade packages based on the types of the multiple firmware upgrade packages and the component types, wherein the component information includes information of the component to be upgraded that matches the firmware upgrade package, and the channel information includes information of the transmission channel corresponding to the firmware upgrade package. The BMC is used to send the multiple firmware upgrade packages and the channel information and component information corresponding to each firmware upgrade package to the upgrade device.

[0036] In a possible implementation, the upgrading device is used to send the upgrading result to the BMC, and the BMC is used to display the upgrading progress of each component to be upgraded to the user.

[0037] In a possible implementation, the BMC is used to parse multiple firmware upgrade packages to obtain available validation methods for each firmware package. The BMC is used to determine the validation method for each firmware according to the upgrade progress of each component to be upgraded, the available validation methods, and preset rules. The preset rules include the priorities of different available validation methods.

[0038] In a third aspect, an upgrade device is provided, wherein an upgrade interface of the upgrade device is connected to an upgrade interface of a baseboard management controller BMC, the upgrade device further comprises a plurality of output interfaces, one of the plurality of output interfaces being used to connect to a component to be upgraded to form a transmission channel, the upgrade device comprising a logic circuit and a power supply circuit, the power supply circuit being used to supply power to the logic circuit, the logic circuit being used to implement the functions of the operation steps performed by the upgrade device in the method described in the first aspect.

[0039] In a possible implementation, the upgrade device is a chip independent of the BMC.

[0040] In a possible implementation, the upgrade device is integrated into a chip integrated in the BMC.

[0041] In a fourth aspect, a chip is provided, the chip comprising a logic circuit and a power supply circuit, the power supply circuit is used to supply power to the logic circuit, and the logic circuit is used to implement the functions of the operation steps performed by the upgrading device in the method described in the first aspect.

[0042] In a fifth aspect, a baseboard management controller BMC is provided, the BMC includes an upgrade device, the upgrade interface of the BMC is connected to the upgrade interface of the upgrade device, the upgrade device also includes multiple output interfaces, one of the multiple output interfaces is used to connect to a component to be upgraded to form a transmission channel, the BMC includes a computing unit and a memory, the memory is used to store instructions, the instructions are used for the computing unit to execute the functions of the operation steps performed by the BMC and the upgrade device in the method described in the first aspect.

[0043] In a sixth aspect, an upgrade device is provided, which includes a computing unit and a memory, wherein the memory is used to store instructions, and the instructions are used for the computing unit to execute the functions of the operation steps performed by the upgrade device in the method described in the first aspect. BRIEF DESCRIPTION OF THE DRAWINGS

[0044] Figure 1 It is an architectural diagram of a firmware upgrade system provided by this application;

[0045] Figure 2 It is a schematic diagram of the connection relationship between an upgrade device provided by the present application and other devices in a computing device;

[0046] Figure 3 It is a structural diagram of a firmware upgrade system provided by this application;

[0047] Figure 4 It is a structural diagram of another firmware upgrade system provided by the present application;

[0048] Figure 5 This is a flowchart of the steps of a firmware upgrade method provided by this application;

[0049] Figure 6 It is a flowchart of another firmware upgrade method provided by the present application;

[0050] Figure 7 It is a schematic diagram of the structure of a chip provided in this application. DETAILED DESCRIPTION

[0051] With the trend of computing power diversity, more processor manufacturers have emerged and launched more processor products with different architectures. The iteration speed of various processors has also increased rapidly. The processor-related circuits on the motherboard all come from the reference design provided by the processor manufacturers. The reference designs provided by different processor manufacturers are completely different. Therefore, the entire industry has put forward higher requirements for cross-architecture shared components, cross-generation evolution, shortened time to market (TTM), and reduced total cost of operation (TCO) of servers. The further development of the industry requires the construction of a more open and standardized server architecture, improved development efficiency, increased component reuse, and more flexibility and differentiation.

[0052] In order to achieve the above goals, server hardware componentization technology came into being. Server hardware componentization technology is a technology that splits server hardware into multiple independent components. Each component is responsible for a specific function. By defining clear interfaces and protocols, communication and collaboration between components are achieved. In this way, each component can be independently developed, tested and deployed, reducing the coupling degree of the system and improving the maintainability, scalability, reusability and testability of the system.

[0053] However, when the hardware components in the componentized server perform firmware upgrades (firmware refers to the fixed software program running in the hardware, which is used to implement hardware drivers and is a bridge between hardware devices and software), it is necessary to send firmware upgrade packages to each hardware component through the baseboard management controller (BMC) chip. The BMC chip establishes communication connections with each hardware component through pins. However, the number of pins of the BMC chip is limited, and each pin has its corresponding purpose. There is usually only one pin that can be used for firmware upgrades. When the component is upgraded, the BMC chip can only implement firmware upgrades of multiple hardware components through serial upgrades one by one. That is, the BMC chip establishes a connection with the first component through the upgrade pin interface, transmits the upgrade package of the first component to the first component, then establishes a connection with the second component through the upgrade interface, transmits the upgrade package of the second component to the second component, and then establishes a connection with the third component, and so on, to complete the upgrade of multiple firmware. This serial upgrade method will greatly prolong the upgrade time. For example, if there are 5 firmwares to be upgraded and each firmware upgrade takes an average of 2 minutes, the serial upgrade time will reach 10 minutes. This upgrade efficiency will greatly prolong the customer's business interruption time, affect the server business operation, and reduce the user experience.

[0054] In order to solve the problem that multiple hardware components in the above-mentioned componentized server can only perform firmware upgrades in a serial manner, resulting in affected server business operations and poor user experience, the present application proposes a firmware upgrade solution based on the architecture of the above-mentioned componentized server. The solution is executed by a computing device including an upgrade device and a BMC. The upgrade interface of the upgrade device is connected to the upgrade interface of the BMC. The upgrade device also includes multiple output interfaces, and one of the multiple output interfaces is used to connect to a component to be upgraded to form a transmission channel, so that when multiple firmware are upgraded, the upgrade device can obtain upgrade packages of multiple firmware, and then send matching upgrade packages to multiple components to be upgraded through multiple transmission channels. In this way, multiple firmware are upgraded in parallel through multiple transmission channels of the upgrade device, so that the server firmware upgrade no longer depends on the number of pins of the BMC chip or the MCU chip, thereby avoiding the impact of the firmware upgrade on the server business operation and improving the user experience.

[0055] The technical solution to be protected by this application is described in detail below with reference to the accompanying drawings.

[0056] Figure 1 is a schematic diagram of the structure of a firmware upgrade system provided by the present application. The firmware upgrade system can be deployed on a computing device 100, such as Figure 3 As shown, the computing device 100 may include a basic board (Basic Computing Unit, BCU) 110, an extension board (Extension Unit, EXU) 120, a component 130 and an upgrade device 140. The computing device 100 supports the specifications and forms of the motherboard required for different scenarios by means of the basic board 110 cooperating with the extension board 120. In addition, the same computing device may include a basic board 110 and an extension board 120, the same computing device may also include multiple basic boards 110 and an extension board 120, the same computing device may also include a basic board 110 and multiple extension boards 120, and the number of components 130 may also be one or more, which is not specifically limited in this application. It should be understood that Figure 1 A basic board 110, an expansion board 120, and a plurality of components 130 are used as examples for illustration, and the present application does not make any specific limitation.

[0057] There is a communication connection between the basic board 110, the expansion board 120, the upgrade device 140 and the component 130, which can be a direct connection or an indirect connection, such as Figure 1 In the embodiment, the base board 110 is directly connected to the plurality of components 130 and the upgrading device 140, and is indirectly connected to the expansion board 120. In some embodiments, the base board 110 may also be directly connected to the expansion board 120. Figure 1In the embodiment, the expansion board 120 is indirectly connected to the component 130. In some embodiments, the expansion board 120 can also be directly connected to the component. Figure 1 The upgrading device 140 is indirectly connected to the component 130. In some embodiments, the upgrading device 140 may also be directly connected to the component. It should be understood that Figure 1 This is an example of a connection method, and the present application does not make any specific limitation.

[0058] In this architecture, the basic board 110, the expansion board 120 and the upgrade device 140 are connected to the component 130 through a high-speed bus such as PCIE, Compute Express Link (CXL), or a unified bus (UB or Ubus). In a specific implementation, the connection method of the above communication connection includes: a soft connection method of realizing the above connection with a cable, or a hard connection method of realizing the above connection with a connector.

[0059] Figure 1 The computing device 100 shown may be a physical server or an edge computing device, and the computing device 100 may be a single server or edge computing device, or a node in a server cluster. In a specific implementation, the computing device 100 may be a componentized architecture server in the foregoing content.

[0060] The computing device 100 may also be an electronic device other than a server, which includes a processor and multiple components. The firmware upgrade of the multiple components depends on the number of processor pins, which makes it impossible to upgrade the firmware in parallel. Electronic devices that meet such conditions can be the computing device 100, such as hosts and chips in embedded fields such as instruments and meters. It should be understood that the computing device 100 may be any other device that has multiple component upgrade requirements, but due to the limited number of processor pins used during the upgrade, the components in the computing device 100 cannot be upgraded serially. Examples are not given here one by one.

[0061] It should be noted that Figure 1 The component 130 shown in FIG. 1 is an example of a computing device 100 being a componentized server. When the computing device 100 is a chip, the component 130 may not include Figure 1 The multiple components shown may include, for example, no heat dissipation component, or no expansion board 120, or no memory expansion component, etc. The architecture may be adjusted according to the actual application scenario.

[0062] The basic board 110 includes a CPU, a double data rate (DDR) and related power supplies, providing general computing capabilities and peripheral storage, input / output (IO), acceleration and other expansion interfaces. The basic board supports CPUs of different series and manufacturers such as Kunpeng, Intel, and AMD. Optionally, the basic board supports heterogeneous processors, that is, the basic board can support different types of processors, for example, the basic board supports CPUs, as well as application-specific integrated circuits (ASIC), programmable logic devices (PLD), complex programmable logical devices (CPLD), field-programmable gate arrays (FPGA), generic array logic (GAL), system on chip (SoC), software-defined infrastructure (SDI) chips, artificial intelligence (AI) chips, and any processor or any combination thereof.

[0063] The expansion board 120 includes one or more of a baseboard management controller (Baseboard Management Controller, BMC) chip, a management system, a bridge chip (for example, the Platform Controller Hub (PCH) of the Intel system), and a microcontroller unit (MCU). The expansion board 120 is a management extension of the basic board 110. As the management center of the entire server, it provides management functions such as hardware status monitoring, deployment, energy saving, and security. Among them, the BMC chip can also be called a motherboard management controller. It should be understood that Figure 1 Although the management system and the bridge chip are not shown, they may exist in actual applications, and the expansion board 120 may also include MCUs with other functions according to business requirements, which are not specifically limited in this application.

[0064] Optionally, the BMC mentioned above can be connected to the expansion board in the form of a chip through a slot or in the form of a plug-in card. For ease of description, the following embodiments are described by taking the BMC in the form of a chip as an example.

[0065] Component 130 is a general term for a class of devices or equipment. Among them, the components include storage components (storage unit, STU), IO components (inputoutput unit, IOU), acceleration components (acceleration unit, ACU), memory expansion components (memory expansion unit, MEU), heat dissipation components, computing components, management components, etc. according to their functions. The basic board supports different series of CPUs such as Kunpeng, Intel, and AMD, and the expansion board provides management functions and power supply for the basic board and each expansion component. With the support of the expansion board, the power supply and radiator can have various different options.

[0066] It is worth noting that the basic board or expansion board containing the devices of the processor, memory, and baseboard management controller can also be used as a component. In addition, the server can also only include the basic board 110 and the component 130, but not the expansion board 120, which is not specifically limited in this application. The MCU can also be used as a component, or deployed on the basic board 110, which is not specifically limited in this application.

[0067] Among them, storage components include hard disk backplane, expansion board (expander), PCIE switch (switch), etc., which are used to expand system storage and support various media and forms such as hard disk drive (HDD), solid-state drive (SSD), non-volatile memory express (NVMe) or storage class memory (SCM).

[0068] IO components include Riser and other components to expand the system IO and support PCIE standard cards and open compute project (OCP) cards.

[0069] Acceleration components include risers, carrier boards, accelerator card interconnection switches, etc., providing system acceleration component expansion and interconnection functions.

[0070] Memory expansion components include carrier boards, memory expansion chips, dual in-line memory modules (DIMMs), SCM media, etc., which provide the system with the function of expanding memory bandwidth and content capacity.

[0071] The heat dissipation component is used to dissipate heat from a computing device or hardware in the computing device, including a combination of several heat dissipation methods such as air cooling, liquid cooling, or a combination of the two. It should be understood that the structure, type, and number of the heat dissipation components do not constitute a limitation on the technical solution to be protected by this application.

[0072] Computing components, including central processing unit (CPU), memory, and other devices that provide general computing capabilities.

[0073] Management components, including devices such as baseboard management controllers that provide device management.

[0074] The upgrade device 140 may be a storage device with data storage capability. In a specific implementation, the cache device may include a volatile memory or a non-volatile memory, or both a volatile and a non-volatile memory. Among them, the non-volatile memory is a read-only memory (ROM), a programmable ROM (PROM), an erasable PROM (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory is a random access memory (RAM), which is used as an external cache. By way of example but not limitation, many forms of RAM are used, such as static RAM (SRAM), dynamic random access memory (DRAM), synchronous DRAM (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link direct random access memory (SLDRAM) and direct RAM bus random access memory (DRRAM). It can also be a hard disk, a universal serial bus (USB), a flash memory, a secure digital memory card (SD card), a memory stick, etc. The hard disk is a hard disk drive (HDD), a solid state disk (SSD), a mechanical hard disk (HDD), etc., and this application does not make specific limitations.

[0075] The upgrade device 140 may also be a computing device with data processing capability and storage capability. In a specific implementation, the computing device may include a processor and a memory, wherein the processor may include an integrated circuit and / or a device, and the integrated circuit may be a programmable logic device (PLD) or a combination thereof. The PLD is a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL) or any combination thereof. The memory may include a volatile memory or a non-volatile memory, or may include both a volatile and a non-volatile memory. The description of the volatile memory or the non-volatile memory may refer to the foregoing content, and will not be repeated here. In some embodiments, the computing device may also include a motherboard for printing a processor, which is also called a printed circuit board (PCB). Optionally, the computing device may also be a processor of a reduced instruction set machine (advanced RSIC machine, ARM) architecture, which is not specifically limited in this application.

[0076] In the present application, the upgrade device 140 can be connected to the upgrade interface of the BMC chip. The upgrade device 140 also includes multiple output interfaces. One of the multiple output interfaces is connected to a component 130 to be upgraded to form a transmission channel, so that when multiple firmware are upgraded, the upgrade device 140 can obtain the upgrade packages of multiple firmware, and then send matching upgrade packages to multiple components to be upgraded through multiple transmission channels, thereby realizing parallel upgrade of multiple firmware.

[0077] because Figure 1 The computing device shown in the figure has a large number of components, and it is difficult to clearly understand the connection relationship between the upgrade device 140 and the BMC and the component 130 described above. In order to make the present application better understood, for example, Figure 2 This is a schematic diagram of the connection relationship between an upgrade device provided by the present application and other devices in a computing device, such as Figure 2 As shown, the upgrade interface of the upgrade device 140 provided in the present application is connected to the upgrade interface of the BMC chip 121, and the output interface of the upgrade device 140 is connected to multiple components 130 and the base board 110 (in some cases, the base board can also be used as a component) to form a transmission channel. It can be understood that through Figure 2In the connection mode shown, the pins of the BMC used to upgrade the firmware can establish a connection with the upgrade device, and the upgrade device establishes connections with multiple components through multiple idle pins, thereby solving the problem that the number of BMC pins is limited and can only be upgraded serially when multiple firmware are upgraded, so that the firmware can be upgraded in parallel.

[0078] Optionally, the upgrade device 140 is a device independent of the BMC chip or the MCU chip, and establishes a communication connection with the BMC chip or the MCU chip and each component 130 through an interface, wherein the upgrade interface between the upgrade device 140 and the BMC or MCU chip may include but is not limited to a two-wire serial bus (inter-integrated circuit, I2C) interface, a serial bus interface (serial peripheral interface, SPI), a universal asynchronous receiver transmitter (UART) interface, and the output interface between the upgrade device 140 and multiple components 130 may include an I2C interface, an SPI interface, and a UART interface, etc. The above communication connection may be a direct connection or an indirect connection, which is not specifically limited in this application. In a specific implementation, the upgrade device 140 establishes a communication connection with the BMC chip and the storage component, the IO component, and the acceleration component through an out-of-band bus, such as an SPI bus, an SMBUS bus, etc. The upgrade device 140 is deployed with a corresponding out-of-band bus controller to realize the above communication connection. The upgrade device 140 establishes a communication connection with the computing component (such as the CPU) and the basic board 110 through a high-speed bus, such as a PCIE bus, a UB bus, etc., which is not specifically limited in this application.

[0079] Optionally, when the upgrade device 140 is encapsulated inside the BMC chip or the MCU chip, the upgrade device 140 establishes a communication connection with multiple components through an output interface, and the output interface may include an I2C interface, an SPI interface, and a UART interface, etc. The upgrade device 140 communicates with the IO component, the storage component, and the acceleration component through an out-of-band bus, where the out-of-band bus may include but is not limited to a synchronous serial bus (serial peripheral interface, SPI), a system management bus (system management bus, SMBUS) bus, an intelligent platform management interface (intelligent platform management interface, IPMI), etc. The upgrade device 140 may also be deployed with a corresponding out-of-band bus controller to achieve communication connection with the IO component, the storage component, and the acceleration component. The upgrade device 140 communicates with the computing component through a high-speed bus, such as a PCIE bus, a UB bus, etc. The upgrade device 140 may also be deployed with a corresponding high-speed bus controller, such as an end point (EP) controller of PCIE, an EP controller of UB, etc., which is not specifically limited in this application.

[0080] In a possible implementation, if the computing device 100 has a BMC chip, and the firmware upgrade depends on the BMC implementation, the upgrade device 140 can be as follows: Figure 1 As shown, the upgrade device 140 is external to the BMC chip. For example, the upgrade device 140 is a chip including a memory, a processor, and an interface. As part of the expansion board 120, it is deployed on the expansion board 120 together with the BMC. Alternatively, the upgrade device 140 may also be deployed outside the expansion board 120 as a separate component 130, which is not specifically limited in this application. In some embodiments, the upgrade device 140 may also be packaged in the BMC chip, specifically, it may be built into the BMC chip in the form of a cache device, or it may be built into the BMC chip in the form of a computing device. The description of the cache device and the computing device is referred to above and will not be repeated here. Figure 1 For illustration purposes, in a specific implementation, the upgrade device 140 can be flexibly deployed according to the actual application scenario, and this application does not make any specific limitation.

[0081] In one possible implementation, if the computing device 100 does not have a BMC chip, and the firmware upgrade relies on the MCU implementation, then the upgrade device can also be externally mounted outside the MCU chip, as part of the expansion board 120, and deployed on the expansion board 120 together with the MCU, or the upgrade device 140 can also be deployed outside the expansion board 120 as a separate component 130, which is not specifically limited in this application. In some embodiments, the upgrade device 140 can also be integrated into the MCU chip, which is not specifically limited in this application. In a specific implementation, the upgrade interface of the upgrade device 140 can be connected to the upgrade interface of the MCU, and the output interface establishes connections with multiple components. It should be understood that the connection method between the upgrade device 140 and the MCU can refer to the connection method between the upgrade device and the BMC chip, and will not be repeated here.

[0082] It should be noted that, referring to the above content, Figure 1 This is a structural example when the computing device 100 is a componentized server. When the computing device 100 is an electronic device that has a requirement for parallel firmware upgrades but cannot be upgraded in parallel due to the number of processor pins, the upgrade device can exist independently outside the processor of the electronic device, or be packaged inside the processor. The connection method can refer to the content when the computing device 100 is a componentized server, and will not be repeated here.

[0083] Need to explain, Figure 1 An upgrade device 140 is used as an example for explanation. In a specific implementation, one or more upgrade devices may be deployed in the computing device 100, and the number of upgrade devices may be determined according to the actual application scenario. For example, when the processing power of a single upgrade device is insufficient, or the storage space is insufficient, or when the firmware upgrade has different requirements for the transmission channel, multiple firmwares may be upgraded in parallel through multiple upgrade devices.

[0084] Furthermore, the upgrade device 140 and the BMC 150 may be further divided into a plurality of unit modules. For example, Figure 3 is a structural diagram of a firmware upgrade system provided by this application, Figure 3 In the example shown, the firmware upgrade system is deployed in a computing device 200, which is Figure 1 In the computing device 100, the upgrade device 140 is a computing device with data processing capability and data storage capability, and the upgrade device 140 is an independent device existing outside the BMC chip.

[0085] With reference to the above content, it can be known that the upgrade device 140 provided in this application has multiple deployment schemes. Figure 3 is an example of one deployment scenario. In some embodiments, Figure 3The BMC 150 in the embodiment may also be replaced by an MCU or a CPU, which is not specifically limited in the present application. In other embodiments, when the upgrade device 140 is encapsulated inside the BMC, the unit modules in the upgrade device 140 may be deployed in the BMC 150, which will not be described in detail here.

[0086] In this application scenario, the BMC 150 may include an acquisition unit 151, a parsing unit 152, and an effectiveness unit 153, and the upgrade device 140 may include a receiving unit 141, a sending unit 142, and a progress feedback unit 143. It should be understood that Figure 3 This is an exemplary division method. BMC150 and the upgrade device 140 may also include more or fewer units. For example, BMC150 may also include a safety verification unit, which is used to verify the upgrade package received by the receiving unit 141. After the verification is successful, the upgrade package is sent to the parsing unit 152 for parsing; for example, the sending unit 142 and the progress feedback unit 143 in the upgrade device 140 can be combined into one unit to realize the functions of transmitting the upgrade package and feeding back the transmission progress. It should be understood that the above examples are for illustration, and the unit module can be determined according to the actual application scenario, and this application does not make specific limitations.

[0087] The functions of each unit module in the computing device 200 are described below.

[0088] The acquisition unit 151 in the BMC 150 is used to acquire multiple firmware upgrade packages.

[0089] In a specific implementation, after the computing device 200 receives multiple firmware upgrade requests sent by the user, the acquisition unit 151 acquires multiple firmware upgrade packages. Among them, the upgrade requests for the above-mentioned multiple firmware can be manually triggered by the user, for example, if the user chooses to upgrade firmware A, firmware B, and firmware C, then BMC150 can send the upgrade packages of firmware A, firmware B, and firmware C to the receiving unit 141. Alternatively, the upgrade requests for the above-mentioned multiple firmware can also be automatically triggered, for example, if there are new upgrade packages for firmware A, firmware B, and firmware C, then BMC can send the upgrade packages of firmware A, firmware B, and firmware C to the receiving unit 141. The above examples are for illustration, and this application does not make specific limitations. The upgrade package sent by BMC150 to the receiving unit 141 can be obtained from the outside, such as a new version of the firmware upgrade package downloaded from the official website of the equipment manufacturer, or it can be obtained in other ways, which is not specifically limited in this application.

[0090] The parsing unit 152 in BMC150 is used to parse multiple firmware upgrade packages, determine the components corresponding to each upgrade package, that is, the firmware upgrade object, and the corresponding validation method of each upgrade package, wherein the above validation method is used to make the firmware installation package effective through the validation method after the firmware installation package is transmitted to the matching component to be upgraded, for example, the validation method may include restarting the server to make the firmware installation package effective, or restarting the BMC to make the firmware installation package effective, etc. It should be noted that the CPU, memory and other devices in the basic board 110 also have the need for firmware upgrades, and the upgrade package also includes the upgrade package corresponding to the basic board 110. In order to make this application better understood, the following unified description is made using components as an example. The method of upgrading the basic board is similar to that of the components, and will not be repeated here.

[0091] Optionally, before parsing the upgrade packages of multiple firmware and determining the firmware corresponding to each upgrade package, the parsing unit 152 may perform a security check on the upgrade package to ensure the security and integrity of the upgrade package. If the check is successful, the upgrade package may be parsed again. If the check fails, information such as firmware upgrade failure and upgrade package security check failure may be fed back to the user.

[0092] In specific implementation, security verification can be implemented in a variety of ways. For example, security verification can be implemented through signature verification. Before the firmware upgrade package is released, the device manufacturer signs the firmware with a private key and then embeds the public key into the device. After the device receives the firmware upgrade package, it uses the public key to verify the firmware upgrade package to ensure that it has not been tampered with. Security verification can also be implemented through hash verification, by calculating the hash value of the upgrade package and comparing it with the pre-calculated hash value. The hash algorithm can include message digest algorithm 5 (MD5), secure hash algorithm 1 (SHA-1), etc. Security verification can also be implemented through encryption compression, identity authentication, and other methods that restrict access. It should be understood that the above examples are for illustration and are not specifically limited in this application.

[0093] Optionally, when parsing the upgrade packages of multiple firmware, the parsing unit 152 can determine the type and available validation methods of each upgrade package, and then match the components to be upgraded according to the upgrade package type and the available validation methods. In a specific implementation, the model and version information of the components can be obtained by scanning the connected components first, which can be implemented through a device management protocol or device identification technology. The obtained device information is directly compared with the compatibility list of the firmware package to determine the hardware upgrade object applicable to the firmware package; or, the device model and version information fed back by the user is compared with the compatibility list of the firmware package to determine the hardware upgrade object applicable to the firmware package; or, by establishing a matching database of devices and firmware packages, the database contains the model and version information of the device and the compatibility category of the firmware package, and the hardware upgrade object corresponding to each firmware package is determined by matching the database. Of course, other methods can also be used to match hardware upgrade objects, which are not specifically limited in this application.

[0094] Optionally, if there are multiple upgrade devices 140, after determining the component corresponding to the upgrade package of each firmware, the parsing unit 152 can determine the upgrade device 140 and channel information corresponding to each upgrade package according to each upgrade package type and component type, wherein the channel information is used to instruct the upgrade device 140 to create a corresponding transmission channel, and transmit the upgrade package to the component corresponding to the upgrade package through the transmission channel. It should be understood that when different components perform firmware upgrades, their upgrade packages may have different file formats, sizes, and transmission mode requirements, and some upgrade devices 140 may not be able to meet this transmission mode. For example, some firmware may require the use of a high-speed network connection to download large firmware files, and some firmware may also require specific transmission protocols or tools to complete the transmission process. Therefore, the parsing unit 152 is required to determine the upgrade device 140 and channel information corresponding to each upgrade package according to the type and component type of each upgrade package. The above examples are for illustration, and this application is not specifically limited.

[0095] The receiving unit 141 in the upgrade device 140 is used to receive multiple firmware upgrade packages, component information corresponding to the upgrade packages, and channel information corresponding to each upgrade package sent by the parsing unit 152 of the BMC 150. After determining the upgrade device 140 corresponding to each upgrade package, the parsing unit 152 can send the above information to each upgrade device 140.

[0096] The sending unit 142 of the upgrading device 140 is used to send corresponding upgrading packages to each component. The sending unit 142 can transmit multiple firmware upgrading packages in parallel.

[0097] In a specific implementation, the sending unit 142 can create a transmission channel based on the channel information corresponding to each upgrade package received by the receiving unit 141. Different upgrade packages correspond to different transmission channels. The upgrade package is sent to the component corresponding to the upgrade package through the transmission channel, thereby meeting the transmission requirements of different firmware and avoiding firmware upgrade failure due to mismatch of the transmission channel.

[0098] Optionally, the sending unit 142 can determine the write address according to the component information corresponding to the upgrade package, and write the upgrade package into the storage space of the component to be upgraded, wherein the upgrade device 140 can store the write address of each component in advance, or, when the BMC sends the firmware installation package to the upgrade device 140, the component information and the write address corresponding to each firmware installation package are sent to the upgrade device together, which is not specifically limited in this application.

[0099] Furthermore, when the upgrade packages required by multiple firmware are different, each upgrade package can be written into the storage space of the matching component to be upgraded according to the component information corresponding to each upgrade package; when the upgrade packages required by multiple firmware are the same, the matching relationship between the upgrade package and the component can be ignored, and the upgrade package can be directly written into the storage space of each component to be upgraded.

[0100] Optionally, after parsing multiple upgrade packages, the parsing unit of the BMC can group the multiple upgrade packages. The same upgrade packages can be grouped into one group. This group of firmware upgrade packages does not need to match the corresponding components to be upgraded during the upgrade process. Therefore, a group of identical firmware upgrade packages and multiple components to be upgraded that need to be upgraded can be sent to the upgrade device 140 for upgrading, thereby further improving the upgrade efficiency.

[0101] The progress feedback unit 143 of the upgrade device 140 can feedback the transmission progress to BMC150 according to the transmission progress of the sending unit 142, and BMC150 can display the transmission progress to the user so that the user can see the progress of each firmware upgrade. Among them, since the sending unit 142 transmits multiple upgrade packages to multiple components in parallel, the multiple firmware upgrade progresses seen by the user are also refreshed in parallel. For example, at time T1, the upgrade progress of firmware 1 is 50%, and the upgrade progress of firmware 2 is 10%. At time T2, the upgrade progress of firmware 1 is 90%, and the upgrade progress of firmware 2 is 50%. The above examples are for illustration only and are not specifically limited in this application.

[0102] The validation unit 153 of the BMC 150 may generate a validation strategy including a validation mode for each firmware, and send respective validation modes to respective components according to the validation strategy. The multiple components may reload the multiple firmwares that have been upgraded according to the validation modes they have received.

[0103] Further, after the parsing unit 152 determines the available effective modes of the upgrade package of each firmware, the effective mode 153 can determine the effective strategies of multiple firmware upgrades according to the available effective modes of the upgrade packages of different firmwares and the preset rules, and the effective strategies include the effective modes of each firmware. The preset rules may include the priority of different effective modes, and the lower the degree of impact on the business, the higher the priority of the effective mode, for example, the priority of the senseless upgrade is the highest, the priority of the BMC restart upgrade is the second, the priority of the operating system OS restart upgrade is the second, and the priority of the AC power-off upgrade is the lowest, wherein the senseless upgrade means that the upgrade can be completed after the firmware upgrade package is transmitted, without any restart operation, and the user can complete the firmware upgrade without perception, the BMC restart upgrade means that the BMC needs to be restarted to complete the upgrade after the firmware upgrade package is transmitted, the operating system OS restart means that the operating system needs to be restarted to complete the upgrade after the firmware upgrade package is transmitted, and the AC power-off upgrade means that the computing device is powered off and restarted to complete the upgrade. It should be understood that the above examples of different effective modes are for illustration and are not specifically limited in this application.

[0104] Optionally, the effectiveness policy is that the available effectiveness methods with greater impact on the business have lower priorities, while the available effectiveness methods with smaller impact on the business have higher priorities. The firmware with lower available effectiveness method priorities will be put in the later order of effectiveness, while the firmware with higher available effectiveness method priorities will be put in the earlier order of effectiveness.

[0105] Optionally, the effectiveness strategy may include the effectiveness order of each firmware, and may also include a unified effectiveness method of the firmware. Specifically, it can be selected according to the actual application scenario whether to take effect in the effectiveness order, in a unified effectiveness method, or to take effect partially one by one and partially uniformly. This application does not make any specific limitations.

[0106] In a specific implementation, the unified effectiveness strategy can select the available effectiveness mode with the lowest priority for unified effectiveness according to the available effectiveness modes of each firmware. For example, the available effectiveness mode of firmware 1 is to restart the server to take effect, the available effectiveness mode of firmware 2 is to restart the BMC to take effect, and the available effectiveness mode of firmware 3 is to take effect directly without perception. The effectiveness mode with a lower degree of impact on the business has a higher priority. Then the effectiveness mode of firmware 3 has the highest priority, and the effectiveness mode of firmware 1 has the lowest priority. The unified effectiveness mode of firmware 1 to firmware 3 is the effectiveness mode of firmware 1, that is, restarting the server. It should be understood that the above examples are for illustration and are not specifically limited in this application.

[0107] Optionally, the effectiveness strategy of taking effect one by one can be further determined according to the effectiveness mode of each firmware and the progress of firmware upgrade, wherein, for firmwares with the same priority of the effectiveness mode, the slower the firmware upgrade progress, the later the effectiveness order. Still taking the above example as an example, if the upgrade progress of firmware 3 is higher than that of firmware 2, the upgrade progress of firmware 2 is higher than that of firmware 1, and the effectiveness mode priority of firmware 3 is the highest, and the effectiveness mode priority of firmware 1 is the lowest, then firmware 3 can be firstly taken effect without perception, firmware 2 restarts BMC to take effect, and then firmware 1 restarts the server to take effect. If firmware 1 is upgraded first, then firmware 1 can wait for firmware 2 to be upgraded, and then perform AC power-off to complete the upgrade of firmware 1 and firmware 2, because the BMC will also restart accordingly after AC power-off and restart. If the restart upgrade of firmware 2 is completed first and then the restart upgrade of firmware 1 is performed, then the user needs to wait for the BMC to restart, and then wait for the AC power-off and restart, which wastes time and reduces the user experience. It should be understood that the above example is for illustration, and this application is not specifically limited.

[0108] It should be understood that the preset rules can also set more content according to the actual application scenario. By setting the preset rules, the optimal effectiveness strategy can be determined to complete the synchronization of all firmware and improve the user experience.

[0109] Figure 4 is a schematic diagram of another firmware upgrade system provided by the present application, wherein the firmware upgrade system is deployed in a computing device 200, which is Figure 1 In the computing device 100, it should be understood that Figure 3 This is a schematic diagram of the software structure of the computing device provided by the present application in an application scenario where the upgrading device 140 is a computing device with data processing and storage capabilities. Figure 4 This is a schematic diagram of the software structure of the computing device provided in the application scenario where the upgrade device 140 is a storage device with storage capacity, and the upgrade device 140 is external to the BMC chip. Other deployment solutions, such as BMC150 can be replaced by MCU or CPU, and the solution of the upgrade device 140 being encapsulated in BMC150 can refer to Figure 4 The description of the embodiments will not be repeated here.

[0110] exist Figure 4 In the example shown, the BMC 150 may include an acquisition unit 151 , a parsing unit 152 , and a validation unit 153 , the upgrade device 140 includes a storage unit 144 , and the component 130 includes a reading unit 131 and a progress feedback unit 132 .

[0111] The acquisition unit 151 in the BMC 150 is used to obtain multiple firmware upgrade packages. For details, please refer to Figure 3The relevant description about the acquisition unit 151 in the embodiment will not be repeated here.

[0112] The parsing unit 152 in the BMC 150 can parse each upgrade package to determine the component information corresponding to each upgrade package. The description of the parsing unit 152 can refer to Figure 3 The description of the embodiments will not be repeated here.

[0113] Optionally, if there are multiple upgrade devices 140, after the parsing unit 152 determines the component corresponding to each firmware upgrade package, it can determine the upgrade device 140 corresponding to each upgrade package according to each upgrade package type and component type. It should be understood that when different components perform firmware upgrades, their upgrade packages may have different file formats, sizes, and transmission method requirements, and some upgrade devices 140 may not meet this transmission method. Therefore, after determining the upgrade device 140 corresponding to each upgrade package, the address information of the upgrade device 140 can be sent to the component corresponding to each upgrade package.

[0114] Of course, before BMC150 receives the firmware upgrade request sent by the user, it is also possible to allocate an upgrade device 140 to each component in advance and send the address information of the upgrade device 140 to the corresponding component, so that when the component is upgraded, the upgrade package can be obtained from the upgrade device 140 through the pre-stored address information.

[0115] The storage unit 144 in the upgrade device 140 is used to receive the upgrade package and component information corresponding to the upgrade package sent by the parsing unit 152, store them in the cache space of the upgrade device 140, and wait for the components 130 to obtain the upgrade packages they need.

[0116] The reading unit 131 in the component 130 can obtain the required upgrade packages from the upgrade device 140 according to the pre-stored address information. The progress feedback unit 132 feeds back the upgrade progress to the BMC 150, so that the BMC 150 can display the progress of multiple firmware parallel upgrades to the user. Among them, multiple components can read the upgrade package from the upgrade device 140 in parallel, so that the firmware upgrade can be implemented in parallel, improving the efficiency of the firmware upgrade.

[0117] The validation unit 153 of the BMC 150 can determine the validation strategy according to the available validation methods of each upgrade package parsed by the parsing unit 152, combined with the progress of the firmware upgrade and the preset rules, and restart the firmware after the upgrade package is transmitted according to the validation strategy. The method for determining the validation strategy can refer to the aforementioned Figure 3 The relevant descriptions in the embodiments are not repeated here.

[0118] In summary, the present application provides an upgrade device, which integrates or externally mounts the upgrade device on the BMC chip or MCU chip in the server, so that the firmware upgrade of the server no longer depends on the number of pins of the BMC chip or MCU chip. Instead, the upgrade device is used to realize parallel upgrade of multiple firmwares, thereby avoiding the impact of firmware upgrade on server business operations and improving user experience.

[0119] Combined with the above Figures 1 to 4 , describes in detail the firmware upgrade system provided by the present application and each unit module in the system, and will be combined with Figures 5 and 6 , describes the firmware upgrade method provided by this application. Among them, Figure 5 The firmware upgrade method shown applies to Figure 3 The architecture of the embodiment, that is, the firmware upgrade method in the application scenario where the upgrade device 140 is a computing device with data processing capability and storage capability, Figure 6 The firmware upgrade method shown applies to Figure 4 The architecture of the embodiment is another firmware upgrade method in an application scenario where the upgrade device 140 is a storage device with storage capacity. Figure 5 In the method shown, the upgrade device 140 is externally mounted outside the BMC chip. For other deployment solutions, such as the BMC 150 can be replaced by an MCU or a CPU, and the upgrade device 140 can be packaged in the BMC 150. Figure 5 The description of the embodiments will not be repeated here.

[0120] The following explains the two firmware upgrade methods respectively.

[0121] like Figure 5 As shown, in Figure 3 Under the architecture shown, the firmware upgrade method provided by this application includes the following steps:

[0122] S410: The BMC receives multiple firmware upgrade requests sent by a user.

[0123] This step can be done by Figure 3 The acquisition unit 151 in the embodiment is implemented.

[0124] It should be understood that Figure 5 So Figure 3 This is an example of an application scenario. In other application scenarios, BMC can also be replaced by either MCU or CPU. For details, please refer to Figure 1-Figure 4 The relevant descriptions in the embodiments are not repeated here.

[0125] The upgrade requests for the above-mentioned multiple firmwares may be manually triggered by a user, for example, the user chooses to upgrade firmware A, firmware B, and firmware C. Alternatively, the upgrade requests for the above-mentioned multiple firmwares may also be automatically triggered, for example, if there are new upgrade packages for firmware A, firmware B, and firmware C, then the BMC may obtain firmware upgrade requests for firmware A, firmware B, and firmware C. The above examples are for illustration only and are not specifically limited in this application.

[0126] In a specific implementation, after receiving multiple firmware upgrade requests sent by the user, the BMC may send a firmware upgrade request to the upgrade device to notify the upgrade device to prepare to receive multiple firmware upgrade packages. The firmware upgrade request sent by the BMC to the upgrade device is different from the multiple firmware upgrade requests received by S410. The firmware upgrade request sent by the BMC to the upgrade device is used to notify the upgrade device that an upgrade package is about to be received, while the multiple firmware upgrade requests received by the BMC in S410 are triggered by the user. There is a certain difference between the two.

[0127] S420: The BMC sends multiple firmware upgrade packages to the upgrade device.

[0128] This step can be done by Figure 3 The parsing unit 152 and the receiving unit 141 in the embodiment are implemented.

[0129] With reference to the foregoing content, it can be known that the upgrade interface of the upgrade device is connected to the upgrade interface of the BMC. Therefore, the BMC can send multiple firmware upgrade packages to the upgrade device through the upgrade interface. It should be understood that the number of pins of the BMC is limited, and most of the pins are occupied. There is usually only one pin that can be used as an upgrade interface, so that the firmware upgrade can only be performed through a serial upgrade of multiple firmwares. By connecting the upgrade interface of the upgrade device with the upgrade interface of the BMC, the BMC can directly send multiple firmware upgrade packages to the upgrade device, and then the upgrade device establishes a transmission channel with multiple components, so that multiple firmware upgrade packages can be transmitted in parallel through the upgrade device, thereby solving the problem that the firmware can only be upgraded serially due to the limitation of the BMC pins, and improving the efficiency of server firmware upgrades.

[0130] Optionally, before sending multiple firmware upgrade packages to the upgrade device, the multiple firmware upgrade packages can be obtained in response to the multiple firmware upgrade requests received in S410. In a specific implementation, the BMC can download the upgrade package required for each firmware from a third party based on the multiple firmware upgrade requests sent by the user, such as a new version of the firmware upgrade package downloaded from the official website of the equipment manufacturer. It can also be obtained in other ways, which is not specifically limited in this application.

[0131] Optionally, after obtaining multiple firmware upgrade packages, the upgrade packages can be parsed to determine component information corresponding to the upgrade packages, that is, information on matching components of the firmware, and an effectiveness method corresponding to each upgrade package, wherein the effectiveness method is used to reload the upgraded firmware.

[0132] In a specific implementation, the process of parsing the upgrade package to determine the component information corresponding to the upgrade package can be as follows: first, obtain the model and version information of the component by scanning the component that establishes a connection with the BMC, which can be implemented through the device management protocol or device identification technology, and then compare the obtained device information with the compatibility list of the firmware package to determine the hardware upgrade object applicable to the firmware package; or, by establishing a matching database of devices and firmware packages, the database contains the model and version information of the device and the compatibility category of the firmware package, and determines the hardware upgrade object corresponding to each firmware package by matching the database. Of course, other methods can also be used to match hardware upgrade objects, which are not specifically limited in this application.

[0133] In a specific implementation, the process of parsing the upgrade package to determine the corresponding effectiveness method of the upgrade package can be as follows: after downloading the upgrade package, obtain the update instructions from the upgrade package, and parse the content in the update instructions. The update instructions may include the content of the firmware update and the effectiveness method. In some application scenarios, the update instructions may record the update method of the firmware installation package, such as the need to copy it to a specific location on the device and use specific tools or menu options on the device to perform the upgrade. The BMC can also send this part as part of the channel information to the upgrade device for upgrading.

[0134] Optionally, before parsing multiple firmware upgrade packages and determining the firmware corresponding to each upgrade package, the upgrade package can be security-verified to ensure the security and integrity of the upgrade package. If the verification is successful, the upgrade package is parsed again. If the verification fails, information such as firmware upgrade failure and upgrade package security verification failure can be fed back to the user. In specific implementations, security verification can be implemented in a variety of ways, such as by signature verification, hash verification, encryption compression, identity authentication, and other methods to restrict access, which are not specifically limited in this application.

[0135] Optionally, if there are multiple upgrade devices, after determining the component corresponding to each firmware upgrade package, the upgrade device and channel information corresponding to each upgrade package can be determined according to each upgrade package type and component type. The channel information is used to instruct the upgrade device to create a transmission channel and transmit the upgrade package to the component corresponding to the upgrade package through the transmission channel. It should be understood that when different components perform firmware upgrades, their upgrade packages may have different file formats, sizes, and transmission method requirements. Some upgrade devices may not meet this transmission method. For example, some firmware may require the use of large firmware files to complete the firmware upgrade. Generally, large firmware files refer to firmware files with a file size exceeding several hundred megabytes (MB) or several gigabytes (GB). Such files take a long time to transmit and have high requirements for transmission channels and storage space. Of course, the thresholds of large firmware files vary in different application scenarios. In some cases, files of several hundred megabytes are considered large, and in other cases, files of tens of megabytes are considered large. Therefore, the threshold of large firmware files needs to be defined according to the actual application scenario; some firmware may also require specific transmission protocols or tools to complete the transmission process. The size of the upgrade package of such firmware files varies according to different fields and industries, depending on the type and purpose of the component.

[0136] In the specific implementation, the number of the upgrade package can be one or more, can be different multiple upgrade packages, or can be the same multiple upgrade packages, which can be determined according to the requirements of the firmware. Among them, the components upgraded using the same upgrade package can be components of the same model and version, such as 2 CPUs of the same model, 2 network cards of the same model, etc., then the upgrade packages used when upgrading the components of the same model are exactly the same; the components upgraded using the same upgrade package can also refer to components of the same model but different firmware versions, and there may be slight differences in upgrade packages of different versions, and manufacturers may use the same firmware upgrade package to upgrade the software of these devices; the components upgraded using the same upgrade package can also refer to components of different device models and versions but belonging to the same series of products, such as a manufacturer provides multiple models of equipment, these models of equipment belong to a series of products, and these products can use the same upgrade package to update the software of these devices. It should be understood that the above examples are for illustration and are not specifically limited in this application.

[0137] Optionally, when the upgrade packages required by multiple firmwares to be upgraded are the same, the BMC can send multiple identical upgrade packages to the upgrade device, or send one upgrade package, and the upgrade device sends the upgrade package to multiple firmwares. The specific decision can be made according to the actual application scenario, and this application does not make specific limitations. For another example, when the upgrade packages required by multiple firmwares to be upgraded are different, the BMC can send multiple different upgrade packages required by the multiple firmwares to the upgrade device, and send the corresponding relationship between the different upgrade packages and the components where the firmwares are located to the upgrade device.

[0138] S430: The upgrading device sends an upgrading package to multiple components.

[0139] This step can be done by Figure 3 The sending unit 142 in the embodiment is implemented.

[0140] In a specific implementation, the upgrade device receives multiple firmware upgrade packages, component information corresponding to the upgrade packages, and channel information corresponding to each upgrade package sent by BMC150. Then, the upgrade device creates multiple transmission channels according to the component information and channel information corresponding to the upgrade package, and sends the upgrade package to multiple components through the multiple transmission channels. Different upgrade packages correspond to different transmission channels, and the upgrade package is sent to the component corresponding to the upgrade package through the transmission channel, thereby meeting the transmission requirements of different firmware and avoiding the failure of firmware upgrade due to the mismatch of the transmission channel.

[0141] Optionally, the upgrade device can determine the write address according to the component information corresponding to the upgrade package, and write the upgrade package into the storage space of the component to be upgraded. When the upgrade packages required by multiple firmwares are different, each upgrade package can be written into the storage space of the corresponding component according to the component information corresponding to each upgrade package. When the upgrade packages required by multiple firmwares are the same, the upgrade package can be written into the storage space of each component to be upgraded.

[0142] S440: The upgrade device feeds back the parallel upgrade progress of the multiple firmwares to the BMC.

[0143] This step can be done by Figure 3 The progress feedback unit 143 in the embodiment is implemented.

[0144] In a specific implementation, the upgrade device can feed back the transmission progress to the BMC according to the transmission progress, and the BMC can display the transmission progress to the user, so that the user can see the progress of each firmware upgrade. Since the upgrade device transmits multiple upgrade packages to multiple components in parallel, the multiple firmware upgrade progresses seen by the user are also refreshed in parallel. For example, at time T1, the upgrade progress of firmware 1 is 50%, and the upgrade progress of firmware 2 is 10%. At time T2, the upgrade progress of firmware 1 is 90%, and the upgrade progress of firmware 2 is 50%. The above examples are for illustration only and are not specifically limited in this application.

[0145] Optionally, the upgrade device may feed back the parallel upgrade progress of multiple firmwares to the BMC at a fixed frequency, or feed back the parallel upgrade progress of multiple firmwares to the BMC when the upgrade progress reaches a threshold, which is not specifically limited in this application.

[0146] It can be understood that through the firmware upgrade method provided by the present application, the user can timely know the upgrade progress of each firmware, and each firmware is upgraded in parallel. Compared with the traditional firmware upgrade of multiple hardware components through serial upgrade, the method provided by the present application can improve the efficiency of firmware upgrade and improve the user experience. For example, the number of firmware to be upgraded is 5, and the upgrade time of each firmware is 2 minutes. The serial upgrade time will reach 10 minutes. Using the method provided by the present application, it only takes 2 minutes to complete the firmware upgrade, which reduces the impact of the firmware upgrade on the user's business and improves the user experience.

[0147] S450: The BMC determines the effectiveness strategies of the multiple components, and sends the effectiveness modes of the multiple components.

[0148] This step can be done by Figure 3 The validation unit 153 in the embodiment implements.

[0149] In the specific implementation, at S420, the BMC parses each upgrade package and determines the available effective methods for each upgrade package. S450 can determine the effectiveness strategies of multiple firmware upgrades according to preset rules, and the effectiveness strategies include the effective methods of each firmware after the upgrade. The preset rules may include the priorities of different effective methods, such as the highest priority of senseless upgrade, the second priority of BMC restart upgrade, the second priority of operating system OS restart upgrade, and the lowest priority of AC power-off upgrade. Among them, senseless upgrade means that the upgrade can be completed after the firmware upgrade package is transmitted, without any restart operation, and the user can complete the firmware upgrade without perception. BMC restart upgrade means that the BMC needs to be restarted to complete the upgrade after the firmware upgrade package is transmitted. The operating system OS restart means that the operating system needs to be restarted to complete the upgrade after the firmware upgrade package is transmitted. The AC power-off upgrade means that the computing device is powered off and restarted to complete the upgrade. It should be understood that the above examples of different effective methods are for illustration and are not specifically limited in this application.

[0150] Optionally, the effectiveness strategy can also be determined according to preset rules and firmware upgrade progress. For example, the available effectiveness mode of firmware 1 is AC power-off upgrade, and the available effectiveness mode of firmware 2 is BMC restart upgrade. Firmware 1 is upgraded first, then firmware 1 can wait for firmware 2 to be upgraded, and then perform AC power-off to complete the upgrade of firmware 1 and firmware 2, because the BMC will also restart accordingly after the AC power-off restart. If the restart upgrade of firmware 2 is completed first and then the restart upgrade of firmware 1 is performed, the user needs to wait for the BMC to restart, and then wait for the AC power-off restart, which wastes time and reduces the user experience. It should be understood that the above examples are for illustration only and are not specifically limited in this application.

[0151] It should be understood that the preset rules can also set more content according to the actual application scenario. By setting the preset rules, the optimal effectiveness strategy can be determined to complete the synchronization of all firmware and improve the user experience.

[0152] It should be noted that S450 may be executed simultaneously with S420 to S440 or may be executed sequentially, and this application does not make any specific limitation.

[0153] S460: The component completes the firmware upgrade according to the received validation method. Figure 3 The component 130 in the embodiment is implemented.

[0154] Combine the following Figure 6 , another firmware upgrade method provided by this application is explained, Figure 6This is a firmware upgrade method in an application scenario where the upgrade device 140 is a storage device with storage capacity, and the upgrade device 140 is external to the BMC chip. For other deployment schemes, such as BMC150 can be replaced with MCU or CPU, and the upgrade device 140 can be encapsulated in BMC150. Figure 6 The description of the embodiments will not be repeated here. Figure 6 As shown, the method comprises the following steps:

[0155] S510: BMC receives multiple firmware upgrade requests sent by the user. This step can be performed by Figure 4 The acquisition unit 151 in the embodiment is implemented.

[0156] In the specific implementation, the description of S510 can refer to Figure 3 and Figure 4 For the related description of the acquisition unit 151 in the embodiment, please refer to Figure 5 The relevant descriptions of S410 in the embodiment are not repeated here.

[0157] It should be understood that Figure 6 So Figure 4 This is an example of an application scenario. In other application scenarios, BMC can also be replaced by either MCU or CPU. For details, please refer to Figure 1-Figure 5 The relevant descriptions in the embodiments are not repeated here.

[0158] S520: The BMC sends multiple firmware upgrade packages to the upgrade device.

[0159] This step can be done by Figure 4 The parsing unit 152 and the storage unit 144 in the embodiment are implemented.

[0160] It should be understood that the description of S520 can refer to Figure 3 and Figure 4 The description of the parsing unit 152 and the storage unit 144 in the embodiment can also be referred to. Figure 5 The description of S420 in the embodiment is not repeated here.

[0161] S530: BMC sends upgrade messages to multiple components. This step can be performed by Figure 4 The parsing unit 152 in the embodiment is implemented.

[0162] In a specific implementation, the upgrade message is used to instruct the component to obtain the upgrade package from the upgrade device. Optionally, the upgrade message may carry the address information of the upgrade device. If there are multiple upgrade devices 140, in S520, after the BMC determines the component corresponding to each firmware upgrade package, it can determine the upgrade device 140 corresponding to each upgrade package based on each upgrade package type and component type, and S530 will then send the address information of the upgrade device 140 to the component corresponding to each upgrade package. Of course, before the BMC receives the firmware upgrade request sent by the user, it is also possible to allocate an upgrade device to each component in advance, and send the address information of the upgrade device to the corresponding component, so that when the component is upgraded, S530 does not need to carry the address information, and obtains the upgrade package from the upgrade device through the pre-stored address information. This is not specifically limited in this application.

[0163] S540: The component obtains the upgrade package from the upgrade device. This step can be performed by Figure 4 The reading unit 131 in the embodiment is implemented.

[0164] In a specific implementation, the component can obtain the upgrade package from the upgrade device 140 through the pre-stored address information or the address information carried in the upgrade message received in S530. It should be understood that by having multiple components obtain the upgrade package from the upgrade device 140, the firmware in the components can be upgraded in parallel, thereby improving the user experience.

[0165] S550: The component feeds back the progress of parallel upgrade of multiple firmware to the BMC. This step can be performed by Figure 4 The progress feedback unit 132 in the embodiment is implemented.

[0166] In a specific implementation, each component can feed back the transmission progress to the BMC based on its own upgrade package reading progress. The BMC can display the reading progress fed back by multiple components to the user, so that the user can see the progress of each firmware upgrade. Among them, since the upgrade device transmits multiple upgrade packages to multiple components in parallel, the multiple firmware upgrade progress seen by the user is also refreshed in parallel. For example, at time T1, the upgrade progress of firmware 1 is 50%, and the upgrade progress of firmware 2 is 10%. At time T2, the upgrade progress of firmware 1 is 90%, and the upgrade progress of firmware 2 is 50%. The above examples are for illustration only and are not specifically limited in this application.

[0167] It can be understood that through the firmware upgrade method provided by the present application, the user can timely know the upgrade progress of each firmware, and each firmware is upgraded in parallel. Compared with the traditional firmware upgrade of multiple hardware components through serial upgrade, the method provided by the present application can improve the efficiency of firmware upgrade and improve the user experience. For example, the number of firmware to be upgraded is 5, and the upgrade time of each firmware is 2 minutes. The serial upgrade time will reach 10 minutes. Using the method provided by the present application, it only takes 2 minutes to complete the firmware upgrade, which reduces the impact of the firmware upgrade on the user's business and improves the user experience.

[0168] Optionally, each component may feed back the upgrade progress of its own firmware to the BMC at a fixed frequency, or feed back the upgrade progress to the BMC when the upgrade progress reaches a threshold, which is not specifically limited in this application.

[0169] S560: BMC determines the effectiveness strategies of multiple components and sends the effectiveness modes of each component to the multiple components. Figure 4 The validation unit 153 in the embodiment implements.

[0170] For the specific implementation, please refer to the description of S560 Figure 5 The description of S450 in the embodiment will not be repeated here.

[0171] S570: The component completes the firmware upgrade according to the received validation method. Figure 4 The component 130 in the embodiment is implemented.

[0172] For the specific implementation, please refer to the description of S570 Figure 5 The description of S460 in the embodiment is not repeated here.

[0173] In summary, the present application provides an upgrade device, which integrates or externally mounts the upgrade device on the BMC chip or MCU chip in the server, so that the firmware upgrade of the server no longer depends on the number of pins of the BMC chip or MCU chip. Instead, the upgrade device is used to realize parallel upgrade of multiple firmwares, thereby avoiding the impact of firmware upgrade on server business operations and improving user experience.

[0174] Combined with the above Figures 5 and 6 , describes in detail the firmware upgrade method provided by this application, and will be combined with Figure 7 Describe the chip provided by this application.

[0175] Figure 7It is a structural schematic diagram of a chip provided in the present application. The chip may be the upgrade device 140 in the aforementioned content. Further, the chip 700 may include a power supply circuit 710 and a logic circuit 720, wherein the power supply circuit 710 and the logic circuit 720 may be connected via wires, cables or other types of electrical connections, which are not specifically limited in the present application.

[0176] The chip 700 is implemented by CPLD or FPGA. The upgrade interface of the chip 700 is connected to the upgrade interface of the baseboard management controller BMC. The chip 700 also includes multiple output interfaces. One of the multiple output interfaces is used to connect to a component to be upgraded to form a transmission channel. The specific connection method can be referred to Figure 1 and Figure 2 The relevant description of the embodiments will not be repeated here.

[0177] In a specific implementation, the power supply circuit 710 is used to supply power to the logic circuit 720, so that the logic circuit 720 can implement the following Figure 5 or Figure 6 The functions that can be realized by the upgrade device in the firmware upgrade method shown. It should be noted that the chip 700 can be an integrated circuit chip with signal processing capabilities. In the implementation process, each step of the upgrade device 140 in the above method embodiment can be completed by the hardware integrated logic circuit of the chip 700 or the instruction in the form of software. The steps of the method disclosed in the embodiment of the present application can be directly embodied as being executed by a hardware decoding processor, or by a combination of hardware and software modules in the decoding processor, and this application does not make specific limitations.

[0178] Optionally, the chip 700 may also include a memory for storing firmware upgrade packages for multiple components. The memory may be a volatile memory or a non-volatile memory, or include both volatile and non-volatile memories. Among them, the non-volatile memory is a read-only memory (ROM), a programmable ROM (PROM), an erasable PROM (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory is a random access memory (RAM), which is used as an external cache. The above examples are for illustration and are not specifically limited in this application.

[0179] Need to explain, Figure 7 This is only one possible implementation of the embodiment of the present application. In practical applications, the chip 700 may include more or fewer components, which is not limited here. Figure 1-Figure 6 The relevant explanations in the embodiments will not be repeated here.

[0180] The embodiment of the present application provides a BMC, the BMC includes an upgrade device, the upgrade interface of the BMC is connected to the interface of the upgrade device, the upgrade device also includes multiple output interfaces, one of the multiple output interfaces is used to connect to a component to be upgraded to form a transmission channel, the BMC includes a computing unit and a memory, the memory is used to store instructions, the instructions are used for the computing unit to implement Figure 1-Figure 6 The firmware upgrade method described in the embodiment.

[0181] An embodiment of the present application provides a computer-readable storage medium, including: the computer-readable storage medium stores computer instructions; when the computer instructions are executed on a computer, the computer executes the firmware upgrade method described in the above method embodiment.

[0182] The above embodiments may be implemented in whole or in part by software, hardware, firmware or any other combination thereof. When implemented using software, the above embodiments may be implemented in whole or in part in the form of a computer program product. The computer program product includes a plurality of computer instructions. When the computer program instructions are loaded or executed on a computer, the process or function according to the embodiment of the present invention is generated in whole or in part. The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium.

[0183] The above are only specific embodiments of the present invention, but the protection scope of the present invention is not limited thereto. Any technician familiar with the technical field can easily think of various equivalent repairs or replacements within the technical scope disclosed by the present invention, and these repairs or replacements should be included in the protection scope of the present invention. Therefore, the protection scope of the present invention shall be based on the protection scope of the claims.

Claims

1. A firmware upgrade method, characterized in that: The method is performed by a computer device including an upgrade device and a baseboard management controller BMC, wherein an upgrade interface of the upgrade device is connected to an upgrade interface of the BMC, and the upgrade device further includes a plurality of output interfaces, wherein one output interface of the plurality of output interfaces is used to connect to a component to be upgraded to form a transmission channel, and the method includes: The upgrading device receives a firmware upgrade request; The upgrading device obtains multiple firmware upgrade packages; The upgrading device sends matching upgrade packages to the multiple components to be upgraded in parallel through the multiple transmission channels; The upgrading device obtains upgrading results of the plurality of components to be upgraded.

2. The method according to claim 1, characterized in that The upgrade device is implemented by a complex programmable logic device (CPLD) or a field programmable gate array (FPGA). The upgrade device is integrated into the BMC, or the upgrade device is externally mounted on the BMC.

3. The method according to claim 1 or 2, characterized in that: The upgrading device acquires multiple firmware upgrade packages, including: The upgrading device receives multiple firmware upgrade packages sent by the BMC, and channel information and component information corresponding to each firmware upgrade package, wherein the component information includes information of a component to be upgraded that matches the firmware upgrade package, the channel information includes information of a transmission channel corresponding to the firmware upgrade package, and the channel information and the component information are determined by the BMC according to types of the multiple firmware upgrade packages and component types.

4. The method according to any one of claims 1 to 3, characterized in that: The method further comprises: The upgrading device sends the upgrading result to the BMC, and the upgrading result is used for the BMC to display the upgrading progress of each component to be upgraded to the user.

5. The method according to claim 4, characterized in that The upgrade result is also used by the BMC to determine the effectiveness mode of each firmware according to the upgrade progress of each component to be upgraded, the available effectiveness modes and preset rules, the preset rules include the priorities of different available effectiveness modes, the available effectiveness modes are obtained by the BMC after parsing the upgrade packages of the multiple firmwares, and the priorities of the different available effectiveness modes are determined according to the impact of the available effectiveness modes on the business.

6. A firmware upgrade system, characterized in that: The system comprises an upgrade device, a baseboard management controller BMC and a component, wherein an upgrade interface of the upgrade device is connected to an upgrade interface of the BMC, and the upgrade device further comprises a plurality of output interfaces, one of the plurality of output interfaces is used to connect to a component to be upgraded to form a transmission channel, The upgrade device is used to receive a firmware upgrade request; The upgrade device is used to obtain multiple firmware upgrade packages; The upgrading device is used for sending matching upgrading packages to the multiple components to be upgraded in parallel through the multiple transmission channels; The upgrading device is used to obtain upgrading results of the plurality of components to be upgraded.

7. The system according to claim 6, characterized in that The upgrade device is implemented by a complex programmable logic device (CPLD) or a field programmable gate array (FPGA). The upgrade device is integrated into the BMC, or the upgrade device is externally mounted on the BMC.

8. The system according to claim 6 or 7, characterized in that: The BMC is used to determine, according to the types and component types of the multiple firmware upgrade packages, channel information and component information corresponding to each of the multiple firmware upgrade packages, wherein the component information includes information of a component to be upgraded that matches the firmware upgrade package, and the channel information includes information of a transmission channel corresponding to the firmware upgrade package; The BMC is used to send the multiple firmware upgrade packages, and the channel information and component information corresponding to each firmware upgrade package to the upgrade device.

9. The system according to any one of claims 6 to 8, characterized in that The upgrading device is used to send the upgrading result to the BMC; The BMC is used to display the upgrade progress of each component to be upgraded to the user.

10. The system according to claim 9, characterized in that The BMC is used to parse the upgrade packages of the multiple firmwares to obtain an available validation mode for each firmware package; The BMC is used to determine the validation mode of each firmware according to the upgrade progress of each component to be upgraded, available validation modes and preset rules, wherein the preset rules include priorities of different available validation modes.

11. An upgrading device, characterized in that: The upgrade interface of the upgrade device is connected to the upgrade interface of the baseboard management controller BMC, the upgrade device also includes multiple output interfaces, one of the multiple output interfaces is used to connect with a component to be upgraded to form a transmission channel, the upgrade device includes a logic circuit and a power supply circuit, the power supply circuit is used to supply power to the logic circuit, and the logic circuit is used to implement the functions of the operation steps performed by the upgrade device as described in any one of claims 1 to 5.

12. The upgrading device according to claim 11, characterized in that: The upgrading device is a chip independent of the BMC.

13. The upgrading device according to claim 11, characterized in that: The upgrade device is integrated into a chip integrated in the BMC.

14. A chip, characterized in that: The chip includes a logic circuit and a power supply circuit, wherein the power supply circuit is used to supply power to the logic circuit, and the logic circuit is used to implement the functions of the operation steps performed by the upgrading device according to any one of claims 1 to 5.

15. A baseboard management controller BMC, characterized in that: The BMC includes an upgrade device, the upgrade interface of the BMC is connected to the upgrade interface of the upgrade device, the upgrade device also includes multiple output interfaces, one of the multiple output interfaces is used to connect to a component to be upgraded to form a transmission channel, the BMC includes a computing unit and a memory, the memory is used to store instructions, and the instructions are used for the computing unit to execute the function of implementing the operation steps performed by the upgrade device according to any one of claims 1 to 5.

Citation Information

Patent Citations

  • Server firmware upgrading system and method

    CN114895936A

  • Firmware upgrading method and device

    CN115904426A

  • BMC firmware upgrading method and device and medium thereof

    CN116069373A

  • Chip upgrading method and device

    WO2023051057A1

Cited By

  • Network card firmware upgrading method and device, electronic equipment and storage medium

    CN119892617A

  • Firmware upgrading method and device and storage medium

    CN120512427A

  • A firmware upgrading method, device and storage medium

    CN120512427B

  • Remote upgrading method and device of ultrasonic radar and driving equipment

    CN120523497A