CN117573148A - DPU card firmware programming method, system and storage medium - Google Patents

DPU card firmware programming method, system and storage medium Download PDF

Info

Publication number
CN117573148A
CN117573148A CN202311446394.9A CN202311446394A CN117573148A CN 117573148 A CN117573148 A CN 117573148A CN 202311446394 A CN202311446394 A CN 202311446394A CN 117573148 A CN117573148 A CN 117573148A
Authority
CN
China
Prior art keywords
programming
firmware
terminal
dpu
card
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202311446394.9A
Other languages
Chinese (zh)
Inventor
钱嘉秋
张昊
池志富
苏立峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yusur Technology Co ltd
Original Assignee
Yusur Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yusur Technology Co ltd filed Critical Yusur Technology Co ltd
Priority to CN202311446394.9A priority Critical patent/CN117573148A/en
Publication of CN117573148A publication Critical patent/CN117573148A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

The invention provides a DPU card firmware programming method, a system and a storage medium, wherein the method comprises the following steps: searching at least one firmware programming terminal through the control terminal; under the condition that the firmware programming terminal is found, establishing communication connection with the found current firmware programming terminal through the control terminal and sending the programming task and the corresponding firmware file to the current firmware programming terminal; determining a DPU card on an electrified PCIE board currently connected with the current firmware programming terminal through the current firmware programming terminal; executing a firmware programming script through the current firmware programming terminal, programming a firmware file into the DPU card and obtaining a programming flow verification result; when the verification result of the programming flow indicates that the programming flow of the DPU card is correct, determining whether the rest programming task exists in the programming task list through the current firmware programming terminal; and ending the writing task of the current firmware writing terminal under the condition that no residual writing task exists. The invention can solve the problems of complicated and low-efficiency writing process of the DPU card firmware.

Description

DPU card firmware programming method, system and storage medium
Technical Field
The present invention relates to the field of computer technologies, and in particular, to a method, a system, and a storage medium for writing a DPU card firmware.
Background
In the present digital age, the generation and processing of data is experiencing an unprecedented explosive growth. From the Internet to the Internet of things, from artificial intelligence to big data analysis, the scale and complexity of data show an exponentially increasing trend. In this context, efficient, fast and reliable data processing is a central need for a wide variety of industries. But the finished chip is expensive to develop and has extremely long development cycles, which can require tens of millions of costs and a one year period of time for a single chip to remain. Based on this, the data processing unit (Data Processing Unit, DPU) has an extremely important role in this context. With the increasing demand for data processing, high-performance DPU cards are becoming an urgent need for various application fields. Therefore, in order to maintain a competitive advantage in a highly competitive market environment, to meet the changing market demands, technical innovation for improving the writing efficiency of the DPU card firmware is urgent.
The traditional DPU card firmware programming method comprises the following steps: the DPU card is installed on the device motherboard of the programming terminal, and the firmware file is loaded into the DPU card through a specific Field programmable gate array (Field-Programmable Gate Array, FPGA) development tool.
However, in the conventional DPU card firmware programming method, because the DPU card is installed on the device motherboard, under the condition that the DPU card needs to be replaced, an operator is required to manually disassemble and install the shell of the programming terminal to replace the DPU card, and meanwhile, the number of the clamping grooves on the device motherboard of the programming terminal is limited and cannot be expanded, so that the problem of complicated and low-efficiency programming of the DPU card firmware exists.
Disclosure of Invention
In view of the foregoing, embodiments of the present invention provide a method, a system, and a storage medium for writing DPU card firmware, which eliminate or improve one or more of the drawbacks of the prior art. The problem of the loaded down with trivial details inefficiency of DPU card firmware programming process is solved.
The invention provides a DPU card firmware programming method, which is applied to a DPU card firmware programming system, wherein the DPU card firmware programming system comprises a control terminal and at least one firmware programming terminal, and at least one powered PCIE board correspondingly connected with each firmware programming terminal is provided with at least one PCIE card slot; the method comprises the following steps:
respectively sending a connection instruction to at least one firmware programming terminal through the control terminal so as to search the at least one firmware programming terminal;
Under the condition that the firmware programming terminal is found, establishing communication connection with the found current firmware programming terminal through the control terminal;
based on communication connection, distributing the programming task to the current firmware programming terminal through the control terminal, so that the current firmware programming terminal adds the received programming task to a programming task list;
the firmware file corresponding to the programming task is sent to the current firmware programming terminal through the control terminal;
determining a DPU card on an electrified PCIE board currently connected with the current firmware programming terminal through the current firmware programming terminal;
executing a firmware programming script through the current firmware programming terminal, programming a firmware file into the DPU card and obtaining a programming flow verification result;
when the verification result of the programming flow indicates that the programming flow of the DPU card is correct, determining whether the rest programming task exists in the programming task list through the current firmware programming terminal;
and ending the writing task of the current firmware writing terminal under the condition that no residual writing task exists.
Optionally, in the case where there are remaining writing tasks, the method further includes:
outputting replacement prompt information through the current firmware programming terminal to prompt a user to replace a DPU card on an electrified PCIE board currently connected with the current firmware programming terminal;
And responding to the received feedback instruction, and executing the step of determining the DPU card on the power-on PCIE board currently connected with the current firmware programming terminal through the current firmware programming terminal.
Optionally, when the number of DPU cards is at least one, executing the firmware programming script by the current firmware programming terminal, programming the firmware file into the DPU card, including:
obtaining PCIE card numbers corresponding to each DPU card;
based on the arrangement sequence of PCIE card numbers, executing a firmware programming script through the current firmware programming terminal, and sequentially programming the firmware files into the DPU card.
Optionally, when the number of DPU cards is at least one, executing the firmware programming script by the current firmware programming terminal, programming the firmware file into the DPU card, including: and executing a firmware programming script through the current firmware programming terminal, and programming the firmware file into the DPU card in parallel.
Optionally, the firmware file includes a programming file and a programming configuration file, and executing the firmware programming script through the current firmware programming terminal, and programming the firmware file into the DPU card includes:
executing a firmware programming script through the current firmware programming terminal, and programming configuration information in a programming file into the DPU card;
And verifying the DPU card through the programming verification file to obtain a programming flow verification result.
Optionally, the control terminal distributes the programming task to the current firmware programming terminal, including:
the control terminal evenly distributes the programming tasks to the current firmware programming terminals according to the number of the current firmware programming terminals;
or,
the method comprises the steps that the number of links of the preset DPU card corresponding to each current firmware programming terminal is obtained through a control terminal; and distributing the programming task to the searched firmware programming terminal based on the preset DPU card link number.
Optionally, in the case that the firmware programming terminal is not found, the method further includes:
and outputting connection prompt information through the control terminal so as to prompt a user to check the current programming environment.
Optionally, in the case that the verification result indicates that the DPU card writing process is wrong, the method further includes:
and outputting error prompt information through the firmware programming terminal so as to prompt a user to check the current programming environment.
Another aspect of the present invention provides a DPU card firmware programming system, comprising: the device comprises a control terminal and at least one firmware programming terminal, and at least one powered PCIE board correspondingly connected with each firmware programming terminal, wherein each powered PCIE board is provided with at least one PCIE card slot and a card slot interface corresponding to each PCIE card slot;
A control terminal for: respectively sending a connection instruction to at least one firmware programming terminal to search for the at least one firmware programming terminal; under the condition that the firmware programming terminal is found, establishing communication connection with the found current firmware programming terminal; based on communication connection, distributing the programming task to the current firmware programming terminal so that the current firmware programming terminal adds the received programming task to a programming task list; transmitting a firmware file corresponding to the programming task to a current firmware programming terminal;
firmware programming terminal for: under the condition of receiving a programming task and a firmware file, determining a DPU card on a current connected power-on PCIE board; executing a firmware programming script, and programming a firmware file into the DPU card; the firmware programming script is a TCL script; the firmware programming script is used for loading the firmware file into the DPU card, and carrying out programming flow verification on the DPU card after the programming flow is completed to obtain a programming flow verification result; determining whether the remaining programming tasks exist in the programming task list under the condition that the programming process verification result indicates that the DPU card programming process is correct; and ending the firmware programming terminal programming task under the condition that no residual programming task exists.
Another aspect of the present invention provides a computer readable storage medium having a computer program stored thereon, wherein the program when executed by a processor implements the steps of the above-described DPU card firmware-based programming method.
The invention has the advantages that:
according to the DPU card-based firmware programming method, system and storage medium, the control terminal respectively sends the connection instruction to at least one firmware programming terminal so as to search the at least one firmware programming terminal; under the condition that the firmware programming terminal is found, establishing communication connection with the found current firmware programming terminal through the control terminal; based on communication connection, distributing the programming task to the current firmware programming terminal through the control terminal, so that the current firmware programming terminal adds the received programming task to a programming task list; the firmware file corresponding to the programming task is sent to the current firmware programming terminal through the control terminal; determining a DPU card on an electrified PCIE board currently connected with the current firmware programming terminal through the current firmware programming terminal; executing a firmware programming script through the current firmware programming terminal, programming a firmware file into the DPU card and obtaining a programming flow verification result; when the verification result of the programming flow indicates that the programming flow of the DPU card is correct, determining whether the rest programming task exists in the programming task list through the current firmware programming terminal; ending the writing task of the current firmware writing terminal under the condition that no residual writing task exists; the problem that the DPU card firmware programming process is tedious and low-efficiency can be solved; the method comprises the steps that a programming task is distributed to a firmware programming terminal which is connected currently through a control terminal, the firmware programming terminal is connected with an electrified PCIE board, at least one PCIE card slot is formed in the electrified PCIE board, and a firmware file is programmed into a DPU network card inserted in the PCIE card slot; the shell and the main board of the firmware programming terminal are not required to be frequently and manually disassembled and installed by a user, and the firmware programming terminal is restarted, so that the process of programming the DPU card firmware can be simplified, and the programming efficiency of the DPU card is improved; meanwhile, communication connection is established between the control terminal and at least one firmware programming terminal, so that the control terminal can control the plurality of firmware programming terminals to execute programming tasks at the same time, and the programming efficiency of the DPU card firmware can be further improved under the condition that a large number of programming tasks exist.
Further, the power-on PCIE board is connected with the firmware programming terminal, the DPU card is installed on the power-on PCIE board to perform firmware programming, the number of PCIE card slots of the power-on PCIE board connected with the firmware programming terminal can be expanded through the expansibility of the power-on PCIE board, and the scale of DPU card firmware programming can be improved; meanwhile, the power-on PCIE board only needs to be connected with the firmware programming terminal, is not limited by the environment and can be placed at any position in the programming environment, so that the problems of low adaptability and poor scale expandability caused by the influence of the environment limitation of the computing equipment are avoided.
Furthermore, the power-on PCIE board replaces a main board of the computing device, so that the cost of programming the DPU card firmware can be reduced without using a large number of computing devices under the condition that a large number of programming tasks exist.
Furthermore, the power-on PCIE board replaces a main board of the computing equipment, so that manual disassembly of the computing equipment is not required by a user, the frequency of manual operation of the user is reduced, the user does not need to judge the programming process and learn the complex programming process, only the DPU card to be programmed needs to be replaced and error information feedback is required, the learning cost of the user can be reduced, meanwhile, the probability of firmware programming failure caused by the manual operation error of the user is reduced, and the success rate of the DPU card firmware programming can be improved.
Further, since the computing device belongs to a relatively large number of precision instrument motherboard protection facilities in the precision instrument case removal step, for example: buckle, screw and wiring sticky tape etc. replace computing device's mainboard through the circular telegram PCIE board, need not the manual computing device of disassembling of user, reduced the frequency of user's manual operation, reduced the hardware time of changing, computing device shell dismantlement time and mainboard change equipment time, can reduce time cost, improve firmware programming efficiency.
Additional advantages, objects, and features of the invention will be set forth in part in the description which follows and in part will become apparent to those having ordinary skill in the art upon examination of the following or may be learned from practice of the invention. The objectives and other advantages of the invention may be realized and attained by the structure particularly pointed out in the written description and drawings.
It will be appreciated by those skilled in the art that the objects and advantages that can be achieved with the present invention are not limited to the above-described specific ones, and that the above and other objects that can be achieved with the present invention will be more clearly understood from the following detailed description.
Drawings
The accompanying drawings, which are included to provide a further understanding of the invention and are incorporated in and constitute a part of this application, illustrate and together with the description serve to explain the invention. The components in the figures are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the invention. Corresponding parts in the drawings may be exaggerated, i.e. made larger relative to other parts in an exemplary device actually manufactured according to the present invention, for convenience in showing and describing some parts of the present invention. In the drawings:
FIG. 1 is a schematic diagram of a DPU card estimation programming system according to an embodiment of the invention;
fig. 2 is a schematic diagram of a powered PCIE board according to an embodiment of the present invention;
FIG. 3 is a schematic diagram of a computing device architecture in an embodiment of the invention;
FIG. 4 is a flowchart of a method for programming DPU card firmware in accordance with another embodiment of the present invention;
FIG. 5 is a schematic diagram of a DPU card estimation programming system according to another embodiment of the present invention;
FIG. 6 is a flowchart of a method for programming DPU card firmware in accordance with another embodiment of the present invention;
FIG. 7 is a flowchart of a method for programming DPU card firmware in accordance with another embodiment of the present invention;
FIG. 8 is a block diagram of a DPU card firmware programming apparatus in accordance with another embodiment of the present invention;
fig. 9 is a block diagram of an electronic device in another embodiment of the invention.
Detailed Description
The present invention will be described in further detail with reference to the following embodiments and the accompanying drawings, in order to make the objects, technical solutions and advantages of the present invention more apparent. The exemplary embodiments of the present invention and the descriptions thereof are used herein to explain the present invention, but are not intended to limit the invention.
It should be noted here that, in order to avoid obscuring the present invention due to unnecessary details, only structures and/or processing steps closely related to the solution according to the present invention are shown in the drawings, while other details not greatly related to the present invention are omitted.
It should be emphasized that the term "comprises/comprising" when used herein is taken to specify the presence of stated features, elements, steps or components, but does not preclude the presence or addition of one or more other features, elements, steps or components.
It is also noted herein that the term "coupled" may refer to not only a direct connection, but also an indirect connection in which an intermediate is present, unless otherwise specified.
Hereinafter, embodiments of the present invention will be described with reference to the accompanying drawings. In the drawings, the same reference numerals represent the same or similar components, or the same or similar steps.
First, several terms related to the embodiments of the present application will be described.
Data processing unit (Data Processing Unit, DPU): a DPU is a specially designed hardware unit for data processing, the main function of which is to achieve efficient, fast and reliable data processing and analysis. DPU plays an important role in various application scenes, and can provide excellent performance and efficiency from a data center to Internet of things equipment and from edge calculation to deep learning reasoning. The DPU is taken as a special data processing unit, is one of key technologies indispensable in the modern digital age, and has important significance for promoting technical innovation and application development in various fields.
Data processing unit card (Data Processing Unit card): namely a DPU card, which is a hardware acceleration card consisting of an FPGA chip and a special deep learning processor. DPU cards typically contain highly specialized hardware and software that are intended to provide high performance data processing and computing capabilities to meet the needs of various applications. DPU cards can be used to accelerate various data-intensive tasks such as artificial intelligence reasoning, machine learning, large-scale data analysis, and the like. The design targets are to provide higher computing efficiency and energy efficiency, reduce load to the host CPU and provide faster data processing speed through specially optimized hardware and software architecture.
Peripheral component interconnect extension interface (Peripheral Component Interconnect Express, PCIE): is a computer bus standard for interfacing internal hardware devices, particularly expansion cards (e.g., graphics cards, sound cards, network adapters, etc.), as well as other components on a motherboard (e.g., memory controllers, network controllers, etc.). It is widely used at present
Powering on PCIE board (PCI Express Power Distribution Board): a powered-on PCIE board is a board that distributes power to a PCI Express (PCIE) interface and is typically used to connect power to one or more PCIE devices to ensure that the devices are functioning properly and to provide adequate power.
A Field programmable gate array (Field-Programmable Gate Array, FPGA) is a programmable logic device, which is an integrated circuit chip, having programmable logic and resource elements. Compared to conventional ASICs (Application-Specific Integrated Circuit), FPGAs have greater flexibility and reconfigurability, allowing designers to customize and optimize circuits according to specific Application requirements. FPGA development tools and techniques have made online programming possible. By online programming, the new firmware file can be loaded into the FPGA chip through a network or other communication modes under the condition of not interrupting the hardware operation. With the technology, the computer can be free from being turned off, so that a new firmware file can be transmitted to the FPGA through remote control, and function updating and configuration changing can be realized.
FPGA technology is an ideal choice for accelerating the rapid application of DPU technology due to its flexibility, programmability and high performance. In the initial stage of designing and verifying the DPU, an initial DPU chip prototype can be constructed by using the FPGA technology and is used for verifying the correctness and the performance of the design. In particular, FPGA technology allows designers to implement the functionality of a DPU at the hardware level and simulate its computation and data processing processes through programmable logic and circuit elements. The embryonic chip has high flexibility and can be modified and optimized for many times without changing the hardware structure. By using the FPGA as the rudiment of the DPU chip, a designer can rapidly verify the functions and performances of the DPU, accelerate the design and development processes and reduce the later development risk. FPGAs allow hardware functions to be reprogrammed after deployment, which programmability needs to be achieved by firmware programming to ensure that the FPGA is properly configured to the desired function.
Tool command language (Tool Command Language, TCL), a scripting programming language, was originally designed to control Electronic Design Automation (EDA) tools, and was automated and integrated in the engineering and scientific fields. TCLs have a simple, easy-to-learn syntax and are widely used to create scripts and automation tasks. It is commonly used to interact with various software tools, applications, and systems to implement automation, custom functions, and rapid prototyping. TCL can also be used to write test scripts, configuration files, and batch tasks, making it widely applicable in the fields of computer science and engineering.
Firmware file (Firmware): firmware is a program written into erasable programmable read-only memory (EPROM) or electrically erasable programmable read-only memory (EEPROM). Firmware files are the software that works at the lowest level of the most basic, and are the bridge between devices and operating systems.
Vivado (Vivado Design Suite): vivado is an integrated design environment. It provides a comprehensive tool set for hardware engineers and designers to create, validate, and implement complex digital circuits and systems. Vivado aims to accelerate the FPGA design flow, improve the production efficiency, and support the comprehensive workflow from design to verification to realization.
Python script A Python script is a text file written in the Python programming language that contains a series of Python code and instructions for performing a specific task, operation or function. Python is a high-level, general-purpose programming language that is widely used in a variety of application fields, including software development, data analysis, scientific computing, automation, network programming, and the like.
Shell script is a text file containing a series of operating system commands and script statements for executing a series of operations and tasks in a command line interface (called Shell). Shell scripts are typically executed by Shell interpreters, an interpreter provided by the operating system for parsing and executing the commands in the script.
Computing devices (Computing devices) Computing devices generally refer to different types of Computing devices, whether desktop computers, servers, or other computer devices, that are not packaged on various motherboards, including personal computers, servers, and other similar devices, and that may be user-defined for replacement of hardware devices.
Hardware management (Hardware Manager), which is a tool set of Vivado to launch a Hardware Manager so that it can be connected, configured and managed with FPGA devices.
MCS File (MCS File), which is binary data of a File format FPGA device. The MCS file typically contains data bytes in hexadecimal format, which may be configuration bit streams, programs, firmware or other data for programming or configuration in the target device. The format of the MCS file may also contain checksums, address information, and other metadata to ensure the integrity and correctness of the data.
PRM File (PRM File) PRM File is a File format that is commonly used to describe parameters and settings of a programming operation. Such files are typically used by programming tools to ensure that the correct parameters and configuration are used when performing programming operations on hardware devices. The method is used for checking the accuracy of the programming operation.
BIN File (BIN File) BIN File is a generic binary File format for storing any type of binary data, and functions in a similar way as MCS files. The file contains FPGA data for loading specific functional firmware into the hardware device. Is the main firmware data storage form adopted by my department.
The embodiment provides a schematic diagram of a DPU card firmware programming system.
As shown in fig. 1, the DPU card firmware burning system includes: the device comprises a control terminal 110 and at least one firmware programming terminal 120, and at least one power-on PCIE board 130 correspondingly connected with each firmware programming terminal 120, wherein each power-on PCIE board 130 is provided with at least one PCIE card slot.
The control terminal 110 refers to a computing device capable of distributing and scheduling programming tasks, and the firmware programming terminal 120 refers to a computing device capable of receiving and completing programming tasks distributed by the control terminal 110. Alternatively, the control terminal 110 and the firmware programming terminal 120 may be a personal computer, a server, or the like, where the device type of the control terminal 110 and the device type of the firmware programming terminal 120 are the same or different, and the implementation manner of the control terminal 110 and the firmware programming terminal 120 is not limited in this embodiment.
In fig. 1, the number of firmware programming terminals 120 is taken as an example to describe one or at least two of the number of firmware programming terminals 120 in actual implementation, and the present embodiment does not limit the number of firmware programming terminals 120.
It should be noted that, the control terminal 110 and the firmware programming terminal 120 are only for functional distinction, and the same terminal may be the control terminal 110, that is, the terminal for distributing programming tasks in actual implementation; the firmware programming terminal 120 may be a terminal that establishes a communication connection with a terminal that allocates a programming task to receive the programming task.
A burn-in task refers to a task of writing specific firmware (e.g., software, an operating system, firmware programs, etc.) to a target device. In this embodiment, the writing task may be a task set by a user through an input device (such as a mouse or a keyboard) connected to the control terminal 110, or may be a task set by a program installed in the control terminal 110, or may be a task set by another device that establishes a communication connection with the control terminal 110 and sends the program to the control terminal 110.
Generally, the control terminal 110 has a task allocation program installed therein. The task allocation program is a program installed in the control terminal 110, which has a function of establishing a communication connection with the firmware programming terminal 120 and allocating a firmware programming task according to the firmware programming terminal 120 that establishes the communication connection, and may be an application program developed separately or a functional module embedded in an existing program, such as an applet or a web page. The present embodiment does not limit the implementation of the task allocation program.
Specifically, in this embodiment, the control terminal 110 is configured to: respectively sending a connection instruction to at least one firmware programming terminal 120 to search for the at least one firmware programming terminal 120; in the case that the firmware programming terminal 120 is found, establishing communication connection with the found current firmware programming terminal 120; based on the communication connection, the programming task is distributed to the current firmware programming terminal 120, so that the current firmware programming terminal 120 adds the received programming task to the programming task list; and sending the firmware file corresponding to the programming task to the current firmware programming terminal 120.
In this embodiment, the firmware file is stored in the built-in storage medium of the control terminal 110 in advance, and after the control terminal 110 distributes the writing task to the firmware writing terminal 120 currently establishing the communication connection, the firmware file is sent to the designated path of the firmware writing terminal 120 based on the communication connection, so that the firmware writing terminal 120 can write the firmware file into the DPU card according to the instruction of the writing task after receiving the writing task. The DPU card is mounted on the power-on PCIE board 130 connected to the firmware burning terminal 120.
In actual implementation, the firmware file may also be stored in an external storage medium independent of the control terminal 110, for example, a usb disk, a hard disk, or the like, or stored in a cloud server, which is not limited in the storage manner of the firmware file in this embodiment.
As shown in fig. 1, each firmware burning terminal 120 is connected to an active PCIE board 130, and in fig. 1, the number of active PCIE boards 130 connected to the firmware burning terminal 120 is taken as an example to describe an explanation, and in actual implementation, the number of active PCIE boards 130 is one or at least two, and the present embodiment does not limit the number of active PCIE boards 130.
Each of the power-on PCIE boards 130 is provided with at least one PCIE card slot.
In one example, each PCIE slot has a corresponding slot interface. Accordingly, the DPU card is installed on the power-on PCIE board 130 through a PCIE card slot provided on the power-on PCIE board 130; the firmware programming terminal 120 is connected with a card slot interface on the powered PCIE board 130, and writes the firmware file into the DPU card based on the card slot interface.
Such as: referring to fig. 2, taking the power-on PCIE board 130 shown in fig. 2 as an example, 4 PCIE card slots are provided on the power-on PCIE board, and each PCIE card slot has a corresponding card slot interface; the DPU card is inserted into the 4 PCIE card slots, and the firmware programming terminal is connected with the card slot interfaces corresponding to the 4 PCIE card slots respectively.
In another example, the DPU card includes a link interface, the DPU card is installed in a PCIE card slot, the firmware programming terminal is connected to the DPU card and the powered PCIE board 130 through the link interface on the DPU card, and writes the firmware file into the DPU card based on the link interface.
In a conventional DPU card firmware system, referring to fig. 3, a pcie card slot is disposed on a motherboard of a computing device, under the condition that a DPU card needs to be replaced, an operator is required to close the computing device and manually detach a shell of the computing device, after the DPU card is replaced, the shell of the computing device is assembled, and then the computing device is started, so that a burning process of the DPU card firmware is complicated, and burning efficiency of a firmware file is low.
In this embodiment, the control terminal 120 distributes the programming task to the firmware programming terminal 120 currently connected, and the firmware programming terminal 120 is connected to the power-on PCIE board; the power-on PCIE board is provided with at least one PCIE card slot, so that a user does not need to manually detach and install and restart the firmware programming terminal 120, thereby simplifying the process of programming the DPU card firmware and improving the programming efficiency of the DPU card.
Specifically, firmware programming terminal 120 is configured to: under the condition of receiving a programming task and a firmware file, determining a DPU card on a current connected power-on PCIE board; executing a firmware programming script, and programming a firmware file into the DPU card; the firmware programming script is used for loading the firmware file into the DPU card, and carrying out programming flow verification on the DPU card after programming is completed to obtain a programming flow verification result; determining whether the remaining programming tasks exist in the programming task list under the condition that the programming process verification result indicates that the DPU card programming process is correct; and ending the firmware programming terminal programming task under the condition that no residual programming task exists.
The firmware programming script is a script for executing firmware file programming and feeding back a programming flow verification result, and is a TCL script written based on an FPGA firmware programming TCL mode technology.
The DPU card firmware programming method provided by the application is described in detail below.
As shown in fig. 4, an embodiment of the present application provides a method for writing a DPU card firmware, and the embodiment is described by taking the method as an example in the system shown in fig. 1, and the method at least includes steps S401 to S408:
in step S401, a connection instruction is sent to at least one firmware programming terminal through a control terminal, so as to find the at least one firmware programming terminal.
Before executing the writing task of the firmware file, the available firmware writing terminals in the firmware writing terminals need to be determined, and based on this, in this embodiment, a control terminal sends a connection instruction to each firmware writing terminal respectively, so as to find out the available firmware writing terminal in at least one firmware writing terminal as the current firmware writing terminal.
Step S402, under the condition that the firmware programming terminal is found, communication connection is established between the control terminal and the found current firmware programming terminal.
The communication connection between the control terminal and the current firmware programming terminal comprises wired connection and/or wireless communication connection, and the embodiment does not limit the type of the communication connection between the control terminal and the current firmware programming terminal.
In one example, a wired communication connection is established between the control terminal and each firmware programming terminal.
In another example, a wireless communication connection is established between the control terminal and each firmware burning terminal.
In addition, after the control terminal sends the connection instruction, if the feedback information of the firmware programming terminal is not received, the control terminal also needs to send prompt information to prompt the user to check the current programming environment, including the device state of the firmware programming terminal or the device state of the control terminal.
Specifically, under the condition that the firmware programming terminal is not found, the method further comprises the following steps: and outputting connection prompt information through the control terminal so as to prompt a user to check the current programming environment.
Among other things, implementation of the hint information includes, but is not limited to: a text information display instruction; and/or alert audio.
Under the condition that the prompt information is a text information display instruction, outputting the connection prompt information through the control terminal to prompt a user to check the current programming environment, and comprising the following steps: and sending a text information display instruction to the appointed program through the control terminal.
In one example, the specified program is a program installed in a specified device, the specified program has a function of displaying text information, the specified program may be an application program developed separately or a functional module embedded in an existing program, and the implementation of the specified program is not limited in this embodiment.
The appointed equipment is connected with the control terminal in a wired or wireless communication mode, and has a display function to display text information displayed by the appointed program. Illustratively, the designated device includes an electronic device with a display interface, such as a mobile phone and/or a tablet computer, and the implementation manner of the designated device is not limited in this embodiment.
In another example, the program is designated as a program installed in the control terminal. At this time, the control terminal is further provided with a display component to display text information displayed by the specified program.
And under the condition that the prompt information is prompt audio, the control terminal further comprises an audio output component. Correspondingly, the control terminal outputs connection prompt information to prompt a user to check the current programming environment, and the method comprises the following steps: and playing the prompt audio through an audio output component of the control terminal.
In other embodiments, the alert information may also include audio alert instructions for instructing the designated program to play alert audio. Correspondingly, the control terminal outputs connection prompt information to prompt a user to check the current programming environment, and the method comprises the following steps: and sending an audio prompt instruction to the appointed program through the control terminal. Or, the prompt information includes at least two of prompt audio, a text information display instruction and an audio prompt instruction, and the implementation manner of the prompt information is not limited in this embodiment.
Step S403, based on the communication connection, the control terminal distributes the programming task to the current firmware programming terminal, so that the current firmware programming terminal adds the received programming task to the programming task list.
The programming task comprises at least one programming subtask. After the control terminal establishes communication connection with the available current firmware programming terminal in the at least one firmware programming terminal, each programming subtask in the programming tasks is distributed to the current firmware programming terminal according to a preset distribution method, so that the current firmware programming terminal adds the received programming tasks into a task list.
In this embodiment, allocating the programming subtask in the programming task to the current firmware programming terminal according to the preset allocation method at least includes the following cases:
firstly, the preset allocation method is to allocate the programming task to each current firmware programming terminal evenly according to the number of the current firmware programming terminals.
The second method for pre-setting allocation is to respectively send the writing tasks to each current firmware writing terminal according to the proportion based on the writing capability of each current firmware writing terminal.
In this embodiment, each current firmware programming terminal is connected to at least one power-on PCIE board, and at least one PCIE card slot is provided on each power-on PCIE board. After the control terminal establishes communication connection with the current firmware programming terminal, the preset DPU card link number of each current firmware programming terminal is obtained based on the communication connection, so that programming capacity of each firmware programming terminal is determined.
The preset number of DPU card links refers to the number of DPU cards which can be linked by a preset firmware programming terminal, and the preset number of DPU card links is smaller than or equal to the number of PCIE card slots of the firmware programming terminal.
Such as: referring to fig. 5, taking the case that the writing task includes 12 writing subtasks, the number of the current firmware writing terminals is 2, including the firmware writing terminal A1 and the firmware writing terminal A2 as an example; the firmware programming terminal A1 is respectively connected with the power-on PCIE board B1 and the power-on PCIE board B2, and the firmware programming terminal A2 is connected with the power-on PCIE board B3; under the condition that 4 PCIE card slots are arranged on each power-on PCIE board and the number of preset DPU card links is 4, 8 programming subtasks are distributed to a firmware programming terminal A1, and 4 programming subtasks are distributed to a firmware programming terminal A2; under the conditions that the power-on PCIE board B1 comprises 1 PCIE card slot and the preset number of DPU card links is 1, the power-on PCIE board B2 comprises 3 PCIE card slots and the preset number of DPU card links is 2, and the power-on PCIE board B3 comprises 8 PCIE card slots and the preset number of DPU card links is 3, 2 programming subtasks are distributed to the firmware programming terminal A1, and 10 programming subtasks are distributed to the firmware programming terminal A2.
Specifically, the method for distributing the programming task to the current firmware programming terminal through the control terminal comprises the following steps: the control terminal evenly distributes the programming tasks to the current firmware programming terminals according to the number of the current firmware programming terminals; or, obtaining the number of links of the preset DPU card corresponding to each current firmware programming terminal through the control terminal; and distributing the programming task to the searched firmware programming terminal based on the preset DPU card link number.
In actual implementation, the number of the power-on PCIE boards and the number of preset DPU card links corresponding to each firmware programming terminal may also be stored in the control terminal in advance, and after the control terminal establishes communication connection with each current firmware programming terminal, the control terminal obtains a terminal identifier of each current firmware programming terminal, and searches for the number of the power-on PCIE boards and the number of PCIE slots corresponding to each current firmware terminal based on the terminal identifier.
The terminal mark is a number, a letter or a combination of the number and the letter and is used for uniquely indicating the firmware programming terminal; the implementation manner of the terminal identifier is not limited in this embodiment.
Specifically, the method for obtaining the preset DPU card link number corresponding to each current firmware programming terminal through the control terminal includes: based on communication connection, receiving a current terminal identifier sent by each current firmware programming terminal through a control terminal; and searching and obtaining the preset DPU card link number corresponding to each current firmware programming terminal through the control terminal according to the current terminal identification and the preset relation between the terminal identification and the preset DPU card link number.
In another embodiment, after the control terminal establishes a communication connection with the current firmware programming terminal, the control terminal obtains the PCIE card slot number and/or the computing resource of each current firmware programming terminal based on the communication connection, so as to determine the programming capability of each firmware programming terminal.
In yet another embodiment, after establishing a communication connection with the current firmware programming terminal, the control terminal obtains the number of DPU cards currently linked for each current firmware programming terminal based on the communication connection to determine the programming capability of each firmware programming terminal.
The computing Resources include a central processing unit (Central Processing Unit Resources, CPU Resources) and a memory resource, and the class of the computing Resources is not limited in this embodiment.
Step S404, the control terminal sends the firmware file corresponding to the programming task to the current firmware programming terminal.
The firmware files comprise programming files and programming configuration files.
The programming file is a core file in the firmware programming process, and contains the actual firmware code, data or programs, and the programming file describes the functions, operating system, drivers, etc. of the device, and is usually represented by a binary or specific format code. The programming file is responsible for updating the firmware of the device to have new functionality or to fix existing problems.
The programming configuration file contains configuration information of the programming process to ensure that the firmware is properly programmed to the target device. The programming configuration file comprises configuration parameters such as address range for programming, programming options, programming algorithm and the like. Programming profiles are important to ensure the accuracy and effectiveness of programming, which ensures that the programming files are properly written to the designated locations of the device.
Step S405, determining, by the current firmware programming terminal, the DPU card on the powered PCIE board to which the current firmware programming terminal is currently connected.
Step S406, executing the firmware programming script through the current firmware programming terminal, programming the firmware file into the DPU card through the card slot interface, and obtaining the programming flow verification result.
In this embodiment, each current firmware programming terminal is connected to a corresponding power-on PCIE board, and writes the firmware file into the DPU card. Wherein, the DPU card is inserted in the PCIE card slot.
Since the number of PCIE card slots on each powered PCIE board is at least one, in this embodiment, the number of DPU cards inserted on each powered PCIE board is also at least one.
Correspondingly, executing the firmware programming script through the current firmware programming terminal, and programming the firmware file to the DPU card at least comprises at least one of the following cases:
first, the firmware files are sequentially written into the DPU card according to the serial numbers of the PCIE cards.
In this embodiment, after the DPU card is installed in the PCIE card slot, a temporary card number is allocated, the numbers corresponding to the DPU cards on the same powered PCIE board are different, and the numbers corresponding to the DPU cards installed on different powered PCIE boards are the same or different.
Specifically, when the number of DPU cards is at least one, executing the firmware programming script by the current firmware programming terminal, programming the firmware file into the DPU card, including: obtaining PCIE card numbers corresponding to each DPU card; based on the arrangement sequence of PCIE card numbers, executing a firmware programming script through the current firmware programming terminal, and sequentially programming the firmware files into the DPU card.
Such as: referring to fig. 5, taking the firmware programming terminal A2 as an example, an active PCIE board B3 connected to the firmware programming terminal A2 includes 3 PCIE card slots, where PCIE card numbers are P1, P2, and P3, respectively; when the firmware programming terminal A2 writes the firmware, the firmware files are sequentially written according to the sequence of P1, P2 and P3; or, when the firmware programming terminal A2 writes the firmware, the firmware files are sequentially written according to the sequence of P3, P2 and P1.
Second, the firmware files are programmed in parallel into the DPU card.
Specifically, when the number of DPU cards is at least one, executing the firmware programming script by the current firmware programming terminal, programming the firmware file into the DPU card, including: and executing a firmware programming script through the current firmware programming terminal, and programming the firmware file into the DPU card in parallel.
In other embodiments, the method for programming the firmware file by each current firmware programming terminal includes parallel programming and sequential programming according to the serial number of the PCIE card; the current firmware burn-in can determine which way to use based on the current computing resources.
Specifically, the firmware programming script is executed through the current firmware programming terminal, and the firmware file is programmed into the DPU card, and the method further comprises the following steps: acquiring computing resources corresponding to the current programming terminal through the current firmware programming terminal; under the condition that the current computing resource is greater than or equal to the preset computing resource, parallelly programming the firmware file into the DPU card;
or under the condition that the current computing resource is smaller than the preset computing resource, acquiring the PCIE card number corresponding to each DPU card; based on the arrangement sequence of PCIE card numbers, executing a firmware programming script through the current firmware programming terminal, and sequentially programming the firmware files into the DPU card.
In addition, in this embodiment, the firmware file includes a programming file and a programming configuration file, and accordingly, executing the firmware programming script through the current firmware programming terminal, and programming the firmware file into the DPU card includes: executing a firmware programming script through the firmware programming terminal, and programming configuration information in the programming file into the DPU card; and verifying the DPU card through the programming verification file to obtain a programming flow verification result.
In step S407, if the verification result of the writing process indicates that the DPU card writing process is correct, the current firmware writing terminal determines whether there are any remaining writing tasks in the writing task list.
And if the verification result of the programming flow corresponding to the DPU card indicates that the programming flow is correct, executing the step of determining whether the residual programming task exists in the programming task list through the current firmware programming terminal.
And under the condition that the programming mode is parallel programming of the DPU card on the power-on PCIE board, if one or at least two programming flow verification results exist in the programming flow verification results corresponding to the DPU card, indicating programming flow errors, outputting error prompt information through the firmware programming terminal.
Such as: taking the number of the DPU cards on the powered PCIE board as 2 as an example, if one or two programming flow verification results exist in the programming flow verification results corresponding to the 2 DPU cards to indicate programming flow errors, outputting error prompt information through the current firmware programming terminal.
Specifically, in the case that the verification result indicates that the DPU card writing process is wrong, the method further includes: and outputting error prompt information through the firmware programming terminal so as to prompt a user to check the current programming environment.
Correspondingly, if the programming mode is to sequentially program according to the serial numbers of the PCIE cards, if the current feedback programming flow verification result indicates that the programming flow is wrong, the firmware programming terminal outputs error prompt information.
Such as: taking the number of DPU cards on the PCIE board after power-on as 2 as an example, if the obtained programming flow verification result indicates programming failure after programming the first DPU card is executed, outputting error prompt information through the current firmware programming terminal; or after the writing of the first DPU card is executed, if the obtained writing flow verification result indicates that the writing is successful, the writing of the second DPU card is executed, and if the writing flow verification result corresponding to the second DPU card indicates that the writing is failed, the error prompt information is output through the current firmware writing terminal.
In step S408, if there are no remaining writing tasks, the writing task of the current firmware writing terminal is ended.
In this embodiment, if there are no remaining tasks in the task list corresponding to the current firmware programming terminal, the programming task corresponding to the current firmware programming terminal is completed; correspondingly, under the condition that the residual tasks exist in the task list, outputting prompt information through the current firmware programming terminal to prompt a user to replace the DPU card, then after receiving feedback instructions indicated by the user, determining the DPU card inserted on the connected power-on PCIE board, and executing programming of the firmware file until the task list is emptied.
Specifically, in the case where there are remaining programming tasks, the method further includes: outputting replacement prompt information through the current firmware programming terminal to prompt a user to replace a DPU card on an electrified PCIE board currently connected with the current firmware programming terminal; and responding to the received feedback instruction, and executing the step of determining the DPU card on the power-on PCIE board currently connected with the current firmware programming terminal through the current firmware programming terminal.
The feedback instruction refers to that after the user changes the DPU card, the user inputs the instruction of the current firmware programming terminal through an input device, such as a keyboard or a mouse, connected with the current firmware programming terminal; or the feedback instruction is an instruction which is input by interaction with the display screen of the current firmware programming terminal after the user replaces the DPU card. The present embodiment does not limit the implementation of feedback indication.
In order to more clearly understand the DPU card firmware programming method provided in the present application, an example of the method is described below. In this example, taking the case that the firmware programming terminal realizes automatic programming through a programming language script as an example, where the programming language script refers to a script combined by a python script and a shell script, and is used to combine the operating system information of the firmware programming terminal and the firmware programming script trans deaf to integrally form a complete DPU card firmware programming automation system, referring to fig. 6, the method includes the following steps S601 to S618:
Step S601, a programming program is appointed by punching a card through a programming language script; the specified programming program includes a Vivado hardware manager (Vivado Hardware Manager) or a quatus Prime programmer (Quartus Prime Programmer) and the like.
Step S602, connect to the power-on PCIE board, allowing non-joint test operation group connection.
Step S603, determining whether to open the target hardware, and executing step S604 if the target hardware is opened; otherwise, step S617 is performed; the target hardware includes hardware built in the power-on PCIE board and the firmware programming terminal, for example, a network card built in the firmware programming terminal, and the like.
In step S604, a power-on PCIE board is selected.
Step S605, the powered PCIE board is refreshed, and the hardware probe is not updated.
In step S606, a hardware configuration storage object of the power-on PCIE board is created.
In step S607, a programming option is set.
In step S608, the attribute powers on the PCIE board.
Step S609 sets a program address range.
Step S610, judging whether a programming file path is set, and executing step S611 when the programming file path is set; otherwise, step S618 is performed. Wherein, the programming file is an MCS file or a BIN file.
Step S611, judging whether to set a programming parameter file path; in the case that the programming parameter file path is set, step S612 is performed, otherwise, step S618 is performed. Wherein the programming parameter file is a PRM file.
In step S612, an unused pin termination mode is set.
In step S613, a programming option is set.
Step S614, executing the firmware programming script and starting the programming process.
In step S615, the power-on PCIE board is restarted.
Step S616, the powered PCIE board is refreshed, and step S619 is performed.
Step S617, generating an error number and feeding back a first error prompt message, and executing step S619. The first error prompt message is used for prompting the current programming environment to be checked.
Step S618, generate an error number and feed back a second error prompt message, and execute step S619. The second error prompt message is used for prompting to check the current programming environment.
Step S619, exit the programming language script.
In order to more clearly understand the DPU card firmware programming method provided in the present application, another example of the method is described below. In this example, taking the above DPU card firmware burning system as an example, referring to fig. 7, the method includes the following steps S701 to S711:
in step S701, the control terminal starts the target program of the control terminal, and sends a connection instruction to the firmware programming terminal to find the firmware programming terminal.
Step S702, the control terminal determines whether a firmware programming terminal is found, and if the firmware programming terminal is found, step S703 is executed, otherwise, step S711 is executed.
Step S704, the control terminal sends the firmware file to the firmware programming terminal.
Step S705, executing the programming script through the firmware programming terminal.
Step S706, the firmware programming terminal determines whether the firmware programming script is executed normally, and if the firmware programming script is executed normally, step S707 is executed, otherwise step S708 is executed.
Step S707, outputting a replacement prompt message through the firmware programming terminal to prompt the user to replace the DPU card to continue to execute the programming task until the programming task is emptied, and executing step S712.
Step S708, generating error numbers through the firmware programming terminal and outputting error prompt information to prompt a user to check the current programming environment.
Step S709, the firmware programming terminal receives the user feedback instruction, determines whether the programming task can be continuously executed, and if the programming task can be continuously executed, step S707 is executed, otherwise, step S710 is executed.
Step S710, generating error numbers and feeding back error prompt information through the firmware programming terminal.
Step S711 ends the target program in the control terminal by the control terminal.
According to the DPU card firmware programming method, the control terminal sends the connection instruction to at least one firmware programming terminal respectively to search the at least one firmware programming terminal; under the condition that the firmware programming terminal is found, establishing communication connection with the found current firmware programming terminal through the control terminal; based on communication connection, distributing the programming task to the current firmware programming terminal through the control terminal, so that the current firmware programming terminal adds the received programming task to a programming task list; the firmware file corresponding to the programming task is sent to the current firmware programming terminal through the control terminal; determining a DPU card on an electrified PCIE board currently connected with the current firmware programming terminal through the current firmware programming terminal; executing a firmware programming script through the current firmware programming terminal, programming a firmware file into the DPU card and obtaining a programming flow verification result; when the verification result of the programming flow indicates that the programming flow of the DPU card is correct, determining whether the rest programming task exists in the programming task list through the current firmware programming terminal; ending the writing task of the current firmware writing terminal under the condition that no residual writing task exists; the problem that the DPU card firmware programming process is tedious and low-efficiency can be solved; the method comprises the steps that a programming task is distributed to a firmware programming terminal which is connected currently through a control terminal, the firmware programming terminal is connected with an electrified PCIE board, at least one PCIE card slot is formed in the electrified PCIE board, and a firmware file is programmed into a DPU network card inserted in the PCIE card slot; the user does not need to frequently and manually detach and install and restart the firmware programming terminal, so that the process of programming the DPU card firmware can be simplified, and the programming efficiency of the DPU card can be improved; meanwhile, communication connection is established between the control terminal and at least one firmware programming terminal, so that the control terminal can control the plurality of firmware programming terminals to execute programming tasks at the same time, and the programming efficiency of the DPU card firmware can be further improved under the condition that a large number of programming tasks exist.
Further, the power-on PCIE board is connected with the firmware programming terminal, the DPU card is installed on the power-on PCIE board to perform firmware programming, the number of PCIE card slots of the power-on PCIE board connected with the firmware programming terminal can be expanded through the expansibility of the power-on PCIE board, and the scale of DPU card firmware programming can be improved; meanwhile, the power-on PCIE board only needs to be connected with the firmware programming terminal, is not limited by the environment and can be placed at any position in the programming environment, so that the problems of low adaptability and poor scale expandability caused by the influence of the environment limitation of the computing equipment are avoided.
Furthermore, the power-on PCIE board replaces a main board of the computing device, so that the cost of programming the DPU card firmware can be reduced without using a large number of computing devices under the condition that a large number of programming tasks exist.
Furthermore, the power-on PCIE board replaces a main board of the computing equipment, so that manual disassembly of the computing equipment is not required by a user, the frequency of manual operation of the user is reduced, the user does not need to judge the programming process and learn the complex programming process, only the DPU card to be programmed needs to be replaced and error information feedback is required, the learning cost of the user can be reduced, meanwhile, the probability of firmware programming failure caused by the manual operation error of the user is reduced, and the success rate of the DPU card firmware programming can be improved.
Further, since the computing device belongs to a relatively large number of precision instrument motherboard protection facilities in the precision instrument case removal step, for example: buckle, screw and wiring sticky tape etc. replace computing device's mainboard through the circular telegram PCIE board, need not the manual computing device of disassembling of user, reduced the frequency of user's manual operation, reduced the hardware time of changing, computing device shell dismantlement time and mainboard change equipment time, can reduce time cost, improve firmware programming efficiency.
The present embodiment provides a DPU card firmware programming device, as shown in fig. 8. The device is applied to the DPU card firmware programming system shown in fig. 1, and comprises at least the following modules: a terminal finding module 810, a communication connection module 820, a task allocation module 830, a file sending module 840, a hardware determination module 850, a script execution module 860, a task determination module 870, and a task ending module 880.
The terminal searching module 810 is configured to send a connection instruction to at least one firmware writing terminal through the control terminal, so as to search for the at least one firmware writing terminal.
And the communication connection module 820 is used for establishing communication connection with the searched current firmware programming terminal through the control terminal under the condition that the firmware programming terminal is searched.
The task allocation module 830 is configured to allocate, based on the communication connection, the writing task to the current firmware writing terminal through the control terminal, so that the current firmware writing terminal adds the received writing task to the writing task list.
The file sending module 840 is configured to send, through the control terminal, a firmware file corresponding to the writing task to the current firmware writing terminal.
The hardware determining module 850 is configured to determine, by using the current firmware burning terminal, a DPU card on the power-on PCIE board to which the current firmware burning terminal is currently connected.
The script execution module 860 is configured to execute a firmware programming script through the current firmware programming terminal, and write the firmware file into the DPU card and obtain a programming flow verification result.
The task determining module 870 is configured to determine, by using the current firmware programming terminal, whether there are remaining programming tasks in the programming task list if the programming process verification result indicates that the DPU card programming process is correct.
And the task ending module 880 is configured to end the writing task of the current firmware writing terminal when there are no remaining writing tasks.
For relevant details reference is made to the above-described method and system embodiments.
It should be noted that: in the DPU card firmware programming device provided in the above embodiment, only the division of the above functional modules is used for illustration when the DPU card firmware programming is performed, and in practical application, the above functional allocation may be performed by different functional modules according to needs, that is, the internal structure of the DPU card firmware programming device is divided into different functional modules, so as to complete all or part of the functions described above. In addition, the DPU card firmware programming device provided in the above embodiment and the DPU card firmware programming method embodiment belong to the same concept, and the specific implementation process is detailed in the method embodiment, which is not described herein again.
The present embodiment provides an electronic apparatus as shown in fig. 9. The electronic device may be the control terminal or the firmware programming terminal of fig. 1. The electronic device comprises at least a processor 901 and a memory 902.
Processor 901 may include one or more processing cores such as: 4 core processors, 8 core processors, etc. The processor 901 may be implemented in at least one hardware form of DSP (Digital Signal Processing ), FPGA (Field-Programmable Gate Array, field programmable gate array), PLA (Programmable Logic Array ). The processor 901 may also include a main processor and a coprocessor, the main processor being a processor for processing data in an awake state, also referred to as a CPU (Central Processing Unit ); a coprocessor is a low-power processor for processing data in a standby state. In some embodiments, the processor 901 may integrate a GPU (Graphics Processing Unit, image processor) for rendering and drawing of content required to be displayed by the display screen. In some embodiments, the processor 901 may also include an AI (Artificial Intelligence ) processor for processing computing operations related to machine learning.
The memory 902 may include one or more computer-readable storage media, which may be non-transitory. The memory 902 may also include high-speed random access memory, as well as non-volatile memory, such as one or more magnetic disk storage devices, flash memory storage devices. In some embodiments, a non-transitory computer readable storage medium in memory 902 is used to store at least one instruction for execution by processor 901 to implement the DPU card firmware programming method provided by the method embodiments of the present application.
In some embodiments, the electronic device may further optionally include: a peripheral interface and at least one peripheral. The processor 901, memory 902, and peripheral interfaces may be connected by buses or signal lines. The individual peripheral devices may be connected to the peripheral device interface via buses, signal lines or circuit boards. Illustratively, peripheral devices include, but are not limited to: radio frequency circuitry, touch display screens, audio circuitry, and power supplies, among others.
Of course, the electronic device may also include fewer or more components, as the present embodiment is not limited in this regard.
Optionally, the application further provides a computer readable storage medium, in which a program is stored, and the program is loaded and executed by a processor to implement the DPU card firmware programming method of the above method embodiment.
The technical features of the above-described embodiments may be arbitrarily combined, and all possible combinations of the technical features in the above-described embodiments are not described for brevity of description, however, as long as there is no contradiction between the combinations of the technical features, they should be considered as the scope of the description.
It will be apparent that the embodiments described above are only some, but not all, of the embodiments of the present application. Based on the embodiments herein, one of ordinary skill in the art could make other variations or modifications without making any inventive effort, which would be within the scope of the present application.

Claims (10)

1. The DPU card firmware programming method is characterized by being applied to a DPU card firmware programming system, wherein the DPU card firmware programming system comprises a control terminal and at least one firmware programming terminal, at least one powered-on PCIE board correspondingly connected with each firmware programming terminal, and at least one PCIE card slot is formed in each powered-on PCIE board; the method comprises the following steps:
sending a connection instruction to the at least one firmware programming terminal through the control terminal respectively so as to search the at least one firmware programming terminal;
Under the condition that the firmware programming terminal is found, establishing communication connection with the found current firmware programming terminal through the control terminal;
based on the communication connection, distributing the programming task to the current firmware programming terminal through the control terminal so that the current firmware programming terminal adds the received programming task to a programming task list;
the firmware file corresponding to the programming task is sent to the current firmware programming terminal through the control terminal;
determining a DPU card on an electrified PCIE board currently connected with the current firmware programming terminal through the current firmware programming terminal;
executing a firmware programming script through the current firmware programming terminal, programming the firmware file into the DPU card and obtaining a programming flow verification result;
determining whether a residual programming task exists in the programming task list through the current firmware programming terminal under the condition that the programming process verification result indicates that the DPU card programming process is correct;
and ending the programming task of the current firmware programming terminal under the condition that the residual programming task does not exist.
2. The DPU card firmware burning method as recited in claim 1, wherein in the case where there are the remaining burning tasks, the method further comprises:
Outputting replacement prompt information through the current firmware programming terminal to prompt a user to replace a DPU card on an electrified PCIE board currently connected with the current firmware programming terminal;
and responding to the received feedback instruction, executing the step of determining the DPU card on the power-on PCIE board connected with the current firmware programming terminal through the current firmware programming terminal.
3. The DPU card firmware programming method as claimed in claim 1, wherein, in the case that the number of DPU cards is at least one, the executing, by the current firmware programming terminal, a firmware programming script, programming the firmware file into the DPU card, includes:
obtaining PCIE card numbers corresponding to each DPU card;
and executing the firmware programming script through the current firmware programming terminal based on the arrangement sequence of the PCIE card numbers, and sequentially programming the firmware files into the DPU card.
4. The DPU card firmware programming method as claimed in claim 1, wherein, in the case that the number of DPU cards is at least one, the executing, by the current firmware programming terminal, a firmware programming script, programming the firmware file into the DPU card, includes: and executing the firmware programming script through the current firmware programming terminal, and programming the firmware file into the DPU card in parallel.
5. The DPU card firmware programming method as claimed in claim 1, wherein the firmware files include programming files and programming configuration files, the executing a firmware programming script by the current firmware programming terminal, programming the firmware files into the DPU card, comprises:
executing the firmware programming script through the current firmware programming terminal, and programming configuration information in the programming file into the DPU card;
and verifying the DPU card through the programming verification file to obtain the verification result of the programming flow.
6. The method for batch programming of DPU card firmware of claim 1, wherein the distributing programming tasks to the current firmware programming terminal via the control terminal comprises:
the control terminal averagely distributes the programming tasks to the current firmware programming terminals according to the number of the current firmware programming terminals;
or,
acquiring the number of preset DPU card links corresponding to each current firmware programming terminal through the control terminal; and distributing the programming task to the searched firmware programming terminal based on the preset DPU card link number.
7. The DPU card firmware burning method as recited in claim 1, wherein in the case that the firmware burning terminal is not found, the method further comprises:
And outputting connection prompt information through the control terminal so as to prompt a user to check the current programming environment.
8. The method of batch programming DPU card firmware of claim 1, wherein in the event that the verification result indicates that the DPU card programming process is incorrect, the method further comprises:
and outputting error prompt information through the firmware programming terminal so as to prompt a user to check the current programming environment.
9. A DPU card firmware programming system, comprising: the device comprises a control terminal and at least one firmware programming terminal, and at least one power-on PCIE board correspondingly connected with each firmware programming terminal, wherein each power-on PCIE board is provided with at least one PCIE card slot;
the control terminal is used for: respectively sending a connection instruction to the at least one firmware programming terminal to search the at least one firmware programming terminal; under the condition that the firmware programming terminal is found, establishing communication connection with the found current firmware programming terminal; based on the communication connection, distributing the programming task to the current firmware programming terminal so that the current firmware programming terminal adds the received programming task to a programming task list; transmitting the firmware file corresponding to the programming task to the current firmware programming terminal;
The firmware programming terminal is used for: under the condition that the programming task and the firmware file are received, determining a DPU card on a current connected power-on PCIE board; executing a firmware programming script, and programming the firmware file into the DPU card; the firmware programming script is a TCL script; the firmware programming script is used for loading the firmware file into the DPU card, and carrying out programming flow verification on the DPU card after the programming flow is completed to obtain a programming flow verification result; determining whether the remaining programming tasks exist in the programming task list under the condition that the programming process verification result indicates that the DPU card programming process is correct; and ending the firmware programming terminal programming task under the condition that the residual programming task does not exist.
10. A computer readable storage medium, on which a computer program is stored, characterized in that the program, when being executed by a processor, implements the steps of the method according to any one of claims 1 to 8.
CN202311446394.9A 2023-11-01 2023-11-01 DPU card firmware programming method, system and storage medium Pending CN117573148A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311446394.9A CN117573148A (en) 2023-11-01 2023-11-01 DPU card firmware programming method, system and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311446394.9A CN117573148A (en) 2023-11-01 2023-11-01 DPU card firmware programming method, system and storage medium

Publications (1)

Publication Number Publication Date
CN117573148A true CN117573148A (en) 2024-02-20

Family

ID=89894549

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311446394.9A Pending CN117573148A (en) 2023-11-01 2023-11-01 DPU card firmware programming method, system and storage medium

Country Status (1)

Country Link
CN (1) CN117573148A (en)

Similar Documents

Publication Publication Date Title
US9558016B2 (en) Platform system, method for changing support hardware configuration of universal extensible firmware interface basic input output system and computer program product
CN106557340B (en) Configuration method and device
US11080168B1 (en) System, method and apparatus for selection of hardware and software for optimal implementation of one or more functionality or algorithm
CN101427217A (en) Integrating programmable logic into personal computer (PC) architecture
CN108319575B (en) Page component checking method, device, server and storage medium
US9851944B2 (en) Operation search method and operation search apparatus
CN104156234A (en) Multi-core processor starting and bootloader big-little endian mode adapting method device
CN109032850B (en) Field device debugging system and field device debugging method
CN113064610A (en) Method, device and medium for updating BIOS
CN110134598B (en) Batch processing method, device and system
CN110633258B (en) Log insertion method, device, computer device and storage medium
CN112487067A (en) Method, device and storage medium for page display based on data configuration
CN110134423B (en) Firmware updating method and device and computer readable storage medium
CN115599618B (en) Register dynamic change-allocation verification method and device, storage medium and processor
CN115357257B (en) Installation file generation method, system, computing device and storage medium
CN117573148A (en) DPU card firmware programming method, system and storage medium
CN111383704B (en) Built-in self-test circuit of memory and test method for memory
CN111258618A (en) File configuration method and device, computer equipment and storage medium
US11550708B1 (en) System, method and apparatus for selection of hardware and software for optimal implementation of one or more functionality or algorithm
CN108334313A (en) Continuous integrating method, apparatus and code management system for large-scale SOC research and development
US6813751B2 (en) Creating standard VHDL test environments
CN110069417B (en) A/B test method and device
KR101726663B1 (en) Method and System for automated I/O-port linking framework between the models using the concept of cloud or cloud-computing in Model Based Design under the block diagram environment
CN116136813B (en) Method, device and storage medium for simulating adaptive multi-model avionics signals
KR20200022254A (en) Apparatus and method for configuration of os based on self-defined definition

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination