Firmware upgrading method, field programmable gate array and server

Through the differential pin of the FPGA, the control unit controls the switching unit to perform channel switching, solving the large size, high cost and system instability of the server expansion card firmware upgrade, and achieving efficient and stable firmware upgrades.

CN120428987APending Publication Date: 2025-08-05GOWIN SEMICON CORP LTD
View PDF 0 Cites 1 Cited by

Patent Information

Application Number
CN202510489778.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-04-17
Publication Date
2025-08-05

AI Technical Summary

Technical Problem

In the prior art, the firmware upgrades of each expansion card in the server have problems such as large size, high cost, high power consumption and high failure rate. The BMC needs to connect, identify and manage a large number of USB devices at the same time, resulting in increased system instability and operation and maintenance difficulties.

Method used

The differential pins of the field programmable gate array FPGA are connected one by one with the USB interfaces of the BMC and board devices. The switching unit is controlled to perform channel switching through the control unit in the FPGA, realizing time-sharing USB communication, reducing the use of Hub chips, and improving firmware upgrade efficiency and stability.

Benefits of technology

Firmware upgrades of multi-board devices can be achieved without a large number of Hub chips, avoiding waste of hardware resources, improving the efficiency and stability of firmware upgrades, and meeting personalized needs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120428987A_ABST
    Figure CN120428987A_ABST
Patent Text Reader

Abstract

The invention provides a firmware upgrading method, a field programmable gate array (FPGA) and a server, the firmware upgrading method is applied to the FPGA on the server, a first differential pin pair of the FPGA is connected with a BMC, and a plurality of second differential pin pairs are connected with universal serial bus (USB) interfaces of a plurality of board card devices in a one-to-one correspondence mode; the FPGA at least comprises a control unit and a switching unit; the method comprises the steps that a control unit receives an upgrading instruction sent by a BMC; the control unit controls the switching unit to switch to a target channel according to the upgrading instruction and establishes USB communication with the board card equipment to be upgraded through the target channel, and the target channel comprises a bottom transceiver of the switching unit, a target differential pin pair and a target USB interface connected with the target differential pin pair; and the control unit receives the upgrading data packet sent by the BMC, and sends the upgrading data packet to the to-be-upgraded board card equipment through the target channel, so that the to-be-upgraded board card equipment upgrades firmware based on the upgrading data packet, and the upgrading efficiency and stability are improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of communication technology, and in particular to a firmware upgrade method, a field programmable gate array, and a server. Background Art

[0002] With the widespread use of System-on-a-Chip (SOC) in servers, the processing performance of server components has continued to improve, the demand for expansion cards has increased, and the complexity of expansion card firmware has also increased. During the use of each server expansion card, the expansion card firmware needs to be continuously upgraded.

[0003] Currently, the high-speed Universal Serial Bus (USB) interface is primarily used to upgrade the firmware of expansion cards within a server. Each expansion card is connected to a hub interface board via USB and communicates with a baseboard management controller (BMC). When the number of expansion cards reaches hundreds or more, a large number of hub chips are required, which leads to the disadvantages of large expansion boards, high costs, high power consumption, and high failure rates. Furthermore, the BMC needs to connect, identify, and manage a large number of USB devices simultaneously, which increases the software complexity. A single USB device failure can affect the stability of the entire BMC, increasing system instability and the difficulty of operation and maintenance.

[0004] Therefore, there are certain limitations in the firmware upgrade of each expansion card in the server in the prior art. Summary of the Invention

[0005] The purpose of this application is to provide a firmware upgrade method, field programmable gate array and server to address the practical needs of the existing technology, which has certain limitations in firmware upgrades for expansion cards in servers.

[0006] To achieve the above objectives, the technical solutions adopted in the embodiments of the present application are as follows:

[0007] In a first aspect, an embodiment of the present application provides a firmware upgrade method, which is applied to a field programmable gate array (FPGA) on a server, wherein the server includes: the FPGA, a baseboard management controller (BMC), and multiple board devices, wherein a first differential pin pair of the FPGA is connected to the BMC, and multiple second differential pin pairs of the FPGA are respectively connected to a universal serial bus (USB) interface of multiple board devices in a one-to-one correspondence; the FPGA includes at least: a control unit and a switching unit; the method includes:

[0008] The control unit receives an upgrade instruction sent by the BMC;

[0009] The control unit controls the switching unit to switch to a target channel according to the upgrade instruction, and establishes USB communication with the board device to be upgraded through the target channel, wherein the target channel includes: an underlying transceiver of the switching unit, a target differential pin pair, and a target USB interface connected to the target differential pin pair, wherein the target differential pin pair is one of the second differential pin pairs;

[0010] The control unit receives the upgrade data packet sent by the BMC, and sends the upgrade data packet to the board device to be upgraded through the target channel, so that the board device to be upgraded upgrades its firmware based on the upgrade data packet.

[0011] As an optional implementation, the FPGA further includes at least: a USB slave-end functional module; the USB slave-end functional module is communicatively connected to the BMC and the control unit respectively;

[0012] The control unit receives the upgrade data packet sent by the BMC, including:

[0013] The USB slave function module receives the upgrade data packet sent by the BMC and sends the upgrade data packet to the control unit;

[0014] The control unit receives and stores the upgrade data packet sent by the USB slave functional module.

[0015] As an optional implementation, the control unit controls the switching unit to switch to the target channel according to the upgrade instruction, including:

[0016] The control unit determines the target channel identifier of the board device to be upgraded according to the upgrade instruction;

[0017] The control unit generates a channel switching instruction according to the target channel identifier of the board device to be upgraded and sends the channel switching instruction to the switching unit;

[0018] The switching unit receives the channel switching instruction, and according to the channel switching instruction, disconnects the communication connection between the underlying transceiver of the switching unit and the second differential pin pair in the current channel, and establishes a communication connection between the underlying transceiver of the switching unit and the target differential pin pair in the target channel.

[0019] As an optional implementation, the control unit determines the target channel identifier of the board device to be upgraded according to the upgrade instruction, including:

[0020] The control unit determines the device identification of the board device to be upgraded according to the upgrade instruction;

[0021] The control unit uses the device identifier of the board device to be upgraded as the target channel identifier of the board device to be upgraded.

[0022] As an optional implementation, the FPGA further includes at least: a USB host-side functional module; the USB host-side functional module is communicatively connected to the control unit and the switching unit respectively;

[0023] The step of establishing USB communication with the board device to be upgraded through the target channel includes:

[0024] The USB host-side functional module enumerates the board device to be upgraded through the target channel, obtains the device descriptor of the board device to be upgraded, puts the board device to be upgraded into a configuration state, and establishes a USB communication connection between the underlying transceiver of the switching unit, the target differential pin pair, and the target USB interface.

[0025] As an optional implementation, the USB host-side functional module enumerates the board device to be upgraded through the target channel, obtains the device descriptor of the board device to be upgraded, and puts the board device to be upgraded into a configuration state, including:

[0026] The USB host-side functional module sends a reset signal to the to-be-upgraded card device through the target channel, so that the to-be-upgraded card device is in a default state; wherein, when the to-be-upgraded card device is in the default state, the address of the to-be-upgraded card device is a default address;

[0027] The USB host-side functional module obtains the device descriptor of the to-be-upgraded card device through the default address and the target channel, and allocates a target address to the to-be-upgraded card device according to the device descriptor of the to-be-upgraded card device;

[0028] The USB host-side functional module obtains the configuration information of the board device to be upgraded through the target address and the target channel, and sends a configuration activation request to the board device to be upgraded based on the configuration information of the board device to be upgraded, so that the board device to be upgraded is in a configuration state.

[0029] As an optional implementation, sending the upgrade data packet to the board device to be upgraded through the target channel includes:

[0030] The control unit determines the target download protocol of the board device to be upgraded according to the upgrade instruction;

[0031] The control unit sends the upgrade data packet to the USB host functional module according to the target download protocol;

[0032] The USB host-side functional module sends the upgrade data packet to the switching unit;

[0033] The switching unit sends the upgrade data packet to the board device to be upgraded in the configuration state through the target channel.

[0034] As an optional implementation, the method further includes:

[0035] The control unit receives the file verification code and version information sent by the board device to be upgraded after the firmware is upgraded;

[0036] The control unit generates upgrade prompt information according to the file verification code and the version information and sends the information to the BMC to prompt the BMC whether the firmware of the board device to be upgraded is successfully upgraded.

[0037] In a second aspect, an embodiment of the present application provides a field programmable gate array (FPGA), which includes at least: a control unit and a switching unit; the FPGA is used to execute the steps of the firmware upgrade method described in the first aspect above.

[0038] In a third aspect, an embodiment of the present application provides a server, comprising the field programmable gate array FPGA, a baseboard management controller BMC, and multiple board devices described in the first aspect above, wherein the first differential pin on the FPGA is connected to the BMC, and the multiple second differential pins of the FPGA are respectively connected one-to-one with the universal serial bus USB interfaces of the multiple board devices.

[0039] The beneficial effects of this application are:

[0040] The present application provides a firmware upgrade method, a field programmable gate array, and a server, wherein a first differential pin pair of an FPGA on the server is connected to a BMC on the server, and multiple groups of second differential pin pairs of the FPGA are respectively connected to USB interfaces of multiple board devices in a one-to-one correspondence. A control unit in the FPGA receives an upgrade instruction sent by the BMC, and based on the upgrade instruction, controls a switching unit in the FPGA to perform time-sharing switching of channels, switching to a target channel, so that the underlying transceiver integrated in the switching unit, the target differential pin pair, and the target USB interface of the board device to be upgraded connected to the target differential pin pair form a target channel. The control unit establishes USB communication with the board device to be upgraded through the target channel, receives an upgrade data packet sent by the BMC, and forwards the upgrade data packet to the board device to be upgraded through the target channel, so that the board device to be upgraded upgrades its firmware based on the upgrade data packet. The control unit in the FPGA controls the switching unit to switch channels, so that the switching unit and each board device can be switched and connected in a time-sharing manner. The control unit can communicate with different board devices via USB at different times, and the firmware upgrade of multiple board devices can be realized without a large number of hub chips, thus avoiding the waste of hardware resources. Based on the parallel processing capability and programmability of FPGA, the personalized needs of multi-board device upgrades are met, and the efficiency and stability of firmware upgrades are improved. BRIEF DESCRIPTION OF THE DRAWINGS

[0041] In order to more clearly illustrate the technical solutions of the embodiments of the present application, the following is a brief introduction to the drawings required for use in the embodiments. It should be understood that the following drawings only show certain embodiments of the present application and therefore should not be regarded as limiting the scope. For ordinary technicians in this field, other relevant drawings can be obtained based on these drawings without creative work.

[0042] Figure 1 A schematic diagram of the server architecture provided in an embodiment of the present application;

[0043] Figure 2 Schematic diagram of the firmware upgrade process provided in this embodiment of the application Figure 1 ;

[0044] Figure 3 Another schematic diagram of the server architecture provided in an embodiment of the present application;

[0045] Figure 4 Schematic diagram of the firmware upgrade process provided in this embodiment of the application Figure 2 ;

[0046] Figure 5 Schematic diagram of the firmware upgrade process provided in this embodiment of the application Figure 3 ;

[0047] Figure 6 A schematic diagram of a switching unit provided in an embodiment of the present application switching to a target channel;

[0048] Figure 7 Schematic diagram of the firmware upgrade process provided in this embodiment of the application Figure 4 ;

[0049] Figure 8 Another schematic diagram of the server architecture provided in an embodiment of the present application;

[0050] Figure 9 Schematic diagram of the firmware upgrade process provided in this embodiment of the application Figure 5 ;

[0051] Figure 10 Schematic diagram of the firmware upgrade process provided in this embodiment of the application Figure 6 ;

[0052] Figure 11 Schematic diagram of the firmware upgrade process provided in this embodiment of the application Figure 7 . DETAILED DESCRIPTION

[0053] In order to make the purpose, technical solutions and advantages of the embodiments of the present application clearer, the technical solutions in the embodiments of the present application will be clearly and completely described below in conjunction with the drawings in the embodiments of the present application. It should be understood that the drawings in the present application only serve the purpose of illustration and description and are not used to limit the scope of protection of the present application. In addition, it should be understood that the schematic drawings are not drawn to scale. The flowcharts used in this application illustrate the operations implemented according to some embodiments of the present application. It should be understood that the operations of the flowcharts can be implemented out of sequence, and steps without logical context can be reversed or implemented simultaneously. In addition, those skilled in the art, under the guidance of the contents of this application, can add one or more other operations to the flowchart, or remove one or more operations from the flowchart.

[0054] In addition, the described embodiments are only a part of the embodiments of the present application, rather than all of the embodiments. The components of the embodiments of the present application generally described and shown in the drawings here can be arranged and designed in various configurations. Therefore, the following detailed description of the embodiments of the present application provided in the drawings is not intended to limit the scope of the application for protection, but merely represents the selected embodiments of the present application. Based on the embodiments of the present application, all other embodiments obtained by those skilled in the art without making creative work are within the scope of protection of the present application.

[0055] It should be noted that the term "comprising" will be used in the embodiments of the present application to indicate the existence of the features declared thereafter, but does not exclude the addition of other features.

[0056] Currently, when upgrading the expansion cards in a server, the firmware upgrade is mainly performed using a high-speed USB interface. Each expansion card is connected to the Hub interface board via USB and communicates with the BMC. When the number of expansion cards reaches hundreds or more, a large number of Hub chips are required, resulting in a large expansion board with high cost, high power consumption, and a high failure rate. In addition, the BMC needs to connect, identify, and manage a large number of USB devices at the same time, resulting in high software complexity. The failure of a single USB device will affect the stability of the entire BMC, increasing the instability of the system and the difficulty of operation and maintenance. The existing technology for upgrading the firmware of each expansion card in a server has certain limitations.

[0057] In response to the aforementioned issues, an embodiment of the present application provides a firmware upgrade method. A set of differential pin pairs of a field programmable gate array (FPGA) is fixedly connected to a baseboard management (BMC), and multiple sets of differential pin pairs of the FPGA are respectively connected to the USB interfaces of multiple board devices. A control unit in the FPGA controls a switching unit to switch channels. The switching unit uses a time-sharing switching connection with each board device to perform time-sharing USB communication with multiple board devices, thereby enabling firmware upgrades for multiple board devices. This method eliminates the need for a large number of hub chips, avoiding waste of hardware resources. Furthermore, the parallel processing capabilities of the FPGA improve the efficiency and stability of firmware upgrades.

[0058] Figure 1 The server architecture diagram provided in the embodiment of the present application is as follows: Figure 1 As shown, the server includes: FPGA, BMC and multiple board devices, wherein the first differential pin pair of FPGA is connected to the BMC, and the multiple second differential pin pairs of FPGA are respectively connected to the USB interfaces of multiple board devices in a one-to-one correspondence; the FPGA includes at least: a control unit and a switching unit.

[0059] Reference Figure 1 The server includes an FPGA, a BMC connected to the FPGA hardware, and multiple board devices. Specifically, the FPGA has a large number of pins. The first differential pin pair of the FPGA is fixedly connected to the BMC via a pair of first differential lines, and the second differential pin pair of the FPGA is connected to the USB interfaces of multiple board devices via multiple pairs of second differential lines in a one-to-one correspondence. In other words, the FPGA is fixedly connected to the BMC and the USB interfaces of multiple board devices in hardware. The FPGA includes at least a control unit and a switching unit connected to the control unit for communication. The control unit uses the switching unit to switch between the board devices in a time-sharing manner, and performs time-sharing USB communication with multiple board devices to achieve firmware upgrades for multiple board devices.

[0060] The BMC receives firmware upgrade data packets from a remote network or a local server, generates upgrade instructions, and sends them to the control unit in the FPGA. Based on the upgrade instructions sent by the BMC, the control unit controls the switching unit to implement channel switching, establishes USB communication with the board to be upgraded through the switched target channel, and receives the upgrade data packets sent by the BMC. These data packets are then sent to the board to be upgraded through the target channel. The board to be upgraded then performs the firmware upgrade based on the upgrade data packets.

[0061] Figure 2 Schematic diagram of the firmware upgrade process provided in this embodiment of the application Figure 1 , the execution subject of this method is Figure 1 The FPGA described. Figure 2 As shown, the method includes:

[0062] S101: The control unit receives an upgrade instruction sent by the BMC.

[0063] Optionally, the BMC receives an upgrade data packet of the firmware file from a remote network or a local server and verifies the integrity of the received upgrade data packet using a checksum of the upgrade data packet. If the upgrade data packet passes the integrity check, the BMC stores the upgrade data packet, initiates the firmware upgrade, and generates an upgrade instruction.

[0064] Continue to refer to Figure 1 The BMC communicates with the FPGA via a first differential line connected between the BMC's USB interface and the FPGA's first differential pin pair, sending the upgrade instruction to the FPGA. The control unit in the FPGA receives the upgrade instruction sent by the BMC by communicating with the FPGA's first differential pin.

[0065] S102. The control unit controls the switching unit to switch to the target channel according to the upgrade instruction, and establishes USB communication with the board device to be upgraded through the target channel. The target channel includes: the underlying transceiver of the switching unit, the target differential pin pair, and the target USB interface connected to the target differential pin pair, wherein the target differential pin pair is a second differential pin pair.

[0066] Optionally, the switching unit integrates the underlying transceiver ( Figure 1(not shown), the underlying transceiver integrated in the switching unit can perform high-speed (such as 480Mbps) data transmission. Based on the upgrade instruction issued by the BMC, the control unit controls the switching unit to perform time-sharing switching and switches to the target channel, so that the underlying transceiver of the switching unit is switched to connect to the target differential pin pair and the target USB interface connected to the target differential pin pair, forming the target channel of the underlying transceiver-target differential pin pair-target USB interface of the switching unit. After the switching unit switches to the target channel, the control unit establishes USB communication with the board device to be upgraded through the target channel, so as to perform USB data transmission with the board device to be upgraded based on the target channel. Among them, the target differential pin pair is a second differential pin pair, and the target USB interface is the USB interface of the board device to be upgraded that is fixedly connected to the target differential pin pair.

[0067] For example, continue to refer to Figure 1 There are N board devices in the server. If the board device to be upgraded is board device 2, the target USB interface is the USB interface of board device 2, and the target differential pin pair is the second differential pin pair on the FPGA that is fixedly connected to the USB interface of board device 2. At this time, the switching unit switches to the target channel through time-sharing switching, that is, the underlying transceiver integrated in the switching unit is connected to the second differential pin pair that is fixedly connected to the USB interface of board device 2, and forms a target channel together with the target differential pin pair (the second differential pin pair on the FPGA that is fixedly connected to the USB interface of board device 2) and the target USB interface (the USB interface of board device 2).

[0068] S103: The control unit receives the upgrade data packet sent by the BMC, and sends the upgrade data packet to the board device to be upgraded through the target channel, so that the board device to be upgraded upgrades its firmware based on the upgrade data packet.

[0069] Optionally, after the control unit establishes USB communication with the board device to be upgraded through the target channel, it continues to receive upgrade data packets issued by the BMC, and sends the upgrade data to the board device to be upgraded through the target channel. The board device to be upgraded performs firmware upgrade operations based on the received upgrade data packets.

[0070] Among them, continue to refer to Figure 1 The FPGA also includes random-access memory (RAM), which is connected to the control unit. The BMC can distribute upgrade data packets in packets. The control unit stores the multiple upgrade data packets distributed by the BMC in RAM, caching the data in RAM to achieve buffering of the upgrade data packets. Simultaneously, based on the cached data in RAM, the control unit distributes multiple upgrade data packets in packets to the board to be upgraded via the target channel.

[0071] It is worth noting that the plurality of second differential pin pairs of the FPGA can also be connected to the integrated circuit buses (ICs) of the plurality of board devices. 2 C) interface or serial peripheral interface (Serial Peripheral Interface, referred to as SPI) one-to-one connection, with multiple board devices to perform time-sharing switching serial port communication, so as to achieve the firmware upgrade of board devices with different interface types. 2 C interface, the target channel includes: the underlying transceiver of the switching unit, the target differential pin pair, and the target I 2 When each board device is an SPI, the target channel includes: an underlying transceiver of the switching unit, a target differential pin pair, and a target SPI connected to the target differential pin pair.

[0072] In this embodiment, the first differential pin pair of the FPGA on the server is connected to the BMC on the server, and the multiple groups of second differential pin pairs of the FPGA are respectively connected to the USB interfaces of multiple board devices in a one-to-one correspondence. The control unit in the FPGA receives the upgrade instruction sent by the BMC and, based on the upgrade instruction, controls the switching unit in the FPGA to perform time-sharing switching of the channel, switching to the target channel, so that the underlying transceiver integrated in the switching unit, the target differential pin pair, and the target USB interface of the board device to be upgraded connected to the target differential pin pair form the target channel. The control unit establishes USB communication with the board device to be upgraded through the target channel, receives the upgrade data packet sent by the BMC, and forwards the upgrade data packet to the board device to be upgraded through the target channel, so that the board device to be upgraded upgrades its firmware based on the upgrade data packet. The control unit in the FPGA controls the switching unit to switch channels, so that the switching unit and each board device can be switched and connected in a time-sharing manner. The control unit can communicate with different board devices via USB at different times, and the firmware upgrade of multiple board devices can be realized without a large number of hub chips, thus avoiding the waste of hardware resources. Based on the parallel processing capability and programmability of FPGA, the personalized needs of multi-board device upgrades are met, and the efficiency and stability of firmware upgrades are improved.

[0073] Figure 3 Another schematic diagram of the server architecture provided in the embodiment of the present application is as follows: Figure 3 As shown, the FPGA further includes at least: a USB slave end functional module; the USB slave end functional module is communicatively connected with the BMC and the control unit respectively.

[0074] Optionally, refer to Figure 3,FPGA also includes a USB slave-end functional module. The USB slave-end functional module enables FPGA to function as a USB slave device. FPGA can use BMC as the USB host device of FPGA, that is, FPGA as the USB slave device of BMC, and perform USB communication with the USB host device of FPGA, that is, BMC.

[0075] The USB slave-end functional module is respectively connected to the BMC and the control unit for communication, and data transmission between the BMC and the control unit can be achieved through the USB slave-end functional module.

[0076] The following describes in detail the process of the control unit receiving the upgrade data packet sent by the BMC.

[0077] Figure 4 Schematic diagram of the firmware upgrade process provided in this embodiment of the application Figure 2 ,like Figure 4 As shown, in the above step S103, the control unit receives the upgrade data packet sent by the BMC, including:

[0078] S201 : The USB slave function module receives an upgrade data packet sent by the BMC, and sends the upgrade data packet to the control unit.

[0079] Optionally, a static random access memory (SRAM) interface of the USB slave-end functional module is connected to the control unit, and a bottom-layer transceiver integrated in the USB slave-end functional module is connected to the USB interface of the BMC.

[0080] The BMC, acting as the FPGA's USB host, sequentially sends multiple upgrade packets to the FPGA's USB slave module via the BMC's USB interface, the FPGA's first differential pin pair, and the underlying transceiver integrated in the USB slave module. The USB slave module then sends these upgrade packets to the control unit via the SRAM interface.

[0081] S202: The control unit receives and stores the upgrade data packet sent by the USB slave functional module.

[0082] Optionally, the control unit receives multiple upgrade data packets sent by the USB slave functional module, and stores the multiple upgrade data packets in RAM in sequence for data caching.

[0083] It is worth noting that when the control unit receives the upgrade instruction sent by the BMC in the above step S101, it is also implemented through the USB slave-end functional module. The USB slave-end functional module receives the upgrade instruction sent by the BMC and sends the upgrade instruction to the control unit. Specifically, the BMC acts as the USB host of the FPGA and sends the upgrade instruction to the USB slave-end functional module in the FPGA through the USB interface of the BMC, the first differential pin pair of the FPGA, and the underlying transceiver integrated in the USB slave-end functional module. The USB slave-end functional module sends the upgrade instruction to the control unit through the SRAM interface.

[0084] In this embodiment, the USB slave-end functional module in the FPGA enables the FPGA to function as a USB slave device, with the BMC acting as the FPGA's USB host and the FPGA acting as the BMC's USB slave device. The FPGA and the BMC communicate via USB through the USB slave-end functional module. The USB slave-end functional module is respectively connected to the BMC and the control unit for communication, and data transmission between the BMC and the control unit can be achieved through the USB slave-end functional module. The BMC, acting as the FPGA's USB host, sends the upgrade data packet to the USB slave-end functional module in the FPGA, and the USB slave-end functional module sends the upgrade data packet to the control unit, which receives and stores the upgrade data packet sent by the USB slave-end functional module. USB communication between the BMC and the control unit is achieved through the USB slave-end functional module.

[0085] The following describes in detail the process in which the control unit controls the switching unit to switch to the target channel according to the upgrade instruction.

[0086] Figure 5 Schematic diagram of the firmware upgrade process provided in this embodiment of the application Figure 3 ,like Figure 5 As shown, in the above step S102, the control unit controls the switching unit to switch to the target channel according to the upgrade instruction, including:

[0087] S301: The control unit determines the target channel identifier of the board device to be upgraded according to the upgrade instruction.

[0088] Optionally, the control unit determines a target channel identifier for the board device to be upgraded based on the received upgrade instruction. The channel identifier may be a unique channel number used to identify each channel. By determining the target channel identifier for the board device to be upgraded, the control unit can provide a clear switching target for subsequent channel switching operations of the switching unit.

[0089] S302: The control unit generates a channel switching instruction according to the target channel identifier of the board device to be upgraded and sends the instruction to the switching unit.

[0090] Optionally, after determining the target channel identifier of the board device to be upgraded, the control unit generates a channel switching instruction according to the target channel identifier, wherein the channel switching instruction may include the number of the target differential pin pair.

[0091] The switching unit can be connected to the control unit via a parallel port through an eight-bit data bus. After the control unit generates a channel switching instruction, it communicates with the switching unit via a parallel port and sends the channel switching instruction to the switching unit to indicate the target differential pin pair in the target channel that the switching unit needs to switch to.

[0092] S303. The switching unit receives a channel switching instruction, and according to the channel switching instruction, disconnects the communication connection between the underlying transceiver of the switching unit and the second differential pin pair in the current channel, and establishes a communication connection between the underlying transceiver of the switching unit and the target differential pin pair in the target channel.

[0093] Optionally, after receiving the channel switching instruction, the switching unit will first disconnect the connection between the underlying transceiver integrated in the switching unit and the second differential pin pair in the current channel. Then, based on the number of the target differential pin pair in the channel switching instruction, the switching unit establishes a communication connection between its underlying transceiver and the target differential pin pair in the target channel, so that at the same time the switching unit is only communicated with the board device through one channel, ensuring the correct time-sharing switching of the channel, and further ensuring the correct time-sharing switching of the communication object of the switching unit, that is, the board device.

[0094] For example, Figure 6 Schematic diagram of the switching unit provided in the embodiment of the present application switching to the target channel, refer to Figure 6 and Figure 3 In the current channel, the underlying transceiver integrated on the switching unit is connected to the second differential pin pair connected to the USB interface of the board device 1, that is, the current channel includes: the underlying transceiver of the switching unit, the second differential pin pair connected to the USB interface of the board device 1, and the USB interface of the board device 1. After receiving the channel switching instruction, the switching unit will first disconnect the underlying transceiver of the switching unit in the current channel from the second differential pin pair connected to the USB interface of the board device 1, and establish a communication connection between the underlying transceiver of the switching unit in the target channel and the target differential pin pair of the target USB interface connected to the board device 2 (the board device to be upgraded) based on the number of the target differential pin pair in the channel switching instruction, so that the switching unit switches from communicating with the board device 1 through the current channel to communicating with the board device 2 through the target channel. By switching channels, the switching module accurately switches the board device with which it communicates.

[0095] In this embodiment, the control unit determines the target channel identifier of the board device to be upgraded based on the received upgrade instruction. The channel identifier is a unique channel number used to identify each channel. The target channel identifier provides a clear switching target for the switching unit's channel switching operation. The control unit generates a channel switching instruction based on the target channel identifier and sends it to the switching unit. The channel switching instruction may include the number of the target differential pin pair to indicate the target differential pin pair in the target channel to which the switching unit should switch. Upon receiving the channel switching instruction, the switching unit first disconnects the underlying transceiver in the switching unit from the second differential pin pair in the current channel. Then, based on the target differential pin pair number in the channel switching instruction, it establishes a communication connection between the underlying transceiver and the target differential pin pair in the target channel. At any given time, the switching unit communicates with the board device through only one channel, ensuring correct time-sharing switching of the channel and, consequently, correct time-sharing switching of the board device to which the switching unit communicates. By switching the connection relationship between its underlying transceiver and different differential pin pairs of the FPGA, the switching unit achieves time-sharing connections with different board devices.

[0096] The following describes in detail the process of the control unit determining the target channel identifier of the board device to be upgraded according to the upgrade instruction.

[0097] Figure 7 Schematic diagram of the firmware upgrade process provided in this embodiment of the application Figure 4 ,like Figure 7 As shown, in the above step S301, the control unit determines the target channel identifier of the board device to be upgraded according to the upgrade instruction, including:

[0098] S401: The control unit determines the device identification of the board device to be upgraded according to the upgrade instruction.

[0099] Optionally, the control unit parses the upgrade instruction received from the BMC and extracts the device identifier of the board to be upgraded from the upgrade instruction. The device identifier is unique identification information for each board, and may be the board serial number, so that the control unit can accurately identify the board to be upgraded based on the device identifier.

[0100] For example, continue to refer to Figure 3 According to the upgrade instruction, the control unit can extract the device identifier of the board device to be upgraded as "2", that is, determine that the board device 2 is the board device to be upgraded.

[0101] S402: The control unit uses the device identifier of the board device to be upgraded as the target channel identifier of the board device to be upgraded.

[0102] Optionally, the control unit uses the device identification of the board device to be upgraded as its target channel identification, wherein the device identification of each board device and its channel identification are in a one-to-one correspondence, and the corresponding communication channel can be determined through the device identification of the board device.

[0103] For example, the target channel identifier of the board device to be upgraded, whose device identifier is “2”, is also “2”.

[0104] By associating the device identifier of the board device with the target channel identifier, when a new board device needs to be added to the server, it is only necessary to assign a unique device identifier to the new device and establish a corresponding relationship between it and the channel identifier. The control unit and the switching unit can then upgrade the new board device by switching the channel in a time-sharing manner for USB communication, facilitating the expansion and upgrade of the board devices on the server.

[0105] In this embodiment, the control unit parses the upgrade instruction and extracts the device identification of the board device to be upgraded from the upgrade instruction, so that the control unit can accurately identify the board device to be upgraded based on the device identification. The control unit uses the device identification of the board device to be upgraded as the target channel identification of the board device to be upgraded, wherein the device identification of each board device and its channel identification are in a one-to-one correspondence, and the corresponding communication channel can be determined by the device identification of the board device. This enables the control unit to accurately identify the board device to be upgraded. By associating the device identification of the board device with the target channel identification, it facilitates the expansion and upgrade of the board device on the server, improves the accuracy of channel switching, and thus improves the accuracy of firmware upgrades.

[0106] Figure 8 Another schematic diagram of the server architecture provided in the embodiment of the present application is as follows: Figure 8 As shown, the FPGA further includes at least: a USB host-side functional module; the USB host-side functional module is communicatively connected to the control unit and the switching unit respectively.

[0107] Optionally, refer to Figure 8 The FPGA also includes a USB host-side functional module. The USB slave-side functional module enables the FPGA to function as a USB host device and to treat each board device as a USB slave device of the FPGA. Based on the USB host-side functional module, the FPGA can function as a USB host device and conduct USB communication with each USB slave device (i.e., each board device) connected to the FPGA, thereby actively controlling and managing each board device connected to the FPGA.

[0108] The USB host functional module is respectively connected to the control unit and the switching unit for communication. The USB host functional module can realize USB communication between the control unit and the board device to be upgraded connected to the switching unit through the target channel.

[0109] As an optional implementation, in step S102, establishing USB communication with the board device to be upgraded through the target channel includes:

[0110] The USB host-side functional module enumerates the board device to be upgraded through the target channel, obtains the device descriptor of the board device to be upgraded, puts the board device to be upgraded into the configuration state, and establishes a USB communication connection between the underlying transceiver of the switching unit, the target differential pin pair and the target USB interface.

[0111] Optionally, the SRAM interface of the USB host-side functional module is connected to the control unit, and the USB 2.0 transceiver macrocell interface (enhanced version) low pin count interface (UTMI+Low Pin Interface, abbreviated as ULPI) of the USB host-side functional module is connected to the ULPI interface of the switching unit, where UTMI is a USB 2.0 transceiver macrocell interface (USB 2.0 Transceiver Macrocell Interface; "+" indicates enhancement or improvement based on UTMI.

[0112] The USB host functional module enumerates the board device to be upgraded through its ULPI interface, the ULPI interface of the switching unit and the target channel, including sending a series of requests to the board device to be upgraded, obtaining the device descriptor of the board device to be upgraded (such as device type, manufacturer information, product information, etc.), allocating a unique communication address for the board device to be upgraded, and determining the configuration and interface supported by the board device to be upgraded, so that the board device to be upgraded is in a configuration state.

[0113] That is, device enumeration is the process of the USB host-side functional module identifying and configuring the board device to be upgraded. The board device to be upgraded being in the configuration state indicates that the board device to be upgraded is ready for USB communication.

[0114] The switching unit's underlying transceiver receives and transmits data. The target differential pin pair serves as the physical path for data transmission, and the target USB interface connects the target differential pin pair to the upgraded card. After the USB host-side functional module completes enumeration and configuration of the upgraded card, a USB communication connection is established between the switching unit's underlying transceiver, the target differential pin pair, and the target USB interface. The control unit can then communicate with the upgraded card via the target channel.

[0115] It is worth noting that if the plurality of second differential pin pairs of the FPGA are respectively connected to the abbreviations I 2 C interface or SPI is connected one by one to perform serial communication with multiple board devices in time-sharing switching, there is no need to set up a USB host-side function module in the FPGA, nor is there any need to enumerate and configure the board devices to be upgraded. The control module can directly perform serial communication with the board device to be upgraded through the serial communication connection between the underlying transceiver of the switching module, the target differential pin pair and the target USB interface.

[0116] In this embodiment, the USB slave-side functional module enables the FPGA to function as a USB host device and configures each board device as a USB slave device of the FPGA. The USB host-side functional module is communicatively connected to the control unit and the switching unit, respectively. The USB host-side functional module enables USB communication between the control unit and the board device to be upgraded, which is connected to the switching unit via a target channel. The USB host-side functional module enumerates the board device to be upgraded via the target channel, obtains the device descriptor of the board device to be upgraded, places the board device to be upgraded in a configuration state, and establishes a USB communication connection between the underlying transceiver, target differential pin pair, and target USB interface of the switching unit. The board device to be upgraded being in the configuration state indicates that the board device to be upgraded is ready for USB communication. After the USB host-side functional module completes the enumeration and configuration of the board device to be upgraded, a USB communication connection is established between the underlying transceiver, target differential pin pair, and target USB interface of the switching unit. The USB host-side functional module enables USB communication between the control unit and the board device to be upgraded via the target channel.

[0117] The following describes in detail the process in which the USB host-side functional module enumerates the to-be-upgraded card device through the target channel, obtains the device descriptor of the to-be-upgraded card device, and places the to-be-upgraded card device in a configuration state.

[0118] Figure 9 Schematic diagram of the firmware upgrade process provided in this embodiment of the application Figure 5 ,like Figure 9 As shown, in the above steps, the USB host-side functional module enumerates the board device to be upgraded through the target channel, obtains the device descriptor of the board device to be upgraded, and puts the board device to be upgraded into a configuration state, including:

[0119] S501. The USB host-side functional module sends a reset signal to the to-be-upgraded card device through a target channel, so that the to-be-upgraded card device is in a default state. When the to-be-upgraded card device is in the default state, the address of the to-be-upgraded card device is a default address.

[0120] Optionally, the USB host functional module sends a low-level reset signal lasting at least 10ms to the card device to be upgraded through the target channel, so that the card device to be upgraded enters a default state after receiving the low-level reset signal, that is, the address of the card device to be upgraded is a default address. Exemplarily, the default address of the card device to be upgraded can be 0.

[0121] During the reset process, the USB host module determines whether to communicate with the device being upgraded, using low-speed, full-speed, or high-speed based on the voltage level changes on the differential lines in the target channel. By detecting these voltage level changes, the USB host module and the device being upgraded can reach a consistent communication speed, enabling speed negotiation during the reset process.

[0122] S502 : The USB host functional module obtains the device descriptor of the to-be-upgraded card device through the default address and the target channel, and allocates a target address for the to-be-upgraded card device according to the device descriptor of the to-be-upgraded card device.

[0123] Optionally, when the address of the card device to be upgraded is the default address, the USB host function module sends a GET_DESCRIPTOR request and an 8-byte SETUP packet to the card device to be upgraded, using the default address and target channel, to request the device descriptor for the card device to be upgraded. The SETUP packet contains information such as the request type and descriptor type. After receiving the GET_DESCRIPTOR request and SETUP packet, the card device to be upgraded returns its own device descriptor, which contains manufacturer information, product information, device type, and protocol version.

[0124] Based on the device descriptor obtained for the card to be upgraded, the USB host module sends a SET_ADDRESS request to the card to be upgraded through the target channel. This request assigns a unique address between 1 and 127 to the card to be upgraded as the target address. After receiving the SET_ADDRESS request, the card to be upgraded saves the assigned target address. Subsequent communications between the card to be upgraded and the USB host module will use this new target address, replacing the default address.

[0125] S503, the USB host functional module obtains the configuration information of the board device to be upgraded through the target address and the target channel, and sends a configuration activation request to the board device to be upgraded according to the configuration information of the board device to be upgraded, so that the board device to be upgraded is in a configuration state.

[0126] Optionally, the USB host-side functional module sends a GET_DESCRIPTOR request to the card device to be upgraded, using the target address and target channel, to request complete configuration information for the card device to be upgraded. The configuration information includes interface information, endpoint information, and endpoint descriptors. The interface information represents the multiple interface functions included in each configuration information, the endpoint information represents the multiple endpoints included in each interface, and the endpoint descriptor defines the transmission type, transmission direction, and packet size. For example, the transmission type can be control, interrupt, bulk, or isochronous.

[0127] Based on the configuration information obtained from the card device to be upgraded, the USB host functional module selects an appropriate configuration, such as the first configuration (Configuration 1), and sends a configuration activation request to the card device to be upgraded, using the target address and target channel to activate the configuration of the card device to be upgraded. The configuration activation request can be a SET_CONFIGURATION request. After receiving the configuration activation request, the card device to be upgraded enters the configured state (ConfiguredState). The endpoint of the card device to be upgraded is ready for USB communication with the control unit via the target channel.

[0128] In this embodiment, the USB host-side functional module sends a reset signal to the board-card device to be upgraded through the target channel, so that the board-card device to be upgraded is in the default state, and negotiates the communication speed with the board-card device to be upgraded during the reset process; wherein, when the board-card device to be upgraded is in the default state, the address of the board-card device to be upgraded is the default address. The USB host-side functional module obtains the device descriptor of the board-card device to be upgraded through the default address and the target channel, and assigns a target address to the board-card device to be upgraded based on the device descriptor of the board-card device to be upgraded. The USB host-side functional module obtains the configuration information of the board-card device to be upgraded through the target address and the target channel, and sends a configuration activation request to the board-card device to be upgraded based on the configuration information of the board-card device to be upgraded, so that the board-card device to be upgraded is in the configuration state. The endpoint of the board-card device to be upgraded in the configuration state is ready. The enumeration and configuration activation of the board-card device to be upgraded are realized through the USB host-side functional module, so that the board-card device to be upgraded can perform normal USB communication with the control unit.

[0129] The following describes in detail the process of sending the upgrade data packet to the board device to be upgraded through the target channel.

[0130] Figure 10 Schematic diagram of the firmware upgrade process provided in this embodiment of the application Figure 6 ,like Figure 10As shown, the above step S103 sends the upgrade data packet to the board device to be upgraded through the target channel, including:

[0131] S601: The control unit determines the target download protocol of the board device to be upgraded according to the upgrade instruction.

[0132] Optionally, different board devices may need to use different download protocols for data transmission due to factors such as their hardware architecture and software design, so as to ensure that the upgrade data packet can be accurately and efficiently transmitted to the board device.

[0133] After receiving the upgrade instruction, the control unit parses it in detail and extracts the device ID of the board to be upgraded. Based on the device ID of the board to be upgraded, the control unit searches a pre-built mapping table for the target download protocol that corresponds to the device ID of the board to be upgraded. The mapping table contains the correspondence between the device ID of each board and the download protocol.

[0134] S602: The control unit sends the upgrade data packet to the USB host functional module according to the target download protocol.

[0135] Optionally, after determining the target download protocol, the control unit encapsulates and processes the upgrade data packet according to the rules of the target download protocol. For example, it adds information such as a protocol header and a checksum to ensure the integrity and accuracy of the upgrade data packet during transmission. The control unit then transmits the processed upgrade data packet to the USB host-side functional module, thereby enabling transmission of the upgrade data packet from the control unit to the USB host-side functional module.

[0136] S603: The USB host functional module sends the upgrade data packet to the switching unit.

[0137] Optionally, the USB host-side functional module further processes the received processed upgrade data packet according to the USB communication protocol, and forwards the further processed upgrade data packet to the switching unit.

[0138] Among them, the USB host functional module acts as an intermediate bridge, connecting the control unit and the switching unit, and realizing the transmission of upgrade data packets between the two units.

[0139] S604: The switching unit sends the upgrade data packet to the board device to be upgraded in the configuration state through the target channel.

[0140] Optionally, after receiving the upgrade data packet sent by the USB host functional module, the switching unit accurately sends the upgrade data packet to the card device to be upgraded that is in the configuration state according to the previously switched target channel. Since the card device to be upgraded is already in the configuration state, it can correctly receive and process the upgrade data packet.

[0141] Based on this, the upgrade data packet is transmitted from the control unit to the USB host functional module, the switching unit, and the board device to be upgraded, so that the board device to be upgraded can receive the data required for the upgrade, thereby realizing the firmware upgrade.

[0142] In this embodiment, the control unit extracts the device identification of the board device to be upgraded based on the upgrade instruction, and determines the target download protocol corresponding to the device identification of the board device to be upgraded. The control unit encapsulates and processes the upgrade data packet according to the rules of the target download protocol, and sends the processed upgrade data packet to the USB host-side functional module. The USB host-side functional module further processes the received processed upgrade data packet according to the USB communication protocol and forwards it to the switching unit. After receiving the upgrade data packet sent by the USB host-side functional module, the switching unit accurately sends the upgrade data packet to the board device to be upgraded in the configuration state according to the target channel previously switched. The transmission of the upgrade data packet from the control unit to the USB host-side functional module, the switching unit, and the board device to be upgraded is realized, ensuring the integrity and accuracy of data transmission.

[0143] Figure 11 Schematic diagram of the firmware upgrade process provided in this embodiment of the application Figure 7 ,like Figure 11 As shown, the method further includes:

[0144] S701: The control unit receives a file verification code and version information sent by a board device to be upgraded after the board device upgrades its firmware.

[0145] Optionally, after the firmware upgrade is completed based on the upgrade data packet, the upgraded board device will provide a file verification code and version information to the control unit via the target channel. The file verification code is used to verify the integrity and accuracy of the upgraded firmware. The version information represents the current firmware version number of the upgraded board device after the firmware upgrade, reflecting the firmware update level. The control unit receives the file verification code and version information to determine whether the firmware upgrade of the upgraded board device is successful.

[0146] S702: The control unit generates an upgrade prompt message based on the file verification code and version information and sends the message to the BMC to prompt the BMC whether the firmware of the board device to be upgraded is successfully upgraded.

[0147] Optionally, after receiving the file verification code and version information, the control unit compares the received file verification code with a preset verification code and checks whether the version information is the target upgrade version. If the file verification code is correct and the version information is the target upgrade version, it indicates that the firmware upgrade of the board device to be upgraded is successful; otherwise, it indicates that the upgrade has failed.

[0148] The control unit generates corresponding upgrade prompt information based on the comparison results and feeds this prompt information back to the BMC through the USB slave function module to prompt the BMC whether the firmware of the board device to be upgraded has been successfully upgraded. Based on this, the BMC can record and manage the firmware upgrade status of each board device on the entire server. Among them, the upgrade prompt information can include upgrade success prompt information and upgrade failure prompt information. After receiving the upgrade failure prompt information, the BMC can retry the operation and display an error code after a preset number of retries fail. After receiving the upgrade success prompt information, the BMC can continue to upgrade the firmware of the next board device until the firmware upgrade of all board devices is completed and exit the upgrade task.

[0149] In this embodiment, the control unit receives the file verification code and version information fed back by the board to be upgraded after completing the firmware upgrade based on the upgrade data packet. The control unit compares the file verification code and version information, generates an upgrade prompt based on the comparison result, and sends it to the BMC to inform the BMC whether the firmware of the board to be upgraded has been successfully upgraded. This allows the BMC to clearly understand the upgrade status of each board and record and manage the firmware upgrade status of each board on the entire server.

[0150] An embodiment of the present application further provides a field programmable gate array (FPGA), which includes at least: a control unit and a switching unit; the FPGA is used to execute the steps of the firmware upgrade method described in the aforementioned embodiment.

[0151] An embodiment of the present application also provides a server, comprising the field programmable gate array FPGA, a baseboard management controller BMC, and multiple board devices described in the aforementioned embodiment, wherein the first differential pin on the FPGA is connected to the BMC, and the multiple second differential pins of the FPGA are respectively connected one-to-one with the universal serial bus USB interfaces of the multiple board devices.

[0152] Those skilled in the art can clearly understand that, for the convenience and brevity of description, the specific working process of the system and device described above can refer to the corresponding process in the method embodiment, and will not be repeated in this application. In the several embodiments provided in this application, it should be understood that the disclosed system, device and method can be implemented in other ways. The device embodiments described above are merely schematic. For example, the division of the modules is only a logical function division. There may be other division methods in actual implementation. For example, multiple modules or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some communication interfaces, indirect coupling or communication connection of devices or modules, which can be electrical, mechanical or other forms.

[0153] In addition, the functional units in the various embodiments of the present application can be integrated into a processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. If the function is implemented in the form of 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 the present application is essentially or the part that contributes to the prior art or the part of the technical solution can be embodied in the form of a software product, which is stored in a storage medium and includes several instructions for enabling a computer device (which can be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the method described in the various embodiments of the present application. The aforementioned storage medium includes various media that can store program codes, such as a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk.

[0154] The above is only a specific implementation method of the present application, but the protection scope of the present application is not limited thereto. Any technician familiar with this technical field can easily think of changes or replacements within the technical scope disclosed in this application, which should be covered by the protection scope of the present application.

Claims

1. A firmware upgrade method, characterized in that: A field programmable gate array (FPGA) is applied to a server, the server comprising: the FPGA, a baseboard management controller (BMC), and multiple board devices, wherein a first differential pin pair of the FPGA is connected to the BMC, and multiple second differential pin pairs of the FPGA are respectively connected to universal serial bus (USB) interfaces of multiple board devices in a one-to-one correspondence; the FPGA comprises at least: a control unit and a switching unit; and the method comprises: The control unit receives an upgrade instruction sent by the BMC; The control unit controls the switching unit to switch to a target channel according to the upgrade instruction, and establishes USB communication with the board device to be upgraded through the target channel, wherein the target channel includes: an underlying transceiver of the switching unit, a target differential pin pair, and a target USB interface connected to the target differential pin pair, wherein the target differential pin pair is one of the second differential pin pairs; The control unit receives the upgrade data packet sent by the BMC, and sends the upgrade data packet to the board device to be upgraded through the target channel, so that the board device to be upgraded upgrades its firmware based on the upgrade data packet.

2. The method according to claim 1, characterized in that The FPGA further includes at least: a USB slave end functional module; the USB slave end functional module is respectively connected to the BMC and the control unit for communication; The control unit receives the upgrade data packet sent by the BMC, including: The USB slave function module receives the upgrade data packet sent by the BMC and sends the upgrade data packet to the control unit; The control unit receives and stores the upgrade data packet sent by the USB slave functional module.

3. The method according to claim 1, characterized in that The control unit controls the switching unit to switch to the target channel according to the upgrade instruction, including: The control unit determines the target channel identifier of the board device to be upgraded according to the upgrade instruction; The control unit generates a channel switching instruction according to the target channel identifier of the board device to be upgraded and sends the channel switching instruction to the switching unit; The switching unit receives the channel switching instruction, and according to the channel switching instruction, disconnects the communication connection between the underlying transceiver of the switching unit and the second differential pin pair in the current channel, and establishes a communication connection between the underlying transceiver of the switching unit and the target differential pin pair in the target channel.

4. The method according to claim 3, characterized in that The control unit determines the target channel identifier of the board device to be upgraded according to the upgrade instruction, including: The control unit determines the device identification of the board device to be upgraded according to the upgrade instruction; The control unit uses the device identifier of the board device to be upgraded as the target channel identifier of the board device to be upgraded.

5. The method according to claim 1, wherein The FPGA further comprises at least: a USB host-side functional module; the USB host-side functional module is communicatively connected to the control unit and the switching unit respectively; The step of establishing USB communication with the board device to be upgraded through the target channel includes: The USB host-side functional module enumerates the board device to be upgraded through the target channel, obtains the device descriptor of the board device to be upgraded, puts the board device to be upgraded into a configuration state, and establishes a USB communication connection between the underlying transceiver of the switching unit, the target differential pin pair, and the target USB interface.

6. The method according to claim 5, characterized in that The USB host-side functional module enumerates the to-be-upgraded card device through the target channel, obtains the device descriptor of the to-be-upgraded card device, and puts the to-be-upgraded card device into a configuration state, including: The USB host-side functional module sends a reset signal to the to-be-upgraded card device through the target channel, so that the to-be-upgraded card device is in a default state; wherein, when the to-be-upgraded card device is in the default state, the address of the to-be-upgraded card device is a default address; The USB host-side functional module obtains the device descriptor of the to-be-upgraded card device through the default address and the target channel, and allocates a target address to the to-be-upgraded card device according to the device descriptor of the to-be-upgraded card device; The USB host-side functional module obtains the configuration information of the board device to be upgraded through the target address and the target channel, and sends a configuration activation request to the board device to be upgraded based on the configuration information of the board device to be upgraded, so that the board device to be upgraded is in a configuration state.

7. The method according to claim 5, characterized in that The step of sending the upgrade data packet to the board device to be upgraded through the target channel includes: The control unit determines the target download protocol of the board device to be upgraded according to the upgrade instruction; The control unit sends the upgrade data packet to the USB host functional module according to the target download protocol; The USB host-side functional module sends the upgrade data packet to the switching unit; The switching unit sends the upgrade data packet to the board device to be upgraded in the configuration state through the target channel.

8. The method according to claim 1, characterized in that The method further comprises: The control unit receives the file verification code and version information sent by the board device to be upgraded after the firmware is upgraded; The control unit generates upgrade prompt information according to the file verification code and the version information and sends the information to the BMC to prompt the BMC whether the firmware of the board device to be upgraded is successfully upgraded.

9. A field programmable gate array, characterized in that: A field programmable gate array (FPGA) comprises at least: a control unit and a switching unit; the FPGA is used to execute the steps of the firmware upgrade method according to any one of claims 1 to 8.

10. A server, characterized in that: It comprises the field programmable gate array FPGA, a baseboard management controller BMC and multiple board devices as described in claim 1, wherein the first differential pin on the FPGA is connected to the BMC, and the multiple second differential pins of the FPGA are respectively connected one-to-one with the universal serial bus USB interfaces of the multiple board devices.

Citation Information

Cited By

  • System, method, device and equipment for upgrading board card firmware of server and medium

    CN120762710A