Firmware information acquisition method and server

By constructing registers on the server motherboard to store firmware information, the problem of incorrect or missed firmware burning in the EEPROM chip of the communication cable module of the entire cabinet-level server is solved, thereby improving communication reliability and reducing costs.

CN115563040BActive Publication Date: 2025-09-16XFUSION DIGITAL TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202211213367.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-09-30
Publication Date
2025-09-16
Estimated Expiration
2042-09-30

AI Technical Summary

Technical Problem

In the prior art, the EEPROM chip in the communication cable module of the whole cabinet-level server is prone to firmware information leakage or incorrect burning, resulting in low communication reliability.

Method used

A register is constructed on the server's mainboard to store the same firmware information as the EEPROM chip. The PLD replaces the function of the EEPROM chip, allowing the network card to read the firmware information directly from the register, ensuring accurate acquisition of the firmware information of the communication cable module.

Benefits of technology

This improves the reliability of server communication, avoids the problem of incorrect or missed burning of EEPROM chip firmware information, and saves the software and hardware costs of the EEPROM chip.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115563040B_ABST
    Figure CN115563040B_ABST
Patent Text Reader

Abstract

An embodiment of the present application discloses a firmware information acquisition method and server. The server includes a network interface card (NIC) and a motherboard. The motherboard includes a programmable logic device (PLD). The PLD includes pre-configured registers for storing firmware information for a communication cable module connected to a main control IC of the NIC. In this method, the NIC sends a firmware information read signal to the PLD. The firmware information read signal is used to read the firmware information of the communication cable module. The firmware information includes protocol parameters supporting the communication cable module. The PLD receives the firmware information read signal and, in response to the firmware information read signal, sends the firmware information to the NIC. In this embodiment of the present application, the NIC can obtain the firmware information of the communication cable module from the PLD, which helps resolve the issue of incorrectly or missingly burning firmware information in the communication cable module.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of server communication technology, and in particular to a firmware information acquisition method and a server. Background Art

[0002] With the rapid development of network communication technology, traditional single-node servers can no longer meet the development needs of high-density computing. Cabinet-level servers have become popular products in the industry due to their high density and easy scalable deployment.

[0003] Currently, cabinet-level servers often use a backplane plus cables for in-cabinet communication media. Therefore, in-cabinet nodes often use network cards for network switching. Before successfully connecting to the switch, the network card needs to read the relevant data stored in the Electrically Erasable Programmable Read-Only Memory (EEPROM) inside the high-speed Direct Attach Cable (DAC) electrical module. The data in the EEPROM usually needs to be burned by the cable manufacturer to ensure the normal operation of the DAC cable electrical module. However, the DAC cables delivered by the cable manufacturer may have problems such as firmware being burned incorrectly or not, resulting in low server communication reliability. Summary of the Invention

[0004] The embodiments of the present application provide a firmware information acquisition method and server, which can improve the reliability of server communication by constructing a register in the PLD of the mainboard to store the firmware information of the communication cable module.

[0005] In a first aspect, an embodiment of the present application provides a method for obtaining firmware information, which is applied to a network card, wherein the network card is connected to a PLD via a first port of the network card, and the network card is connected to a communication cable module via a second port of the network card. The method includes:

[0006] Sending a firmware information reading signal to the PLD, the firmware information reading signal being used to read firmware information of the communication cable module, the firmware information including protocol parameters supporting the communication cable module;

[0007] The firmware information sent by the PLD in response to the firmware information read signal is acquired.

[0008] As can be seen, in the embodiments of the present application, registers can be constructed in the PLD with a storage format identical to that of the EEPROM chip, and the firmware information of the communication cable module can be stored in these registers. Cable manufacturers can then remove the EEPROM chip from the communication cable module and replace the EEPROM chip's functionality with the registers in the PLD. The network card sends a firmware information read signal to the PLD, and the PLD transmits the corresponding firmware information to the network card. This allows the network card to effectively retrieve the firmware information even if the firmware information in the communication cable module is incorrectly or not burned, ensuring that the network card can communicate with other devices, thereby improving the reliability of server communications.

[0009] In some possible implementations, the second port of the network card includes a position pin connected to the PLD. The position pin is used to send a position signal of the communication cable module to the PLD when the communication cable module is inserted into the second port.

[0010] It can be seen that in this implementation, when the communication cable module is inserted into the second port, the presence pin of the second port sends a presence signal of the communication cable module to the PLD. The PLD can then determine the type of the communication cable module through the presence signal, and then determine the register that needs to be read based on the type of the communication cable module and the firmware information reading signal, so as to send the firmware information in the register to the network card.

[0011] In some possible implementations, the firmware information reading signal is transmitted via an I2C bus, a UART asynchronous communication line, or an SPI serial communication line.

[0012] It can be seen that in this implementation, since the PLD constructs registers with the same storage format as the EEPROM chip, the network card and the PLD can communicate through any of the I2C bus, UART asynchronous communication line, and SPI serial port communication line transmission methods.

[0013] In some possible implementations, the communication cable module includes at least one of an electrical module for a DAC cable and an optical module for an optical fiber.

[0014] It can be seen that this implementation is applicable to various communication cable modules, such as the electrical module of the DAC cable and the optical module of the optical fiber.

[0015] In a second aspect, an embodiment of the present application provides a firmware information acquisition method, which is applied to a PLD, wherein the PLD is connected to a network card via a first port of the network card, and the network card is connected to a communication cable module via a second port of the network card. The method includes:

[0016] Obtaining a firmware information reading signal sent by the network card, where the firmware information reading signal is used to read firmware information of the communication cable module, where the firmware information includes protocol parameters supporting the communication cable module;

[0017] In response to the firmware information read signal, the firmware information is sent to the network card.

[0018] As can be seen, in the embodiments of the present application, registers with a storage format identical to that of the EEPROM chip can be constructed in the PLD, and the firmware information of the communication cable module can be stored in these registers. Cable manufacturers can then remove the EEPROM chip from the communication cable module and replace the EEPROM chip's functionality with the registers in the PLD. The network card sends a firmware information read signal to the PLD, and the PLD sends the corresponding firmware information to the network card. Thus, even if the firmware information in the communication cable module is incorrectly burned or omitted, the network card can effectively obtain the firmware information of the communication cable module, ensuring that the network card can communicate with other devices, thereby improving the reliability of server communications. Furthermore, since cable manufacturers can remove the EEPROM chip from the communication cable module, they can relatively save on the hardware and software costs of the EEPROM chip in the communication cable module, and also resolve the communication cable firmware quality delivery issue caused by cable manufacturers.

[0019] In some possible implementations, the PLD includes a register. Before obtaining the firmware information reading signal sent by the network card, the method further includes:

[0020] Store firmware information in registers;

[0021] In response to the firmware information read signal, sending the firmware information to the network card includes:

[0022] In response to the firmware information reading signal, the firmware information in the register is sent to the network card.

[0023] It can be seen that in this embodiment, the PLD can store firmware information in a pre-built register. When receiving a firmware information read signal sent by the network card, the PLD can read the firmware information from the corresponding register and send the firmware information to the network card.

[0024] In some possible implementations, the second port of the network card includes a position pin, the position pin is connected to the PLD, and before responding to the firmware information read signal and sending the firmware information in the register to the network card, the method further includes:

[0025] Determine the type of the communication cable module according to the presence signal sent by the presence pin;

[0026] The register is determined by reading the signal based on the type of the communication cable module and the firmware information.

[0027] As can be seen, in this implementation, multiple sets of registers can be constructed in the PLD, with different registers corresponding to different types of communication cable modules. This allows firmware information for different communication cable modules to be stored in different types of registers. When a communication cable module is inserted into the second port of the network card, the second port's presence pin sends a communication cable module presence signal to the PLD. The PLD can then determine the type of communication cable module based on the presence signal. The PLD then determines the register to read based on the type of communication cable module and the firmware information read signal sent by the network card, thereby enabling firmware information to be read from different registers for different types of communication cable modules.

[0028] In some possible implementations, the firmware information reading signal is transmitted via an I2C bus, a UART asynchronous communication line, or an SPI serial communication line.

[0029] It can be seen that in this implementation, since the PLD constructs registers with the same storage format as the EEPROM chip, the network card and the PLD can communicate through any of the I2C bus, UART asynchronous communication line, and SPI serial port communication line transmission methods.

[0030] In some possible implementations, the communication cable module includes at least one of an electrical module for a DAC cable and an optical module for an optical fiber.

[0031] It can be seen that this implementation is applicable to various communication cable modules, such as the electrical module of the DAC cable and the optical module of the optical fiber.

[0032] In a third aspect, an embodiment of the present application provides a server, including a network card and a mainboard, the mainboard including a PLD, the PLD and the network card being connected via a first port of the network card, and the network card being connected to a communication cable module via a second port of the network card;

[0033] The network card is used to send a firmware information reading signal to the PLD, where the firmware information reading signal is used to read the firmware information of the communication cable module, where the firmware information includes protocol parameters supporting the communication cable module;

[0034] The PLD is configured to obtain a firmware information reading signal, and send the firmware information to the network card in response to the firmware information reading signal.

[0035] In some possible implementations, the PLD includes registers. The PLD is also used to:

[0036] Store firmware information in registers;

[0037] In response to the firmware information read signal, the PLD sends the firmware information to the network card. Specifically, the PLD is used to:

[0038] In response to the firmware information reading signal, the firmware information in the register is sent to the network card.

[0039] In some possible implementations, the second port of the network card includes a position pin, the position pin is connected to the PLD, and the PLD is further configured to:

[0040] Determine the type of the communication cable module according to the presence signal sent by the presence pin;

[0041] The register is determined by reading the signal based on the type of the communication cable module and the firmware information.

[0042] In some possible implementations, the firmware information reading signal is transmitted via an I2C bus, a UART asynchronous communication line, or an SPI serial communication line.

[0043] In some possible implementations, the communication cable module includes at least one of an electrical module for a DAC cable and an optical module for an optical fiber.

[0044] It should be noted that the third aspect is a device corresponding to the above-mentioned first and second aspects, which is used to implement various embodiments of the methods provided in the first and second aspects, and can achieve the same or similar beneficial effects.

[0045] In a fourth aspect, an embodiment of the present application provides a communication method, the communication method comprising:

[0046] The network card of the server sends a firmware information reading signal to the PLD of the server's mainboard. The firmware information reading signal is used to read the firmware information of the communication cable module connected to the main control IC of the network card;

[0047] The PLD receives a firmware information reading signal; in response to the firmware information reading signal, sends the firmware information to the network card;

[0048] The network card receives the firmware information, obtains protocol parameters supporting the communication cable module according to the firmware information, and sends data to the switching node through the communication cable module based on the protocol parameters of the communication cable module.

[0049] In some possible implementations, the PLD includes a register. Before the network card sends a firmware information reading signal to the PLD of the server mainboard, the method further includes:

[0050] The PLD stores firmware information in registers;

[0051] The PLD sends the firmware information to the network card in response to the firmware information read signal, including:

[0052] The PLD sends the firmware information in the register to the network card in response to the firmware information read signal.

[0053] In some possible implementations, the PLD is connected to the network card via a first port of the network card, and the network card is connected to the communication cable module via a second port of the network card. The second port of the network card includes a position pin, and the position pin is connected to the PLD. Before the PLD sends the firmware information to the network card, the method further includes:

[0054] The PLD determines the type of the communication cable module based on the presence signal sent by the presence pin;

[0055] The PLD reads the signal and determines the register based on the type of the communication cable module and the firmware information.

[0056] Communication line transmission.

[0057] In some possible implementations, the communication cable module includes at least one of an electrical module for a DAC cable and an optical module for an optical fiber.

[0058] It should be noted that the implementation of each step in the fourth aspect may refer to the corresponding description of the method embodiments shown in the first and second aspects, and can achieve the same or similar beneficial effects.

[0059] In a fifth aspect, an embodiment of the present application further provides a server, comprising a computing node, a switching node, and a backplane, wherein the computing node comprises a network card and a mainboard, the mainboard comprises a PLD, the network card is connected to the switching node via a communication cable module; alternatively, the network card is connected to the backplane via the communication cable module, and then connected to the switching node via the backplane;

[0060] The network card is used to send a firmware information reading signal to the PLD, where the firmware information reading signal is used to read the firmware information of the communication cable module;

[0061] The PLD is configured to receive a firmware information reading signal and send the firmware information to the network card in response to the firmware information reading signal;

[0062] The network card is further configured to receive firmware information, obtain protocol parameters supporting the communication cable module according to the firmware information, and send data to the switching node through the communication cable module based on the protocol parameters of the communication cable module.

[0063] In some possible implementations, the PLD includes registers, and the PLD is further configured to store firmware information in the registers.

[0064] In some possible implementations, in terms of sending the firmware information to the network card, the PLD is specifically configured to: send the firmware information in the register to the network card in response to a firmware information read signal.

[0065] In some possible implementations, the PLD is connected to the network card via a first port of the network card, and the network card is connected to the communication cable module via a second port of the network card. The second port of the network card includes a position pin, and the position pin is connected to the PLD. The PLD is further configured to:

[0066] Determine the type of the communication cable module according to the presence signal sent by the presence pin;

[0067] The register is determined by reading the signal based on the type of the communication cable module and the firmware information.

[0068] In some possible implementations, the firmware information reading signal is transmitted via an I2C bus, a UART asynchronous communication line, or an SPI serial communication line.

[0069] In some possible implementations, the communication cable module includes at least one of an electrical module for a DAC cable and an optical module for an optical fiber.

[0070] It should be noted that the implementation of each operation can also refer to the corresponding description of the method embodiment shown in the fourth aspect, and can achieve the same or similar beneficial effects.

[0071] In a sixth aspect, an embodiment of the present application provides a computer-readable storage medium, which stores a computer program for execution by a device, and when the computer program is executed, the method in the first aspect, the second aspect, or the fourth aspect described above is implemented.

[0072] In a seventh aspect, an embodiment of the present application provides a computer program product. When the computer program product is run by a device, the device executes the method in the first aspect, the second aspect, or the fourth aspect above. BRIEF DESCRIPTION OF THE DRAWINGS

[0073] In order to more clearly illustrate the technical solutions in the embodiments of the present invention or the background technology, the drawings required for use in the embodiments of the present invention or the background technology will be described below.

[0074] Figure 1 A schematic diagram of obtaining firmware information from an EEPROM chip in an electrical module of a DAC cable, proposed in a related technology;

[0075] Figure 2 A schematic diagram of a communication system provided in an embodiment of the present application;

[0076] Figure 3 A flowchart of a method for obtaining firmware information in a server provided in an embodiment of the present application;

[0077] Figure 4 A schematic diagram of the connection between the in-position pins of a communication cable module and a PLD provided in an embodiment of the present application;

[0078] Figure 5 A flowchart of another method for obtaining firmware information in a server provided in an embodiment of the present application;

[0079] Figure 6 A schematic diagram of the structure of a server provided in an embodiment of the present application;

[0080] Figure 7 A flow chart of a communication method provided in an embodiment of the present application;

[0081] Figure 8 A schematic diagram of the structure of another server provided in an embodiment of the present application. DETAILED DESCRIPTION

[0082] The terms "first," "second," "third," and "fourth," etc., in the specification and claims of this application and the accompanying drawings are used to distinguish between different objects, rather than to describe a specific order. In addition, the terms "including," "having," and any variations thereof, are intended to cover non-exclusive inclusions. For example, a process, method, system, product, or apparatus comprising a series of steps or elements is not limited to the listed steps or elements, but may optionally include steps or elements not listed, or may optionally include other steps or elements inherent to the process, method, product, or apparatus.

[0083] References herein to "embodiments" mean that a particular feature, structure, or characteristic described in connection with the embodiments may be included in at least one embodiment of the present application. The appearance of this phrase in various places in the specification does not necessarily refer to the same embodiment, nor does it constitute an independent or alternative embodiment that is mutually exclusive of other embodiments. It is understood, both explicitly and implicitly, by those skilled in the art that the embodiments described herein may be combined with other embodiments.

[0084] The terms "component", "module", "system", etc. used in this specification are used to represent computer-related entities, hardware, firmware, a combination of hardware and software, software, or software in execution. For example, a component can be, but is not limited to, a process running on a processor, a processor, an object, an executable file, an execution thread, a program and / or a computer. By way of illustration, both an application running on a terminal device and a terminal device can be a component. One or more components can reside in a process and / or an execution thread, and a component can be located on a computer and / or distributed between two or more computers. In addition, these components can be executed from various computer-readable media having various data structures stored thereon. Components can communicate, for example, through local and / or remote processes based on signals having one or more data packets (e.g., data from two components interacting with another component between a local system, a distributed system and / or a network, such as the Internet interacting with other systems via signals).

[0085] In order to facilitate the understanding of the embodiments of the present application, further analyze and propose the technical problems that the present application specifically aims to solve, the relevant technical solutions of the present application are briefly introduced below.

[0086] See Figure 1 , Figure 1 A schematic diagram of obtaining firmware information from the EEPROM chip in the electrical module of a DAC cable proposed in a related technology is shown as follows: Figure 1 As shown, in the related art, the network card of the server is connected to the electrical module of the DAC cable through a port. Each electrical module is equipped with an EEPROM chip. The firmware information (in binary form) in the EEPROM chip usually needs to be burned by the cable manufacturer before the electrical module can be used normally. When the network card communicates with other devices, it is necessary to read the firmware information in the EEPROM chip through the I2C communication protocol to determine the protocol and protocol parameters supported by the DAC cable, so that data can be transmitted based on the protocol and protocol parameters. However, the DAC cable may have problems with firmware information being missed or burned incorrectly. The main control IC of the network card cannot obtain valid firmware information from the EEPROM chip, which makes it difficult for the network card to exchange with other devices over the network, resulting in low reliability of server communication.

[0087] Taking into account the defects and shortcomings of related technologies, the technical problems to be solved by the embodiments of the present application are mainly as follows: how to accurately read the firmware information in the communication cable module to improve the reliability of server communication.

[0088] Based on the above technical issues, please see Figure 2 , Figure 2 A schematic diagram of a communication system provided in an embodiment of the present application is shown in FIG. Figure 2As shown, the system includes a server motherboard and a network interface card (NIC). The motherboard includes a programmable logic device (PLD), which includes a complex programmable logic device (CPLD) and a field programmable gate array (FPGA). The NIC includes an integrated circuit (IC). The IC is connected to the PLD via a first port and to a communication cable module via a second port. The NIC is connected to a switch or other device via the communication cable module. The communication cable module includes at least one of an electrical module for a DAC cable and an optical module for an optical fiber (e.g., an active optical cable). The PLD has a set of registers configured in the same format as the original EEPROM chip in the communication cable module to store firmware information for the communication cable module. This is equivalent to storing a set of protocol logic supporting communication with the NIC in the PLD. The network card (specifically, the main control IC) obtains the firmware information of the communication cable module from the register of the PLD, without having to read it from the EEPROM chip of the communication cable module. This can effectively avoid the problem of incorrect or missed firmware information in the EEPROM chip, thereby improving the reliability of communication between the network card and other devices.

[0089] The following describes in detail the firmware information acquisition method and related devices in the server provided by the embodiments of the present application in conjunction with the accompanying drawings.

[0090] See Figure 3 , Figure 3 A flowchart of a method for obtaining firmware information provided in an embodiment of the present application, which can be based on Figure 2 The communication system shown in the embodiment can be implemented by a network card, such as Figure 3 As shown, the method may include steps 301-302:

[0091] 301: The network card sends a firmware information reading signal to the PLD. The firmware information reading signal is used to read firmware information of the communication cable module. The firmware information includes protocol parameters supported by the communication cable module.

[0092] In this embodiment of the present application, the network card is connected to the PLD via a first port and to the communication cable module via a second port. Before executing step 301, a set of registers with the same storage format as the EEPROM chip can be constructed in the PLD using Verilog (a hardware description language). For example, the register list can be shown in Table 1.

[0093] Table 1

[0094]

[0095] The connectors and transceivers in Table 1 can be the connectors and transceivers of optical modules. The hexadecimal values ​​(for example, 00, 04, etc.) represent the registers where the corresponding firmware information such as the supported protocols is located. The meaning of the values ​​shows the supported protocol parameters of the corresponding device (or module). Each register such as register 00 and register 01 in the PLD can store 8 bits of data. Based on the constructed registers, the firmware information originally burned into the EEPROM chip can be stored in the registers of the PLD in the same format. For cable manufacturers, they can remove the EEPROM chip in the communication cable module, which can relatively save the software and hardware costs of the EEPROM chip in the communication cable module, and also solve the communication cable firmware quality delivery problem brought by the cable manufacturer. For example, the communication cable can be a DAC cable or an optical fiber. Based on the different communication cables, the communication cable modules can also be different, such as an electrical module, an optical module, etc.

[0096] Based on registers configured in the PLD, the network card can communicate with the PLD using protocols such as the I2C bus, Universal Asynchronous Receiver / Transmitter (UART), and Serial Peripheral Interface (SPI). This means the firmware information read signal is a communication signal sent by the master control IC based on these protocols. Taking the I2C bus as an example, the firmware information read signal can be an I2C signal, typically an 8-bit address that includes the address bits of a preconfigured register in the PLD, such as register address 00.

[0097] 302: The network card obtains the firmware information sent by the PLD in response to the firmware information read signal.

[0098] In an embodiment of the present application, after receiving a firmware information read signal, the PLD responds to the network card if the address bits match the address bits of its own registers and transmits the firmware information stored in the corresponding address registers to the network card via the I2C bus, UART asynchronous communication line, or SPI serial communication line. For example, the firmware information is sent sequentially, in the order of register 00 and register 01. The network card then obtains the firmware information via the communication line. After confirming the supported protocols and protocol parameters, the network card can communicate with other devices via the communication cable module. For example, after confirming the supported protocols and protocol parameters of the communication cable module, the network card in a cabinet-level server can establish a connection with the switch. Steps 301 and 302 can be specifically performed by the network card's main control IC.

[0099] In some possible implementations, the in-position pin of the second port of the network card is connected to the PLD, such as Figure 4 As shown, this can specifically be connected to the PLD's presence pin. When the communication cable module is inserted into the second port of the network card, the presence pin of that port is pulled low, and a presence signal is transmitted via the signal line. The PLD detects the presence pin of the communication cable module being pulled low based on the presence signal, and can thus determine the type of the communication cable module. For example, the presence pin of the second port of a DAC cable electrical module is pin 1; the presence pin of the second port of an optical fiber module is pin 2. When the PLD detects pin 1 being pulled low, it determines the communication cable module is an electrical module; when the PLD detects pin 2 being pulled low, it determines the communication cable module is an optical module.

[0100] For example, multiple sets of registers with the same storage format as the EEPROM chip can be pre-configured in the PLD. These multiple sets of registers can include registers corresponding to the DAC cable's electrical module and registers corresponding to the fiber's optical module. The register addresses in these multiple sets of registers are the same. For example, the set of registers corresponding to the DAC cable's electrical module includes registers 00 and 01, and the set of registers corresponding to the fiber's optical module also includes registers 00 and 01, and so on. After determining the type of communication cable module connected to the network card, the PLD can determine the type of register to be read. Then, based on the address bits sent by the network card, it can determine the register of that type, read the firmware information stored in the register, and send the firmware information to the network card. In this implementation, multiple sets of registers can be configured in the PLD, with different registers corresponding to different types of communication cable modules. When the communication cable module is inserted into the second port, the presence pin of the second port sends a presence signal of the communication cable module to the PLD. The PLD can then determine the type of the communication cable module through the presence signal sent by the presence pin, and then determine the register that needs to be read based on the type of the communication cable module and the address bits in the firmware information read signal sent by the network card, so as to send the firmware information in the register to the network card.

[0101] As can be seen, in the embodiments of the present application, registers can be constructed in the PLD with a storage format identical to that of the EEPROM chip, and the firmware information of the communication cable module can be stored in these registers. Cable manufacturers can then remove the EEPROM chip from the communication cable module and replace the EEPROM chip's functionality with the registers in the PLD. The network card sends a firmware information read signal to the PLD, and the PLD transmits the corresponding firmware information to the network card. This allows the network card to effectively retrieve the firmware information even if the firmware information in the communication cable module is incorrectly or not burned, ensuring that the network card can communicate with other devices, thereby improving the reliability of server communications.

[0102] See Figure 5 , Figure 5 A flowchart of another method for obtaining firmware information provided in an embodiment of the present application, which can be based on Figure 2 The communication system shown in FIG. 1 can be implemented by the PLD of the motherboard, such as Figure 5 As shown, the method may include steps 501-502:

[0103] 501: The PLD obtains a firmware information reading signal sent by the network card. The firmware information reading signal is used to read firmware information of the communication cable module. The firmware information includes protocol parameters supported by the communication cable module.

[0104] In an embodiment of the present application, the PLD is connected to the network card via the first port of the network card, and the network card is connected to the communication cable module via the second port of the network card. Before executing step 501, Verilog coding can be used to construct a set of registers in the PLD with a storage format identical to that of the EEPROM chip. Therefore, the firmware information originally burned into the EEPROM chip can be stored in the PLD registers in the same format. Based on this logic, the PLD can communicate with the network card (specifically, with the network card's main control IC) using protocol logic such as the I2C bus, UART, or SPI. For example, when using I2C bus logic, the firmware information read signal sent by the network card can be an I2C signal, typically an 8-bit address, which includes the address bits of a pre-configured register in the PLD, such as the address bits of register 00. For example, the communication cable can be a DAC cable or an optical fiber, and the communication cable module can also be an electrical module, an optical module, or the like.

[0105] 502: The PLD sends the firmware information to the network card in response to the firmware information reading signal.

[0106] In an embodiment of the present application, after receiving a firmware information read signal, the PLD responds to the network card if the address bits in the firmware information read signal match the address bits of its own register (e.g., register 00), and based on the address bits, sends the firmware information stored in the corresponding register to the network card via a communication line. The network card can then obtain the firmware information via the communication line to confirm the protocols and protocol parameters supported by the communication cable module, and then communicate with other devices. The communication line can be an I2C bus, a UART asynchronous communication line, an SPI serial communication line, etc. For example, the PLD can send only the firmware information (including protocol parameters) in the corresponding address bits, or it can send the firmware information in all registers to the network card upon receiving the starting address bits.

[0107] In some possible implementations, the second port of the network card includes a position pin, the position pin is connected to the PLD, and before responding to the firmware information read signal and sending the firmware information in the register to the network card, the method further includes:

[0108] Determine the type of the communication cable module according to the presence signal sent by the presence pin;

[0109] The register is determined by reading the signal based on the type of the communication cable module and the firmware information.

[0110] For example, the presence pin of the second port of the network card can be connected to the presence pin of the PLD. When a communication cable module is inserted into the second port of the network card, the presence pin of that port is pulled low, and a presence signal is transmitted via a signal line. Based on the presence signal, the PLD detects that the corresponding presence pin of the communication cable module is pulled low, thereby determining the type of the communication cable module. For example, the presence pin of the second port of a DAC cable electrical module is pin 1; the presence pin of the second port of an optical fiber optical module is pin 2. When the PLD detects that pin 1 is pulled low, the communication cable module is determined to be an electrical module, and when the PLD detects that pin 2 is pulled low, the communication cable module is determined to be an optical module.

[0111] Exemplarily, multiple sets of registers with the same storage format as the EEPROM chip can be pre-configured in the PLD. These multiple sets of registers can include registers corresponding to the DAC cable's electrical module and registers corresponding to the fiber's optical module. The addresses of the registers in these multiple sets of registers are the same. For example, the set of registers corresponding to the DAC cable's electrical module includes registers 00 and 01, and the set of registers corresponding to the fiber's optical module also includes registers 00 and 01, and so on. After determining the type of communication cable module connected to the network card, the PLD can determine the type of corresponding register to be read. Then, based on the address bits in the firmware information read signal sent by the network card, it can determine the register of that type, read the firmware information stored in the register, and send the firmware information to the network card. In this implementation, multiple sets of registers can be constructed in the PLD, with different registers corresponding to different types of communication cable modules, thereby storing firmware information for different communication cable modules in different types of registers. When the communication cable module is inserted into the second port of the network card, the presence pin of the second port sends a presence signal of the communication cable module to the PLD. The PLD can determine the type of the communication cable module through the presence signal of the communication cable module, and then determine the register that needs to be read based on the type of the communication cable module and the firmware information reading signal sent by the network card, so as to realize reading firmware information from different registers for different types of communication cable modules.

[0112] As can be seen, in the embodiments of the present application, registers with a storage format identical to that of the EEPROM chip can be constructed in the PLD, and the firmware information of the communication cable module can be stored in these registers. Cable manufacturers can then remove the EEPROM chip from the communication cable module and replace the EEPROM chip's functionality with the registers in the PLD. The network card sends a firmware information read signal to the PLD, and the PLD sends the corresponding firmware information to the network card. Thus, even if the firmware information in the communication cable module is incorrectly burned or omitted, the network card can effectively obtain the firmware information of the communication cable module, ensuring that the network card can communicate with other devices, thereby improving the reliability of server communications. Furthermore, since cable manufacturers can remove the EEPROM chip from the communication cable module, they can relatively save on the hardware and software costs of the EEPROM chip in the communication cable module, and also resolve the communication cable firmware quality delivery issue caused by cable manufacturers.

[0113] Based on the description of the above method embodiment, the embodiment of the present application further provides a server 600. Figure 6 , Figure 6 This is a structural diagram of a server 600 provided in an embodiment of the present application. The server 600 includes at least a network card 610 and a motherboard 620. The network card 610 includes a main control IC 6101, a first port 6102, and a second port 6103. The motherboard 620 includes a PLD 6201. The PLD 6201 includes a pre-configured register 62011. The register 62011 is used to store firmware information of a communication cable module 630 connected to the main control IC 6101. The PLD 6201 is connected to the network card 610 via the first port 6102 of the network card 610, and the network card 610 is connected to the communication cable module 630 via the second port 6103 of the network card 610.

[0114] The network card 610 is used to send a firmware information reading signal to the PLD 6201. The firmware information reading signal is used to read the firmware information of the communication cable module 630. The firmware information includes protocol parameters supporting the communication cable module 630.

[0115] The PLD 6201 is configured to obtain a firmware information reading signal, and send the firmware information to the network card 610 in response to the firmware information reading signal.

[0116] In some possible implementations, the PLD 6201 is further configured to: store firmware information in the register 62011;

[0117] In response to the firmware information read signal, the PLD 6201 sends the firmware information to the network card 610. Specifically, the PLD 6201 is configured to:

[0118] In response to the firmware information read signal, the firmware information in the register 62011 is sent to the network card 610.

[0119] In some possible implementations, the second port 6103 of the network card 610 includes a position pin, which is connected to the PLD 6201. The PLD 6201 is further configured to:

[0120] Determine the type of the communication cable module 630 according to the presence signal sent by the presence pin;

[0121] The register 62011 is determined based on the type of the communication cable module 630 and the firmware information reading signal.

[0122] In some possible implementations, the firmware information reading signal is transmitted via an I2C bus, a UART asynchronous communication line, or an SPI serial communication line.

[0123] In some possible implementations, the communication cable module 630 includes at least one of an electrical module for a DAC cable and an optical module for an optical fiber.

[0124] Among them, each operation performed by the network card 610 can be specifically executed by the main control IC 6101.

[0125] It should be noted that the implementation of each operation can also refer to Figure 3 and Figure 5 The corresponding description of the method embodiment shown in the drawings can achieve the same or similar beneficial effects.

[0126] Exemplarily, the server 600 may further include a memory, including but not limited to a random access memory (RAM), a read-only memory (ROM), an erasable programmable read only memory (EPROM), or a portable read only memory (CD-ROM), which is used to store relevant computer programs and data.

[0127] The main control IC 6101 and the PLD 6201 in the server 600 are used to read one or more programs stored in the memory to execute the operations in the firmware information acquisition method in the server.

[0128] It should be noted that although Figure 6The illustrated server 600 only shows the main control IC 6101 of the network card 610, the PLD 6201 of the motherboard 620, the register 62011 in the PLD 6201, the main control IC 6101, the first port 6102, the second port 6103, and the communication cable module 630 in the network card 610. However, during the specific implementation, those skilled in the art will understand that the server 600 also includes other components necessary for normal operation, such as a processor, input / output devices, fans, etc. Furthermore, those skilled in the art will understand that, depending on specific needs, the server 600 may also include hardware components that implement other additional functions. Furthermore, those skilled in the art will understand that the server 600 may only include the components necessary to implement the embodiments of the present application, and need not include all of the components described above.

[0129] See Figure 7 , Figure 7 A flow chart of a communication method provided in an embodiment of the present application is shown as follows: Figure 7 As shown, the method may include steps 701-706:

[0130] 701: The network card sends a firmware information reading signal to the PLD of the server mainboard. The firmware information reading signal is used to read firmware information of the communication cable module connected to the network card.

[0131] 702: The PLD receives a firmware information reading signal;

[0132] 703: The PLD sends the firmware information to the network card in response to the firmware information read signal.

[0133] 704: The network card receives firmware information;

[0134] 705: The network card obtains the protocol and protocol parameters supported by the communication cable module according to the firmware information.

[0135] 706: Based on the protocol and protocol parameters, the network card sends data to the switching node through the communication cable module.

[0136] In some possible implementations, the PLD includes a register. Before the network card sends a firmware information reading signal to the PLD of the server mainboard, the method further includes:

[0137] The PLD stores firmware information in registers.

[0138] In some possible implementations, the PLD sends the firmware information to the network card in response to the firmware information read signal, including:

[0139] The PLD sends the firmware information in the register to the network card in response to the firmware information read signal.

[0140] In some possible implementations, the PLD is connected to the network card via a first port of the network card, and the network card is connected to the communication cable module via a second port of the network card. The second port of the network card includes a position pin, and the position pin is connected to the PLD. Before the PLD sends the firmware information to the network card, the method further includes:

[0141] The PLD determines the type of the communication cable module based on the presence signal sent by the presence pin;

[0142] The PLD reads the signal and determines the register based on the type of the communication cable module and the firmware information.

[0143] In some possible implementations, the firmware information reading signal is transmitted via an I2C bus, a UART asynchronous communication line, or an SPI serial communication line.

[0144] In some possible implementations, the communication cable module includes at least one of an electrical module for a DAC cable and an optical module for an optical fiber.

[0145] It should be noted that Figure 7 The implementation of each step in the communication method shown can be found in Figure 3 and Figure 5 The corresponding description of the method embodiment shown in the drawings can achieve the same or similar beneficial effects.

[0146] See Figure 8 , Figure 8 This is a schematic diagram of the structure of another server 800 provided in an embodiment of the present application. Server 800 includes at least a computing node 810, a switching node 820, and a backplane 830. Computing node 810 may be the aforementioned server 600, and switching node 820 may be a switch. Computing node 810 includes a network card and a motherboard. The motherboard includes a PLD. The network card can be directly connected to switching node 820 via a communication cable module, or it can be connected to backplane 830 via a communication cable module, and then connected to switching node 820 via backplane 830.

[0147] The network card is used to send a firmware information reading signal to the PLD, and the firmware information reading signal is used to read the firmware information of the communication cable module connected to the main control IC of the network card;

[0148] The PLD is configured to receive a firmware information reading signal and send the firmware information to the network card in response to the firmware information reading signal;

[0149] The network card is further configured to receive firmware information, obtain the protocol and protocol parameters supported by the communication cable module according to the firmware information, and send data to the switching node 820 through the communication cable module based on the protocol and protocol parameters.

[0150] In some possible implementations, the PLD includes registers, and the PLD is further configured to store firmware information in the registers.

[0151] In some possible implementations, in terms of sending the firmware information to the network card, the PLD is specifically configured to: send the firmware information in the register to the network card in response to a firmware information read signal.

[0152] In some possible implementations, the PLD is connected to the network card via a first port of the network card, and the network card is connected to the communication cable module via a second port of the network card. The second port of the network card includes a position pin, and the position pin is connected to the PLD. The PLD is further configured to:

[0153] Determine the type of the communication cable module according to the presence signal sent by the presence pin;

[0154] The register is determined by reading the signal based on the type of the communication cable module and the firmware information.

[0155] In some possible implementations, the firmware information reading signal is transmitted via an I2C bus, a UART asynchronous communication line, or an SPI serial communication line.

[0156] In some possible implementations, the communication cable module includes at least one of an electrical module for a DAC cable and an optical module for an optical fiber.

[0157] It should be noted that the implementation of each operation can also refer to Figure 7 The corresponding description of the method embodiment shown in the drawings can achieve the same or similar beneficial effects.

[0158] The embodiment of the present application further provides a computer-readable storage medium (Memory), which is a memory device in the server 600 or the server 800, and is used to store a computer program for execution by the device. When the computer program is executed on the server 600, Figure 3 and Figure 5 The method flow shown is implemented (or when it is run on the server 800, Figure 7The method flow shown is implemented). It is understandable that the computer-readable storage medium herein may include both the built-in storage medium in server 600 and, of course, the extended storage medium supported by server 600 or server 800. The computer-readable storage medium provides storage space, which stores the operating system of server 600 or server 800. In addition, the storage space also stores one or more computer programs suitable for being loaded and executed by the network card and PLD. It should be noted that the computer-readable storage medium herein may be a high-speed RAM or a non-volatile memory, such as at least one disk storage; alternatively, it may be at least one computer-readable storage medium located away from the aforementioned network card and PLD.

[0159] The embodiment of the present application further provides a computer program product, when the computer program product is executed by a device, Figure 3 and Figure 5 The method flow shown is realized (or when the computer program product is executed by the device, Figure 7 The method flow shown is implemented).

[0160] In the above embodiments, the description of each embodiment has its own focus. For parts that are not described in detail in a certain embodiment, reference can be made to the relevant descriptions of other embodiments.

[0161] It should be understood that the processor mentioned in the embodiments of the present application may be a central processing unit (CPU), or may be other general-purpose processors, digital signal processors (DSP), application-specific integrated circuits (ASIC), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. The general-purpose processor may be a microprocessor or any conventional processor.

[0162] It should also be understood that the memory mentioned in the embodiments of the present application can be a volatile memory or a non-volatile memory, or can include both volatile and non-volatile memories. Among them, the non-volatile memory can be a ROM, a programmable read-only memory (Programmable ROM, PROM), an EPROM, an EEPROM or a flash memory. The volatile memory can be a RAM, which is used as an external cache. By way of example but not limitation, many forms of RAM are available, such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link dynamic random access memory (SLDRAM) and direct RAM bus random access memory (DR RAM).

[0163] It should be noted that when the processor is a general-purpose processor, DSP, ASIC, FPGA or other programmable logic device, discrete gate or transistor logic device, discrete hardware component, the memory (storage module) is integrated into the processor.

[0164] It should be noted that the memory described herein is intended to include, but is not limited to, these and any other suitable types of memory.

[0165] It should be understood that in the various embodiments of the present application, the size of the serial numbers of the above-mentioned processes does not mean the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present application.

[0166] In the several embodiments provided in this application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are merely exemplary. For example, the division of the units is merely a logical function division. In actual implementation, there may be other division methods, such as multiple units 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 interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.

[0167] The units described as separate components may or may not be physically separate, and 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 network units. Some or all of these units may be selected to achieve the purpose of this embodiment according to actual needs.

[0168] In addition, the functional units in the various embodiments of the present application may be integrated into a single processing unit, each unit may exist physically separately, or two or more units may be integrated into a single unit. If the aforementioned integrated units are implemented as software functional units and sold or used as independent products, they may be stored in a computer-readable storage medium.

[0169] In this application, "at least one" means one or more, and "more than one" means two or more. "And / or" describes the relationship between associated objects, indicating that three possible relationships exist. For example, "A and / or B" can mean: A exists alone, A and B exist simultaneously, and B exists alone, where A and B can be singular or plural. In the text description of this application, the character " / " generally indicates that the associated objects are in an "or" relationship.

[0170] The steps in the method of the embodiment of the present application can be adjusted in order, combined and deleted according to actual needs.

[0171] The modules in the device of the embodiment of the present application can be merged, divided and deleted according to actual needs.

[0172] As described above, the above embodiments are only used to illustrate the technical solutions of the present application, rather than to limit them. Although the present application has been described in detail with reference to the above embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the above embodiments, or make equivalent replacements for some of the technical features therein. However, these modifications or replacements do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of the present application.

Claims

1. A method for obtaining firmware information, characterized in that: The method is applied to a programmable logic device (PLD), the PLD including a register, the programmable logic device (PLD) being connected to a network card via a first port of the network card, and the network card being connected to a communication cable module via a second port of the network card, and comprising: Storing the firmware information in the register, the firmware information including protocol parameters supporting the communication cable module; Obtaining a firmware information reading signal sent by the network card, wherein the firmware information reading signal is used to read firmware information of the communication cable module; In response to the firmware information reading signal, the firmware information is sent to the network card.

2. The method according to claim 1, characterized in that The second port of the network card includes a position pin, the position pin is connected to the PLD, and before sending the firmware information in the register to the network card in response to the firmware information read signal, the method further includes: Determining the type of the communication cable module according to the presence signal sent by the presence pin; The register is determined according to the type of the communication cable module and the firmware information reading signal.

3. The method according to claim 1 or 2, characterized in that The firmware information reading signal is transmitted via an I2C bus, a UART asynchronous communication line or an SPI serial communication line.

4. The method according to claim 1 or 2, characterized in that The communication cable module includes at least one of an electrical module of a DAC cable and an optical module of an optical fiber.

5. A server, characterized in that: It includes a computing node, a switching node and a backplane, wherein the computing node includes a network card and a mainboard, the mainboard includes a PLD, the PLD includes a register, and the network card is connected to the switching node via a communication cable module; Alternatively, the network card is connected to the backplane via the communication cable module, and then connected to the switching node via the backplane; The network card is used to send a firmware information reading signal to the PLD, where the firmware information reading signal is used to read the firmware information of the communication cable module; The PLD is configured to store the firmware information in the register, receive the firmware information read signal, and send the firmware information to the network card in response to the firmware information read signal; The network card is further configured to receive the firmware information, obtain protocol parameters supporting the communication cable module according to the firmware information, and send data to the switching node through the communication cable module based on the protocol parameters of the communication cable module.

6. The server according to claim 5, wherein: The PLD is connected to the network card via a first port of the network card, and the network card is connected to the communication cable module via a second port of the network card. The second port of the network card includes a position pin, and the position pin is connected to the PLD. The PLD is further configured to: Determining the type of the communication cable module according to the presence signal sent by the presence pin; The register is determined according to the type of the communication cable module and the firmware information reading signal.

7. The server according to claim 5 or 6, characterized in that: The firmware information reading signal is transmitted via an I2C bus, a UART asynchronous communication line or an SPI serial communication line.

8. The server according to claim 5 or 6, characterized in that: The communication cable module includes at least one of an electrical module of a DAC cable and an optical module of an optical fiber.

Citation Information

Patent Citations

  • Ethernet multiplexed communication system and Ethernet interface setting method applied to Ethernet multiplexed communication system

    CN105306324A

  • Optical module identification regulation and control structure and method and storage medium

    CN114116545A