Method for upgrading firmware program of high-speed peripheral component device and server
Patent Information
- Application Number
- CN202310786556.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-06-29
- Publication Date
- 2026-08-18
- Estimated Expiration
- 2043-06-29
AI Technical Summary
[0006]本申请实施例提供了一种高速外围组件设备的固件程序升级方法及服务器,以至少解决相关技术中针对高速外围组件设备的固件程序升级过程相对复杂的技术问题
[0024]In this embodiment, when the server powers on, it executes a basic input/output system program for self-test. During the self-test, if a high-speed peripheral device is detected connecting to the server, the target identification information of the high-speed peripheral device is obtained. Then, a target firmware upgrade file corresponding to the target identification information and the type of the core processor is obtained from the baseboard management controller. The baseboard management controller includes a conversion flash memory card that stores the firmware upgrade file transmitted by the target device. The target firmware upgrade file is then copied into memory and executed to initialize the high-speed peripheral device. By pre-storing the firmware upgrade file in the conversion flash memory card of the baseboard management controller, when the server powers on and performs a self-test, it can directly load the corresponding version of the target firmware upgrade file based on the identification information of the connected high-speed peripheral device and the type of the core processor to initialize the high-speed peripheral device. This firmware upgrade method is simple and efficient, requiring no complex manual operation, and effectively solves the technical problem of the relatively complex firmware upgrade process for high-speed peripheral devices in related technologies.
Smart Images

Figure CN116627472B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of computer technology, and more specifically, to a firmware upgrade method and server for a high-speed peripheral component device. Background Technology
[0002] With the continuous development of server technology, server configurations are becoming increasingly complex. PCIe (Peripheral Component Interconnect-express) slots are a crucial method for expanding server equipment. Through PCIe slots, users can freely combine different external cards, such as network cards, RAID (Redundant Arrays of Independent Disks) cards, and GPU (Graphics Processing Unit) cards. The firmware (Option ROM) programs for these PCIe devices are sometimes stored in the board's extended ROM (Option Read-Only Memory), and sometimes in the BIOS (Basic Input Output System) binary file. These firmware programs primarily handle PCIe device initialization and system booting. During the POST (Power-on Self Test) phase, the BIOS scans for PCIe devices with Option ROMs; if found, it copies them into memory for execution.
[0003] Option ROMs typically come in different versions. For traditional BIOS and UEFI (Unified Extensible Firmware Interface) BIOS, there are two types: traditional Option ROM and UEFI Option ROM. To ensure compatibility with different CPU (Central Processing Unit) architectures such as ARM and x86, Option ROMs are further divided into different versions. PCIe devices' expansion ROMs do not contain all versions of Option ROM. When a user upgrades a PCIe device in a server, if the Option ROM version is incompatible with the current architecture, it will involve upgrading the PCIe device's Option ROM.
[0004] When a PCIe device has an expansion ROM, the Option ROM can be upgraded via the manufacturer's tools under the OS (Operating System). However, this process is complex for users, and they may be reluctant to use this method for fear of introducing new problems. When a PCIe device does not have an expansion ROM, developers must modify the Option ROM in the BIOS and then flash the BIOS, which is labor-intensive. Therefore, finding a convenient way to upgrade the Option ROM of a PCIe device is a problem that urgently needs to be solved.
[0005] There is currently no effective solution to the above problems. Summary of the Invention
[0006] This application provides a firmware upgrade method and server for high-speed peripheral component devices, which at least solves the technical problem of the relatively complex firmware upgrade process for high-speed peripheral component devices in related technologies.
[0007] According to one embodiment of this application, a firmware upgrade method for a high-speed peripheral component device is provided, applied to the core processor of a server. The method includes: executing a basic input / output system program for self-test when the server is powered on; during the self-test, if a high-speed peripheral component device is detected to be connected to the server, obtaining target identification information of the high-speed peripheral component device; obtaining a target firmware upgrade file corresponding to the target identification information and the type of the core processor from a baseboard management controller, wherein the baseboard management controller includes a conversion flash memory card, and the conversion flash memory card stores the firmware upgrade file transmitted by the target object; copying the target firmware upgrade file into memory and executing it to initialize the high-speed peripheral component device.
[0008] In an exemplary embodiment, if a high-speed peripheral component device is detected to be accessing the server, obtaining the target identification information of the high-speed peripheral component device includes: when it is detected that a high-speed peripheral component device is accessing the server through the server's high-speed peripheral component interface, obtaining the target identification information of the high-speed peripheral component device from the device configuration space of the high-speed peripheral component device, wherein the target identification information includes at least: a first manufacturer identifier and a first device identifier corresponding to the high-speed peripheral component device.
[0009] In one exemplary embodiment, before obtaining the target firmware upgrade file corresponding to the target identification information and the type of the core processor from the baseboard management controller, the baseboard management controller obtains the firmware upgrade file transmitted by the target object and stores the firmware upgrade file in the conversion flash memory card; the baseboard management controller calls the management module to generate a virtual universal serial bus device based on the firmware upgrade file in the conversion flash memory card.
[0010] In one exemplary embodiment, the baseboard management controller acquires the firmware upgrade file transmitted by the target object and stores the firmware upgrade file in the conversion flash memory card, including: the baseboard management controller calling the management module to acquire the firmware upgrade file uploaded by the target object in the interactive interface corresponding to the baseboard management controller, and storing the firmware upgrade file in the conversion flash memory card; or, the baseboard management controller receiving the firmware upgrade file copied by the target object through a terminal device, and storing the firmware upgrade file in the conversion flash memory card; or, the baseboard management controller calling the management module to download the firmware upgrade file from the management node server in the server room, and storing the firmware upgrade file in the conversion flash memory card, wherein the management node server stores the firmware upgrade file uploaded by the target object.
[0011] In one exemplary embodiment, obtaining a target firmware upgrade file corresponding to the target identification information and the type of the core processor from the baseboard management controller includes: obtaining the target firmware upgrade file corresponding to the target identification information and the type of the core processor from a virtual universal serial bus device of the baseboard management controller via a universal serial bus interface of the platform control hub.
[0012] In one exemplary embodiment, obtaining a target firmware upgrade file corresponding to the target identification information and the type of the core processor from the baseboard management controller includes: for any firmware upgrade file in the baseboard management controller, determining a second vendor identifier, a second device identifier, and a node type corresponding to the firmware upgrade file based on the data structure information of the firmware upgrade file, wherein the node type is used to indicate the type of core processor supported by the firmware upgrade file; determining the firmware upgrade file as a target firmware upgrade file when the first vendor identifier and the second vendor identifier match, the first device identifier and the second device identifier match, and the type of the core processor matches the node type; and obtaining the target firmware upgrade file from the baseboard management controller.
[0013] In one exemplary embodiment, before determining the second vendor identifier, second device identifier, and node type corresponding to the firmware upgrade file based on the data structure information of the firmware upgrade file, it is detected whether a target identifier exists in the extended read-only memory header information of the firmware upgrade file; if a target identifier exists in the extended read-only memory header information, the firmware upgrade file is determined to be valid, and the second vendor identifier, second device identifier, and node type corresponding to the firmware upgrade file are determined based on the data structure information of the firmware upgrade file; if a target identifier does not exist in the extended read-only memory header information, the firmware upgrade file is determined to be invalid, and the firmware upgrade file is not the target firmware upgrade file.
[0014] In one exemplary embodiment, when the target firmware upgrade file corresponding to the target identification information and the type of the core processor does not exist in the baseboard management controller, the target firmware upgrade file corresponding to the target identification information and the type of the core processor is obtained from the extended read-only memory corresponding to the high-speed peripheral component device.
[0015] According to another embodiment of this application, a server is provided, including: a motherboard and a core processor. The motherboard includes: a baseboard management controller, a basic input / output system chip, and a high-speed peripheral component interface. The baseboard management controller includes a conversion flash memory card storing a firmware upgrade file for target object transmission. The basic input / output system chip stores a basic input / output system program. The high-speed peripheral component interface is used to connect to external high-speed peripheral component devices. The core processor is used to execute the basic input / output system program for self-testing when the server is powered on. During the self-test, if a high-speed peripheral component device is detected connected to the server, the target identification information of the high-speed peripheral component device is obtained. A target firmware upgrade file corresponding to the target identification information and the type of the core processor is obtained from the baseboard management controller. The target firmware upgrade file is copied to memory and executed to initialize the high-speed peripheral component device.
[0016] In an exemplary embodiment, the core processor is configured to, when it detects that a high-speed peripheral component device is connected to the server through a high-speed peripheral component interface, obtain target identification information of the high-speed peripheral component device from the device configuration space of the high-speed peripheral component device, wherein the target identification information includes at least: a first manufacturer identifier and a first device identifier corresponding to the high-speed peripheral component device.
[0017] In one exemplary embodiment, the baseboard management controller further includes a management module, wherein the baseboard management controller is used to acquire the firmware upgrade file transmitted by the target object and store the firmware upgrade file in the conversion flash memory card; and to call the management module to generate a virtual universal serial bus device based on the firmware upgrade file in the conversion flash memory card.
[0018] In one exemplary embodiment, the baseboard management controller is configured to invoke the management module to obtain the firmware upgrade file uploaded by the target object in the interactive interface corresponding to the baseboard management controller, and store the firmware upgrade file in the conversion flash memory card; or, the baseboard management controller is configured to receive the firmware upgrade file copied by the target object through the terminal device, and store the firmware upgrade file in the conversion flash memory card; or, the baseboard management controller is configured to invoke the management module to download the firmware upgrade file from the management node server in the server room, and store the firmware upgrade file in the conversion flash memory card, wherein the management node server stores the firmware upgrade file uploaded by the target object.
[0019] In one exemplary embodiment, the motherboard also includes a platform control hub, wherein the core processor is configured to obtain a target firmware upgrade file corresponding to the target identification information and the type of the core processor from a virtual universal serial bus device of the baseboard management controller via a universal serial bus interface of the platform control hub.
[0020] In an exemplary embodiment, for any firmware upgrade file in the baseboard management controller, the core processor is used to determine the second vendor identifier, the second device identifier, and the node type corresponding to the firmware upgrade file based on the data structure information of the firmware upgrade file, wherein the node type is used to indicate the core processor type supported by the firmware upgrade file; when the first vendor identifier and the second vendor identifier match, the first device identifier and the second device identifier match, and the core processor type matches the node type, the firmware upgrade file is determined to be the target firmware upgrade file; and the target firmware upgrade file is obtained from the baseboard management controller.
[0021] In one exemplary embodiment, the core processor is further configured to, before determining the second vendor identifier, second device identifier, and node type corresponding to the firmware upgrade file based on the data structure information of the firmware upgrade file, detect whether a target identifier exists in the extended read-only memory header information of the firmware upgrade file; if a target identifier exists in the extended read-only memory header information, determine that the firmware upgrade file is valid, and determine the second vendor identifier, second device identifier, and node type corresponding to the firmware upgrade file based on the data structure information of the firmware upgrade file; if a target identifier does not exist in the extended read-only memory header information, determine that the firmware upgrade file is invalid, and the firmware upgrade file is not the target firmware upgrade file.
[0022] In one exemplary embodiment, the core processor is further configured to retrieve, when no target firmware upgrade file corresponding to the target identification information and the type of the core processor exists in the baseboard management controller, the target firmware upgrade file corresponding to the target identification information and the type of the core processor from the extended read-only memory corresponding to the high-speed peripheral component device.
[0023] According to another embodiment of this application, a computer-readable storage medium is also provided, in which a computer program is stored, wherein the computer program is configured to execute the steps in the firmware upgrade method for the high-speed peripheral component device described above when it is run.
[0024] In this embodiment, when the server powers on, it executes a basic input / output system program for self-test. During the self-test, if a high-speed peripheral device is detected connecting to the server, the target identification information of the high-speed peripheral device is obtained. Then, a target firmware upgrade file corresponding to the target identification information and the type of the core processor is obtained from the baseboard management controller. The baseboard management controller includes a conversion flash memory card that stores the firmware upgrade file transmitted by the target device. The target firmware upgrade file is then copied into memory and executed to initialize the high-speed peripheral device. By pre-storing the firmware upgrade file in the conversion flash memory card of the baseboard management controller, when the server powers on and performs a self-test, it can directly load the corresponding version of the target firmware upgrade file based on the identification information of the connected high-speed peripheral device and the type of the core processor to initialize the high-speed peripheral device. This firmware upgrade method is simple and efficient, requiring no complex manual operation, and effectively solves the technical problem of the relatively complex firmware upgrade process for high-speed peripheral devices in related technologies. Attached Figure Description
[0025] Figure 1 This is a schematic diagram of the structure of a server according to an embodiment of this application;
[0026] Figure 2 This is a schematic diagram of another server structure according to an embodiment of this application;
[0027] Figure 3 This is a flowchart illustrating a firmware upgrade method for a high-speed peripheral component device according to an embodiment of this application.
[0028] Figure 4 This is a schematic diagram of a firmware upgrade process for a high-speed peripheral component device according to an embodiment of this application. Detailed Implementation
[0029] To enable those skilled in the art to better understand the present application, the technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present application, and not all embodiments. Based on the embodiments in the present application, all other embodiments obtained by those of ordinary skill in the art without creative effort should fall within the scope of protection of the present application.
[0030] It should be noted that the terms "first," "second," etc., used in the specification, claims, and drawings of this application are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that such data can be interchanged where appropriate so that the embodiments of this application described herein can be implemented in orders other than those illustrated or described herein. Furthermore, the terms "comprising" and "having," and any variations thereof, are intended to cover non-exclusive inclusion; for example, a process, method, system, product, or apparatus that comprises a series of steps or units is not necessarily limited to those steps or units explicitly listed, but may include other steps or units not explicitly listed or inherent to such processes, methods, products, or apparatus.
[0031] To better understand the embodiments of this application, the following is a translation and explanation of some nouns or terms that appear in the description of the embodiments of this application:
[0032] PCIe is a high-speed serial computer expansion bus standard. It is a point-to-point, dual-channel, high-bandwidth transmission technology. Its transmission rate is much faster than traditional parallel bus technology, and it also has better reliability and scalability. PCIe devices are various external devices, such as graphics cards, sound cards, and network cards, that connect to the computer motherboard through the PCIe interface. Due to the high bandwidth and low latency of PCIe, PCIe devices have become an indispensable part of modern computer systems.
[0033] Option ROM: A BIOS term, also known as Expansion ROM in the PCI specification, is a type of firmware integrated into computer hardware devices. It is executed when the device boots up and is typically used to initialize and manage hardware devices, providing additional functions or drivers. For example, graphics cards, network cards, and RAID controllers may all have their own Option ROMs. When the computer boots up, the BIOS detects these devices and loads their corresponding Option ROMs to correctly configure and use them. Although Option ROMs are "optional," many hardware devices require them to function properly. Failure to load Option ROMs correctly can lead to system instability or the inability to recognize certain hardware devices.
[0034] BMC (Baseboard Management Controller): An embedded chip used for remote management of servers or other computing devices. It is typically integrated on the motherboard and can be accessed and controlled via a network connection. Its main functions include monitoring system hardware status, remote power on / off, and restarting. It also provides interfaces such as IPMI (Intelligent Platform Management Interface) to enable remote management and maintenance of the server.
[0035] TF (Trans Flash) card: also known as microSD card or microSDHC card, is a small flash memory card that can be compatible with other devices through an adapter. It is usually used for storage expansion in mobile devices such as mobile phones and cameras.
[0036] PCH (Platform Controller Hub): Also known as the Southbridge chip, it is part of the motherboard chipset in the Intel architecture. It is located between the CPU and other major system components and is mainly responsible for managing many I / O interfaces, buses, storage and network functions, as well as providing support for processor power management and security performance.
[0037] The POST (Power-On Self-Test) phase refers to the process during which the BIOS program identifies and initializes the hardware when the computer powers on. During POST, the BIOS performs self-tests in a fixed order, including tests on critical hardware components such as RAM (Random Access Memory), CPU, and graphics adapter, ensuring they are functioning correctly. If any faults or errors are detected, the system will stop and display the corresponding error code or message. Only after all tests have passed will the operating system loading process begin. This process typically takes only a few seconds.
[0038] The PCI Expansion ROM Header is a data structure used to define the extended ROM image file format of a PCI device. It contains information such as the size, starting address, and checksum of the ROM image file. This ROM image file can be loaded and executed by the BIOS or operating system to expand or upgrade the device's functionality. The PCI Expansion ROM Header is typically provided by the hardware manufacturer and released along with the device driver.
[0039] PCI Data Structure: This is a data format used to describe the allocation of devices and resources on the PCI bus in a computer system. It contains information such as the configuration space, IRQ (Interrupt Request), DMA (Direct Memory Access) channels, and register addresses and control commands used to access this information for each PCI device. By reading and modifying the PCI data structure, the operating system can manage communication between the computer and external devices and provide applications with an interface to access hardware resources.
[0040] The present application scheme will be described below with reference to preferred embodiments.
[0041] To address the technical problem of the relatively complex firmware upgrade process for high-speed peripheral component devices in related technologies, this application first proposes a server architecture. Figure 1 This is a schematic diagram of an optional server structure according to an embodiment of this application, such as... Figure 1 As shown, the server includes at least: a motherboard 11 and a core processor 12. The motherboard 11 includes: a baseboard management controller 111, a basic input / output system chip 112, and a high-speed peripheral component interface 113, wherein:
[0042] The baseboard management controller 111 includes a conversion flash memory card 1111, which stores multiple firmware upgrade files for the target object transfer.
[0043] The basic input / output system chip 112 stores the basic input / output system program;
[0044] The high-speed peripheral component interface 113 is used to connect a high-speed peripheral component device 13.
[0045] The core processor 12 is used to execute the basic input / output system program for self-test when the server is powered on. During the self-test, if a high-speed peripheral component device 13 is detected to be connected to the server, the target identification information of the high-speed peripheral component device 13 is obtained. The target firmware program upgrade file corresponding to the target identification information and the type of the core processor 12 is obtained from the baseboard management controller 111. The target firmware program upgrade file is copied into memory and executed to initialize the high-speed peripheral component device 13.
[0046] In this method, by pre-storing the firmware upgrade file in the conversion flash memory card in the baseboard management controller, the server can directly load the corresponding version of the target firmware upgrade file from the card based on the identification information of the connected high-speed peripheral component device and the type of the core processor during power-on self-test, and initialize the high-speed peripheral component device. This firmware upgrade method is simple and efficient, requires no complicated manual operation, and effectively solves the technical problem of the relatively complicated firmware upgrade process for high-speed peripheral component devices in related technologies.
[0047] Figure 2 This is a schematic diagram of another, more specific, server structure according to an embodiment of this application. The server includes at least: a motherboard 21 and a core processor 22. The motherboard 21 includes: a baseboard management controller 211, a platform control hub 212, a basic input / output system chip 213, and a high-speed peripheral component interface 214. The following description, in conjunction with... Figure 2 The functions of each module in the server are explained in detail.
[0048] As an optional implementation, the baseboard management controller 211 includes a flash memory card 2111 and a management module 2112. After obtaining the firmware upgrade file transmitted by the target object, the baseboard management controller 211 stores the firmware upgrade file in the conversion flash memory card 2111; then it calls the management module 2112 to generate a virtual universal serial bus device 2113 based on the firmware upgrade file in the conversion flash memory card 2111.
[0049] Optionally, when the baseboard management controller 211 obtains the firmware upgrade file transmitted by the target object, it can do so in the following three ways: In the first way, the baseboard management controller 211 can call the management module 2112 to obtain the firmware upgrade file uploaded by the target object in the interactive interface corresponding to the baseboard management controller 211, and store the firmware upgrade file in the conversion flash memory card 2111, wherein the interactive interface can be a web management interface; In the second way, the baseboard management controller 211 can receive the firmware upgrade file copied by the target object through a terminal device, and store the firmware upgrade file in the conversion flash memory card 2111, wherein the terminal device can be a personal computer, tablet, or other terminal; In the third way, the baseboard management controller 211 can call the management module 2112 to download the firmware upgrade file from the management node server in the computer room where the server is located, and store the firmware upgrade file in the conversion flash memory card 2111, wherein the management node server stores the firmware upgrade file uploaded by the target object.
[0050] Understandably, to improve the efficiency of firmware upgrade file transmission, users can upload firmware upgrade files to the baseboard management controller via the web management interface, or directly copy the firmware upgrade files to the baseboard management controller via a personal computer or other terminal. Both methods are suitable for upgrading the firmware of high-speed peripheral components of a single server. Alternatively, users can upload the firmware upgrade files to the management node server in the server room, and the baseboard management controller will automatically download the firmware upgrade files. This method can effectively reduce the number of manual transmissions and is suitable for upgrading the firmware of high-speed peripheral components of a batch of servers.
[0051] As an optional implementation, when the server is powered on, the core processor 22 executes the basic input / output system program stored in the basic input / output system chip 213 to perform a power-on self-test. During the self-test, when the core processor 22 detects that a high-speed peripheral component device 23 is connected to the server through the high-speed peripheral component interface 214, it obtains the target identification information of the high-speed peripheral component device from the device configuration space of the high-speed peripheral component device 23. The target identification information includes at least the first manufacturer identifier and the first device identifier corresponding to the high-speed peripheral component device.
[0052] To ensure that the version of the final target firmware upgrade file matches the core processor, the core processor 22 can also determine the type of the core processor 22 after obtaining the target identification information of the high-speed peripheral component device 23; and then obtain the target firmware upgrade file corresponding to the target identification information and the type of the core processor from the baseboard management controller 211.
[0053] As an optional implementation, when obtaining the target firmware upgrade file corresponding to the target identification information and the type of the core processor, the core processor 22 can obtain the target firmware upgrade file corresponding to the target identification information and the type of the core processor from the virtual universal serial bus device 2113 of the baseboard management controller 211 through the universal serial bus interface 2121 of the platform control hub 212.
[0054] Optionally, for any firmware upgrade file in the baseboard management controller 211, the core processor 22 can determine the second vendor identifier, second device identifier, and node type corresponding to the firmware upgrade file based on the PCI Data Structure information of the firmware upgrade file, wherein the node type is used to indicate the core processor type supported by the firmware upgrade file; when the first vendor identifier and the second vendor identifier match, the first device identifier and the second device identifier match, and the core processor type matches the node type, the firmware upgrade file is determined to be the target firmware upgrade file; the core processor 22 obtains the target firmware upgrade file from the baseboard management controller 211.
[0055] Optionally, before determining the second vendor identifier, second device identifier, and node type corresponding to the firmware upgrade file based on the data structure information of the firmware upgrade file, the core processor 22 can also detect whether a target identifier exists in the PCI Expansion ROM Header of the firmware upgrade file. This target identifier is typically 0xAA55. If a target identifier exists in the PCI Expansion ROM Header, the firmware upgrade file is determined to be valid, and the second vendor identifier, second device identifier, and node type corresponding to the firmware upgrade file are determined based on the data structure information of the firmware upgrade file. If a target identifier does not exist in the PCI Expansion ROM Header, the firmware upgrade file is determined to be invalid, i.e., the firmware upgrade file is not the target firmware upgrade file, and there is no need to perform the subsequent matching process, thus improving detection efficiency.
[0056] In some application scenarios, the baseboard management controller 211 may not have a target firmware upgrade file corresponding to the target identification information and the type of the core processor. In this case, the core processor 22 can obtain the target firmware upgrade file corresponding to the target identification information and the type of the core processor from the extended read-only memory corresponding to the high-speed peripheral component device 23.
[0057] Furthermore, in certain extreme scenarios, the extended read-only memory corresponding to the target identifier information and the type of the core processor may not contain the target firmware upgrade file. In this case, the core processor 22 can control the alarm device to issue an alarm message to the user, indicating that neither the baseboard management controller nor the extended read-only memory corresponding to the high-speed peripheral component device 23 contains a usable target firmware upgrade file, and the user needs to upload it manually. At this time, the user can re-transfer the firmware upgrade file to the baseboard management controller via the interactive interface, terminal device, or management node server.
[0058] After obtaining the target firmware upgrade file, the core processor 22 can copy the target firmware upgrade file into memory for execution to initialize the high-speed peripheral component device, thereby achieving the firmware upgrade.
[0059] In the server of this application embodiment, the motherboard includes: a baseboard management controller, a basic input / output system chip, and a high-speed peripheral component interface. The baseboard management controller includes a conversion flash memory card storing firmware upgrade files for target device transmission. The basic input / output system chip stores a basic input / output system program. The high-speed peripheral component interface is used to connect external high-speed peripheral component devices. The core processor is used to execute the basic input / output system program for self-testing when the server is powered on. During the self-test, if a high-speed peripheral component device is detected connected to the server, the target identification information of the high-speed peripheral component device is obtained. The target firmware upgrade file corresponding to the target identification information and the type of the core processor is obtained from the baseboard management controller. The target firmware upgrade file is copied to memory and executed to initialize the high-speed peripheral component device. In this method, by pre-storing the firmware upgrade file in the conversion flash memory card in the baseboard management controller, the server can directly load the corresponding version of the target firmware upgrade file from the card based on the identification information of the connected high-speed peripheral component device and the type of the core processor during power-on self-test, and initialize the high-speed peripheral component device. This firmware upgrade method is simple and efficient, requires no complicated manual operation, and effectively solves the technical problem of the relatively complicated firmware upgrade process for high-speed peripheral component devices in related technologies.
[0060] Based on the operation of the aforementioned server, this application embodiment also provides a firmware upgrade method for high-speed peripheral component devices executed by a core processor.
[0061] Figure 3 This is a schematic flowchart of an optional firmware upgrade method for a high-speed peripheral component device according to an embodiment of this application, as shown below. Figure 3 As shown, the process includes the following steps:
[0062] Step S302: When the server is powered on, execute the Basic Input / Output System program to perform a self-test;
[0063] Step S304: During the self-test, if a high-speed peripheral component device is detected to be connected to the server, obtain the target identification information of the high-speed peripheral component device.
[0064] Step S306: Obtain the target firmware upgrade file corresponding to the target identification information and the type of the core processor from the baseboard management controller. The baseboard management controller includes a conversion flash card, which stores the firmware upgrade file transmitted by the target object.
[0065] Step S308: Copy the target firmware upgrade file into memory and execute it to initialize the high-speed peripheral component device.
[0066] The following describes each step of the firmware upgrade method for the aforementioned high-speed peripheral component devices, using a specific implementation process as an example.
[0067] Before the server powers on and performs its self-test, the user can transfer the firmware upgrade file to the conversion flash card of the baseboard management controller in advance using the following methods:
[0068] In the first method, the user can upload the firmware upgrade file to the interactive interface corresponding to the baseboard management controller. This interactive interface can be a web management interface configured for the baseboard management controller. The baseboard management controller can call the management module to obtain the firmware upgrade file from the interactive interface and store the firmware upgrade file in the conversion flash memory card.
[0069] In the second method, users can directly copy the firmware upgrade file to the conversion flash memory card of the baseboard management controller via a terminal device, such as a personal computer or tablet.
[0070] In the third method, the user can upload the firmware upgrade file to the management node server in the server room; the baseboard management controller can call the management module to download the firmware upgrade file from the management node server and store the firmware upgrade file in the conversion flash memory card.
[0071] Of the three methods above, the first two can improve the transmission efficiency of firmware upgrade files and are suitable for upgrading the firmware of high-speed peripheral components of a single server; the third method can effectively reduce the number of manual transmissions and is suitable for upgrading the firmware of high-speed peripheral components of a batch of servers.
[0072] Optionally, after acquiring the firmware upgrade file transmitted by the target object and storing the firmware upgrade file in the conversion flash memory card, the baseboard management controller can call the management module to generate a virtual universal serial bus device based on the firmware upgrade file in the conversion flash memory card.
[0073] As an optional implementation, when the server is powered on, the core processor executes the basic input / output system program stored in the basic input / output system chip to perform a power-on self-test. During the self-test, when the core processor recognizes that a high-speed peripheral component device is connected to the server through the server's high-speed peripheral component interface, it obtains the target identification information of the high-speed peripheral component device from the device configuration space of the high-speed peripheral component device. The target identification information includes at least: a first manufacturer identifier and a first device identifier corresponding to the high-speed peripheral component device.
[0074] To ensure that the version of the final target firmware upgrade file matches the core processor, the core processor can also determine the type of the core processor after obtaining the target identification information of the high-speed peripheral component device; and then obtain the target firmware upgrade file corresponding to the target identification information and the type of the core processor from the baseboard management controller.
[0075] As an optional implementation, when obtaining the target firmware upgrade file corresponding to the target identification information and the type of the core processor, the core processor can obtain the target firmware upgrade file corresponding to the target identification information and the type of the core processor from the virtual universal serial bus device of the baseboard management controller through the universal serial bus interface of the platform control hub.
[0076] Optionally, when the core processor obtains the target firmware upgrade file corresponding to the target identification information and the type of the core processor from the baseboard management controller, it can do so in the following way: For any firmware upgrade file in the baseboard management controller, the second vendor identifier, the second device identifier, and the node type corresponding to the firmware upgrade file are determined based on the PCI Data Structure information of the firmware upgrade file, wherein the node type is used to indicate the type of core processor supported by the firmware upgrade file; when the first vendor identifier and the second vendor identifier match, the first device identifier and the second device identifier match, and the type of the core processor matches the node type, the firmware upgrade file is determined to be the target firmware upgrade file; and the target firmware upgrade file is obtained from the baseboard management controller.
[0077] Optionally, before determining the second vendor identifier, second device identifier, and node type corresponding to the firmware upgrade file based on the data structure information of the firmware upgrade file, the core processor can also detect whether a target identifier exists in the PCI Expansion ROM Header information of the firmware upgrade file. This target identifier is typically 0xAA55. If the target identifier exists in the PCI Expansion ROM Header information, the firmware upgrade file is determined to be valid, and the second vendor identifier, second device identifier, and node type corresponding to the firmware upgrade file are determined based on the data structure information of the firmware upgrade file. If the target identifier does not exist in the PCI Expansion ROM Header information, the firmware upgrade file is determined to be invalid, i.e., the firmware upgrade file is not the target firmware upgrade file, and there is no need to perform the subsequent matching process, thus improving detection efficiency.
[0078] In some application scenarios, the baseboard management controller may not have a target firmware upgrade file corresponding to the target identification information and the type of the core processor. In this case, the core processor can obtain the target firmware upgrade file corresponding to the target identification information and the type of the core processor from the extended read-only memory corresponding to the high-speed peripheral component device.
[0079] Furthermore, in certain extreme scenarios, the extended ROM corresponding to the high-speed peripheral component device may also lack the target firmware upgrade file that matches the target identification information and the core processor type. In this case, the core processor can control the alarm device to issue an alarm message to the user, indicating that neither the baseboard management controller nor the extended ROM corresponding to the high-speed peripheral component device contains a usable target firmware upgrade file, and the user needs to upload it manually. In this situation, the user can then re-transfer the firmware upgrade file to the baseboard management controller via the interactive interface, terminal device, or management node server.
[0080] After obtaining the target firmware upgrade file, the core processor can copy the target firmware upgrade file into memory for execution to initialize the high-speed peripheral components, thereby achieving the firmware upgrade.
[0081] Figure 4 This paper illustrates a complete firmware upgrade process for a high-speed peripheral component device, which includes the following steps:
[0082] S1, the user transfers the firmware upgrade file to the conversion flash memory card of the baseboard management controller, including: S11, the user copies the firmware upgrade file to the conversion flash memory card of the baseboard management controller through a terminal device; or, S12, the user uploads the firmware upgrade file through a web management interface and executes S14; or, S13, the user uploads the firmware upgrade file to the management node server in the server room and executes S14; S14, the baseboard management controller calls the management module to download the firmware upgrade file from the web management interface or the management node server and stores the firmware upgrade file in the conversion flash memory card;
[0083] S2, The baseboard management controller calls the management module to generate a virtual universal serial bus device based on the firmware program upgrade file in the conversion flash memory card;
[0084] S3, when the server is powered on, the core processor executes the basic input / output system program to perform a power-on self-test;
[0085] S4. During the self-test, when a high-speed peripheral component device is detected to be connected to the server, the target identification information of the high-speed peripheral component device is obtained from the device configuration space of the high-speed peripheral component device. The target identification information includes at least: the first manufacturer identifier and the first device identifier corresponding to the high-speed peripheral component device.
[0086] S5, determine the type of the core processor, and use the first manufacturer identifier, the first device identifier, and the core processor type as identification codes;
[0087] S6. Determine whether there is a target firmware upgrade file that matches the identification code in the virtual universal serial bus device of the baseboard management controller. If it exists, proceed to S7; otherwise, proceed to S8.
[0088] S7, obtain the target firmware upgrade file from the virtual universal serial bus device of the baseboard management controller;
[0089] S8 retrieves the target firmware upgrade file from the extended read-only memory corresponding to the high-speed peripheral component device based on the identification code;
[0090] S9 loads the target firmware upgrade file into memory for execution to initialize the high-speed peripheral component device.
[0091] In this embodiment, when the server powers on, it executes a basic input / output system program for self-test. During the self-test, if a high-speed peripheral device is detected connecting to the server, the target identification information of the high-speed peripheral device is obtained. Then, a target firmware upgrade file corresponding to the target identification information and the type of the core processor is obtained from the baseboard management controller. The baseboard management controller includes a conversion flash memory card that stores the firmware upgrade file transmitted by the target device. The target firmware upgrade file is then copied into memory and executed to initialize the high-speed peripheral device. By pre-storing the firmware upgrade file in the conversion flash memory card of the baseboard management controller, when the server powers on and performs a self-test, it can directly load the corresponding version of the target firmware upgrade file based on the identification information of the connected high-speed peripheral device and the type of the core processor to initialize the high-speed peripheral device. This firmware upgrade method is simple and efficient, requiring no complex manual operation, and effectively solves the technical problem of the relatively complex firmware upgrade process for high-speed peripheral devices in related technologies.
[0092] Optionally, embodiments of this application also provide a computer-readable storage medium storing a computer program, wherein the computer program is configured to execute the steps in any of the above method embodiments when running.
[0093] Specifically, the computer program executes the following steps during runtime: When the server powers on, it performs a self-test using the Basic Input / Output System (BIOS) program; during the self-test, if a high-speed peripheral device is detected connected to the server, it obtains the target identification information of the high-speed peripheral device; it retrieves the target firmware upgrade file corresponding to the target identification information and the type of the core processor from the baseboard management controller, wherein the baseboard management controller includes a conversion flash memory card that stores the firmware upgrade file transmitted by the target object; and it copies the target firmware upgrade file into memory for execution to initialize the high-speed peripheral device.
[0094] In one exemplary embodiment, the aforementioned computer-readable storage medium may include, but is not limited to, various media capable of storing computer programs, such as USB flash drives, read-only memory, random access memory, portable hard drives, magnetic disks, or optical disks.
[0095] Embodiments of this application also provide an electronic device, including a memory and a processor, wherein the memory stores a computer program and the processor is configured to run the computer program to perform the steps in any of the above method embodiments.
[0096] Specifically, the processor is configured to execute the following steps via a computer program: When the server powers on, it performs a self-test using a basic input / output system program; during the self-test, if a high-speed peripheral device is detected connected to the server, it obtains the target identification information of the high-speed peripheral device; it retrieves a target firmware upgrade file corresponding to the target identification information and the type of the core processor from the baseboard management controller, wherein the baseboard management controller includes a conversion flash memory card storing the firmware upgrade file transferred by the target device; and it copies the target firmware upgrade file into memory for execution to initialize the high-speed peripheral device.
[0097] In one exemplary embodiment, the electronic device may further include a transmission device and an input / output device, wherein the transmission device is connected to the processor and the input / output device is connected to the processor.
[0098] In the above embodiments of this application, the descriptions of each embodiment have different focuses. For parts not described in detail in a certain embodiment, please refer to the relevant descriptions of other embodiments.
[0099] In the several embodiments provided in this application, it should be understood that the disclosed technical content can be implemented in other ways. The device embodiments described above are merely illustrative; for example, the division of units can be a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the displayed or discussed mutual couplings, direct couplings, or communication connections may be through some interfaces; indirect couplings or communication connections between units or modules may be electrical or other forms.
[0100] The units described as separate components may or may not be physically separate. Similarly, the components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple units. Some or all of the units can be selected to achieve the purpose of the embodiments of this application, depending on actual needs.
[0101] Furthermore, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit.
[0102] If the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods of the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as a USB flash drive, read-only memory, random access memory, portable hard drive, magnetic disk, or optical disk.
[0103] The above are merely preferred embodiments of this application. It should be noted that those skilled in the art can make various improvements and modifications without departing from the principles of this application, and these improvements and modifications should also be considered within the scope of protection of this application.
Claims
1. A firmware upgrade method for a high-speed peripheral component device, applied to the core processor of a server, characterized in that, include: When the server boots up, it executes the Basic Input / Output System program to perform a self-test; During the self-test, if a high-speed peripheral component device is detected to be connected to the server, the target identification information of the high-speed peripheral component device is obtained, wherein the target identification information includes at least: a first manufacturer identifier and a first device identifier corresponding to the high-speed peripheral component device; Obtaining a target firmware upgrade file corresponding to the target identification information and the type of the core processor from the baseboard management controller includes: for any firmware upgrade file in the baseboard management controller, determining a second vendor identifier, a second device identifier, and a node type corresponding to the firmware upgrade file based on the data structure information of the firmware upgrade file, wherein the node type is used to indicate the type of core processor supported by the firmware upgrade file; determining the firmware upgrade file as the target firmware upgrade file when the first vendor identifier and the second vendor identifier match, the first device identifier and the second device identifier match, and the type of the core processor matches the node type; obtaining the target firmware upgrade file from the baseboard management controller; wherein the baseboard management controller includes a conversion flash card, the conversion flash card stores the firmware upgrade file transmitted by the target object, and the baseboard management controller is used to call the management module to generate a virtual universal serial bus device based on the firmware upgrade file in the conversion flash card; The target firmware upgrade file is copied into memory and executed to initialize the high-speed peripheral component device.
2. The method according to claim 1, characterized in that, If a high-speed peripheral component device is detected to be connected to the server, the target identification information of the high-speed peripheral component device is obtained, including: When it is detected that a high-speed peripheral component device is connected to the server through the high-speed peripheral component interface of the server, the target identification information of the high-speed peripheral component device is obtained from the device configuration space of the high-speed peripheral component device.
3. The method according to claim 1, characterized in that, Before obtaining the target firmware upgrade file corresponding to the target identification information and the type of the core processor from the baseboard management controller, the method further includes: The baseboard management controller acquires the firmware upgrade file transmitted by the target object and stores the firmware upgrade file in the conversion flash memory card.
4. The method according to claim 3, characterized in that, The baseboard management controller acquires the firmware upgrade file transmitted by the target object and stores the firmware upgrade file in the conversion flash memory card, including: The baseboard management controller calls the management module to obtain the firmware upgrade file uploaded by the target object in the interactive interface corresponding to the baseboard management controller, and stores the firmware upgrade file in the conversion flash memory card; or... The baseboard management controller receives the firmware upgrade file copied by the target object through the terminal device, and stores the firmware upgrade file in the conversion flash memory card; or... The baseboard management controller calls the management module to download the firmware upgrade file from the management node server in the computer room where the server is located, and stores the firmware upgrade file in the conversion flash memory card. The management node server stores the firmware upgrade file uploaded by the target object.
5. The method according to claim 1, characterized in that, Retrieving the target firmware upgrade file corresponding to the target identification information and the type of the core processor from the baseboard management controller, including: The target firmware upgrade file, corresponding to the target identification information and the type of the core processor, is obtained from the virtual universal serial bus device of the baseboard management controller via the universal serial bus interface of the platform control hub.
6. The method according to claim 1, characterized in that, Before determining the second vendor identifier, second device identifier, and node type corresponding to the firmware upgrade file based on the data structure information of the firmware upgrade file, the method further includes: Detect whether a target identifier exists in the extended read-only memory header information of the firmware upgrade file; If the target identifier is present in the header information of the extended read-only memory, the firmware upgrade file is determined to be valid, and the second vendor identifier, second device identifier, and node type corresponding to the firmware upgrade file are determined based on the data structure information of the firmware upgrade file. If the target identifier is not present in the header information of the extended read-only memory, the firmware upgrade file is determined to be invalid, and the firmware upgrade file is not the target firmware upgrade file.
7. The method according to claim 1, characterized in that, The method further includes: If the target firmware upgrade file corresponding to the target identification information and the type of the core processor does not exist in the baseboard management controller, the target firmware upgrade file corresponding to the target identification information and the type of the core processor is obtained from the extended read-only memory corresponding to the high-speed peripheral component device.
8. A server, characterized in that, include: The motherboard and core processor, wherein the motherboard includes: a baseboard management controller, a basic input / output system chip, and a high-speed peripheral component interface, wherein, The baseboard management controller includes a conversion flash card, which stores a firmware upgrade file for the target object. The baseboard management controller is used to call its own management module to generate a virtual universal serial bus device based on the firmware upgrade file in the conversion flash card. The basic input / output system chip stores the basic input / output system program; The high-speed peripheral component interface is used to connect external high-speed peripheral component devices; The core processor is used to execute the basic input / output system program for self-test when the server is powered on. During the self-test, if a high-speed peripheral component device is detected to be connected to the server, the core processor obtains the target identification information of the high-speed peripheral component device, wherein the target identification information includes at least: a first vendor identifier and a first device identifier corresponding to the high-speed peripheral component device; and obtains a target firmware upgrade file corresponding to the target identification information and the type of the core processor from the baseboard management controller, including: for any firmware upgrade file in the baseboard management controller, the core processor is used to determine a second vendor identifier, a second device identifier, and a node type corresponding to the firmware upgrade file based on the data structure information of the firmware upgrade file, wherein the node type is used to indicate the core processor type supported by the firmware upgrade file. When the first vendor identifier and the second vendor identifier match, the first device identifier and the second device identifier match, and the type of the core processor matches the node type, the firmware upgrade file is determined to be the target firmware upgrade file, and the target firmware upgrade file is obtained from the baseboard management controller; the target firmware upgrade file is copied into memory and executed to initialize the high-speed peripheral component device.
9. The server according to claim 8, characterized in that, The core processor is used to obtain the target identification information of the high-speed peripheral component device from the device configuration space of the high-speed peripheral component device when it is detected that a high-speed peripheral component device is connected to the server through the high-speed peripheral component interface.
10. The server according to claim 8, characterized in that, in, The baseboard management controller is used to acquire the firmware upgrade file transmitted by the target object and store the firmware upgrade file in the conversion flash memory card.
11. The server according to claim 10, characterized in that, The baseboard management controller is used to call the management module to obtain the firmware upgrade file uploaded by the target object in the interactive interface corresponding to the baseboard management controller, and store the firmware upgrade file in the conversion flash memory card; or, The baseboard management controller is used to receive the firmware upgrade file copied by the target object through the terminal device, and store the firmware upgrade file to the conversion flash memory card; or, The baseboard management controller is used to call the management module to download the firmware upgrade file from the management node server in the computer room where the server is located, and store the firmware upgrade file in the conversion flash memory card, wherein the management node server stores the firmware upgrade file uploaded by the target object.
12. The server according to claim 8, characterized in that, The motherboard also includes a platform control hub, wherein... The core processor is used to obtain the target firmware upgrade file corresponding to the target identification information and the type of the core processor from the virtual universal serial bus device of the baseboard management controller through the universal serial bus interface of the platform control hub.
13. The server according to claim 8, characterized in that, The core processor is also configured to detect whether a target identifier exists in the extended read-only memory header information of the firmware upgrade file before determining the second vendor identifier, second device identifier and node type corresponding to the firmware upgrade file based on the data structure information of the firmware upgrade file. If the target identifier is present in the header information of the extended read-only memory, the firmware upgrade file is determined to be valid, and the second vendor identifier, second device identifier, and node type corresponding to the firmware upgrade file are determined based on the data structure information of the firmware upgrade file. If the target identifier is not present in the header information of the extended read-only memory, the firmware upgrade file is determined to be invalid, and the firmware upgrade file is not the target firmware upgrade file.
14. The server according to claim 8, characterized in that, The core processor is further configured to, when the target firmware upgrade file corresponding to the target identification information and the type of the core processor does not exist in the baseboard management controller, retrieve the target firmware upgrade file corresponding to the target identification information and the type of the core processor from the extended read-only memory corresponding to the high-speed peripheral component device.
15. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program, wherein when the computer program is executed by a processor, it implements the steps of the firmware upgrade method for the high-speed peripheral component device according to any one of claims 1 to 7.
Citation Information
Patent Citations
Device firmware update techniques
CN115280279A
Component firmware update from baseboard management controller
US20200218527A1