Configuration method and computer equipment
By identifying PCIe device identification information through BIOS and loading general and personalized configuration information through BMC, the problem of redundancy in BMC configuration methods is solved, and efficient independent configuration of PCIe devices is achieved.
Patent Information
- Application Number
- CN202511063317.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-07-30
- Publication Date
- 2025-11-14
AI Technical Summary
BMC has redundant configuration methods for PCIe devices, resulting in high complexity in the configuration process.
By identifying the PCIe device's identification information through the BIOS, the BMC obtains the type information and loads the general configuration information. At the same time, it obtains personalized configuration information based on the identification information, thereby decoupling the general configuration information from the personalized configuration information and reducing configuration redundancy.
This reduces the configuration complexity of PCIe devices by BMC, ensuring the configuration independence and management efficiency of different PCIe devices.
Smart Images

Figure CN120950129A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of computer technology, and in particular to a configuration method and a computer device. Background Technology
[0002] The Baseboard Management Controller (BMC), as an out-of-band management system, identifies and manages PCIe devices installed on the server. However, the BMC's configuration methods for PCIe devices are highly redundant, which hinders efforts to reduce the complexity of configuring PCIe devices using the BMC. Summary of the Invention
[0003] The purpose of this application is to provide a configuration method and computer device to reduce the redundancy of the BMC's configuration method for PCIe devices and reduce the complexity of the BMC's configuration method for PCIe devices.
[0004] In a first aspect, embodiments of this application provide a configuration method applied to a computer device. The computer device includes a BIOS, a BMC, a CPU, and a target PCIe device, wherein the BIOS, BMC, target PCIe device, and CPU are communicatively connected. The method of this application embodiment includes:
[0005] When the BIOS recognizes the target PCIe device, the BMC obtains the identification information of the target PCIe device reported by the BIOS, and then obtains the type information of the target PCIe device from the CPU based on the identification information.
[0006] Based on the type information, the BMC loads general configuration information into the target memory of the target PCIe device within the BMC.
[0007] BMC obtains the personalized configuration information of the target PCIe device based on the identification information and loads the personalized configuration information into the target memory.
[0008] When the above technical solution is adopted, after the BIOS has successfully identified the target PCIe device, the BIOS can obtain the identification information of the target PCIe device and send it to the BMC. Upon obtaining the identification information, the BMC can retrieve general configuration information from the CPU based on the identification information and load this general configuration information into the target memory of the target PCIe device within the BMC. However, this general configuration information is general configuration information related to the type of the target PCIe device and lacks the personalized configuration information of the target PCIe device. The identification information can accurately locate the target PCIe device. Therefore, the BMC can obtain the personalized information of the target PCIe device based on the identification information and load this personalized information into the target memory. This supplements the missing personalized configuration information in the general configuration information, making the general configuration information and personalized configuration information constitute the configuration information for the target PCIe device. It is evident that different PCIe devices with the same type of information can use the same general configuration information to load into different memory regions allocated by the BMC for different PCIe devices, and then load the personalized configuration information of different PCIe devices into different memory regions allocated by the BMC for different PCIe devices.
[0009] As shown above, since the personalized configuration information of different PCIe devices of the same type and the same general configuration information used by different PCIe devices of the same type can be obtained separately, the personalized configuration information and the general configuration information are decoupled. In this case, although different PCIe devices of the same type use the same general configuration information, they will not interfere with each other when using the same general configuration information, which can ensure the independence of the configuration of different PCIe devices. Therefore, BMC can configure different PCIe devices of the same type based on the same general configuration information, thereby reducing the redundancy of the BMC's configuration method for PCIe devices and reducing the complexity of the BMC's configuration method for PCIe devices.
[0010] In one possible implementation, the personalized configuration information includes the target PCIe device's PCIe configuration space information, the target PCIe device's PCI.ids file information, the target PCIe device's thermal management strategy, and the target PCIe device's firmware information. By combining this personalized configuration information with general configuration information, the BMC can manage the target PCIe device's asset information, management information, thermal management strategy, and even alarm monitoring.
[0011] In one possible implementation, the BMC obtains personalized configuration information of the target PCIe device based on the identification information, including:
[0012] The BMC obtains firmware information from the target PCIe device based on the identification information, and obtains PCIe configuration space information from the CPU. This PCIe configuration space information includes at least four-tuple information. The four-tuple information contains relevant information about the target PCIe device. Therefore, the BMC obtains PCI.ids file information based on the four-tuple information. Furthermore, it can configure a general cooling strategy based on the computer device's configuration information and the target PCIe device's type information, thereby obtaining the cooling strategy for the target PCIe device.
[0013] In one possible implementation, the personalized configuration information also includes a valid communication identifier between the BMC and the target PCIe device, and the number of network ports of the target PCIe device. The BMC obtains the personalized configuration information of the target PCIe device based on the identifier information, and further includes:
[0014] When the BMC detects a valid communication identifier, the BMC checks whether the valid communication identifier has changed.
[0015] When the BMC detects a change in the valid communication identifier, it indicates that the version of the target PCIe device may have changed. Therefore, the BMC detects the number of network ports of the target PCIe device based on the valid communication identifier, which allows for dynamic updates to some of the personalized configuration information.
[0016] In one possible implementation, the BMC obtains the personalized configuration information of the target PCIe device based on the identification information, and may further include:
[0017] During the process of establishing a connection between the BMC and the target PCIe device, if the BMC detects that the node identifier of the target PCIe device is a valid node identifier, it means that the BMC has successfully identified the target PCIe. Therefore, the BMC determines that a connection has been successfully established between the BMC and the target PCIe device.
[0018] When the BMC successfully establishes a connection with the target PCIe device, if the BMC successfully sends a probe message to the target PCIe device based on the candidate communication identifier, it means that the candidate communication identifier is a valid communication identifier between the BMC and the target PCIe. Therefore, the BMC determines the valid communication identifier based on the candidate communication identifier, which is one of the selectable communication identifiers.
[0019] In one possible implementation, the BMC obtains the personalized configuration information of the target PCIe device based on the identification information, and may further include:
[0020] If the BMC fails to send a probe message to the target PCIe device based on the candidate communication identifier, it means that a valid communication identifier cannot be determined based on the candidate communication identifier. Therefore, the BMC selects a communication identifier from the range of available communication identifiers and uses this communication identifier to update the candidate communication identifier.
[0021] In one possible implementation, the BMC updates the candidate communication identifier, which may include:
[0022] If the BMC detects that each communication identifier in the selectable range of communication identifiers has been selected more than a preset number of times, it indicates that although a connection has been established between the BMC and the target PCIe device, after multiple updates of the candidate communication identifiers, the two cannot transmit messages normally through the candidate communication identifiers. Therefore, the BMC confirms that there are invalid communication identifiers between the BMC and the target PCIe device.
[0023] As can be seen, the embodiments of this application can reduce unnecessary updates of candidate communication identifiers by detecting the number of times each communication identifier is selected when updating candidate communication identifiers, and promptly handle communication anomalies between the BMC and the target PCIe device.
[0024] In one possible implementation, the BMC obtains the personalized configuration information of the target PCIe device based on the identification information, and also includes:
[0025] When the BMC detects that the valid communication identifier differs from the target PCIe device's historical communication identifier, the BMC determines that the valid communication identifier's value has changed. This method allows for timely detection of version update issues with the target PCIe device, enabling dynamic updates to personalized configuration information.
[0026] In one possible implementation, the BMC detects the number of network ports of a target PCIe device based on valid communication identifiers, including:
[0027] BMC detects whether the network port of the target PCIe device is a valid network port based on the valid communication identifier and candidate network port number.
[0028] If the BMC detects that the network port is a valid network port, it means that the network port can support communication between the BMC and the target PCIe. At this time, the candidate network port number can be updated. The candidate network port number is one of the optional range of network port numbers.
[0029] If the BMC detects an invalid network port, it means that the network port may not be able to support communication between the BMC and the target PCIe. Therefore, the BMC determines the number of network ports of the target PCIe device based on the number of valid network ports of the target PCIe device.
[0030] In one possible implementation, the BMC determines the number of network ports of the target PCIe device based on the number of valid network ports of the target PCIe device, including:
[0031] If the BMC detects that the network port is invalid, the BMC checks whether the computer device's operating system is powered off.
[0032] If the BMC detects that the operating system is powered on, it means that the network port cannot support communication between the BMC and the target PCIe, causing the BMC to detect the network port as invalid. Therefore, the BMC determines the number of network ports of the target PCIe device based on the number of valid network ports of the target PCIe device.
[0033] In one possible implementation, the BMC determines the number of network ports of the target PCIe device based on the number of valid network ports of the target PCIe device, and may further include:
[0034] If the BMC detects that the operating system is powered on, the BMC marks the network port of the target PCIe device as detected. This way, if the BMC subsequently detects that the operating system has powered off and restarted, it will not need to probe the network port of the target PCIe device.
[0035] In one possible implementation, the BMC obtains the personalized configuration information of the target PCIe device based on the identification information, and may further include:
[0036] When the BMC detects an invalid network port, it is necessary to rule out the possibility that the invalid network port was detected by the BMC due to the operating system power failure. Therefore, if the BMC detects that the operating system has been powered down, it means that the invalid network port may be due to the power failure of the operating system. Therefore, when the BMC detects that the operating system has been powered on again, the BMC will re-probe the number of network ports of the target PCIe device based on the valid communication identifier.
[0037] In one possible implementation, the method of this application embodiment may further include:
[0038] When the BMC detects the number of network ports of a target PCIe device based on valid communication identifiers, it updates the PCIe configuration space information, PCI.ids file information, and firmware information based on the identifier information. This allows the BMC to dynamically obtain the latest information about the target PCIe device after version changes, avoiding the need to reconfigure the target PCIe device.
[0039] Secondly, embodiments of this application also provide a configuration apparatus applied to a computer device, the computer device including a BIOS, BMC, CPU, and a target PCIe device. The apparatus of this application embodiment includes:
[0040] The acquisition module is used to obtain type information from the CPU based on the identification information of the target PCIe device obtained from the BIOS, and to obtain personalized configuration information of the target PCIe device based on the identification information.
[0041] The loading module is used to load general configuration information into the target memory of the target PCIe device within the BMC based on the type information of the target PCIe device, and to load personalized configuration information into the target memory.
[0042] Thirdly, embodiments of this application also provide a computer storage medium storing computer instructions that, when executed on a BMC, cause the BMC's processor to execute the method described in the second aspect of this application or any possible implementation thereof.
[0043] Fourthly, embodiments of this application also provide a computer program product, including a computer program, wherein the computer program, when executed by a processor, implements the method described in the first aspect or any possible implementation thereof.
[0044] Fifthly, embodiments of this application also provide a computer device, including: a BIOS, a BMC, a CPU, and a target PCIe device, wherein the BIOS, BMC, target PCIe device, and CPU are communicatively connected.
[0045] When a target PCIe device is detected, the BIOS obtains the identification information of the target PCIe device from the target PCIe device and sends the identification information to the BMC.
[0046] The CPU is used to obtain the type information of the target PCIe device from the target PCIe device under the guidance of the BIOS;
[0047] When identification information is obtained, the BMC is used to obtain type information from the CPU based on the identification information, load general configuration information into the target memory of the target PCIe device within the BMC based on the type information, and obtain personalized configuration information of the target PCIe device based on the identification information and load the personalized configuration information into the target memory.
[0048] The beneficial effects of the technical solutions of the second to fifth aspects of the embodiments of this application can be referred to the beneficial effects of the methods described in the first aspect or any possible implementation of the first aspect of the embodiments of this application, which will not be repeated here. Attached Figure Description
[0049] Further details, features, and advantages of this application are claimed in the following description of exemplary embodiments in conjunction with the accompanying drawings, in which:
[0050] Figure 1 A schematic diagram of the structure of a computer device, taking a server as an example, provided for an embodiment of this application;
[0051] Figure 2 A schematic diagram of the BMC system framework according to an embodiment of this application is shown;
[0052] Figure 3 A flowchart illustrating the configuration method according to an embodiment of this application is shown;
[0053] Figure 4 A schematic diagram illustrating the implementation flow of the first subtask in an embodiment of this application is shown;
[0054] Figure 5 A schematic diagram illustrating the implementation principle of the second subtask in an embodiment of this application is shown;
[0055] Figure 6 A schematic flowchart of a method for detecting the number of network ports according to an embodiment of this application is shown;
[0056] Figure 7 A flowchart illustrating an example method for detecting the number of network ports according to an embodiment of this application is shown.
[0057] Figure 8 The diagram shown is a schematic representation of the network interface card (NIC) information decoupling mapping according to an embodiment of this application.
[0058] Figure 9 The diagram shown is a schematic diagram of Raid card information decoupling mapping according to an embodiment of this application;
[0059] Figure 10 The diagram shown is a schematic representation of GPU card information decoupling mapping according to an embodiment of this application.
[0060] Figure 11 A schematic block diagram of a functional module of a configuration apparatus according to an exemplary embodiment of this application is shown;
[0061] Figure 12 A schematic block diagram of a chip according to an exemplary embodiment of this application is shown;
[0062] Figure 13 A structural block diagram of an exemplary baseboard management controller that can be used to implement embodiments of this application is shown. Detailed Implementation
[0063] Embodiments of this application will now be described in more detail with reference to the accompanying drawings. While some embodiments of this application are shown in the drawings, it should be understood that this application can be implemented in various forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided to provide a more thorough and complete understanding of this application. It should be understood that the drawings and embodiments of this application are for illustrative purposes only and are not intended to limit the scope of protection of this application.
[0064] It should be understood that the steps described in the method embodiments of this application may be performed in different orders and / or in parallel. Furthermore, the method embodiments may include additional steps and / or omit the steps shown. The scope of this application is not limited in this respect.
[0065] The term "comprising" and its variations as used herein are open-ended, meaning "including but not limited to". The term "based on" means "at least partially based on". The term "one embodiment" means "at least one embodiment"; the term "another embodiment" means "at least one additional embodiment"; the term "some embodiments" means "at least some embodiments". Definitions of other terms will be given in the following description. It should be noted that the concepts of "first", "second", etc., mentioned in this application are used only to distinguish different devices, modules, or units, and are not intended to limit the order of functions performed by these devices, modules, or units or their interdependencies.
[0066] It should be noted that the terms "a" and "a plurality of" used in this application are illustrative rather than restrictive, and those skilled in the art should understand that, unless otherwise expressly indicated in the context, they should be understood as "one or more".
[0067] Before introducing the embodiments of this application, the relevant terms involved in the embodiments of this application are first explained as follows:
[0068] The Baseboard Management Controller (BMC) is an independent chip or module on the server motherboard, with its own independent processor, memory, storage, and power supply. It connects to other critical server components (such as the Central Processing Unit (CPU), memory, and hard drives) through specific hardware interfaces and buses.
[0069] Peripheral Component Interconnect Express (PCIe) is a high-speed serial computer expansion bus standard, mainly used for data transmission between the motherboard and external devices (such as graphics cards, solid-state drives, network cards, etc.).
[0070] The Basic Input / Output System (BIOS) is an immutable boot program etched onto the motherboard's ROM chip. The BIOS is responsible for calculating the Power On Self Test (POST) and the system startup program, making it the first program executed after the computer system boots up. Due to its immutability, the program is stored in the ROM chip and retains its original settings even after power is off.
[0071] The Intelligent Platform Management Interface (IPMI) is a set of standard management specifications primarily used for server system cluster autonomy, monitoring the physical health characteristics of servers, such as temperature, voltage, fan operating status, and power supply status. IPMI also records various hardware information and logs to alert users and help locate subsequent problems.
[0072] NcsiPackageId is a concept in the Network Connectivity Status Indicator (NCSI) protocol, also known as packet encoding. It is used to identify the specific "packet" to which a data packet belongs in the NCSI protocol, and plays an important role in scenarios such as server network port management.
[0073] This application provides a configuration method and a computer device to reduce redundancy in the BMC's configuration of PCIe devices and lower the complexity of the BMC's configuration methods for PCIe devices. The computer device can be a server, a terminal device, or other computer devices, which will not be detailed here.
[0074] Figure 1 This application provides a schematic diagram of the structure of a computer device, taking a server as an example, as shown in the embodiments. Figure 1 As shown, the computer device 100 includes: a Basic Input / Output System (BIOS) 101, a Central Processing Unit (CPU) 102, a Baseboard Management Controller (BMC) 103, and a PCIe (Peripheral Component Interconnect Express) device 104. Figure 1 One is shown in the image.
[0075] like Figure 1As shown, in this embodiment of the application, the number of PCIe devices 104 can be one or more. Figure 1 Only one PCIe device is shown. Figure 1 The PCIe device 104 may include, but is not limited to, a network interface card (NIC), a graphics processing unit (GPU) card, or a redundant array of independent disks (RAID) card. The following description uses a single PCIe device as an example of the target PCIe device.
[0076] like Figure 1 As shown, BIOS 101, BMC 103, and PCIe device 104 are all communicatively connected to CPU 102. BIOS 101 is communicatively connected to both BMC 103 and PCIe device 104, and CPU 102 is communicatively connected to both BMC 103 and PCIe device 104. BMC 103 includes processor 1031, storage module 1032, and memory module 1033. Processor 1031 can allocate different memory spaces within memory module 1033 for different PCIe devices 104, serving as memory areas for loading the configuration information of the corresponding PCIe device 104. Optionally, for each PCIe device 104, its configuration information may include a general configuration file and personalized configuration information.
[0077] Figure 2 A schematic diagram of the BMC system framework according to an embodiment of this application is shown. Figure 2 As shown, considering that the BMC needs to manage the asset information, management information, heat dissipation strategy and even alarm monitoring of PCIe device 104, it can obtain personalized configuration information from a variety of data elements.
[0078] like Figure 1 and Figure 2 As shown, the storage module 1032 in this embodiment serves as a configuration repository for storing a general configuration file. This general configuration file contains general configuration information and can be used to configure different PCIe devices 104 of the same model from the same manufacturer. That is, the information contained in this general configuration file is basic configuration information shared by different PCIe devices 104 of the same model from the same manufacturer. Thus, the processor 1031 can load the same general configuration file into different memory areas of the memory module 1033 for different PCIe devices 104 of the same model from the same manufacturer, thereby ensuring that the configuration processes of different PCIe devices 104 are independent and will not interfere with each other, affecting the use of the general configuration file.
[0079] like Figure 1 and Figure 2As shown, when general configuration information is used to configure different PCIe devices 104 of the same model from the same manufacturer, the general configuration files contained in the configuration information of PCIe devices 104 of different models from the same manufacturer are different. Similarly, the general configuration files contained in the configuration information of PCIe devices 104 of different models from different manufacturers are also different. Therefore, the BMC's storage module 1032 can store multiple general configuration files according to manufacturer and model. Here, different general configuration files can configure different models of PCIe devices 104 from different manufacturers. A single general configuration file can configure PCIe devices 104 of the same model from the same manufacturer.
[0080] like Figure 1 and Figure 2 As shown, when the PCIe device 104 is installed in the motherboard slot of the computer device, the BIOS 101 can identify the PCIe device 104. When the BIOS 101 identifies the PCIe device 104, it can obtain the identification information of the PCIe device 104 and send the identification information to the BMC 103.
[0081] Among them, such as Figure 1 and Figure 2 As shown, BIOS101 can use IPMI to report device identification information to BMC103. The identification information may include Bus-Device-Function (BDF) information (e.g., bus number, device number, and function number), and may also include the slot number of PCIe device 104.
[0082] For example, such as Figure 1 and Figure 2 As shown, after identifying PCIe device 104 by traversing the PCIe bus (scanning combinations of bus number, device number, and function number), BIOS 101 first reads the basic identification information (such as manufacturer identifier, device identifier, etc.) of PCIe device 104's configuration space to confirm that PCIe device 104 exists and is valid. When BIOS 101 confirms that PCIe device 104 exists and is valid, it can be considered that BIOS 101 has recognized the identification information of PCIe device 104.
[0083] like Figure 1 and Figure 2As shown, CPU 102 can obtain PCIe configuration space information of PCIe device 104 from PCIe device 104 under the guidance of BIOS 101, which includes the type information of PCIe device 104. For example, BIOS 101 can construct the access address of PCIe configuration space based on the identification information of PCIe device 104, such as BDF information, and store the identification information of PCIe device 104 and the base address of PCIe configuration space in the server's memory.
[0084] At the same time, such as Figure 1 and Figure 2 As shown, PCIe device 104 can also send BDF information and PCIe configuration space base address to CPU 102. CPU 102 can determine the access address of PCIe device 104 based on the BDF information and PCIe configuration space base address. CPU 102 can initiate a memory mapping input / output (MMIO) read operation based on the access address of PCIe device 104 to obtain PCIe configuration space information from PCIe device 104. This PCIe configuration space information contains the type information of PCIe device 104 (such as Vendor ID and ClassCode).
[0085] like Figure 1 and Figure 2 As shown, when BMC103 obtains the identification information, it retrieves the type information of PCIe device 104 from CPU102 based on the identification information, and loads general configuration information into the target memory of PCIe device 104 within BMC103 based on this type information. Furthermore, based on the identification information, it can also obtain the personalized configuration information of PCIe device 104 and load this personalized configuration information into the target memory. The PCI.ids file information can be stored in the storage module 1032 of BMC, and the corresponding PCI.ids file information is different for PCIe devices 104 from different manufacturers.
[0086] The data sources for the personalized configuration information in this application embodiment are diverse, and can be selected from, such as... Figure 1 and Figure 2 As shown, the personalized configuration information includes the PCIe configuration space information of PCIe device 104, the PCI.ids file information of PCIe device 104, the heat dissipation strategy of PCIe device 104, and the firmware information of PCIe device 104.
[0087] In one example, such as Figure 1 and Figure 2As shown, BMC103 can communicate with CPU102 via the Platform Environment Control Interface (PECI) protocol to obtain PCIe configuration space information from CPU102.
[0088] In one example, such as Figure 1 and Figure 2 As shown, BMC103, based on a management software library, can obtain firmware information of PCIe device 104 from its own configuration space via the Management Component Transport Protocol (MCTP), such as firmware version, network port, and PCIe temperature. Specifically, BMC103 can use a probing method to detect the communication identifier and network port number of PCIe device 104, while the temperature is obtained using the MCTP over I2C protocol.
[0089] In one example, such as Figure 1 and Figure 2 As shown, the BMC103 has a built-in general heat dissipation strategy, and then combines the server's configuration information (such as the server's specifications) and the PCIe device 104's type information (such as the vendor ID and class code) to configure the heat dissipation strategy, thereby obtaining the heat dissipation strategy for the PCIe device 104.
[0090] In one example, such as Figure 1 and Figure 2 As shown, the PCIe configuration space information contains at least a four-tuple, which may include the Vendor ID, Class Code, Device ID, Subsystem Vendor ID, and Subsystem Device ID. This four-tuple information uniquely identifies the PCIe device 104. Therefore, the BMC can obtain the PCI.ids file information from the storage module 1032 based on the four-tuple information; this is a file conforming to standards organization specifications.
[0091] This application provides a configuration method applicable to computer devices such as servers. The computer device may include a BIOS, a BMC, a CPU, and a target PCIe device. The BIOS, BMC, and target PCIe device are all communicatively connected to the CPU. The BIOS is communicatively connected to both the BMC and the target PCIe device, and the BMC is communicatively connected to both the target PCIe device and the CPU. The configuration method of this application is described below using the interaction between the BMC, CPU, BIOS, and target PCIe device.
[0092] Figure 3 A flowchart illustrating the configuration method according to an embodiment of this application is shown. Figure 3 As shown, the configuration method of this application embodiment includes steps 301 to 306.
[0093] In step 301, when the BIOS identifies the target PCIe device, it obtains the identification information of the target PCIe device from the target PCIe device. The method by which the BIOS obtains the identification information from the target PCIe device can be found in the previous related description.
[0094] In step 302, the BIOS sends identification information to the BMC. This allows the BMC to obtain the identification information of the target PCIe device reported by the BIOS.
[0095] In one example, the identification information sent by the BIOS to the BMC may include both BDF information and slot number, so that the BMC can obtain general configuration information and personalized configuration information.
[0096] In step 303, the BMC obtains the type information of the target PCIe device from the CPU based on the identification information. Here, under the guidance of the BIOS, the CPU obtains the PCIe configuration space information of the target PCIe device, which includes the type information of the PCIe device (such as the Vendor ID and ClassCode). The BIOS can send the BDF information (as identification information) and the base address of the target PCIe device's PCIe configuration space to the CPU, allowing the CPU to obtain the target PCIe device's PCIe configuration space information as described above.
[0097] After the BIOS sends the identification information, the BMC obtains it. For example, the BMC can communicate with the server CPU via the PECI protocol, allowing the BMC to obtain the type information of the target PCIe device, such as the Vendor ID and ClassCode, from the PCIe configuration space information in the CPU.
[0098] In step 304, the BMC loads the general configuration information into the target memory of the target PCIe device within the BMC based on the type information. This general configuration information can be stored in the BMC's storage module. When the BMC obtains the general configuration information based on the type information, it indicates that the BMC has identified the target PCIe device. Since the general configuration information is common to all PCIe devices of the target PCIe device type and lacks the personalized configuration information of the target PCIe device, the CPU can be obtained through type information such as the Vendor ID and ClassCode. This enables the loading of general configuration information compatible with multiple PCIe devices (all PCIe devices of the same model from the same manufacturer) from a single PCIe device configuration file. At this time, the BMC's front-end interface can display the framework corresponding to this general configuration information.
[0099] Since the universal configuration information is shared across all PCIe devices of the same model from the same manufacturer, it contains basic configuration information common to all PCIe devices of the same model from the same manufacturer. In other words, the type information allows for the decoupling of the basic configuration information and personalized configuration information of the target PCIe device, enabling separate configuration of the target PCIe device's basic capabilities and personalized capabilities. Therefore, when configuring different PCIe devices of the same model from the same manufacturer, the BMC can use the same universal configuration information, thereby reducing redundancy in configuration data.
[0100] In step 305, the BMC obtains the personalized configuration information of the target PCIe device based on the identification information. Since the general configuration information lacks personalized configuration information for the target PCIe device, while the identification information can accurately locate the target PCIe device (e.g., BDF information may include bus number, device number, and function number), the BMC can obtain the personalized information of the target PCIe device based on the identification information.
[0101] In step 306, the BMC loads the personalized configuration information into the target memory. Once the BMC loads the personalized information into the target memory, it supplements the missing personalized configuration information in the general configuration information, thus forming a configuration information specific to the target PCIe device from the general configuration information.
[0102] It is evident that different PCIe devices with the same type of information can use the same general configuration information to load into different memory regions allocated by the BMC for different PCIe devices, and then load the personalized configuration information of different PCIe devices into different memory regions allocated by the BMC for different PCIe devices.
[0103] Furthermore, since the personalized configuration information of different PCIe devices of the same type and the same general configuration information used by different PCIe devices of the same type can be obtained separately, decoupling between personalized and general configuration information is achieved. In this case, although different PCIe devices of the same type use the same general configuration information, they will not interfere with each other when using the same general configuration information, ensuring the independence of configuration for different PCIe devices. Therefore, BMC can configure different PCIe devices of the same type based on the same general configuration information, thereby reducing the redundancy of BMC's PCIe device configuration methods and reducing the complexity of BMC's PCIe device configuration methods.
[0104] In one possible implementation, the personalized configuration information includes the target PCIe device's PCIe configuration space information, the target PCIe device's PCI.ids file information, the target PCIe device's thermal management strategy, and the target PCIe device's firmware information. By combining this personalized configuration information with general configuration information, the target PCIe device's asset information, management information, cooling and speed control strategies, and even alarm monitoring can be determined and managed.
[0105] With general configuration information and personalized configuration information decoupled, PCIe configuration space information, PCI.ids file information, thermal strategies, and firmware information are also decoupled from general configuration information. The process of obtaining personalized configuration information is described in detail below.
[0106] The aforementioned PCIe configuration information can be stored in the CPU, and the BMC can obtain the PCIe configuration space information from the CPU. For example, the BMC can read this PCIe configuration space information from the server via the PECI protocol. This PCIe configuration space information includes important product information (Vital Product Data, VPD) for the PCIe configuration space, which includes at least a four-tuple of information. Depending on the type of PCIe device, it may also include information such as product name, serial number, model, and manufacturer asset information, which will not be listed here.
[0107] The aforementioned PCI.ids file information can be stored in the PCI.ids file within the BMC. After the BMC obtains the four-tuple information, which includes the Vendor ID, ClassCode, Device ID, Subsystem Vendor ID, and Subsystem Device ID, it can uniquely identify the target PCIe device and has a mapping relationship with the information corresponding to the target PCIe device in the PCI.ids file. Therefore, the BMC can read the PCI.ids file information for the target PCIe device from the PCI.ids file based on the four-tuple information. For example, this PCI file information may include asset information such as the PCIe device description and chip model.
[0108] The aforementioned firmware information is stored in the BMC. Therefore, when obtaining personalized configuration information for a target PCIe device, the BMC retrieves the firmware information from the target PCIe device based on the identification information. Optionally, the firmware information may include basic information about the target PCIe device and its temperature.
[0109] For example, BMC can use a management software library as a foundation to obtain firmware information from a target PCIe device via the MCTP protocol, such as temperature, firmware version, MCTP functionality of the network card, and the number of network ports. The network ports can be obtained through probing.
[0110] The aforementioned heat dissipation strategy can be generated based on a generic heat dissipation strategy stored in the BMC. Optionally, the BMC can configure the generic heat dissipation strategy based on the computer device's configuration and type information to obtain the heat dissipation strategy for the target PCIe device. For example, taking a server as an example, the BMC can obtain the heat dissipation strategy for the target PCIe device by pre-setting a generic configuration strategy based on the server's specifications, number of fans, type configuration of the target PCIe device, and minimum empirical temperature value.
[0111] Optionally, BMC can use this cooling strategy to control the fan speed of computer equipment (such as servers). The control principle can be a PID (Proportion Integral Differential) control algorithm. BMC can use the PID algorithm to control the fan speed of computer equipment (such as servers), ensuring that the temperature of the target PCIe device fluctuates around a preset temperature without exceeding that preset temperature for extended periods.
[0112] This cooling strategy defines a maximum temperature and a preset temperature. When the temperature of a PCIe device exceeds the preset temperature, the computer device's (e.g., server) fan can be controlled to start spinning at a preset speed until it reaches 100%, or until the temperature stabilizes at the preset temperature. When the temperature of a PCIe device exceeds the maximum temperature, the computer device's (e.g., server) fan speed can be directly set to full speed. When the BMC fails to obtain the temperature of the PCIe device, a failure speed value can be set for when the acquisition fails.
[0113] Considering the differences in preset temperatures between different types of target PCIe devices or different series of PCIe devices of the same type, the cooling parameters shown in Table 1 can be used to configure the cooling strategy for different PCIe devices. It should be understood that under the cooling parameters for each type of PCIe device described below, the fan speed of the computer equipment (such as a server) is controlled to meet the cooling requirements of the corresponding PCIe device, ensuring risk-free cooling, while allowing for some energy efficiency loss.
[0114] Table 1 List of heat dissipation parameters
[0115] type Preset speed Full speed RPM Failure speed value Number of fans Network card 70 100 80% 4 / 8 (1U / 2U) Raid Card 80 100 80% 4 / 8 (1U / 2U) GPU card 70 100 80% 4 / 8 (1U / 2U)
[0116] Taking servers as an example, BMC can combine the number or specifications of the server's fans (e.g., 1U or 2U) and the type of PCIe device to configure the preset temperature, full speed value and failure speed value of the general heat dissipation strategy, thereby obtaining the heat dissipation strategy of the target PCIe device, and then loading the heat dissipation strategy into the target memory.
[0117] It should be noted that the PCIe configuration space information is read by the CPU from the target PCIe device; therefore, this PCIe configuration space information overlaps to some extent with the firmware information of the target PCIe device. The PCI.ids file information also overlaps to some extent with the PCIe configuration space information. For example, the name, description, and firmware version of the target PCIe device can be read from either the pci.ids file or the configuration space.
[0118] As can be seen, the embodiments of this application can, after loading general configuration information, adaptively obtain personalized configuration information such as PCIe configuration space information, PCI.ids file information, heat dissipation strategy and firmware information, which are decoupled from general configuration information, based on identification information, and load them into the target memory.
[0119] When the BMC in this embodiment of the application obtains personalized configuration information, the alarm monitoring needs to accurately display the name, slot number, and serial number of the target PCIe device. Therefore, when the personalized configuration information includes the name, slot number, and serial number of the target PCIe device, the BMC can concatenate these three pieces of information into alarm monitoring description information. The format of the concatenated information can be PCIE Card 1 (card name), SN:xxx, where PCIE Card 1 can represent the card name that identifies the card slot number.
[0120] Optionally, when %1 is PCIE Card 1 (card name), SN:xxx is the specific serial number. The information of %1 is stored in the entity's attributes. When the card name is obtained, the following information can be dynamically concatenated: The %1 triggered an uncorrectable error (SN:xxx).
[0121] In an optional embodiment, the personalized configuration information of this application may further include a valid communication identifier between the BMC and the target PCIe device; and network information such as the number of network ports of the target PCIe device. This network information can be obtained through detection; therefore, obtaining the personalized configuration information of the target PCIe device may include:
[0122] When the BMC detects a valid communication identifier, it means that the BMC can successfully communicate with the target PCIe device based on the valid communication identifier. At this time, the BMC can detect whether the valid communication identifier has changed. When the BMC detects that the valid communication identifier has changed, it means that the version of the target PCIe device may have changed. Therefore, the BMC detects the number of network ports of the target PCIe device based on the valid communication identifier, which can dynamically update some of the personalized configuration information to a certain extent.
[0123] Optionally, when the BMC detects that the valid communication identifier differs from the target PCIe device's historical communication identifier, the BMC determines that the valid communication identifier's value has changed. This method allows for timely detection of version update issues with the target PCIe device, enabling dynamic updates to personalized configuration information.
[0124] In one example, when the BMC detects the number of network ports of a target PCIe device based on a valid communication identifier, it can update the PCIe configuration space information, PCI.ids file information, and firmware information based on the identifier information, assuming that the thermal management strategy will not change. This allows the BMC to dynamically obtain the latest information about the target PCIe device after version changes, avoiding the need to reconfigure the target PCIe device.
[0125] For example, BMC can retrieve PCIe configuration space information from the CPU again based on the identification information, then retrieve PCI.ids file information from the PCI.ids file based on the quadruple information included in the PCIe configuration space information, and retrieve firmware information from the target PCIe device based on the identification information, etc.
[0126] Optionally, when probing for a valid communication identifier, the BMC may detect an invalid identifier or a valid one. For example, during the process of establishing a connection between the BMC and the target PCIe device, if the BMC detects that the endpoint ID (EID) of the target PCIe device is a valid endpoint identifier, it means that the BMC has successfully identified the target PCIe device. Therefore, the BMC determines that a connection has been successfully established between the BMC and the target PCIe device.
[0127] When the BMC successfully establishes a connection with the target PCIe device, if the BMC successfully sends a probe message to the target PCIe device based on the candidate communication identifier, it means that the candidate communication identifier is a valid communication identifier between the BMC and the target PCIe. Therefore, the BMC determines the valid communication identifier based on the candidate communication identifier.
[0128] If the BMC fails to send a probe message to the target PCIe device based on the candidate communication identifier, it indicates that the BMC and the target PCIe device cannot communicate using the candidate communication identifier. The BMC then selects a communication identifier from the available range and updates the candidate communication identifier using that identifier. Furthermore, when selecting a communication identifier from the available range, the BMC can record the number of times each communication identifier is selected. If the BMC detects that the number of times each communication identifier is selected exceeds a preset number (e.g., 3 times), it indicates that although a connection has been established between the BMC and the target PCIe device, after multiple updates to the candidate communication identifier, they cannot transmit messages normally using it. Therefore, the BMC confirms that an invalid communication identifier exists between the BMC and the target PCIe device, meaning that the communication function between the BMC and the target PCIe device is unusable.
[0129] As can be seen, the embodiments of this application can detect the number of updates of candidate communication identifiers when updating candidate communication identifiers, which can reduce unnecessary updates of candidate communication identifiers and promptly handle communication anomalies between the BMC and the target PCIe device.
[0130] The following example illustrates the process of detecting a valid communication identifier, using communication between the BMC and the network interface card (NIC) via NCSI over MCTP. The communication identifier NcsiPackageId in the NCSI protocol has a value range of 0 to 7, which can serve as an optional range for the communication identifier.
[0131] The detection task of the valid communication identifier NcsiPackageId in this application embodiment is divided into two sub-tasks. The first sub-task is to determine whether NcsiPackageId is valid, and the second sub-task is to detect the value of the valid NcsiPackageId.
[0132] In the first subtask, during the process of establishing a connection between the BMC and the network card using the NCSI protocol, the BMC checks the network card's EID identifier. If a valid EID identifier is detected, it indicates that a connection has been established between the BMC and the network card. For example, as the owner of the network card bus, the BMC can assign a unique EID identifier to the network card, which can then be used as the address for receiving and returning MCTP messages.
[0133] Figure 4 A schematic diagram illustrating the implementation flow of the first sub-task in an embodiment of this application is shown. For example... Figure 4 As shown, the first subtask includes steps 401 to 407.
[0134] In step 401, the BMC sends a probe message to the network card, which contains the first EID identifier.
[0135] In step 402, the network interface card responds to the probe message by returning a response message to the BMC, the response message containing a second EID identifier.
[0136] In step 403, when the BMC receives the response message from the network card, it compares whether the second EID identifier contained in the response message is consistent with the first EID identifier contained in the probe message.
[0137] If the second EID identifier matches the first EID identifier, steps 404 and 405 can be executed; if the second EID identifier does not match the first EID identifier, steps 406 and 407 can be executed.
[0138] In step 404, the BMC confirms that the EID identifier is a valid EID identifier. At this point, the MCTP function is available, and the BMC successfully establishes a connection with the network card. Furthermore, considering that the computer device may have multiple PCIe devices, step 405 can be executed.
[0139] In step 405, the BMC adds the communication identifier (NcsiPackageId) of the network interface card (NIC) that has successfully established a connection with the BMC to the probe list. This allows the communication identifiers (NcsiPackageId) of all NICs that have successfully established a connection with the BMC to be organized using the probe list.
[0140] In step 406, the BMC confirms that the EID identifier is invalid. At this point, the MCTP function is unavailable, and the BMC fails to establish a connection with the network card.
[0141] In step 407, the BMC sets the status value of the communication identifier NcsiPackageId to an invalid value of 0xff.
[0142] In the second subtask, the BMC can probe the NcsiPackageId value of each network interface card (NIC) by traversing the probe list. In each round of traversal, for any NIC, an element can be selected from the array NcsiPackageIdArray (0-7) which represents the range of values for the communication identifier, as a candidate probe identifier value. This candidate probe identifier is used to probe the NcsiPackageId value of the NIC. The BMC can then send NCSI standard commands based on this candidate probe identifier to determine whether a response message from the NIC can be obtained within a preset time period.
[0143] If the BMC receives a response message from the network card within a preset time, it indicates that the NcsiPackageId value of the network card has been successfully detected. The NcsiPackageId value of the network card can be set to equal the candidate detection identifier value, and the communication identifier NcsiPackageId of the network card can be removed from the detection chain. The detection of the NcsiPackageId value of the next network card in the detection chain will then begin. Otherwise, it indicates that the NcsiPackageId value of the network card has failed to be detected, and the detection of the NcsiPackageId value of the next network card in the detection chain will begin.
[0144] Figure 5 A schematic diagram illustrating the implementation principle of the second sub-task in an embodiment of this application is shown. For example... Figure 5 As shown, the probe list has N nodes, Node1, Node2, ..., NodeN-1, NodeN. The array NcsiPackageIdArray has a length of 8 and contains 8 elements, id:0, id:1, id:2, id:3, ..., id:7. Any element in the array NcsiPackageIdArray can be used as a candidate probe identifier value.
[0145] Each linked list node represents the NcsiPackageId of a PCIe device. Here, the NcsiPackageId of the PCIe device is the NcsiPackageId to be probed, and it needs to be probed using candidate probe identifiers. If probing the NcsiPackageId of the same linked list node using each element of the NcsiPackageIdArray fails, it can be recorded using the index value of that linked list node. When probing the NcsiPackageId of the same linked list node using each element of the NcsiPackageIdArray fails, it means that each element in the NcsiPackageIdArray has been selected once; therefore, the current index value of that linked list node can be incremented by 1.
[0146] For example, id:0 is retrieved from NcsiPackageIdArray. This id:0 is used to probe the communication identifier NcsiPackageId of Node1, thus completing the probe of Node1's communication identifier NcsiPackageId. If the probe of Node1's communication identifier NcsiPackageId using id:0 is successful, Node1 is removed, and its communication identifier NcsiPackageId is set to id:0. If the probe of Node1's communication identifier NcsiPackageId using id:0 fails, the probe begins on the next linked list node, such as Node2. This process is repeated until the communication identifier NcsiPackageId of Nodes 1 through NodeN has been probed once, which can be considered a complete round of probing the probe list.
[0147] In the next round of probing, the communication identifier NcsiPackageId of the linked list nodes that failed the first round of probing can continue to be probed. Taking Node1 as an example, in the previous round of probing, id:0 was used to probe Node1's communication identifier NcsiPackageId. In this round, other values such as id:3 can be removed from NcsiPackageIdArray, and this value can be used as the current candidate communication identifier value. The communication identifier NcsiPackageId of Node1 can then be probed using the current candidate communication identifier value.
[0148] To reduce unnecessary probes, the number of probes for the NcsiPackageId of the same linked list node using each element in NcsiPackageIdArray can be set to three. Taking Node1 as an example, if the probe results for Node1's communication identifier NcsiPackageId using each element (id:0, id:1, id:2, id:3, ..., id:7) in NcsiPackageIdArray all fail, the index value of Node1 can be changed from repeat:0 to repeat:1. When it is detected that the index value of Node1 is equal to repeat:3, it indicates that the NCSI over MCTP function of Node1's PCIe device, such as the network card, is unavailable. This linked list node can then be removed from the probe list, and the NcsiPackageId value of the PCIe device, such as the network card, of this linked list node can be set to an invalid value.
[0149] Optional, Figure 6 A schematic flowchart of a method for detecting the number of network ports according to an embodiment of this application is shown. Figure 6 As shown, in this embodiment of the application, the BMC detects the number of network ports of the target PCIe device based on the valid communication identifier, including steps 601 to 603.
[0150] In step 601, the BMC detects whether the network port of the target PCIe device is a valid network port based on the valid communication identifier and the candidate network port number.
[0151] Optionally, the BMC can send NCSI standard commands based on a valid communication identifier and a candidate network port number. If the NCSI standard command is sent successfully, it indicates that the candidate network port corresponding to the candidate network port number is a valid network port. There are various ways to determine if the NCSI standard command has been sent successfully; please refer to relevant technologies.
[0152] For example, if the BMC can receive a response message from the target PCIe device, and if the status code contained in the response message is a valid status code, the candidate network port can be confirmed as a valid network port; or, for example, the BMC can monitor the response time of the target PCIe device, and if the response time is less than a preset time, the candidate network port can be considered as a valid network port.
[0153] If the BMC detects that the network port is a valid network port, it means that the network port can support communication between the BMC and the target PCIe, and step 602 can be executed; if the BMC detects that the network port is an invalid network port, it means that the network port may not be able to support communication between the BMC and the target PCIe, and step 603 can be executed.
[0154] In step 602, the BMC updates the candidate network port number, which is one of the selectable range of network port numbers.
[0155] Optionally, the number of network ports on the target PCIe device can be set to 4, and the corresponding range of network port numbers can be from 0 to 3. When the BMC detects a valid network port, it can select one network port number from the range of available network port numbers and use it as a candidate network port number to detect whether the other network ports of the target PCIe device are valid.
[0156] In step 603, the BMC determines the number of network ports of the target PCIe device based on the number of valid network ports of the target PCIe device. The number of valid network ports of the target PCIe device can refer to the cumulative number of valid network ports of the target PCIe device.
[0157] For example, if a candidate network port number detects a valid network port for the target PCIe device, the number of valid network ports for the target PCIe device can be considered to be 1. After updating the candidate network port number, if the candidate network port number is used to detect a valid network port for the target PCIe device, the number of valid network ports for the target PCIe device changes from 1 to 2, until a candidate network port number detects an invalid network port for the target PCIe device. At this point, the number of valid network ports for the target PCIe device can be considered to be the total number of network ports for the target PCIe device.
[0158] To rule out network port detection failures caused by the computer's operating system powering off. Figure 7 A flowchart illustrating an example method for detecting the number of network ports according to an embodiment of this application is shown. Figure 7 As shown, the BMC in this embodiment determines the number of network ports of the target PCIe device based on the number of valid network ports of the target PCIe device, which may include steps 701 to 704.
[0159] In step 701, if the BMC detects that the network port is invalid, the BMC checks whether the computer device's operating system is powered down. Here, the BMC can refer to relevant technologies to determine whether the computer device's operating system is powered down. For example, the BMC can use the ipmitool tool to view the chassis status via commands, which includes chassis power information, and can use this information to determine whether the operating system is powered on or off.
[0160] If the BMC detects that the operating system is powered on, it means that the current candidate network port cannot support communication between the BMC and the target PCIe, causing the BMC to detect the network port as invalid. Steps 702 and 703 can be executed. If the BMC detects that the operating system is powered off, it means that the inability to communicate between the BMC and the target PCIe may be due to the operating system being powered off. It is necessary to rule out the possibility that the BMC detects the network port as invalid because the operating system is powered off. Therefore, step 704 can be executed.
[0161] In step 702, the BMC determines the number of network ports of the target PCIe device based on the number of valid network ports of the target PCIe device. Refer to the preceding description for determining the number of network ports of the target PCIe device.
[0162] In step 703, the BMC marks the network port probe status of the target PCIe device as probed. This way, if the BMC subsequently detects a power outage and restart of the operating system, it will not need to probe the network port of the target PCIe device.
[0163] In step 704, when the BMC detects that the operating system has been powered on again, the BMC re-probes the number of network ports of the target PCIe device based on the valid communication identifier. That is, it re-executes... Figure 6 and Figure 7 The relevant description content.
[0164] Considering that multiple PCIe devices may be inserted into a computer, and the BMC may configure multiple PCIe devices simultaneously, a probe list can be used to organize the valid communication identifiers (NcsiPackageId) of multiple PCIe devices. When the BMC detects a valid network port, it can delay for a period of time (e.g., 500ms) and then traverse the network ports of the next PCIe device. When the BMC detects an invalid network port, if the operating system powers down, all nodes in the probe list should be removed.
[0165] Considering the different types of target PCIe devices, the personalized configuration information obtained by the target PCIe device lock will vary. The following uses network cards, RAID cards, and GPU cards as examples to introduce the personalized configuration information of network cards, RAID cards, and GPU cards respectively.
[0166] I. Regarding BMC's management of network interface cards (NICs), it mainly manages the NIC's asset information, network information, heat dissipation strategies, and even alarm monitoring.
[0167] Asset information is primarily used to identify network interface cards (NICs) when they malfunction. Network information, which can be considered a management function, is mainly used to identify basic information about network ports, such as firmware version, port bus information, MAC address, and permanent physical address. This basic information can be considered network port statistics, a fundamental condition for ensuring normal communication, and reflects the communication rate during the communication process. Cooling strategies are mainly used to address potential overheating issues during NIC operation. For example, the BMC (Browser Control Center) controls the fan speed of the computer equipment (such as a server) containing the NIC to keep the NIC's temperature fluctuating around a preset level. Therefore, the BMC needs to obtain the NIC's temperature. When an alarm is generated, the alarm description information needs to include the NIC's name, slot information, and serial number. These three pieces of information allow for accurate location of the NIC that generated the alarm.
[0168] As can be seen, in order to meet the management needs of the network interface card (NIC), the BMC in this embodiment of the application needs to load not only the general configuration information but also the following personalized configuration information. The data source for the personalized configuration information can be found in [reference needed]. Figure 8 The diagram illustrates the network interface card (NIC) information decoupling mapping according to an embodiment of this application. It should be understood that... Figure 8 Only the main network interface card information is shown; in reality, there may be more or less information decoupling mapping.
[0169] The information in the PCI.ids file comes from the PCI.ids file, which is used to identify and drive PCI devices, and helps the operating system identify and process hardware devices based on the PCI standard.
[0170] The PCI.ids file includes information such as network interface card (NIC) manufacturer, NIC description, and NIC chip model. For example, the NIC manufacturer information may include the manufacturer's identity information (such as vendor ID). The NIC description information is optional. Optionally, the PCI.ids file may also include the identity information of the Peripheral Component Interconnect (PCI) device (such as device ID and device name).
[0171] VPD information comes from the network card's PCIe configuration space information, which the BMC can obtain from the CPU via the PECI protocol. VPD information is important product data for the network card, and it typically includes the network card name, network card quadruple information, and serial number. It may also include manufacturer information and part number.
[0172] In this embodiment, the PCI.ids file also contains the network interface card (NIC) name, but its information is too long to be used as a name; it is generally used as NIC description information. The NIC quadruple information includes VendorID, ClassCode, Device ID, Subsystem Vendor ID, and Subsystem Device ID, which can uniquely identify the NIC.
[0173] There is a mapping relationship between the manufacturer's identity information in the PCI.ids file and the network card quad tuple information. Therefore, after obtaining the PCIe configuration space information, the BMC can find the network card manufacturer's identity information from the PCI.ids file based on the network card quad tuple information.
[0174] Network interface card (NIC) description information is the basic information describing the NIC. It is defined and recorded in the PCI.ids file and is unique. BMC can find the NIC manufacturer's identity information from the PCI.ids file based on the Vendor ID, then find the NIC of the corresponding type from that manufacturer based on the Device ID, and finally map the corresponding NIC description information based on the Subsystem Vendor ID and Subsystem Device ID.
[0175] The network interface card (NIC) chip model can identify the type of NIC chip and cannot be obtained directly. However, the NIC description information contains this field. Therefore, BMC can use matching to obtain the NIC chip model from the PCI.ids file by combining the NIC quadruple information and regular expressions.
[0176] The firmware information of the network card comes from the network card itself. This information can include the network card's temperature, the valid communication identifier between the BMC and the network card, and the number of network ports on the network card. For example, the valid communication identifier NcsiPackageId between the BMC and the network card, and the number of network ports on the network card can be detected using a probing method. This allows the BMC to communicate normally with the network card, enabling it to obtain relevant information such as the version number from the target PCIe device. Furthermore, the BMC can obtain the network card's temperature from its registers via the I2C bus. Both NcsiPackageId and the number of network ports can be obtained through probing methods; please refer to the previous text for details.
[0177] II. Regarding BMC's management of RAID cards, it primarily manages RAID card asset information, out-of-band management capabilities, heat dissipation strategies, and even alarm monitoring. The heat dissipation and alarm monitoring strategies can be referenced from BMC's management methods for network interface cards (NICs).
[0178] To meet the management requirements of RAID cards, in addition to loading general configuration information, the BMC also needs to load the following personalized configuration information. The data source for the personalized configuration information can be found in [reference needed]. Figure 9 The diagram shown illustrates the decoupling mapping of RAID card information according to an embodiment of this application. It should be understood that... Figure 9 Only the main information of the RAID card is shown. In reality, there may be more or less information decoupling mapping.
[0179] The PCIe configuration space information of a RAID card includes the RAID card quadruple information, which the BMC can obtain from the CPU via the PECI protocol. The RAID card quadruple information can include the Vendor ID, Class Code, Device ID, Subsystem Vendor ID, and Subsystem Device ID, which can uniquely identify the RAID card.
[0180] The PCI.ids file contains information about PCI devices, used to identify and drive them, assisting the operating system in recognizing and processing PCI-based hardware. The PCI.ids file includes RAID card manufacturer information, RAID card description information, and RAID card chip model. The RAID card description information is optional. The PCI.ids file may also include identification information for Peripheral Component Interconnect (PCI) devices (such as device ID and device name).
[0181] RAID card manufacturer information can include the manufacturer's identity information (such as vendor ID). There is a mapping relationship between the manufacturer's identity information and the RAID card quadruple information in the PCI.ids file. Therefore, after obtaining the PCIe configuration space information, the BMC can find the RAID card manufacturer's identity information from the PCI.ids file based on the RAID card quadruple information therein.
[0182] RAID card description information describes the RAID card and is defined and recorded in the PCI.ids file; it is unique. The BMC can find the RAID card manufacturer's identity information from the PCI.ids file based on the Vendor ID, then find the corresponding type of RAID card for that manufacturer based on the Device ID, and finally map the corresponding RAID card description information based on the Subsystem Vendor ID and Subsystem Device ID.
[0183] The RAID card chip model can be used to distinguish different types of PCIe devices and create different levels of logical disks based on the type of PCIe device identified. Therefore, the BMC can use matching to obtain the RAID card quadruple information and regular expressions from the PCI.ids file.
[0184] The firmware information for the RAID card comes from the RAID card itself, and may include the RAID card name, out-of-band management capabilities, serial number, and RAID card temperature.
[0185] The BMC can obtain the RAID card name (Name) from the RAID card through the out-of-band management library interface. The PCI.ids file also contains the RAID card name, but this information is too long to be used as a name and is generally used as RAID card description information.
[0186] The serial number is a unique identifier for the RAID card. The BMC can obtain this serial number through the RAID card's out-of-band management library interface, and the BMC can use the serial number to identify the RAID card. The BMC can obtain the RAID card's temperature from its registers via the I2C bus.
[0187] Out-of-band management capability code refers to out-of-band management capability. The BMC can obtain the out-of-band management capability of the RAID card through the out-of-band management library interface. Different cards support different out-of-band management capabilities. When the BMC obtains the out-of-band management capability code, the BMC can support the out-of-band management capability of the RAID card.
[0188] III. Regarding BMC's management of GPU cards, it primarily manages the GPU card's asset information, thermal management strategies, and alarm monitoring. The thermal management and alarm monitoring strategies can be referenced from BMC's management methods for network card thermal management and alarm monitoring.
[0189] To meet the management requirements of the GPU card, in addition to loading general configuration information, the BMC also needs to load the following personalized configuration information. The data source for this personalized configuration information primarily comes from the GPU card's firmware information. The data source for this personalized configuration information can be found in [reference needed]. Figure 10 The diagram shown illustrates the decoupling mapping of GPU card information according to an embodiment of this application. It should be understood that... Figure 10 Only the main information of the GPU card is shown. In reality, there may be more or less information in the decoupled mapping.
[0190] The PCIe configuration space information of a GPU card includes the GPU card quadruple information, which the BMC can obtain from the CPU via the PECI protocol. The GPU card quadruple information may include the Vendor ID, Class Code, Device ID, Subsystem Vendor ID, and Subsystem Device ID, which can uniquely identify the GPU card.
[0191] The PCI.ids file contains information about the GPU card manufacturer, including the manufacturer's identity. There is a mapping between the manufacturer's identity information and the GPU card's quadruple information in the PCI.ids file. Therefore, after obtaining the PCIe configuration space information, the BMC can retrieve the GPU card manufacturer's identity information from the PCI.ids file based on the GPU card's quadruple information.
[0192] Optionally, the PCI.ids file can also define and record GPU card description information, which is unique. The GPU card description information is recorded in pci.ids. First, the corresponding technology vendor is found based on the Vendor ID, then the corresponding card type is found based on the Device ID, and finally the corresponding GPU card description information is mapped based on the Sub-Vendor ID and Sub-Device ID.
[0193] The firmware information of a GPU card can include the GPU card name, GPU card model, serial number, and temperature, and may also include power. The GPU card name, GPU card model, serial number, and power are all located in the GPU card's own configuration space.
[0194] The BMC can obtain the GPU card name from the GPU card through Get GPU Information; the BMC can obtain the GPU card temperature from the GPU card's registers through the I2C bus; the serial number is the unique identifier of the GPU card, and the BMC can obtain the serial number and power from the GPU card's own configuration space through the GPU card manufacturer's custom protocol.
[0195] The above mainly describes the solutions provided by the embodiments of this application from three perspectives: BIOS, CPU, and BMC. It is understood that, in order to implement the above functions, the CPU includes corresponding hardware structures and / or software modules for executing each function. Those skilled in the art should readily recognize that, in conjunction with the units and algorithm steps of the various examples described in the embodiments herein, this application can be implemented in hardware or a combination of hardware and computer software. Whether a function is executed by hardware or by computer software driving hardware depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.
[0196] This application embodiment can divide the BMC into functional units according to the above method example. For example, it can divide each function into a separate functional module, or it can integrate two or more functions into one processing module. The integrated module can be implemented in hardware or as a software functional module. It should be noted that the module division in this application embodiment is illustrative and only represents one logical functional division. In actual implementation, there may be other division methods.
[0197] By dividing functional modules according to their respective functions, an exemplary embodiment of this application provides a configuration device that can be applied to a computer device. The computer device includes a BIOS, a BMC, a CPU, and a target PCIe device. The configuration device can be a BMC or a chip applied to the BMC. Figure 11 A schematic block diagram of a functional module of a configuration apparatus according to an exemplary embodiment of this application is shown. Figure 11 As shown, the configuration device 1100 includes:
[0198] The acquisition module 1101 is used to acquire the identification information of the target PCIe device reported by the BIOS when the BIOS recognizes the target PCIe device, acquire the type information of the target PCIe device from the CPU based on the identification information, and acquire the personalized configuration information of the target PCIe device based on the identification information.
[0199] The loading module 1102 is used to load general configuration information into the target memory of the target PCIe device within the BMC based on type information, and to load personalized configuration information into the target memory.
[0200] In one possible implementation, the personalized configuration information includes the PCIe configuration space information of the target PCIe device, the PCI.ids file information of the target PCIe device, the thermal management strategy of the target PCIe device, and the firmware information of the target PCIe device.
[0201] In one possible implementation, the acquisition module 1101 is used to acquire firmware information from the target PCIe device based on the identification information, and to acquire PCIe configuration space information from the CPU, wherein the PCIe configuration space information includes at least quadruple information; acquire PCI.ids file information based on the quadruple information; configure a general heat dissipation strategy based on the configuration information and type information of the computer device; and acquire the heat dissipation strategy of the target PCIe device.
[0202] In one possible implementation, the personalized configuration information also includes a valid communication identifier between the BMC and the target PCIe device, as well as the number of network ports of the target PCIe device.
[0203] The acquisition module 1101 is also used to detect whether the valid communication identifier has changed when the BMC detects a valid communication identifier; and when the valid communication identifier has changed, to detect the number of network ports of the target PCIe device based on the valid communication identifier.
[0204] In one possible implementation, the acquisition module 1101 is further configured to, during the process of establishing a connection between the BMC and the target PCIe device, determine that a connection has been successfully established between the BMC and the target PCIe device if the node identifier of the target PCIe device is detected as a valid node identifier; when the BMC and the target PCIe device have successfully established a connection, if a probe message is successfully sent to the target PCIe device based on a candidate communication identifier, determine a valid communication identifier based on the candidate communication identifier, wherein the candidate communication identifier is one of the selectable ranges of communication identifiers.
[0205] In one possible implementation, the acquisition module 1101 is further configured to: if a probe message is not successfully sent to the target PCIe device based on the candidate communication identifier, select a communication identifier from the range of available communication identifiers and update the candidate communication identifier using a communication identifier; if it is detected that the number of times each communication identifier in the range of available communication identifiers has been selected is greater than a preset number, confirm that there is an invalid communication identifier between the BMC and the target PCIe device, and the candidate communication identifier is one of the available communication identifiers.
[0206] In one possible implementation, the acquisition module 1101 is further configured to detect whether the network port of the target PCIe device is a valid network port based on the valid communication identifier and the candidate network port number; if the network port is detected as a valid network port, the candidate network port number is updated; if the network port is detected as an invalid network port, the number of network ports of the target PCIe device is determined based on the number of valid network ports of the target PCIe device, and the candidate network port number is one of the selectable range of network port numbers.
[0207] In one possible implementation, the acquisition module 1101 is further configured to: if an invalid network port is detected, detect whether the operating system of the computer device is powered off; if the operating system is detected to remain powered on, mark the network port detection status of the target PCIe device as detected, and determine the number of network ports of the target PCIe device based on the number of valid network ports of the target PCIe device; if the operating system is detected to be powered off, when the operating system is detected to be powered on again, re-detect the number of network ports of the target PCIe device based on the valid communication identifier.
[0208] In one possible implementation, the acquisition module 1101 is further configured to update the PCIe configuration space information, PCI.ids file information and firmware information based on the identification information when the number of network ports of the target PCIe device is detected based on the valid communication identifier.
[0209] Figure 12 A schematic block diagram of a chip according to an exemplary embodiment of this application is shown. Figure 12 As shown, the chip 1200 includes one or more (including two) processors 1201 and a communication interface 1202. The communication interface 1202 can support the BMC in performing the data transmission and reception steps in the above method, and the processor 1201 can support the BMC in performing the data processing steps in the above method.
[0210] Optional, such as Figure 12 As shown, the chip 1200 also includes a memory 1203, which may include read-only memory and random access memory, and provides operation instructions and data to the processor. A portion of the memory may also include non-volatile random access memory (NVRAM).
[0211] In some implementations, such as Figure 12 As shown, processor 1201 executes corresponding operations by calling operation instructions stored in memory (which may be stored in the operating system). Processor 1201 controls the processing operations of any terminal device; processor can also be called a central processing unit (CPU). Memory 1203 may include read-only memory and random access memory, and provides instructions and data to processor 1201. A portion of memory 1203 may also include NVRAM. For example, in applications, memory, communication interfaces, and other components are coupled together via a bus system, which may include, in addition to a data bus, a power bus, a control bus, and a status signal bus, etc. However, for clarity, in... Figure 12 The general labeled all buses as Bus System 1204.
[0212] The methods disclosed in the embodiments of this application can be applied to a processor or implemented by a processor. The processor may be an integrated circuit chip with signal processing capabilities. During implementation, each step of the above method can be completed by integrated logic circuits in the processor's hardware or by instructions in software form. The processor can be a general-purpose processor, a digital signal processor (DSP), an ASIC, a field-programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components. It can implement or execute the methods, steps, and logic block diagrams of the application in the embodiments of this application. The general-purpose processor can be a microprocessor or any conventional processor. The steps of the methods applied in the embodiments of this application can be directly embodied in the execution of a hardware decoding processor, or executed by a combination of hardware and software modules in the decoding processor. The software modules can be located in random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, or other mature storage media in the art. This storage medium is located in memory; the processor reads information from the memory and, in conjunction with its hardware, completes the steps of the above method.
[0213] An exemplary embodiment of this application also provides a substrate management controller, including: at least one processor; and a memory communicatively connected to the at least one processor. The memory stores a computer program executable by the at least one processor, which, when executed by the at least one processor, causes the substrate management controller to perform a method according to an embodiment of this application.
[0214] An exemplary embodiment of this application also provides a non-transitory computer-readable storage medium storing a computer program, wherein the computer program, when executed by a computer's processor, is used to cause the computer to perform a method according to an embodiment of this application.
[0215] An exemplary embodiment of this application also provides a computer program product, including a computer program, wherein, when executed by a computer's processor, the computer program is used to cause the computer to perform a method according to an embodiment of this application.
[0216] refer to Figure 13The following is a structural block diagram of the baseboard management controller 1300 that can serve as an example of a hardware device that can be applied to various aspects of this application. The baseboard management controller is intended to represent baseboard management controllers of various forms of digital electronics, such as laptop computers, desktop computers, workstations, personal digital assistants, servers, blade servers, mainframe computers, and other suitable computers. The baseboard management controller can also represent various forms of mobile devices, such as personal digital processors, cellular phones, smartphones, wearable devices, and other similar computing devices. The components shown herein, their connections and relationships, and their functions are merely illustrative and are not intended to limit the implementation of the present application described and / or claimed herein.
[0217] like Figure 13 As shown, the board management controller 1300 includes a computing unit 1301, which can perform various appropriate actions and processes according to a computer program stored in a read-only memory (ROM) 1302 or a computer program loaded from a storage unit 1308 into a random access memory (RAM) 1303. The RAM 1303 may also store various programs and data required for the operation of the board management controller 1300. The computing unit 1301, ROM 1302, and RAM 1303 are interconnected via a bus 1304. An input / output (I / O) interface 1305 is also connected to the bus 1304.
[0218] like Figure 13 As shown, multiple components in the board management controller 1300 are connected to the I / O interface 1305, including: an input unit 1306, an output unit 1307, a storage unit 1308, and a communication unit 1309. The input unit 1306 can be any type of device capable of inputting information to the board management controller 1300. The input unit 1306 can receive input digital or character information and generate key signal inputs related to user settings and / or function control of the board management controller. The output unit 1307 can be any type of device capable of presenting information and may include, but is not limited to, a display, speaker, video / audio output terminal, vibrator, and / or printer. The storage unit 1308 may include, but is not limited to, a hard disk and an optical disk. The communication unit 1309 allows the board management controller 1300 to exchange information / data with other devices through computer networks such as the Internet and / or various telecommunications networks, and may include, but is not limited to, modems, network cards, infrared communication devices, wireless communication transceivers, and / or chipsets, such as Bluetooth™ devices, WiFi devices, WiMax devices, cellular communication devices, and / or the like.
[0219] like Figure 13As shown, computing unit 1301 can be various general-purpose and / or dedicated processing components with processing and computing capabilities. Some examples of computing unit 1301 include, but are not limited to, central processing unit (CPU), graphics processing unit (GPU), various dedicated artificial intelligence (AI) computing chips, various computing units running machine learning model algorithms, digital signal processor (DSP), and any suitable processor, controller, microcontroller, etc. Computing unit 1301 performs the various methods and processes described above. For example, in some embodiments, the methods of the embodiments of this application can be implemented as a computer software program tangibly contained in a machine-readable medium, such as storage unit 1308. In some embodiments, part or all of the computer program can be loaded and / or mounted on the baseboard management controller 1300 via ROM 1302 and / or communication unit 1309. In some embodiments, computing unit 1301 can be configured to perform the methods of the embodiments of this application by any other suitable means (e.g., by means of firmware).
[0220] The program code used to implement the methods of this application may be written in any combination of one or more programming languages. This program code may be provided to a processor or controller of a general-purpose computer, special-purpose computer, or other programmable data processing device, such that when executed by the processor or controller, the functions / operations specified in the flowcharts and / or block diagrams are implemented. The program code may be executed entirely on a machine, partially on a machine, as a standalone software package partially on a machine and partially on a remote machine, or entirely on a remote machine or server.
[0221] In the context of this application, a machine-readable medium can be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, apparatus, or device. A machine-readable medium can be a machine-readable signal medium or a machine-readable storage medium. Machine-readable media can be, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination of the foregoing. More specific examples of machine-readable storage media include electrical connections based on one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fibers, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination of the foregoing.
[0222] To provide interaction with a user, the systems and techniques described herein can be implemented on a computer having: a display device for displaying information to the user (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor); and a keyboard and pointing device (e.g., a mouse or trackball) through which the user provides input to the computer. Other types of devices can also be used to provide interaction with the user; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form (including sound input, voice input, or tactile input).
[0223] The systems and technologies described herein can be implemented in computing systems that include backend components (e.g., as a data server), or computing systems that include middleware components (e.g., an application server), or computing systems that include frontend components (e.g., a user computer with a graphical user interface or web browser through which a user can interact with embodiments of the systems and technologies described herein), or any combination of such backend, middleware, or frontend components. The components of the system can be interconnected via digital data communication of any form or medium (e.g., a communication network). Examples of communication networks include local area networks (LANs), wide area networks (WANs), and the Internet.
[0224] Computer systems can include clients and servers. Clients and servers are generally located far apart and typically interact through communication networks. Client-server relationships are created by computer programs running on the respective computers and having a client-server relationship with each other.
[0225] In the above embodiments, implementation can be achieved entirely or partially through software, hardware, firmware, or any combination thereof. When implemented using software, it can be implemented entirely or partially in the form of a computer program product. The computer program product includes one or more computer programs or instructions. When the computer program or instructions are loaded and executed on a computer, the processes or functions described in the embodiments of this application are performed entirely or partially. The computer can be a general-purpose computer, a special-purpose computer, a computer network, a terminal, a user equipment, or other programmable device. The computer program or instructions can be stored in a computer-readable storage medium or transferred from one computer-readable storage medium to another. For example, the computer program or instructions can be transferred from one website, computer, server, or data center to another website, computer, server, or data center via wired or wireless means. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that integrates one or more available media. The available medium can be a magnetic medium, such as a floppy disk, hard disk, or magnetic tape; it can also be an optical medium, such as a digital video disc (DVD); or it can be a semiconductor medium, such as a solid-state drive (SSD).
[0226] Although this application has been described in conjunction with specific features and embodiments, it is obvious that various modifications and combinations can be made thereto without departing from the spirit and scope of this application. Accordingly, this specification and drawings are merely exemplary illustrations of this application as defined by the appended claims, and are considered to cover any and all modifications, variations, combinations, or equivalents within the scope of this application. Clearly, those skilled in the art can make various alterations and modifications to this application without departing from the spirit and scope of this application. Thus, if such modifications and modifications of this application fall within the scope of the claims of this application and their equivalents, this application is also intended to include such modifications and modifications.
Claims
1. A configuration method, characterized in that, Applied to a computer device, the computer device including a BIOS, BMC, CPU, and a target PCIe device, the method includes: When the BIOS identifies the target PCIe device, the BMC obtains the identification information of the target PCIe device reported by the BIOS, and obtains the type information of the target PCIe device from the CPU based on the identification information; The BMC loads general configuration information into the target memory of the target PCIe device within the BMC based on the type information. The BMC obtains the personalized configuration information of the target PCIe device based on the identification information and loads the personalized configuration information into the target memory.
2. The method according to claim 1, characterized in that, The personalized configuration information includes the PCIe configuration space information of the target PCIe device, the PCI.ids file information of the target PCIe device, the heat dissipation strategy of the target PCIe device, and the firmware information of the target PCIe device.
3. The method according to claim 2, characterized in that, The BMC obtains the personalized configuration information of the target PCIe device based on the identification information, including: The BMC obtains the firmware information from the target PCIe device based on the identification information, and obtains the PCIe configuration space information from the CPU. The PCIe configuration space information includes at least four-tuple information. The BMC obtains the PCI.ids file information based on the quadruple information, configures the general heat dissipation strategy based on the configuration information of the computer device and the type information, and obtains the heat dissipation strategy of the target PCIe device.
4. The method according to claim 2, characterized in that, The personalized configuration information also includes a valid communication identifier between the BMC and the target PCIe device, as well as the number of network ports of the target PCIe device; The BMC may further include obtaining personalized configuration information of the target PCIe device based on the identification information, and may also include: When the BMC detects the valid communication identifier, the BMC checks whether the valid communication identifier has changed; When the BMC detects a change in the valid communication identifier, the BMC probes the number of network ports of the target PCIe device based on the valid communication identifier.
5. The method according to claim 4, characterized in that, The BMC obtains the personalized configuration information of the target PCIe device based on the identification information, and further includes: During the process of establishing a connection between the BMC and the target PCIe device, if the BMC detects that the node identifier of the target PCIe device is a valid node identifier, the BMC determines that a connection has been successfully established between the BMC and the target PCIe device. When the BMC successfully establishes a connection with the target PCIe device, if the BMC successfully sends a probe message to the target PCIe device based on the candidate communication identifier, the BMC determines the valid communication identifier based on the candidate communication identifier, where the candidate communication identifier is one of the selectable range of communication identifiers.
6. The method according to claim 5, characterized in that, The BMC obtains the personalized configuration information of the target PCIe device based on the identification information, and further includes: If the BMC fails to send a probe message to the target PCIe device based on the candidate communication identifier, the BMC selects a communication identifier from the range of available communication identifiers and updates the candidate communication identifier using the selected communication identifier; If the BMC detects that each communication identifier in the selectable range of the communication identifiers has been selected more than a preset number of times, the BMC confirms that there is an invalid communication identifier between the BMC and the target PCIe device.
7. The method according to claim 4, characterized in that, The BMC detects the number of network ports of the target PCIe device based on the valid communication identifier, including: The BMC detects whether the network port of the target PCIe device is a valid network port based on the valid communication identifier and the candidate network port number. If the BMC detects that the network port is a valid network port, it updates the candidate network port number, which is one of the selectable range of network port numbers; If the BMC detects that the network port is an invalid network port, the BMC determines the number of network ports of the target PCIe device based on the number of valid network ports of the target PCIe device.
8. The method according to claim 7, characterized in that, The BMC determines the number of network ports of the target PCIe device based on the number of valid network ports of the target PCIe device, including: If the BMC detects that the network port is an invalid network port, the BMC checks whether the operating system of the computer device is powered off; If the BMC detects that the operating system is powered on, the BMC marks the network port detection status of the target PCIe device as detected, and determines the number of network ports of the target PCIe device based on the number of valid network ports of the target PCIe device. If the BMC detects that the operating system is powered off, when the BMC detects that the operating system is powered on again, the BMC will re-probe the number of network ports of the target PCIe device based on the valid communication identifier.
9. The method according to any one of claims 4 to 8, characterized in that, The method further includes: When the BMC detects the number of network ports of the target PCIe device based on the valid communication identifier, it updates the PCIe configuration space information, the PCI.ids file information, and the firmware information based on the identifier information.
10. A computer device, characterized in that, include: The system includes a BIOS, a BMC, a CPU, and a target PCIe device, wherein the BIOS, the BMC, the target PCIe device, and the CPU are communicatively connected. The BIOS is used to obtain the identification information of the target PCIe device from the target PCIe device when the target PCIe device is identified, and send the identification information to the BMC; The CPU is used to obtain the type information of the target PCIe device from the target PCIe device under the guidance of the BIOS; The BMC is used to obtain the type information of the target PCIe device from the CPU based on the identification information, and load general configuration information into the target memory of the target PCIe device in the BMC based on the type information. Based on the identification information, obtain the personalized configuration information of the target PCIe device, and load the personalized configuration information into the target memory.