Identification information configuration method, apparatus and system
By allocating storage space and establishing binding relationships for external devices when the server starts up, the identification information of external devices is managed automatically, solving the problem of low server maintenance efficiency and achieving efficient device management.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- INSPUR SUZHOU INTELLIGENT TECH CO LTD
- Filing Date
- 2025-10-13
- Publication Date
- 2026-07-30
AI Technical Summary
Servers have low efficiency in maintaining external devices. Existing technologies rely on manual mapping, which is cumbersome and prone to human error.
When the server starts up for the first time, the startup controller identifies the external device and allocates a target storage area for it, establishes a binding relationship, stores the first identification information indicating the physical access location, and extracts and uses the first identification information and the second identification information to construct the target identification information when the server starts up again, so as to automatically maintain the operating status of the external device.
It improves the efficiency of server maintenance for external devices, reduces human error, and enhances the automation and reliability of management.
Smart Images

Figure CN2025127366_30072026_PF_FP_ABST
Abstract
Description
Methods, devices and systems for configuring identification information
[0001] Cross-references to related applications
[0002] This application claims priority to Chinese Patent Application No. 202510109438.1, filed on January 23, 2025, entitled “Method, Apparatus and System for Configuring Identification Information”, the entire contents of which are incorporated herein by reference. Technical Field
[0003] This application relates to the field of computers, and more specifically, to a method, apparatus, and system for configuring identification information. Background Technology
[0004] To ensure efficient maintenance and management of external devices, the server's boot controller needs to maintain a mapping relationship between information representing the logical location of an external device within the server's operating system and information representing its physical location within the server. However, since there is no direct intrinsic link between this information and the physical location, and the physical location information is configured externally and cannot be accessed by the server, the boot controller cannot automatically construct this mapping. Therefore, traditional solutions rely on firmware developers manually establishing and maintaining this mapping. Developers need to obtain the logical location information assigned by the server to the external device, manually construct the mapping between this information and the physical location information, and then manually add the mapping to the server's boot controller's system firmware. This process is not only cumbersome but also prone to human error, resulting in low efficiency in maintaining external devices. Summary of the Invention
[0005] This application provides a method, apparatus, and system for configuring identification information, which at least solves the problem of low maintenance efficiency of servers for external devices in related technologies.
[0006] According to one embodiment of this application, an identification information configuration method is provided, the method being applied to a startup controller in a server, including:
[0007] During the initial server startup process, identify external devices connected to the server.
[0008] Each external device is allocated a target storage area in the storage deployed in the server, and a binding relationship is established between the target storage area and the external device. The management controller is configured to obtain the first identification information of the external device when the server is detected to have finished starting up, and write the first identification information into the target storage area bound to the external device in the storage. The first identification information is used to indicate the physical access location of the external device in the server.
[0009] During the server restart process, extract the first identification information stored in the target storage area;
[0010] The first identification information and the second identification information are used to construct target identification information for the external device. The second identification information is assigned by the startup controller to the identified external device during the initial startup of the server. The second identification information is used to indicate the logical location of the external device in the server's operating system. The operating system is configured to use the target identification information to maintain the operating status of the external device.
[0011] Optionally, extract the first identification information stored in the target storage area, including:
[0012] The target storage region whose storage region identifier matches the device information of the external device is selected from the storage regions included in the memory. The storage region identifier is configured to represent the device to which the corresponding storage region belongs.
[0013] The first identifier information is extracted from the target storage area based on the configuration information corresponding to the target storage area. The configuration information is configured to indicate the data storage status of each byte position in the target storage area.
[0014] Optionally, the first identifier information is extracted from the target storage range based on the configuration information corresponding to the target storage range, including:
[0015] Locate the first offset field stored in the configuration information, wherein the first offset field is configured to indicate the location of the identification information representing the physical access location of the external device in the server in the target storage area;
[0016] The field stored at the field position indicated by the first offset field is determined as the first identification information.
[0017] Optionally, before looking up the first offset field stored in the configuration information, the method also includes:
[0018] Locate the second offset field stored in the configuration information, wherein the second offset field is configured to indicate the location of the identifier information representing the logical location of the external device accessed in the server's operating system within the target storage area;
[0019] Extract the third identification information stored at the field position indicated by the second offset field in the target storage range, wherein the third identification information is stored by the startup controller after allocating the target storage range, and the third identification information is configured to indicate the logical location of the external device to which the target storage range belongs in the server's operating system.
[0020] Match the third identification information with the second identification information stored in the start controller;
[0021] If the third identification information matches the second identification information, perform the operation of finding the first offset field stored in the configuration information.
[0022] Optionally, a target storage region is allocated for each external device in the storage deployed in the server, including:
[0023] The reference memory carried by the external device is detected, wherein the reference memory is a memory configured to store device operation information of the external device, and the memory includes the reference memory;
[0024] Obtain the reference key for each memory region in the reference memory, wherein the reference key is configured to indicate the data storage status of each memory region in the reference memory;
[0025] If a first key exists among multiple reference keys, the storage interval corresponding to the first key is determined as the target storage interval, where the first key indicates that the corresponding storage interval is in an unoccupied state.
[0026] Optionally, a target storage region is allocated for each external device in the storage deployed in the server, including:
[0027] The target storage deployed in the detection server is a storage device configured to store server operating information, and the storage device includes the target storage device.
[0028] Obtain the target keywords for each storage region in the target memory, wherein the target keywords are configured to indicate the data storage status of each storage region in the target memory;
[0029] If a second key exists among multiple target keys, the storage interval corresponding to the second key is determined as the target storage interval, where the second key indicates that the corresponding storage interval is in an unoccupied state.
[0030] Optionally, after allocating a target storage region for each external device in the storage deployed on the server and establishing a binding relationship between the target storage region and the external device, the method further includes:
[0031] Obtain the second identification information assigned to external devices during the initial startup of the server;
[0032] Write the second identification information into the target storage area, and write the second offset field, which indicates the writing position of the second identification information in the target storage area, into the configuration information corresponding to the target storage area. The configuration information is configured to indicate the data storage status of each byte position in the target storage area.
[0033] Optionally, target identification information is constructed for the external device using the first identification information and the second identification information, including:
[0034] Construct a target mapping relationship between the first and second identification information of each external device;
[0035] The target mapping relationship is determined as the target identification information of the external device.
[0036] Optionally, establish a binding relationship between the target storage region and the external device, including:
[0037] Obtain device information of the identified external devices;
[0038] The target storage region is marked using device information.
[0039] According to one embodiment of this application, an identification information configuration method is also provided, the method being applied to a management controller in a server, including:
[0040] Upon detecting that the server has completed startup, the system obtains the first identification information of the external devices connected to the server system, wherein the first identification information is configured to indicate the physical access location of the external devices in the server.
[0041] The first identification information is written into the target storage area bound to the external device in the memory deployed in the server. The target storage area is allocated by the boot controller for the external device in the memory during the initial boot of the server. The boot controller is configured to extract the first identification information stored in the target storage area during the subsequent boot of the server, and use the first identification information and the second identification information to construct target identification information for the external device. The second identification information is allocated by the boot controller for the external device identified during the initial boot of the server. The second identification information is configured to indicate the logical location of the external device in the server's operating system. The operating system is configured to use the target identification information to maintain the operating status of the external device.
[0042] Optionally, the first identification information is written to the target storage area bound to the external device in the storage deployed on the server, including:
[0043] Obtain device information from external devices;
[0044] The target storage region whose storage region identifier matches the device information of the external device is selected from the storage regions included in the memory. The storage region identifier is configured to represent the device to which the corresponding storage region belongs.
[0045] Write the first identification information into the target storage area.
[0046] Optionally, the first identification information is written to the target storage area, including:
[0047] Based on the configuration information of the target storage area, the unoccupied target byte positions in the target storage area are found. The configuration information is configured to indicate the data storage status of each byte position in the target storage area.
[0048] Write the first identification information to the target byte position, and write the first offset field corresponding to the target byte position to the configuration information. The first offset field is configured to indicate the position of the target byte position in the target storage area.
[0049] Optionally, after writing the first identification information into the target storage region bound to the external device in the memory deployed on the server, the method further includes:
[0050] Extract the second identification information of the external device stored in the target storage area;
[0051] Construct a target mapping relationship between the first and second identification information of external devices;
[0052] The target mapping relationship is sent to a display terminal that is bound to the server, wherein the display terminal is configured to display the target mapping relationship and manage the devices connected to the server according to the target mapping relationship.
[0053] Optionally, extract the second identification information of the external device stored in the target storage area, including:
[0054] Extract the third offset field stored in the configuration information of the target storage area, wherein the third offset field is configured to indicate the location of the identifier information representing the logical location of the external device connected in the server's operating system within the target storage area.
[0055] Extract the second identification information stored at the field position indicated by the third offset field in the target storage range.
[0056] Optionally, after writing the first identification information into the target storage region bound to the external device in the memory deployed on the server, the method further includes:
[0057] Receive an identification information update request, wherein the identification information update request is configured to indicate that the first identification information of the external device is updated to the fourth identification information;
[0058] In response to the identification information update request, locate the target storage area bound to the external device in the memory;
[0059] The fourth identification information is used to update the first identification information stored in the target storage area.
[0060] According to one embodiment of this application, an identification information configuration system is also provided, comprising:
[0061] The server includes a startup controller and a management controller, which are respectively connected to the memory in the server.
[0062] The startup controller is configured to identify external devices connected to the server during the initial server startup process; allocate a target storage area for each external device in the storage deployed in the server; and establish a binding relationship between the target storage area and the external device.
[0063] The management controller is configured to, upon detecting that the server has finished starting up, acquire first identification information of the external device, wherein the first identification information is configured to indicate the physical access location of the external device in the server; and write the first identification information into a target storage area bound to the external device in the memory;
[0064] The startup controller is also configured to extract first identification information stored in the target storage area during the server restart process; and to construct target identification information for the external device using the first identification information and the second identification information, wherein the second identification information is assigned by the startup controller to the identified external device during the initial server startup process, and the second identification information is configured to indicate the logical location of the external device in the server's operating system, and the operating system is configured to use the target identification information to maintain the operating status of the external device.
[0065] According to another embodiment of this application, an identification information configuration device is provided. The device is applied to a startup controller in a server and includes:
[0066] The identification module is configured to identify external devices connected to the server during the initial startup process of the server.
[0067] The allocation module is configured to allocate a target storage area for each external device in the storage deployed in the server, and to establish a binding relationship between the target storage area and the external device. The management controller is configured to obtain the first identification information of the external device when the server is detected to have finished starting, and write the first identification information into the target storage area bound to the external device in the storage. The first identification information is configured to indicate the physical access location of the external device in the server.
[0068] The first extraction module is configured to extract the first identification information stored in the target storage area during the server restart process;
[0069] The first construction module is configured to use first identification information and second identification information to construct target identification information for external devices. The second identification information is assigned by the startup controller to the identified external devices during the initial startup of the server. The second identification information is configured to indicate the logical location of the external device in the server's operating system. The operating system is configured to use the target identification information to maintain the operating status of the external devices.
[0070] According to another embodiment of this application, an identification information configuration device is provided. The device is applied to a management controller in a server and includes:
[0071] The first acquisition module is configured to acquire first identification information of external devices connected to the server system when the server is detected to have finished starting up, wherein the first identification information is configured to indicate the physical access location of the external device in the server.
[0072] The first writing module is configured to write first identification information into a target storage area bound to an external device in the memory deployed in the server. The target storage area is allocated by the boot controller for the external device in the memory during the initial boot of the server. The boot controller is configured to extract the first identification information stored in the target storage area during the subsequent boot of the server, and use the first identification information and the second identification information to construct target identification information for the external device. The second identification information is allocated by the boot controller for the identified external device during the initial boot of the server. The second identification information is configured to indicate the logical location of the external device in the server's operating system. The operating system is configured to use the target identification information to maintain the operating status of the external device.
[0073] According to another embodiment of this application, a computer non-volatile readable storage medium is also provided, wherein a computer program is stored in the computer non-volatile readable storage medium, and the computer program is configured to execute the steps in any of the above method embodiments when running.
[0074] According to yet another embodiment of this application, an electronic device is also provided, including a memory and a processor, wherein a computer program is stored in the memory and the processor is configured to run the computer program to perform the steps in any of the above method embodiments.
[0075] According to yet another embodiment of this application, a computer program product is also provided, including a computer program that, when executed by a processor, implements the steps in any of the above method embodiments.
[0076] This application describes a system where, during the initial server startup, the startup controller identifies external devices connected to the server, assigns second identification information to each device to indicate its logical location within the server's operating system, allocates a target storage area for each device in the server's memory, and establishes a binding relationship between the target storage area and the device. Upon detecting that the server has finished startup, the management controller retrieves the first identification information indicating the external device's physical location within the server and writes it into the target storage area bound to the device. During subsequent server startups, the startup controller extracts the first identification information from the target storage area and uses the first and second identification information to construct target identification information for the external device. The operating system then uses this target identification information to maintain the operating status of the external device. Therefore, this system addresses the problem of low maintenance efficiency for external devices in related technologies, thereby improving the overall maintenance efficiency of the server for external devices. Attached Figure Description
[0077] Figure 1 is a hardware structure block diagram of a server device for an identification information configuration method according to an embodiment of this application;
[0078] Figure 2 is a flowchart of an identification information configuration method according to an embodiment of this application;
[0079] Figure 3 is a definition table of VPD read / write keywords according to an embodiment of this application;
[0080] Figure 4 is a flowchart of a method for configuring identification information according to an embodiment of this application;
[0081] Figure 5 is a schematic diagram of a VPD keyword format according to an embodiment of this application;
[0082] Figure 6 is an overall structural block diagram of a server PCIe device with real-time out-of-band silkscreen information update according to an embodiment of this application.
[0083] Figure 7 is a table diagram showing the definition of the Offset field in a VPD according to an embodiment of this application;
[0084] Figure 8 is a diagram of a BMC web silkscreen editing and management interface according to an embodiment of this application;
[0085] Figure 9 is a flowchart of a design for real-time out-of-band update of silkscreen information of a server PCIe device implemented using the MCTP over PCIe protocol according to an embodiment of this application.
[0086] Figure 10 is a structural block diagram of an identification information configuration device according to an embodiment of this application;
[0087] Figure 11 is a structural block diagram of an identification information configuration device according to an embodiment of this application. Detailed Implementation
[0088] The embodiments of this application will be described in detail below with reference to the accompanying drawings and examples.
[0089] It should be noted that the terms "first," "second," etc., in the specification, claims, and drawings of this application are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence.
[0090] The methods and embodiments provided in this application can be executed in a server device or a similar computing device. Taking a server device as an example, FIG1 is a hardware structure block diagram of a server device for an identification information configuration method according to an embodiment of this application. As shown in FIG1, the server device may include one or more (only one is shown in FIG1) processors 102 (processors 102 may include, but are not limited to, microprocessors MCUs or programmable logic devices FPGAs, etc.) and a memory 104 configured to store data. The server device may also include a transmission device 106 configured for communication functions and an input / output device 108. Those skilled in the art will understand that the structure shown in FIG1 is only illustrative and does not limit the structure of the server device. For example, the server device may also include more or fewer components than shown in FIG1, or have a different configuration than shown in FIG1.
[0091] The memory 104 can be configured to store computer programs, such as application software programs and modules, like the computer program corresponding to the identification information configuration method in this embodiment. The processor 102 executes various functional applications and data processing by running the computer programs stored in the memory 104, thus implementing the aforementioned method. The memory 104 may include high-speed random access memory and non-volatile memory, such as one or more magnetic storage devices, flash memory, or other non-volatile solid-state memory. In some instances, the memory 104 may further include memory remotely located relative to the processor 102, and these remote memories can be connected to server devices via a network. Examples of such networks include, but are not limited to, the Internet, corporate intranets, local area networks, mobile communication networks, and combinations thereof.
[0092] The transmission device 106 is configured to receive or transmit data via a network. Specific examples of the network described above may include a wireless network provided by a communication provider for the server device. In one example, the transmission device 106 includes a Network Interface Controller (NIC), which can connect to other network devices via a base station to communicate with the Internet. In another example, the transmission device 106 may be a Radio Frequency (RF) module for wireless communication with the Internet.
[0093] This embodiment provides an identification information configuration method, which is applied to the startup controller in a server. Figure 2 is a flowchart of an identification information configuration method according to an embodiment of this application. As shown in Figure 2, the process includes the following steps:
[0094] Step S202: During the initial startup of the server, identify the external devices connected to the server.
[0095] Step S204: Allocate a target storage area for each external device in the storage deployed in the server, and establish a binding relationship between the target storage area and the external device. The management controller is configured to obtain the first identification information of the external device when the server is detected to have finished starting, and write the first identification information into the target storage area bound to the external device in the storage. The first identification information is configured to indicate the physical access location of the external device in the server.
[0096] Step S206: During the server restart process, extract the first identification information stored in the target storage area;
[0097] Step S208: Use the first identification information and the second identification information to construct target identification information for the external device. The second identification information is assigned by the startup controller to the identified external device during the initial startup of the server. The second identification information is configured to indicate the logical location of the external device in the server's operating system. The operating system is configured to use the target identification information to maintain the operating status of the external device.
[0098] Through the above steps, during the initial server startup, the startup controller identifies external devices connected to the server, assigns second identification information to each device to indicate its logical location within the server's operating system, and allocates a target storage area for each device in the server's memory, establishing a binding relationship between the target storage area and the device. Upon detecting that the server has finished startup, the management controller retrieves the first identification information indicating the physical location of the external device within the server and writes it into the target storage area bound to the device. During subsequent server startups, the startup controller extracts the first identification information from the target storage area and uses the first and second identification information to construct target identification information for the external device. The operating system then uses this target identification information to maintain the operating status of the external device. Therefore, this addresses the problem of low server maintenance efficiency for external devices in related technologies, thereby improving the overall efficiency of server maintenance for external devices.
[0099] Optionally, in this embodiment, the boot controller is a device deployed in the server to control the startup and operation of the server system. During the initial startup of the server, the boot controller identifies external devices connected to the server and assigns second identification information to all external devices to indicate the logical location of the external devices in the server's operating system. It also creates target storage areas with binding relationships to each external device. During the server's subsequent startup, the boot controller retrieves the first identification information stored in the target storage areas and uses the first and second identification information to construct target identification information for use by the operating system. The boot controller may be, but is not limited to, a BIOS (Basic Input Output System) or a device with a control program deployed to control the server's startup state; this solution does not limit this.
[0100] In the embodiment provided in step S202 above, the external device may be, but is not limited to, a device that is connected to the server through a physical connection. The external device may be, but is not limited to, a device that is connected to the server to support the server's business functions, such as a network adapter card, I / O expansion card, accelerator card, PCIe device, etc. This solution does not limit this.
[0101] In the embodiment provided in step S204 above, the memory can be a memory deployed in the server for storing server operating information. The startup controller can then allocate a target storage area for the external device within the memory on the server that stores other information, and establish a binding relationship between the target storage area and the external device. This storage area can then be used to store the external device's identification information (including first identification information and second identification information), thereby enabling the startup controller and management controller to obtain identification information not known to themselves. In this embodiment, the same memory can be divided into multiple storage areas, and these multiple storage areas can be allocated to multiple different external devices.
[0102] Optionally, in this embodiment of the application, the memory can also be a memory carried on an external device. The memory can be a memory on the external device that stores device information. Then, during the server startup process, the startup controller can scan the external devices connected to the server, access the memory carried on the external device, and allocate a target storage area in the unoccupied storage area of the memory to store the identification information of the current external device.
[0103] Optionally, in this embodiment, the memory deployed in the server is a device that can be divided into multiple memory regions. The memory may be, but is not limited to, EEPROM (Electrically Erasable Programmable Read-Only Memory), NVRAM (Non-Volatile Random Access Memory), etc. This solution does not limit it.
[0104] Optionally, in this embodiment, the boot controller allocates a target storage area in the memory deployed on the server for each external device. The target storage area stores either the first identification information or the first and second identification information of the external device. The target storage area can be a sub-cache space partitioned from the memory's cache space, or it can be a data format stored in the memory. For example, the target storage area can be VPD (Vendor Product Data), which records information such as the part number and serial number of the FRU (Field Replaceable Unit) device. It can uniquely identify the system's software and hardware, and can also store system micro-instructions. VPD provides a mechanism for storing device performance or fault information. Software can backfill the PCIe device's performance parameters or fault information into the VPD, facilitating device use or debugging.
[0105] Optionally, in this embodiment, the startup controller establishes a binding relationship between the target storage area and the external device. The startup space can establish this binding relationship by, but is not limited to, marking the target storage area using device information (for reference) provided by the external device. Marking the target storage area can be done by establishing a mapping relationship between device information and the target storage area in the memory, or by storing the device information in the target storage area. After establishing the binding relationship between the target storage area and the external device, the startup controller can determine the external device to which the target storage area belongs by using this binding relationship after subsequently accessing the target memory, thereby reading the first identification information stored in the target storage space. Similarly, when managing devices in the server, the management controller can also access the memory to determine the external device to which the target storage area belongs based on the binding relationship, and then store the first identification information of the external device in the target storage area, thus ensuring the matching relationship between the identification information and the external device and avoiding incorrect configuration of the identification information.
[0106] Optionally, in this embodiment, the management controller is a device deployed in the server that manages the operating status of the access device. The management controller is used to obtain the first identification information of the external device when the server is detected to have finished starting up, and write the first identification information into the target storage area bound to the external device. The management controller may be, but is not limited to, a BMC (Baseboard Management Controller), an FPGA (Field-Programmable Gate Array), etc., and this solution does not limit it.
[0107] Optionally, in this embodiment, the first identification information is configured to indicate the physical access location of the external device in the server. For example, the first identification information may be, but is not limited to, identification information printed on the device (i.e., the silkscreen information or silkscreen number of the device).
[0108] In the embodiment provided in step S206 above, the startup controller extracts the first identification information written by the management controller from the target storage area during the server restart process.
[0109] In the embodiment provided in step S208 above, the second identification information is configured to indicate the logical location of the external device in the server's operating system. The second identification information may be, but is not limited to, an identifier (i.e., slot number) assigned to a specific physical location on the system motherboard of the pluggable device or module. For example, the slot number of each external device is assigned by the boot controller. Generally, they are arranged in order from CPU0PE1-PE4, CPU1PE1-PE4, CPU2PE1-PE4, and CPU3PE1-PE4. If CPU0PE1 has two X8 devices, the slot numbers of these two devices are 0 and 1. If CPU0PE2 has one X16 device, its slot number is 2, and so on. The correspondence between the physical location of each external device (i.e., the first identification information) and the CPUPE port used by the device (i.e., the second identification information) is not fixed.
[0110] Optionally, in this embodiment, the second identification information is assigned by the startup controller to the identified external devices during the initial startup of the server. The second identification information can be stored in the target storage area created by the startup controller for each external device, or it can be stored in any other storage space in the server used for storing data. After the startup controller obtains the first identification information written by the management controller from the target storage area, it can use the first identification information and the second identification information pre-stored during the initial startup of the server to construct target identification information. The target identification information is configured to indicate the mapping relationship between the first identification information and the second identification information, so that the server operating system can use the target identification information to maintain the operating status of each external device.
[0111] As an optional embodiment, extracting the first identification information stored in the target storage area includes:
[0112] The target storage region whose storage region identifier matches the device information of the external device is selected from the storage regions included in the memory. The storage region identifier is configured to represent the device to which the corresponding storage region belongs.
[0113] The first identifier information is extracted from the target storage area based on the configuration information corresponding to the target storage area. The configuration information is configured to indicate the data storage status of each byte position in the target storage area.
[0114] Optionally, in this embodiment of the application, for each external device, the startup controller will use the device information (such as serial number, model number, etc.) corresponding to the external device as a keyword to match the storage area identifier carried by the storage area included in the memory, and then filter out the target storage area from multiple storage areas whose device information indicated by the storage area identifier is consistent with the device information of the external device.
[0115] Optionally, in this embodiment of the application, after the startup controller finds the target storage area corresponding to the external device, it will read the configuration information of the target storage area. The configuration information is configured to indicate the data storage situation of each byte position in the target storage area, such as the starting position, length, type (such as text, number or mixed format) and encoding method (such as ASCII, UTF-8) of the data byte. Then the startup controller will decode the data in the target storage area, determine the byte position used to store the first identification information, and extract the first identification information from the corresponding byte position.
[0116] In this way, the controller can accurately find and obtain the first identification information of the external device, and achieve precise matching of the first identification information, thereby improving the management efficiency and maintenance convenience of the server.
[0117] As an optional embodiment, the first identification information is extracted from the target storage region based on the configuration information corresponding to the target storage region, including:
[0118] Locate the first offset field stored in the configuration information, wherein the first offset field is configured to indicate the location of the identification information representing the physical access location of the external device in the server in the target storage area;
[0119] The field stored at the field position indicated by the first offset field is determined as the first identification information.
[0120] Optionally, in this embodiment, the configuration information of the target storage area is configured after the boot controller and management controller write data to the target storage area. Specifically, after the boot controller writes the second identification information assigned to each external device to the target storage area during the initial server startup phase, it edits the offset field corresponding to the second identification information based on its position within the target storage area. Similarly, after the management controller writes the first identification information of each external device to the target storage area, it edits the offset field corresponding to the first identification information based on its position within the target storage area. For example, if the BMC stores silkscreen information in a field starting at offset position 158 in the VPD and sets the first offset field to 158 in the configuration information, then when the BIOS subsequently extracts silkscreen information from the VPD, it will determine the data stored at the 158th field position as the silkscreen information.
[0121] The above information allows for the precise reading of the first identification information of external devices within the target storage area by searching the first offset field in the configuration information, thereby improving the automation level and reliability of server hardware management.
[0122] As an optional embodiment, the method further includes, before looking up the first offset field stored in the configuration information:
[0123] Locate the second offset field stored in the configuration information, wherein the second offset field is configured to indicate the location of the identifier information representing the logical location of the external device accessed in the server's operating system within the target storage area;
[0124] Extract the third identification information stored at the field position indicated by the second offset field in the target storage range, wherein the third identification information is stored by the startup controller after allocating the target storage range, and the third identification information is configured to indicate the logical location of the external device to which the target storage range belongs in the server's operating system.
[0125] Match the third identification information with the second identification information stored in the start controller;
[0126] If the third identification information matches the second identification information, perform the operation of finding the first offset field stored in the configuration information.
[0127] Optionally, in this embodiment, during server startup, the BIOS (boot controller) first enumerates all external devices connected via the PCIe bus and assigns a slot number (second identification information) to each device. The BIOS records this slot number and stores it in its configuration data. Simultaneously, after allocating a target storage area, the BIOS stores the slot number within that area. When the BIOS needs to read the device's silkscreen information (first identification information), it first searches the second offset field in the target storage area's configuration information. This second offset field indicates the position of the third identification information within the target storage area. The BIOS then extracts the third identification information from the target storage area based on the field position indicated by the second offset field and compares it with its own stored second identification information. If the third identification information matches the second identification information, it indicates that the data in the target storage area indeed belongs to the external device identified by the BIOS. The BIOS then performs the operation of searching the first offset field stored in the configuration information.
[0128] Based on the above, after the startup controller allocates a target storage area for an external device, it can store the second identification information allocated to the external device in the target storage area (i.e., the third identification information). The startup controller also stores the original second identification information allocated to the external device. Thus, before reading the first identification information from the target storage area, the startup controller verifies the consistency between the second and third identification information of the device, ensuring that the identification information stored in the target storage area belongs to the same device, and avoiding problems such as data reading errors or device information confusion.
[0129] As an optional embodiment, a target storage region is allocated for each external device in the memory deployed in the server, including:
[0130] The reference memory carried by the external device is detected, wherein the reference memory is a memory used to store the device operation information of the external device, and the memory includes the reference memory;
[0131] Obtain the reference key of each memory region in the reference memory, where the reference key is used to indicate the data storage status of each memory region in the reference memory;
[0132] If a first key exists among multiple reference keys, the storage interval corresponding to the first key is determined as the target storage interval, where the first key indicates that the corresponding storage interval is in an unoccupied state.
[0133] Optionally, in this embodiment, the memory used to store the identification information can be the memory carried by the external device itself. That is, the server can use the storage space of the external device itself to store the first identification information and the second identification information of the external device. This mechanism not only reduces the burden on the server's main memory, but also ensures the portability of the device identification information and the automatic update of the identification information when the device is replaced. This is because the memory storing this identification information is located on the external device itself. No matter which server or slot the device is inserted into, its identification information can be migrated with the external device without the server needing to reconfigure or update the hardware information.
[0134] Optionally, in this embodiment, when the server starts, the startup controller ensures that the target storage area allocated to each external device is appropriate and unoccupied. A reference keyword is a special identifier used to describe the type and data storage status of its storage area, such as whether it is occupied, storage type, and available space. By reading these keywords, the server can understand which storage areas in the reference memory are free and can be used to store new information. The first keyword indicates that the corresponding storage area is in an unoccupied state. Figure 3 is a definition table of VPD read / write keywords according to an embodiment of this application. As shown in Figure 3, the keyword "RW" indicates that the area is a read / write storage space that can be used to store device data information.
[0135] By detecting the reference memory built into the external device and using its free storage space to store the identification information of the external device, the identification information can be migrated with the device when the device moves between different servers or slots, without the need for the server to reconfigure or update the hardware information, thus reducing maintenance costs and operational complexity.
[0136] As an optional embodiment, a target storage region is allocated for each external device in the memory deployed in the server, including:
[0137] The target storage deployed in the detection server is the storage in the server used to store server operating information, and the storage includes the target storage.
[0138] Obtain the target keywords for each storage region in the target memory, wherein the target keywords are configured to indicate the data storage status of each storage region in the target memory;
[0139] If a second key exists among multiple target keys, the storage interval corresponding to the second key is determined as the target storage interval, where the second key indicates that the corresponding storage interval is in an unoccupied state.
[0140] Optionally, in this embodiment, the memory configured to store identification information can also be any non-volatile storage medium inside the server, such as EEPROM, NVRAM, or flash memory. These memories are typically used to store server operating information, such as firmware version, system configuration, and device status.
[0141] Optionally, in this embodiment, the target keyword is used to indicate the data storage status of the storage area, such as whether it is occupied, storage type, available space, etc. By reading the target keyword, the startup controller can understand which storage areas in the memory deployed in the server are free and which are occupied. Among multiple target keywords, if there is a second keyword indicating that the storage area is in an unoccupied state, the startup controller can determine the storage area corresponding to the second keyword as the target storage area for storing the identification information of external devices.
[0142] Optionally, in this embodiment of the application, a target storage area can be divided from any storage area in the server. The target storage area can be continuous or non-contiguous. As long as there is enough free storage area in the server's memory, one or more storage areas can be flexibly divided from it and configured to store the identification information of external devices.
[0143] By using the above method, the target storage space in the server used to store server operation information is detected, and any free storage area is divided out from it as the target storage area, thus avoiding the waste of storage resources and significantly improving the utilization rate of server storage resources.
[0144] As an optional embodiment, after allocating a target storage region for each external device in the storage deployed in the server and establishing a binding relationship between the target storage region and the external device, the method further includes:
[0145] Obtain the second identification information assigned to external devices during the initial startup of the server;
[0146] Write the second identification information into the target storage area, and write the second offset field, which indicates the writing position of the second identification information in the target storage area, into the configuration information corresponding to the target storage area. The configuration information is configured to indicate the data storage status of the target storage area.
[0147] Optionally, in this embodiment, during the initial server startup, after the boot controller allocates a target storage area for each external device, it writes the second identification information allocated to the external device into the target storage area, and writes the second offset field, which indicates the write position of the second identification information in the target storage area, into the configuration information of the target storage area, so as to facilitate accurate reading of the second identification information later. For example, if the BIOS (boot controller) stores the slot number (second identification information) in a field starting at offset position 169 in the VPD (target storage area), then the BIOS will set the second offset field to 169 in the configuration information of the VPD.
[0148] Based on the above, the startup controller not only allocates the target storage area when the server starts up for the first time, but also writes the device's second identification information and records the write location. This mechanism simplifies the management and location of device information, and improves the automation and efficiency of server hardware information management.
[0149] As an optional embodiment, constructing target identification information for an external device using first identification information and second identification information includes:
[0150] Construct a target mapping relationship between the first and second identification information of each external device;
[0151] The target mapping relationship is determined as the target identification information of the external device.
[0152] Optionally, in this embodiment of the application, the mapping relationship between the first identification information and the second identification information is determined as the target identification information of the external device. The construction of the target mapping relationship ensures the correspondence between the physical location and the logical location of the external device, which facilitates the subsequent management and monitoring of the external device by the server.
[0153] As an optional embodiment, establishing a binding relationship between the target storage area and the external device includes:
[0154] Obtain device information of the identified external devices;
[0155] The target storage region is marked using device information.
[0156] Optionally, in this embodiment, the device information of the external device is configured to characterize the device identity and attributes of the external device. The device information may include, but is not limited to, device type, device serial number, device model, etc., and then the device information corresponding to the external device can be used to mark the target storage area to build a binding relationship between the target storage area and the external device.
[0157] By using the above method to mark the target storage area with device information to build the binding relationship between the target storage area and the external device, the complexity of redeveloping firmware for each model and configuration is reduced, making server hardware information management more standardized and automated.
[0158] This embodiment provides a method for configuring identification information. The method is applied to a management controller in a server. Figure 4 is a flowchart of a method for configuring identification information according to an embodiment of this application. As shown in Figure 4, the process includes the following steps:
[0159] Step S402: When the server is detected to have finished starting, the first identification information of the external device connected to the server system is obtained, wherein the first identification information is configured to indicate the physical access location of the external device in the server.
[0160] Step S404: Write the first identification information into the target storage area bound to the external device in the memory deployed in the server. The target storage area is allocated by the startup controller for the external device in the memory during the initial startup of the server. The startup controller is configured to extract the first identification information stored in the target storage area during the subsequent startup of the server, and use the first identification information and the second identification information to construct target identification information for the external device. The second identification information is allocated by the startup controller for the identified external device during the initial startup of the server. The second identification information is configured to indicate the logical location of the external device in the server's operating system. The operating system is configured to use the target identification information to maintain the operating status of the external device.
[0161] Optionally, in this embodiment, when the BMC (Management Controller) detects that the server has completed startup, it obtains the silkscreen information (first identification information) of the external devices connected to the server system and writes the silkscreen information into the VPD (Target Memory Zone) bound to the memory and the external devices. Then, during the server restart process, the BIOS (Boot Controller) can extract the silkscreen information written by the BMC from the VPD and use the silkscreen information and the slot number (second identification information) pre-allocated and stored by the BISO when the server is first started to construct target identification information. The target identification information is the mapping relationship between the silkscreen information of each external device and the slot number. The operating system can then use this mapping relationship to maintain the operating status of the external devices.
[0162] As an optional embodiment, writing the first identification information into a target storage area bound to an external device in a memory deployed in the server includes:
[0163] Obtain device information from external devices;
[0164] The target storage region whose storage region identifier matches the device information of the external device is selected from the storage regions included in the memory. The storage region identifier is configured to represent the device to which the corresponding storage region belongs.
[0165] Write the first identification information into the target storage area.
[0166] Optionally, in this embodiment, for each external device, the management controller uses the device information (such as serial number, model number, etc.) corresponding to the external device as a keyword to match the storage area identifier carried by the storage area included in the memory, and then filters out the target storage area from multiple storage areas whose device information indicated by the storage area identifier is consistent with the device information of the external device. After finding the target storage area corresponding to the external device, the management controller writes the first identification information into the target storage area.
[0167] In this way, the management controller can write the first identification information corresponding to each external device into the target storage area corresponding to the external device, thus avoiding the problem of mismatch between the external device and the device indicated by the first identification information.
[0168] As an optional embodiment, writing the first identification information into the target storage area includes:
[0169] Locate the unoccupied target byte positions within the target storage range based on the target storage range's configuration information;
[0170] Write the first identification information to the target byte position, and write the first offset field corresponding to the target byte position to the configuration information. The first offset field is configured to indicate the position of the target byte position in the target storage area.
[0171] Optionally, in this embodiment, after detecting that the server has started, the management controller ensures that there are unoccupied byte positions in the target storage area of each external device for writing the first identification information. Then, it writes the first identification information into the unoccupied byte positions and writes the unoccupied byte position information into the configuration information. For example, the BMC searches for the readable / writable keyword "RW" in the VPD. A readable / writable keyword indicates that the area is a readable / writable storage space that can be used to store the device's data information. Assuming that the field indicated by "RW" is the field starting at offset position 155, the BMC stores the silkscreen information (first identification information) in the field starting at offset position 155 in the VPD and sets the first offset field to 158 in the configuration information.
[0172] By writing the first identification information into the unoccupied bytes of the target storage area and then writing the byte information into the configuration information of the target storage area, not only can the storage space conflict in the target storage area be avoided, but it also makes it easier for the start controller to accurately extract the first identification information from the target storage area, thereby improving the configuration efficiency of the identification information in the server.
[0173] As an optional embodiment, after writing the first identification information into the target storage area bound to the external device in the memory deployed in the server, the method further includes:
[0174] Extract the second identification information of the external device stored in the target storage area;
[0175] Construct a target mapping relationship between the first and second identification information of external devices;
[0176] The target mapping relationship is sent to a display terminal that is bound to the server, wherein the display terminal is configured to display the target mapping relationship and manage the devices connected to the server according to the target mapping relationship.
[0177] Optionally, in this embodiment, after the BMC (Management Controller) writes the silkscreen information (first identification information) into the VPD (Target Memory Zone) of the external device, the BMC can extract the slot number (second identification information) allocated by the BIOS (Boot Controller) to the external device from the VPD, construct a mapping relationship between the silkscreen information and the slot number, and send it to the display terminal bound to the server. For example, the BMC uses MCTP over PCIe to read the device slot number from the VPD of each PCIe device, constructs a target mapping relationship between each slot number and the silkscreen information, and sends the target mapping relationship to the display terminal bound to the server through a management interface (such as IPMI or Redfish), such as a remote management interface or server management software interface. After receiving the target mapping relationship, the display terminal can display it to the user or administrator, enabling them to intuitively understand the specific location and status of each external device in the server. The display terminal can also perform device management operations, such as device monitoring, configuration modification, and troubleshooting, based on the received target mapping relationship, without directly accessing the server's hardware or operating system.
[0178] By constructing and sending target mapping relationships to the display terminal in the above manner, device management becomes more visual, making it easier for maintenance personnel to perform device monitoring and management tasks and improving remote operation and maintenance efficiency.
[0179] Optionally, in this embodiment, a display terminal is configured for the management controller. The display terminal displays a display interface (such as a web interface) that is bound to the management controller. The mapping relationship between the first identification information and the second identification information of the external device is displayed on the display interface. The server administrator can then configure the first identification information of the external device through the display interface in the display terminal. After the first identification information is reconfigured, the management controller can respond to the configuration result and synchronously update the updated first identification information to the target storage area corresponding to the external device. To ensure the accuracy of the first identification information configured in the server, the server can also be equipped with an image recognition device. This image recognition device is configured to recognize the hardware connection image in the server, the reference identification information marked on the hardware (silk screen information indicating the physical access location of the device in the server), and the hardware layout information in the server. Then, the management controller can use the hardware layout logic to predict the candidate identification information (i.e., slot number) indicating the logical location of the external device, and then match the candidate identification information and the second identification information of the external device, as well as match the reference identification information and the first identification information. When the candidate identification information and the second identification information match, and the reference identification information and the first identification information match, it can be determined that the first identification information configured in the server by the current administrator through the management interface is accurate, and the update operation of the first identification information in the target storage area is started.
[0180] As an optional embodiment, extracting the second identification information of the external device stored in the target storage area includes:
[0181] Extract the third offset field stored in the configuration information of the target storage area, wherein the third offset field is configured to indicate the location of the identifier information representing the logical location of the external device connected in the server's operating system within the target storage area.
[0182] Extract the second identification information stored at the field position indicated by the third offset field in the target storage range.
[0183] Optionally, in this embodiment, the third offset field is configured to indicate the position of the second identification information in the target storage area. The management controller can retrieve the second identification information from the target storage area by querying the third offset field stored in the configuration information of the target storage area, based on the field position indicated by the third offset field. For example, the BMC queries the configuration information of the VPD and finds that the slot number of external device A is stored in the field starting at offset position 169 in the VPD. The BMC then retrieves the slot number information of external device A from the field at offset position 169 in the VPD.
[0184] As an optional embodiment, after writing the first identification information into the target storage area bound to the external device in the memory deployed in the server, the method further includes:
[0185] Receive an identification information update request, wherein the identification information update request is configured to indicate that the first identification information of the external device is updated to the fourth identification information;
[0186] In response to the identification information update request, locate the target storage area bound to the external device in the memory;
[0187] The fourth identification information is used to update the first identification information stored in the target storage area.
[0188] Optionally, in this embodiment, when server maintenance personnel change the physical location of the hardware device, or the device itself is updated or replaced, the server's management controller (such as BMC) receives an identification information update request from the user through its web management interface, RESTful interface, or any other management interface. The update request includes the device information of the external device and new silkscreen information (i.e., the fourth identification information). After receiving the update request, the BMC searches for the VPD bound to the external device specified in the request in the server's memory using the device information of the external device. The BMC writes the received fourth identification information (new silkscreen information) into the found VPD, overwriting the original first identification information. After the update is completed, the logical location of the external device in the server is synchronized with the physical location of the external device, ensuring the accuracy and consistency of the server hardware information.
[0189] Optionally, in this embodiment of the application, the startup controller may use an access protocol that allows access to external devices or memory to obtain first identification information from or write first identification information to memory. The access protocol may include, but is not limited to, the MCTP over PCIe protocol.
[0190] Using the above method, different models and configurations no longer require the development of BIOS BMC firmware. The server chassis silkscreen can be updated to the BMC BIOS firmware simply by using the BMC silkscreen management web interface or silkscreen RESTful interface, which improves the accuracy of automatic matching of PCIe and hard drive slot silkscreen and increases matching efficiency.
[0191] According to one embodiment of this application, an identification information configuration system is also provided, comprising:
[0192] The server includes a startup controller and a management controller, which are respectively connected to the memory in the server.
[0193] The startup controller is configured to identify external devices connected to the server during the initial server startup process; allocate a target storage area for each external device in the storage deployed in the server; and establish a binding relationship between the target storage area and the external device.
[0194] The management controller is configured to, upon detecting that the server has finished starting up, acquire first identification information of the external device, wherein the first identification information is configured to indicate the physical access location of the external device in the server; and write the first identification information into a target storage area bound to the external device in the memory;
[0195] The startup controller is also configured to extract first identification information stored in the target storage area during the server restart process; and to construct target identification information for the external device using the first identification information and the second identification information, wherein the second identification information is assigned by the startup controller to the identified external device during the initial server startup process, and the second identification information is configured to indicate the logical location of the external device in the server's operating system, and the operating system is configured to use the target identification information to maintain the operating status of the external device.
[0196] Optionally, in this embodiment, the identification information configuration system includes a startup controller and a management controller, which are respectively connected to the memory in the server. The specific implementation process of the system is described below with reference to specific examples:
[0197] S1: During the initial startup of the server, the BIOS enumerates and identifies all external devices connected to the server (such as PCIe devices), assigns a slot number (second identification information) to each identified external device, and allocates a VPD interval custom storage area (target storage area) in the server memory (such as EEPROM or NVRAM), which is configured as the slot number of the storage device.
[0198] S2: The BIOS establishes the binding relationship between the VPD and external devices, ensuring that each external device has a unique corresponding storage area configured as storage identification information.
[0199] S3: When the server finishes booting, the BMC detects the completion of the server boot process through the Southbridge (PCH) or directly through the PCIe bus. The BMC enumerates all external devices on the server and obtains the silkscreen information (first identification information) of each device. The BMC uses the MCTP over PCIe protocol to write the obtained silkscreen information into the VPD bound to the external device.
[0200] S4: When the server restarts, the BIOS retrieves the silkscreen information stored in the VPD corresponding to each external device by querying the configuration information in the VPD in the memory.
[0201] S5: The BIOS combines silkscreen information and slot number to construct target identification information for each external device. The slot number is assigned by the BIOS to each device during the initial startup of the server in step S1 and is configured to indicate the logical location of the device in the operating system. The constructed target identification information is configured to indicate the mapping relationship between the physical location of the external device and its logical location in the server system.
[0202] S6: When the first identification information (silk screen information) of an external device changes, the BMC receives an identification information update request sent by external parties (such as server maintenance personnel or automated management software) through the web management interface or RESTful interface. The request includes the device information of the external device and the fourth identification information (updated silk screen information).
[0203] S7: The BMC parses the update request, locates the external device specified in the request, and finds the target storage region (VPD) for that device.
[0204] S8: BMC uses the MCTP over PCIe protocol to write the fourth identification information (updated silkscreen information) into the target storage area, overwriting the original first identification information, thus achieving real-time updates.
[0205] S9: During the subsequent startup process of the server, the BIOS reads the VPD configuration information in the memory, extracts the updated silkscreen information stored in the VPD of each external device, and combines the updated silkscreen information and slot number to construct new target identification information for each device, which is then provided to the operating system to achieve real-time updating and consistent management of device information.
[0206] By implementing the above method, the relationship between slot and silkscreen is bound to the device VPD, achieving unified and standardized management of device silkscreen information. This avoids the drawback of requiring the development of new firmware versions for each model and configuration when adapting silkscreen for transmission chassis. The firmware adaptation work for silkscreen is more efficient, reduces development costs, and is more user-friendly.
[0207] To better understand the above process, the following describes the process in conjunction with optional embodiments. This embodiment uses a PCIe device as an external device, the BIOS in a server as the boot controller, and the BMC in a server as the management controller. This embodiment provides a method for real-time out-of-band updating of silkscreen information for server PCIe devices using the MCTP over PCIe protocol. This method includes: 1) creating a custom storage area (target storage area) within the VPD range to store the slot number (second identification information) and the silkscreen string (first identification information). 2) constructing a general BIOS function to write the device's Capability:VPD slot information using the pci.write() PCIe device configuration space read / write function. After the BIOS boots up, it assigns a fixed slot number (Slot1-n) to each PCIe device and writes it to the VPD. 3) constructing a BMC web silkscreen editing and management interface to allow users to flexibly modify the silkscreen information corresponding to each device slot number. 4) establishing a program for the BMC to read the device slot number from the VPD of each PCIe device using MCTP over PCIe and write the corresponding silkscreen information. A generic BIOS function for reading VPD silkscreen information is constructed, allowing the display of the corresponding slot silkscreen for each device in the BIOS setup. A BMC device monitoring program is built; when a device in the same slot is replaced, its serial number changes, and the silkscreen information for that slot is rewritten to the VPD space of the new device. An out-of-band RESTful interface for silkscreen updates in the BMC is constructed, facilitating automated silkscreen updates for servers during production and batch silkscreen updates for data center equipment. This addresses the problems of manual operation being prone to misreading and inefficiency, and the traditional chassis silkscreen adaptation method requiring the development of corresponding firmware versions for each model and configuration, making silkscreen firmware adaptation cumbersome and inefficient.
[0208] The implementation process is as follows:
[0209] 1) Set the VPD keyword format. The VPD contains multiple sets of keyword information. Figure 5 is a schematic diagram of a VPD keyword format according to an embodiment of this application. As shown in Figure 5, a set of keyword information is formatted as follows: Keyword information = 2 Byte keyword name + 1 Byte keyword length + n Byte keyword data.
[0210] A connection is established between the VPD and the PCIe settings, and the slot number and silkscreen string are stored. Figure 6 is an overall structural block diagram of a server PCIe device silkscreen information real-time out-of-band update according to an embodiment of this application. As shown in Figure 6, after the VPD and the PCIe device establish a connection, the CPU reads the data information transmission from the VPD. The data information is sent to the BMC through the Southbridge chip PCH, and the CPU connects to the BIOS through the Southbridge chip PCH for system control.
[0211] 2) Create a custom storage area within the VPD range. The VPD read / write keyword "RW" is used. This keyword records device performance parameters, error codes, or other critical device information and is readable and writable by software. Several types of read / write VPD keywords are currently defined, as shown in Figure 3.
[0212] Figure 7 is a definition table of the Offset field in a VPD according to an embodiment of this application. As shown in Figure 7, some areas in the offset range of 158-219 are used. For example, "Slot1:PCIe1" occupies 11 bytes and is used to store the slot number and silkscreen string.
[0213] 3) Construct a general BIOS that uses the pci.write() PCI device configuration space read / write function to write the device's Capability:VPD slot information function. After the BIOS boots up, it assigns a fixed slot number (Slot1ˉn) to each PCIe device and then writes it to the VPD.
[0214] For example: PCI configuration space: pci_write_config_byte / word / dword(struct pci_dev*pdev,int offset,int*value);
[0215] VPD CapabilityID is a fixed value: 0x03, defined as follows:
[0216] 4) Constructing the BMC web silkscreen editing and management interface. Figure 8 is a diagram of a BMC web silkscreen editing and management interface according to an embodiment of this application. As shown in Figure 8, it allows users to flexibly modify the silkscreen information corresponding to each device slot number.
[0217] 5) Establish a program for BMC to use MCTP over PCIe to read the device slot number from the VPD of each PCIe device and write the silkscreen information corresponding to the slot number of each device.
[0218] Example code: Demonstrates how to use MCTP over PCIe for communication in a Linux environment:
[0219] 6) Construct a general BIOS function to read VPD silkscreen information. Use the function with the constructed number during the second boot of the server to write it to the smbios type9 field. The slot silkscreen corresponding to each device can be displayed in the BIOS setup.
[0220] 7) Build a BMC equipment monitoring program. When the equipment serial number changes after the equipment in the same slot is replaced, rewrite the silkscreen information of this slot into the VPD space of the new equipment.
[0221] 8) Construct an out-of-band RESTful interface for silkscreen updates in the BMC, which facilitates automated silkscreen updates on the server during production and batch silkscreen updates on data center equipment.
[0222] Figure 9 is a flowchart of a real-time out-of-band update design for server PCIe device silkscreen information implemented using the MCTP over PCIe protocol according to an embodiment of this application. As shown in Figure 9, after the server is powered on, the BIOS boot process enumerates all PCIe devices and assigns a slot number to each device; the BIOS writes the slot number (Slot n) into the VPD read / write space of each PCIe device; the user enters the silkscreen string corresponding to each slot number in the BMC web management interface; the BMC uses MCTP over PCIe to read the VPD slot number of each PCIe device and then writes the corresponding silkscreen string to the device; during the second server boot process, the BIOS reads the silkscreen information in the VPD of each PCIe device and displays it in the BIOS Setup.
[0223] This solution, on the one hand, establishes the binding relationship between slots and silkscreen markings within the device's VPD (Virtual Device Programming), achieving unified and standardized management of device silkscreen information. This avoids the drawback of traditional chassis silkscreen adaptation methods, which require redeveloping firmware versions for each model and configuration. Silkscreen firmware adaptation is more efficient, reducing development costs and offering a more user-friendly design. On the other hand, different models and configurations do not require the development of new BIOS BMC firmware. Updates to the server chassis silkscreen and BMC BIOS firmware can be achieved simply using the BMC silkscreen management web interface or silkscreen RESTful interface, improving the accuracy and efficiency of automatic matching of PCIe and hard drive slot silkscreen markings.
[0224] The key aspects of this solution lie in the improvement of the hardware system and the update of the software configuration: Hardware improvements allow for updating the server chassis silkscreen to the BMC BIOS firmware using a BMC silkscreen management web interface or a silkscreen RESTful interface. Software improvements involve creating a custom storage area within the VPD range to store slot numbers and silkscreen strings. After BIOS boots, a fixed slot number (Slot1ˉn) is assigned to each PCIe device and written to the VPD. A BMC web silkscreen editing and management interface is constructed, allowing users to flexibly modify the silkscreen information corresponding to each device's slot number. A program is created to read the device slot number from the VPD of each PCIe device using MCTP over PCIe and write the corresponding silkscreen information to each device. A general BIOS function for reading VPD silkscreen information is constructed, allowing the silkscreen of each device's slot to be displayed in the BIOS setup. A BMC device monitoring program was built. When a device in the same slot is replaced, the serial number of the device changes. The silkscreen information of the current slot is rewritten to the VPD space of the new device. The firmware adaptation of the silkscreen is more efficient, reducing development costs, and is more user-friendly. It also improves the accuracy and efficiency of automatic matching of silkscreens in PCIe and hard drive slots.
[0225] Through the above description of the embodiments, those skilled in the art can clearly understand that the methods according to the above embodiments can be implemented by means of software plus necessary general-purpose hardware platforms. Of course, they can also be implemented by hardware, but in many cases the former is a better implementation method. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, can be embodied in the form of a software product. This computer software product is stored in a storage medium (such as ROM / RAM, magnetic disk, optical disk) and includes several instructions to cause a terminal device (which may be a mobile phone, computer, server, or network device, etc.) to execute the methods of the various embodiments of this application.
[0226] This embodiment also provides an identification information configuration device, which is configured to implement the above embodiments and preferred embodiments; details already described will not be repeated. As used below, the term "module" can be a combination of software and / or hardware that implements a predetermined function. Although the device described in the following embodiments is preferably implemented in software, hardware implementation, or a combination of software and hardware, is also possible and contemplated.
[0227] Figure 10 is a structural block diagram of an identification information configuration device according to an embodiment of this application. The device is applied to the startup controller in a server. As shown in Figure 10, the device includes:
[0228] The identification module is configured to identify external devices connected to the server during the initial startup process of the server.
[0229] The allocation module is configured to allocate a target storage area for each external device in the storage deployed in the server, and to establish a binding relationship between the target storage area and the external device. The management controller is configured to obtain the first identification information of the external device when the server is detected to have finished starting, and write the first identification information into the target storage area bound to the external device in the storage. The first identification information is configured to indicate the physical access location of the external device in the server.
[0230] The first extraction module is configured to extract the first identification information stored in the target storage area during the server restart process;
[0231] The first construction module is configured to use first identification information and second identification information to construct target identification information for external devices. The second identification information is assigned by the startup controller to the identified external devices during the initial startup of the server. The second identification information is configured to indicate the logical location of the external device in the server's operating system. The operating system is configured to use the target identification information to maintain the operating status of the external devices.
[0232] Optionally, the first extraction module includes:
[0233] The first filtering unit is configured to filter out target storage regions from the storage regions included in the memory, where the storage region identifier carried matches the device information of the external device, wherein the storage region identifier is configured to represent the device to which the corresponding storage region belongs;
[0234] The first extraction unit is configured to extract first identification information from the target storage area according to the configuration information corresponding to the target storage area, wherein the configuration information is configured to indicate the data storage status of each byte position in the target storage area.
[0235] Optionally, the first extraction unit is also configured as follows:
[0236] Locate the first offset field stored in the configuration information, wherein the first offset field is configured to indicate the location of the identification information representing the physical access location of the external device in the server in the target storage area;
[0237] The field stored at the field position indicated by the first offset field is determined as the first identification information.
[0238] Optional, the device also includes:
[0239] The first lookup module is configured to look up the second offset field stored in the configuration information before looking up the first offset field stored in the configuration information, wherein the second offset field is configured to indicate the location of the identification information representing the logical location of the external device accessed in the server's operating system in the target storage area.
[0240] The second extraction module is configured to extract the third identification information stored at the field position indicated by the second offset field in the target storage area. The third identification information is stored by the startup controller after allocating the target storage area. The third identification information is configured to indicate the logical location of the external device to which the target storage area belongs in the server's operating system.
[0241] The matching module is configured to match the third identification information with the second identification information stored in the start controller;
[0242] The second search module is configured to perform an operation to search the first offset field stored in the configuration information if the third identification information and the second identification information match.
[0243] Optional, the allocation module includes:
[0244] The first detection unit is configured to detect the reference memory carried by the external device, wherein the reference memory is a memory configured to store the device operation information of the external device, and the memory includes the reference memory.
[0245] The first acquisition unit is configured to acquire reference keys for each storage area in the reference memory, wherein the reference keys are configured to indicate the data storage status of each storage area in the reference memory.
[0246] The first determining unit is configured to determine the storage interval corresponding to the first key as the target storage interval when the first key exists among multiple reference keys, wherein the first key indicates that the corresponding storage interval is in an unoccupied state.
[0247] Optionally, the allocation module also includes:
[0248] The second detection unit is configured to detect the target storage deployed in the server, wherein the target storage is a storage in the server configured to store server operating information, and the storage includes the target storage.
[0249] The second acquisition unit is configured to acquire the target keywords of each storage area in the target memory, wherein the target keywords are configured to indicate the data storage status of each storage area in the target memory.
[0250] The second determining unit is configured to determine the storage interval corresponding to the second key as the target storage interval when a second key exists among multiple target keys, wherein the second key indicates that the corresponding storage interval is in an unoccupied state.
[0251] Optional, the device also includes:
[0252] The second acquisition module is configured to allocate a target storage area for each external device in the storage deployed in the server, and after establishing the binding relationship between the target storage area and the external device, acquire the second identification information allocated to the external device during the initial startup of the server.
[0253] The second write module is configured to write the second identification information into the target storage area and write the second offset field, which indicates the write position of the second identification information in the target storage area, into the configuration information corresponding to the target storage area. The configuration information is configured to indicate the data storage status of each byte position in the target storage area.
[0254] Optional, the first building module includes:
[0255] The building unit is configured to build a target mapping relationship between the first identification information and the second identification information of each external device;
[0256] The third determining unit is configured to determine the target mapping relationship as the target identification information of the external device.
[0257] Optionally, the first building block also includes:
[0258] The third acquisition unit is configured to acquire device information of the identified external device;
[0259] The marking unit is configured to mark the target storage region using device information.
[0260] Figure 11 is a structural block diagram of an identification information configuration device according to an embodiment of this application. The device is applied to a management controller in a server. As shown in Figure 11, the device includes:
[0261] The first acquisition module is configured to acquire first identification information of external devices connected to the server system when the server is detected to have finished starting up, wherein the first identification information is configured to indicate the physical access location of the external device in the server.
[0262] The first writing module is configured to write first identification information into a target storage area bound to an external device in the memory deployed in the server. The target storage area is allocated by the boot controller for the external device in the memory during the initial boot of the server. The boot controller is configured to extract the first identification information stored in the target storage area during the subsequent boot of the server, and use the first identification information and the second identification information to construct target identification information for the external device. The second identification information is allocated by the boot controller for the identified external device during the initial boot of the server. The second identification information is configured to indicate the logical location of the external device in the server's operating system. The operating system is configured to use the target identification information to maintain the operating status of the external device.
[0263] Optionally, the first write module includes:
[0264] The fourth acquisition unit is configured to acquire device information of external devices;
[0265] The second filtering unit is configured to filter out target storage regions from the storage regions included in the memory, where the storage region identifier carried matches the device information of the external device, wherein the storage region identifier is configured to represent the device to which the corresponding storage region belongs;
[0266] The write unit is configured to write the first identification information to the target storage area.
[0267] Optionally, the write unit is also configured as follows:
[0268] Based on the configuration information of the target storage area, the unoccupied target byte positions in the target storage area are found. The configuration information is configured to indicate the data storage status of each byte position in the target storage area.
[0269] Write the first identification information to the target byte position, and write the first offset field corresponding to the target byte position to the configuration information. The first offset field is configured to indicate the position of the target byte position in the target storage area.
[0270] Optional, the device also includes:
[0271] The third extraction module is configured to extract the second identification information of the external device stored in the target storage area;
[0272] The second construction module is configured to construct a target mapping relationship between the first and second identification information of the external device;
[0273] The sending module is configured to send the target mapping relationship to a display terminal that is bound to the server, wherein the display terminal is configured to display the target mapping relationship and manage the devices connected to the server according to the target mapping relationship.
[0274] Optional, the third extraction module includes:
[0275] The second extraction unit is configured to extract the third offset field stored in the configuration information of the target storage area, wherein the third offset field is configured to indicate the position of the identification information representing the logical location of the external device in the server's operating system in the target storage area.
[0276] The third extraction unit is configured to extract the second identification information stored at the field location indicated by the third offset field in the target storage range.
[0277] Optional, the device also includes:
[0278] The receiving module is configured to receive an identification information update request, wherein the identification information update request is configured to indicate that the first identification information of the external device is updated to the fourth identification information;
[0279] The response module is configured to respond to identification information update requests by searching the target storage area bound to the external device in the memory;
[0280] The update module is configured to update the first identification information stored in the target storage area using the fourth identification information.
[0281] Based on the above, during the initial server startup, the startup controller identifies external devices connected to the server, assigns second identification information to each device to indicate its logical location within the server's operating system, and allocates a target storage area for each device in the server's memory. A binding relationship is then established between the target storage area and the external device. Upon detecting that the server has finished startup, the management controller retrieves the first identification information indicating the external device's physical location within the server and writes it into the target storage area bound to the external device. During subsequent server startups, the startup controller extracts the first identification information from the target storage area and uses the first and second identification information to construct target identification information for the external device. The operating system then uses this target identification information to maintain the operating status of the external device. Therefore, this addresses the problem of low server maintenance efficiency for external devices in related technologies, thereby improving the overall efficiency of server maintenance for external devices.
[0282] It should be noted that the above modules can be implemented by software or hardware. For the latter, they can be implemented in the following ways, but are not limited to: all the above modules are located in the same processor; or, the above modules are located in different processors in any combination.
[0283] Embodiments of this application also provide a computer non-volatile readable storage medium storing a computer program, wherein the computer program is configured to execute the steps in any of the above method embodiments when running.
[0284] In one exemplary embodiment, the aforementioned non-volatile readable storage medium may include, but is not limited to, various media capable of storing computer programs, such as USB flash drives, read-only memory (ROM), random access memory (RAM), portable hard drives, magnetic disks, or optical disks.
[0285] Embodiments of this application also provide an electronic device, including a memory and a processor, wherein the memory stores a computer program and the processor is configured to run the computer program to perform the steps in any of the above method embodiments.
[0286] In one exemplary embodiment, the electronic device may further include a transmission device and an input / output device, wherein the transmission device is connected to the processor and the input / output device is connected to the processor.
[0287] Embodiments of this application also provide a computer program product, which includes a computer program that, when executed by a processor, implements the steps in any of the above method embodiments.
[0288] Embodiments of this application also provide another computer program product, including a non-volatile computer-readable storage medium storing a computer program that, when executed by a processor, implements the steps in any of the above method embodiments.
[0289] The embodiments described herein also provide a computer program that includes computer instructions stored in a computer non-volatile readable storage medium; a processor of a computer device reads the computer instructions from the computer non-volatile readable storage medium and executes the computer instructions, causing the computer device to perform the steps in any of the above method embodiments.
[0290] Specific examples in this embodiment can be found in the examples described in the above embodiments and exemplary implementations, and will not be repeated here.
[0291] Obviously, those skilled in the art should understand that the modules or steps of this application described above can be implemented using general-purpose computing devices. They can be centralized on a single computing device or distributed across a network of multiple computing devices. They can be implemented using computer-executable program code, and thus can be stored in a storage device for execution by a computing device. In some cases, the steps shown or described can be performed in a different order than those presented here, or they can be fabricated as separate integrated circuit modules, or multiple modules or steps can be fabricated as a single integrated circuit module. Thus, this application is not limited to any particular combination of hardware and software.
[0292] The above description is merely a preferred embodiment of this application and is not intended to limit this application. Various modifications and variations can be made to this application by those skilled in the art. Any modifications, equivalent substitutions, improvements, etc., made within the principles of this application should be included within the protection scope of this application.
Claims
1. A method for configuring identification information, characterized in that, The method is applied to the boot controller in a server, including: During the initial startup of the server, external devices connected to the server are identified. Each external device is allocated a target storage area in the memory deployed in the server, and a binding relationship is established between the target storage area and the external device. The management controller is configured to obtain the first identification information of the external device when the server is detected to have finished starting, and write the first identification information into the target storage area in the memory that is bound to the external device. The first identification information is configured to indicate the physical access location of the external device in the server. During the server restart process, the first identification information stored in the target storage area is extracted; The first and second identification information are used to construct target identification information for the external device. The second identification information is assigned by the startup controller to the external device during the initial startup of the server. The second identification information is configured to indicate the logical location of the external device in the server's operating system. The operating system is configured to use the target identification information to maintain the operating status of the external device.
2. The method according to claim 1, characterized in that, The step of extracting the first identifier information stored in the target storage area includes: The target storage region whose storage region identifier matches the device information of the external device is selected from the storage regions included in the memory, wherein the storage region identifier is configured to represent the device to which the corresponding storage region belongs; The first identification information is extracted from the target storage area according to the configuration information corresponding to the target storage area, wherein the configuration information is configured to indicate the data storage status of each byte position in the target storage area.
3. The method according to claim 2, characterized in that, The step of extracting the first identifier information from the target storage region based on the configuration information corresponding to the target storage region includes: Locate the first offset field stored in the configuration information, wherein the first offset field is configured to indicate the location of the identification information representing the physical access location of the external device in the server in the target storage area; The field stored at the field position indicated by the first offset field is determined as the first identification information.
4. The method according to claim 3, characterized in that, Before searching for the first offset field stored in the configuration information, the method further includes: Locate the second offset field stored in the configuration information, wherein the second offset field is configured to indicate the location of the identifier information representing the logical location of the external device in the server's operating system within the target storage area; Extract the third identification information stored at the field position indicated by the second offset field in the target storage area, wherein the third identification information is stored by the startup controller after allocating the target storage area, and the third identification information is configured to indicate the logical location of the external device to which the target storage area belongs in the server's operating system; The third identification information is matched with the second identification information stored in the start controller; If the third identification information and the second identification information match, perform the operation of searching for the first offset field stored in the configuration information.
5. The method according to claim 1, characterized in that, The allocation of a target storage area for each external device in the memory deployed in the server includes: The reference memory carried by the external device is detected, wherein the reference memory is a memory configured to store device operation information of the external device, and the memory includes the reference memory; Obtain reference keywords for each storage area in the reference memory, wherein the reference keywords are configured to indicate the data storage status of each storage area in the reference memory; If a first keyword exists among multiple reference keywords, the storage interval corresponding to the first keyword is determined as the target storage interval, wherein the first keyword indicates that the corresponding storage interval is in an unoccupied state.
6. The method according to claim 1, characterized in that, The allocation of a target storage area for each external device in the memory deployed in the server includes: Detect the target storage deployed in the server, wherein the target storage is a storage in the server configured to store the server's operating information, and the storage includes the target storage; Obtain the target keywords for each storage area in the target memory, wherein the target keywords are configured to indicate the data storage status of each storage area in the target memory; If a second keyword exists among multiple target keywords, the storage interval corresponding to the second keyword is determined as the target storage interval, wherein the second keyword indicates that the corresponding storage interval is in an unoccupied state.
7. The method according to claim 1, characterized in that, After allocating a target storage region in the storage deployed in the server for each of the external devices and establishing a binding relationship between the target storage region and the external device, the method further includes: Obtain the second identification information assigned to the external device during the initial startup of the server; The second identification information is written into the target storage area, and the second offset field indicating the writing position of the second identification information in the target storage area is written into the configuration information corresponding to the target storage area, wherein the configuration information is configured to indicate the data storage status of each byte position in the target storage area.
8. The method according to claim 1, characterized in that, The step of constructing target identification information for the external device using the first identification information and the second identification information includes: Construct a target mapping relationship between the first identification information and the second identification information of each external device; The target mapping relationship is determined as the target identification information of the external device.
9. The method according to claim 1, characterized in that, The process of establishing the binding relationship between the target storage area and the external device includes: Obtain the device information of the identified external device; The target storage region is marked using the device information.
10. A method for configuring identification information, characterized in that, The method is applied to a management controller in a server, including: Upon detecting that the server has completed startup, the system obtains the first identification information of the external device connected to the server system, wherein the first identification information is configured to indicate the physical access location of the external device in the server. The first identification information is written into a target storage area bound to the external device in the memory deployed in the server. The target storage area is allocated by the startup controller for the external device in the memory during the initial startup of the server. The startup controller is configured to extract the first identification information stored in the target storage area during the subsequent startup of the server, and use the first identification information and the second identification information to construct target identification information for the external device. The second identification information is allocated by the startup controller for the external device identified during the initial startup of the server. The second identification information is configured to indicate the logical location of the external device in the server's operating system. The operating system is configured to use the target identification information to maintain the operating status of the external device.
11. The method according to claim 10, characterized in that, The step of writing the first identification information into the target storage area bound to the external device in the memory deployed on the server includes: Obtain the device information of the external device; The target storage region whose storage region identifier matches the device information of the external device is selected from the storage regions included in the memory, wherein the storage region identifier is configured to represent the device to which the corresponding storage region belongs; Write the first identification information into the target storage area.
12. The method according to claim 11, characterized in that, The step of writing the first identification information into the target storage area includes: The unoccupied target byte positions in the target storage area are found based on the configuration information of the target storage area, wherein the configuration information is configured to indicate the data storage status of each byte position in the target storage area; Write the first identification information into the target byte position, and write the first offset field corresponding to the target byte position into the configuration information, wherein the first offset field is configured to indicate the position of the target byte position in the target storage area.
13. The method according to claim 10, characterized in that, After writing the first identification information into the target storage region bound to the external device in the memory deployed in the server, the method further includes: Extract the second identification information of the external device stored in the target storage area; Construct a target mapping relationship between the first identification information and the second identification information of the external device; The target mapping relationship is sent to a display terminal that is bound to the server, wherein the display terminal is configured to display the target mapping relationship and manage the devices connected to the server according to the target mapping relationship.
14. The method according to claim 13, characterized in that, The step of extracting the second identification information of the external device stored in the target storage area includes: Extract the third offset field stored in the configuration information of the target storage area, wherein the third offset field is configured to indicate the position of the identifier information representing the logical location of the external device in the server's operating system in the target storage area; Extract the second identification information stored at the field position indicated by the third offset field in the target storage range.
15. The method according to claim 10, characterized in that, After writing the first identification information into the target storage region bound to the external device in the memory deployed in the server, the method further includes: Receive an identification information update request, wherein the identification information update request is configured to indicate that the first identification information of the external device is updated to the fourth identification information; In response to the identification information update request, locate the target storage area bound to the external device in the memory; The first identification information stored in the target storage area is updated using the fourth identification information.
16. An identification information configuration system, characterized in that, The server includes a startup controller and a management controller, which are respectively connected to the memory in the server. The startup controller is configured to identify external devices connected to the server during the initial startup of the server. A target storage area is allocated in the storage deployed in the server for each external device, and a binding relationship is established between the target storage area and the external device; The management controller is configured to, upon detecting that the server has completed startup, acquire first identification information of the external device, wherein the first identification information is configured to indicate the physical access location of the external device in the server; and write the first identification information into the target storage area in the memory bound to the external device; The startup controller is further configured to extract the first identification information stored in the target storage area during the server restart process; and to construct target identification information for the external device using the first identification information and the second identification information, wherein the second identification information is assigned by the startup controller to the external device identified during the server's initial startup process, and the second identification information is configured to indicate the logical location of the external device in the server's operating system, and the operating system is configured to use the target identification information to maintain the operating status of the external device.
17. An identification information configuration device, the device being applied to a startup controller in a server, characterized in that, include: The identification module is configured to identify external devices connected to the server during the initial startup of the server. The allocation module is configured to allocate a target storage area in the memory deployed in the server for each of the external devices, and to establish a binding relationship between the target storage area and the external device. The management controller is configured to obtain the first identification information of the external device when the server is detected to have finished starting, and to write the first identification information into the target storage area in the memory that is bound to the external device. The first identification information is configured to indicate the physical access location of the external device in the server. The first extraction module is configured to extract the first identification information stored in the target storage area during the process of the server restarting. The first construction module is configured to use the first identification information and the second identification information to construct target identification information for the external device. The second identification information is assigned by the startup controller to the external device during the initial startup of the server. The second identification information is configured to indicate the logical location of the external device in the server's operating system. The operating system is configured to use the target identification information to maintain the operating status of the external device.
18. An identification information configuration device, the device being applied to a management controller in a server, characterized in that, include: The first acquisition module is configured to acquire first identification information of an external device connected to the server system when the server is detected to have completed startup, wherein the first identification information is configured to indicate the physical access location of the external device in the server. The first writing module is configured to write the first identification information into a target storage area bound to the external device in a memory deployed in the server. The target storage area is allocated by the startup controller for the external device in the memory during the initial startup of the server. The startup controller is configured to extract the first identification information stored in the target storage area during the subsequent startup of the server, and use the first identification information and the second identification information to construct target identification information for the external device. The second identification information is allocated by the startup controller for the external device identified during the initial startup of the server. The second identification information is configured to indicate the logical location of the external device in the server's operating system. The operating system is configured to use the target identification information to maintain the operating status of the external device.
19. A computer non-volatile readable storage medium, characterized in that, The computer non-volatile readable storage medium stores a computer program, wherein the computer program, when executed by a processor, implements the steps of the method described in any one of claims 1 to 15.
20. An electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that, When the processor executes the computer program, it implements the steps of the method described in any one of claims 1 to 15.
21. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by a processor, it implements the steps of the method described in any one of claims 1 to 15.