Board-level management controller starting method and device, computer equipment and storage medium

By providing multiple boot strategies for the board-level management controller and selecting the target flash memory based on user configuration and historical data, the problem of a single boot method in the existing technology is solved, and a flexible and efficient boot process is achieved.

CN120929150APending Publication Date: 2025-11-11JINAN MAIWEI INTELLIGENT TECHNOLOGY CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202511039069.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-07-25
Publication Date
2025-11-11

AI Technical Summary

Technical Problem

Existing board-level management controllers have a single startup method, which cannot meet the diverse needs of users in specific use cases. For example, startup cannot be avoided when only upgrading backup images or verifying firmware stability.

Method used

It provides multiple boot strategies, including specifying the target flash memory during soft reset, specifying the target flash memory during user power-off boot, automatically switching the target flash memory, and determining the optimal target flash memory based on historical data. The target boot strategy and memory are determined by user configuration information and the boot status of the board-level management controller.

Benefits of technology

It enables flexible startup of board-level management controllers, improves startup success rate and efficiency, meets user needs in different usage scenarios, and enriches startup scenarios and methods.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120929150A_ABST
    Figure CN120929150A_ABST
Patent Text Reader

Abstract

The invention discloses a board-level management controller starting method and device, computer equipment and a storage medium, and relates to the technical field of computer storage, and the method comprises the steps: starting a board-level management controller according to user configuration information, starting condition related parameters of the board-level management controller and a current starting state of the board-level management controller; and determining a target starting strategy in the plurality of starting strategies, determining a target memory according to the target starting strategy, and starting the board-level management controller according to the data in the target memory. The problems that the starting mode of the board-level management controller is single and different use scenes of users cannot be met can be solved. The method can support various starting strategies of the board-level management controller, meets the requirement of a user for the starting mode of the board-level management controller in a specific use scene, enriches the starting scene and the starting mode of the board-level management controller, realizes flexible starting of the board-level management controller, and improves the starting efficiency of the board-level management controller. And the success rate and the starting efficiency of the board-level management controller are improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of server technology, and specifically to a board-level management controller startup method, apparatus, computer equipment, and storage medium. Background Technology

[0002] The BMC (Baseboard Management Controller) is a crucial component for server monitoring and management, playing an irreplaceable role in firmware upgrades and maintenance. As the business scenarios for BMCs become more complex and customer needs more diverse, the requirements for BMC startup methods are also increasing.

[0003] Currently, the board management controller is booted using a dual flash backup scheme combined with automatic backup switching. For example, if a user upgrades a backup image, the system automatically boots from the flash memory of the upgraded backup image after the upgrade is complete. If the boot fails, it boots from the default flash memory. However, this boot method cannot meet specific user scenarios, such as when a user only wants to upgrade a backup image, verify the stability of a firmware image, or troubleshoot certain issues, without needing to boot the board management controller. However, the existing boot method will still boot the board management controller. Summary of the Invention

[0004] In view of this, the present invention provides a board-level management controller startup method, apparatus, computer device and storage medium to solve the problem that the startup method of the board-level management controller is singular and cannot meet the needs of different user scenarios.

[0005] In a first aspect, the present invention provides a method for starting a board-level management controller, the method comprising:

[0006] Upon receiving instructions from the launch board-level management controller, determine the user configuration information;

[0007] Based on user configuration information, startup status parameters of the board-level management controller, and the current startup status of the board-level management controller, a target startup strategy is determined from a first preset number of startup strategies.

[0008] Based on the target startup strategy, the target memory is determined from the second preset number of memories, and the board-level management controller is started based on the data in the target memory.

[0009] In a second aspect, the present invention provides a board-level management controller startup device, the device comprising:

[0010] The information determination module is used to determine user configuration information upon receiving instructions from the launch board-level management controller.

[0011] The strategy determination module is used to determine the target startup strategy from a first preset number of startup strategies based on user configuration information, startup status associated parameters of the board-level management controller, and the current startup status of the board-level management controller.

[0012] The startup module is used to determine the target memory from a second preset number of memories according to the target startup strategy, and to start the board-level management controller based on the data in the target memory.

[0013] Thirdly, the present invention provides a computer device, comprising: a memory and a processor, wherein the memory and the processor are communicatively connected to each other, the memory stores computer instructions, and the processor executes the computer instructions to perform the board management controller startup method of the first aspect or any corresponding embodiment described above.

[0014] Fourthly, the present invention provides a computer-readable storage medium storing computer instructions for causing a computer to execute the board management controller startup method of the first aspect or any corresponding embodiment thereof.

[0015] Fifthly, the present invention provides a computer program product, including computer instructions for causing a computer to execute the board management controller startup method of the first aspect or any corresponding embodiment described above.

[0016] This application addresses the problem of limited startup methods for board management controllers, which fail to meet diverse user needs. By determining a target startup strategy from multiple startup options based on user configuration information, board management controller startup parameters, and the current startup status of the board management controller, and then identifying the target memory based on the target startup strategy and the data in the target memory, the board management controller is started. This method supports multiple startup strategies for board management controllers, satisfying user requirements for startup methods in specific scenarios. It also enriches the startup scenarios and methods for board management controllers, enabling flexible startup and improving their success rate and efficiency. Attached Figure Description

[0017] To more clearly illustrate the technical solutions in the specific embodiments or related technologies of the present invention, the drawings used in the description of the specific embodiments or related technologies will be briefly introduced below. Obviously, the drawings described below are some embodiments of the present invention. For those skilled in the art, other drawings can be obtained from these drawings without creative effort.

[0018] Figure 1This is a schematic diagram of the startup process of the board-level management controller according to an embodiment of the present invention;

[0019] Figure 2 This is a flowchart illustrating another board-level management controller startup method according to an embodiment of the present invention;

[0020] Figure 3 This is a flowchart illustrating the use of a first startup strategy to launch the board-level management controller according to an embodiment of the present invention;

[0021] Figure 4 This is a flowchart illustrating the use of a second startup strategy to launch the board-level management controller according to an embodiment of the present invention;

[0022] Figure 5 This is a flowchart illustrating the use of a third startup strategy to launch the board-level management controller according to an embodiment of the present invention;

[0023] Figure 6 This is a flowchart illustrating the use of a fourth startup strategy to launch the board-level management controller according to an embodiment of the present invention;

[0024] Figure 7 This is a structural block diagram of the board-level management controller startup device according to an embodiment of the present invention;

[0025] Figure 8 This is a schematic diagram of the hardware structure of a computer device according to an embodiment of the present invention. Detailed Implementation

[0026] To make the objectives, technical solutions, and advantages of the embodiments of the present invention clearer, the technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present invention, not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention.

[0027] The board-level management controller (BJD) is a core component for out-of-band server management, providing an external access interface using the IPMI (Intelligent Platform Management Interface) protocol. With the rapid development of the server industry, the role of the BJD is becoming increasingly prominent. As a crucial component for server monitoring and management, the BJD plays an irreplaceable role in upgrading and maintaining component firmware. Firmware refers to the complete program running on the processor that enables the system to function properly, including u-boot and kernel (operating system kernel). u-boot is an open-source bootloader widely used in embedded systems, whose main responsibility is to initialize hardware and load the operating system kernel. The kernel is the core of the operating system, responsible for managing system resources, providing a hardware abstraction layer, and providing services to user-space applications. Simultaneously, with the increasing complexity of BJD's business scenarios and the diversification of customer needs, the demand for different boot methods for the BJD is becoming increasingly significant. Currently, dual flash backups are used to boot the firmware of the board management controller (BMD). For this dual flash backup, an automatic backup switching scheme is typically employed. For example, if a user upgrades the firmware backup image in the flash memory, the BMD is automatically booted from the upgraded backup flash memory after the upgrade is complete. If booting fails, the BMD will switch boots again from the default flash memory, and the upgraded program will be rolled back. However, this boot method for the BMD cannot meet the user's needs in specific usage scenarios. For example, a user might only want to upgrade the backup image in the flash memory without needing to boot the BMD, but the current boot method will still execute the BMD boot process. Or, if a user only wants to verify the stability of a firmware image or troubleshoot certain issues, the BMD boot process will also be executed.

[0028] Based on the above, this invention provides a board-level management controller (BMS) startup method. It sets multiple startup strategies for the BMS and determines the target flash memory for startup based on different strategies. The different startup strategies for determining the target flash memory include: specifying the target flash memory during a soft reset, specifying the target flash memory during user power-off startup, automatically switching the target flash memory, and determining the optimal target flash memory. Specifying the target flash memory during a soft reset allows the user to choose the target flash memory for startup during system operation, not limited to upgrading services. Specifying the target flash memory during user power-off startup allows the user to choose the target flash memory for startup when the BMS is powered off. Automatically switching the target flash memory allows automatic switching between dual flash memory. Determining the optimal target flash memory involves using historical startup data to perform algorithmic optimization to determine the flash memory with the highest probability of successfully starting the BMS as the target flash memory. By supporting multiple startup strategies for the BMS, this method meets the user's needs for different startup methods in specific usage scenarios. This aims to enrich the startup scenarios and methods of the board-level management controller, enable flexible startup of the board-level management controller, improve the success rate and startup efficiency of the board-level management controller, and meet the different startup needs of users.

[0029] According to an embodiment of the present invention, a board-level management controller startup embodiment is provided. It should be noted that the steps shown in the flowchart in the accompanying drawings can be executed in a computer system such as a set of computer-executable instructions, for example, a computer, a server, etc., and although a logical order is shown in the flowchart, in some cases, the steps shown or described may be executed in a different order than that shown here.

[0030] This embodiment provides a method for starting a board-level management controller. Figure 1 This is a flowchart of a board-level management controller startup method according to an embodiment of the present invention, such as... Figure 1 As shown, the process includes the following steps:

[0031] Step S101: Upon receiving an instruction from the launch board-level management controller, determine the user configuration information.

[0032] Specifically, the commands to initiate the board management controller include, for example, the soft reset command for the board management controller and the restart command after a power failure. User configuration information is determined, such as: the target flash memory number specified by the user for soft reset, the target flash memory number specified by the user for power failure restart, the system default flash memory number, and user settings for the board management controller's startup function.

[0033] Step S102: Based on the user configuration information, the startup status associated parameters of the board-level management controller, and the current startup status of the board-level management controller, determine the target startup strategy from the first preset number of startup strategies.

[0034] Specifically, the first preset number of startup strategies includes, for example: specifying a target flash memory during a soft reset and starting the board-level management controller based on the target flash memory; starting a specified target flash memory after a user power failure and starting the board-level management controller based on the target flash memory; automatically switching target flash memory and starting the board-level management controller based on the target flash memory; and determining the optimal target flash memory based on the startup status of the board-level management controller and associated parameters, and starting the board-level management controller based on the target flash memory. The first preset number is, for example, 4, 5, or other values ​​that meet actual needs.

[0035] Based on the historical boot data of the board-level management controller, determine the boot status parameters associated with the board-level management controller. For example, if the current board-level management controller has two flash memory modules, Flash 1 and Flash 2, the boot status parameters include the number of times the board-level management controller was booted using Flash 1, the number of times it was successfully booted using Flash 1, the number of times it was booted using Flash 2, and the number of times it was successfully booted using Flash 2. Determine the current boot status of the board-level management controller, such as whether it has been previously booted using a boot strategy. If so, record whether the boot was successful and which boot strategy was used as the current boot status.

[0036] If, based on user configuration information, it is determined that the user has configured a target flash memory for soft reset, then "specify the target flash memory during soft reset and start the board management controller based on the target flash memory" will be used as the target boot strategy. If, based on user configuration information, it is determined that the user has configured a target flash memory for power-off boot, and the board management controller is in a power-off state, then "user specifies the target flash memory for power-off boot and starts the board management controller based on the target flash memory" will be used as the target boot strategy. If, based on the current boot status of the board management controller, it is determined that the board management controller has already started using the boot strategy, and the boot failed, then "automatically switch target flash memory and start the board management controller based on the target flash memory" will be used as the target boot strategy. If, based on user configuration information, it is determined that the optimal boot function of the board management controller is enabled, and the boot status association parameters of the board management controller have been obtained, then "determine the optimal target flash memory based on the boot status association parameters of the board management controller and start the board management controller based on the target flash memory" will be used as the target boot strategy.

[0037] Step S103: Determine the target memory from the second preset number of memories according to the target startup strategy, and start the board-level management controller according to the data in the target memory.

[0038] Specifically, the memory may be, for example, flash memory. A second preset number of memories may be, for example, dual flash memory in a board-level management controller; the second preset number may be, for example, 2, 3, or other values ​​that meet actual needs.

[0039] The target memory is determined based on the target boot strategy. For example: if the target boot strategy is "specify target flash memory during soft reset, and boot the board management controller based on the target flash memory", the user-specified target flash memory number for soft reset is determined based on the user configuration information, and the flash memory corresponding to that number is used as the target memory; if the target boot strategy is "specify target flash memory during soft reset, and boot the board management controller based on the target flash memory", the user-specified target flash memory number for power-off boot is determined based on the user configuration information, and the flash memory corresponding to that number is used as the target memory; if the target boot strategy is "automatically switch target flash memory, and boot the board management controller based on the target flash memory", the flash memory that has not been booted is used as the target memory; if the target strategy is "determine the optimal target flash memory based on the boot status association parameters of the board management controller, and boot the board management controller based on the target flash memory", the flash memory with the highest probability of successfully booting the board management controller is determined based on the boot status association parameters, and this flash memory is used as the target memory.

[0040] Based on the data in the target memory, such as the u-boot-spl (Universal Boot Loader Secondary Program Loader) firmware, the uboot program, the kernel, etc., the boot board management controller is activated. The u-boot-spl firmware is used to run in the early stages of hardware initialization, handling the initial hardware setup and preparation steps required when uboot cannot run directly. uboot is a universal boot loader used to initialize the hardware and provide a suitable environment for the operating system so that it can be loaded and run smoothly.

[0041] The board management controller startup method provided in this embodiment determines a target startup strategy from multiple startup strategies based on user configuration information, startup status-related parameters of the board management controller, and the current startup state of the board management controller. It then determines a target memory based on the target startup strategy and starts the board management controller based on the data in the target memory. This method supports multiple startup strategies for the board management controller, meeting user needs for startup methods in specific usage scenarios. It also enriches the startup scenarios and methods for the board management controller, enabling flexible startup and improving its success rate and efficiency. This solves the problem of a single startup method for the board management controller, which cannot meet the needs of different user scenarios.

[0042] This embodiment provides another method for starting the board-level management controller. Figure 2 This is a flowchart of another board-level management controller startup method according to an embodiment of the present invention, such as... Figure 2 As shown, the process includes the following steps:

[0043] Step S201: Upon receiving an instruction from the launch board-level management controller, determine the user configuration information.

[0044] For details on how to implement this step, please refer to [link / reference]. Figure 1 Step S101 of the illustrated embodiment will not be described again here.

[0045] Step S202: Based on the user configuration information, the startup status associated parameters of the board-level management controller, and the current startup status of the board-level management controller, determine the target startup strategy from the first preset number of startup strategies.

[0046] For details on how to implement this step, please refer to [link / reference]. Figure 1 Step S102 of the illustrated embodiment will not be described again here.

[0047] Step S203: Determine the target memory from the second preset number of memories according to the target startup strategy, and start the board-level management controller according to the data in the target memory.

[0048] Specifically, step S203 includes steps S2031 to S2035.

[0049] Step S2031: If the target boot policy is the first boot policy, determine the target memory number based on the user configuration information, and determine the target memory based on the target memory number.

[0050] Step S2032: Obtain the first firmware from the target memory and store the first firmware in the preset memory of the board-level management controller.

[0051] Step S2033: Configure the preset memory according to the preset configuration information and disable the reset function of the preset memory.

[0052] Step S2034: During the process of starting the board-level management controller, the first firmware in the preset memory is started.

[0053] Step S2035: Based on the first firmware and the components in the target memory, start the board-level management controller.

[0054] Specifically, when the board-level management controller system is running, it performs various status checks and host monitoring tasks. When a user needs to reset, a soft reset command can be used to ensure a normal system reset.

[0055] The first boot strategy is as follows: During a soft reset, a target flash memory is specified, and the board management controller is booted based on the target flash memory. If the target boot strategy is the first boot strategy, the target flash memory number (i.e., the target memory number) specified by the user during the soft reset is determined from the user configuration information, and the flash memory corresponding to the target memory number is used as the target memory. If the target flash memory number specified by the user during the soft reset does not exist in the user configuration information, the flash memory number from the last boot of the board management controller is obtained, and that flash memory number is used as the target memory number.

[0056] The first firmware is, for example, the u-boot-spl firmware. The board-level management controller's default memory is, for example, the board-level management controller's SRAM (Static Random-Access Memory). Specifying the boot flash memory during a soft reset of the board-level management controller means that when the user needs to execute a reboot command, the board-level management controller, before resetting, transfers the first firmware from the target memory to its default memory. The transfer process is, for example, reading the first firmware image data from the target memory, storing the first firmware image data in memory, and copying the first firmware image data from memory to the board-level management controller's default memory.

[0057] Configure the preset memory according to the preset configuration information and disable its reset function. For example, configure the MASK register (reset enable register) for board-level management controller reset according to the preset configuration information, modify the data corresponding to the reset function in the MASK register to 0, disable the preset memory's reset function, and prevent the preset memory from being reset again. This ensures that the preset memory is not reset during a soft reset of the board-level management controller, preventing the loss of the first firmware in the preset memory.

[0058] The flash memory number used to boot the board management controller (BMS) needs to be configured, i.e., the target memory number. After the BMS restarts, it checks whether the preset memory has been effectively reset. If not, it directly executes the first firmware in the preset memory. Based on the first firmware and the components in the target memory, the BMS boots. For example, if the preset memory is not reset during a soft reset of the BMS, it ensures that the u-boot-spl firmware runs normally. After the u-boot-spl firmware runs normally, it can read the relevant registers to obtain the target memory number, and then determine the target memory based on the target memory number. The u-boot-spl firmware loads the components used to boot the BMS from the target memory according to the pre-set boot strategy, such as the uboot bootloader and operating system kernel. uboot is responsible for further hardware initialization, device driver loading, and finally booting the operating system.

[0059] The above process is as follows Figure 3 As shown, during BMC operation; the user performs a reset; the system determines the flash memory number selected by the user for boot; if selected, the u-boot-spl firmware image data is directly read from the selected flash memory number into memory; if the user does not select a flash memory number, the system reads the flash memory number from the last BMC boot; the system reads the u-boot-spl firmware image data from the flash memory corresponding to the selected flash memory number into memory; the system copies the u-boot-spl firmware image data from memory to the BMC's SRAM; the system configures the MASK register during BMC reset, without resetting the SRAM; the system configures the BMC boot register; the BMC resets and restarts, loading the u-boot-spl firmware image from SRAM to boot; u-boot-spl reads the boot flash memory number and boots uboot, kernel, etc. from the corresponding flash memory, and the boot process ends.

[0060] In this embodiment, the first boot strategy is supported for booting the board-level management controller. The boot strategy can be arbitrarily specified by the user according to their needs. Through the first boot strategy, the user can choose the flash memory to be used to boot the board-level management controller next, not limited to selecting the upgraded flash memory for the upgraded service, thus improving the adaptive capability of the board-level management controller.

[0061] As an optional embodiment, step S2034, "starting the first firmware in the preset memory", includes steps A1 to A3.

[0062] Step A1: Determine whether the data at the preset address in the preset memory is the preset value.

[0063] Step A2: If the data at the preset address is a preset value, start the first firmware in the preset memory.

[0064] Step A3: If the data at the preset address is not the preset value, copy the first firmware in the target memory to the preset memory and start the first firmware in the preset memory.

[0065] Specifically, although the preset memory has been configured according to the preset configuration information and the reset function of the preset memory has been turned off, in order to improve the reliability and stability of the board management controller firmware and ensure the normal startup of the board management controller, it is necessary to check whether the preset memory has been effectively reset during the startup process of the board management controller. If it has not been reset, the first firmware in the preset memory is executed directly, and the board management controller is started according to the first firmware and the components in the target memory.

[0066] The preset address in the preset memory is used to store the first firmware. The preset value is, for example, 0, 1 or other values ​​that meet the requirements. The preset address is, for example, the first 20 bytes of the initial address in the SRAM. If the first 20 bytes of the initial address are 0, it means that the SRAM has not been reset. If the first 20 bytes of the initial address are not 0, it means that the SRAM has been reset.

[0067] If the data at the preset address is the preset value, it is determined that the preset memory has not been reset. The first firmware in the preset memory can be used to start the board-level management controller. Therefore, the first firmware in the preset memory is started directly. If the data at the preset address is not the preset value, it is determined that the preset memory has been reset. The first firmware in the preset memory is unavailable. Therefore, the first firmware in the target memory is copied to the preset memory. After the copying is complete, the first firmware in the preset memory is started.

[0068] The above process is as follows Figure 3 As shown, during the BMC reset and restart process, it is determined whether the first 20 bytes of data in the boot address in the SRAM are 0. If the first 20 bytes of data are not 0, the u-boot-spl firmware in the flash is read into the SRAM and the u-boot-spl firmware image is loaded from the SRAM to start boot. If the first 20 bytes of data are 0, the u-boot-spl firmware image is loaded from the SRAM to start boot.

[0069] In this embodiment, during the startup of the board-level management controller, it is detected whether the preset memory has been effectively reset. Based on the detection result, the first firmware is started, which improves the reliability and stability of the board-level management controller firmware and ensures that the board-level management controller starts normally.

[0070] As an optional embodiment, step S203 includes steps B1 to B4.

[0071] Step B1: With the first preset switch on, determine the target startup strategy as the second startup strategy.

[0072] Step B2: When the target boot strategy is the second boot strategy, the target memory number is determined by the second preset switch, and the target memory is determined according to the target memory number.

[0073] Step B3: During the startup process of the board management controller, the second firmware in the target memory is copied to the preset memory of the board management controller.

[0074] Step B4: Start the board-level management controller based on the second firmware in the preset memory and the data in the target memory.

[0075] Specifically, when a user burns or updates an image, without a software reset or power failure, or if the user wants to boot from a specific firmware image in a flash memory, they can configure a DIP switch to select the target memory number of the specified flash memory, thus enabling the board-level management controller to boot from the specified flash memory. Users can configure the target boot strategy by configuring two sets of switches: one switch enables the specified boot function after power failure, and the other switch selects the specified flash memory number.

[0076] When the first preset switch is on, it indicates that the user has enabled the power-off specified boot function, and the target boot strategy is determined to be the second boot strategy. The second boot strategy is, for example, user-specified target flash memory boot during power-off, and the board-level management controller boots based on the target flash memory. If the target boot strategy is the second boot strategy, the user will pre-configure the specified flash memory number (i.e., the target memory number) via the second preset switch using a DIP switch. The target memory number is determined through the second preset switch, and the target memory is then determined based on the target memory number. The above process of determining whether the target boot strategy is the second boot strategy and determining the target memory number can be executed by bootROM. bootROM is a hardware component in an embedded system; it is a read-only memory (ROM) located inside the chip and is executed first when the device is powered on. bootROM contains boot firmware, and its main responsibility is to perform the earliest stage tasks in the system initialization process, including but not limited to basic hardware initialization, configuring the memory controller, and loading the code for the next boot stage (e.g., u-boot-spl firmware or directly uboot) into the preset memory.

[0077] During the boot process of the board management controller, the second firmware in the target memory is copied to the board management controller's preset memory. The second firmware, for example, is the u-boot-spl firmware, and the preset memory is, for example, the board management controller's SRAM. The second firmware in the preset memory is then booted. After the second firmware runs normally, the target memory is determined based on the target memory number. According to a pre-set boot strategy, the second firmware loads components for booting the board management controller from the target memory, such as the u-boot bootloader and operating system kernel. u-boot is responsible for further hardware initialization, device driver loading, and finally, booting the operating system.

[0078] The above process is as follows Figure 4As shown, the BMC specifies the boot process after a power outage; the user configures the power outage boot enable switch; the user configures the boot flash number after a power outage; upon power-on, the bootRom reads the u-boot-spl firmware from the specified flash memory into the SRAM; the bootRom configuration register specifies the flash number to boot from; the u-boot-spl firmware image runs, and the u-boot-spl firmware boots uboot, kernel, etc. from the corresponding flash memory.

[0079] In this embodiment, the user can configure the target boot strategy by configuring two sets of switches. The first preset switch can be used to turn the power-off specified boot function on or off to set the target boot strategy, and the second preset switch can be used to set the specified target memory number to realize the use of the specified flash memory to boot the board-level management controller.

[0080] As an optional embodiment, step S203 includes steps C1 to C3.

[0081] Step C1: When the target boot strategy is the third boot strategy, obtain the boot probability of the memory boot board level management controller and select the memory with a boot probability greater than a preset threshold as the target memory.

[0082] Step C2: During the startup process of the board-level management controller, the third firmware in the target memory is copied to the preset memory of the board-level management controller.

[0083] Step C3: Start the board-level management controller based on the third firmware in the preset memory and the data in the target memory.

[0084] Specifically, the third boot strategy includes, for example, determining the optimal target flash memory based on parameters associated with the boot status of the board-level management controller (BMS), and then booting the BMS based on the target flash memory. If the target boot strategy is the third boot strategy, the boot probability of booting the BMS using the memory is first obtained. For example, if the total number of times the BMS is booted using memory 1 is 'a', and the number of times the BMS is successfully booted is 'b', then the boot probability is 'b / a'. A preset threshold is used, for example, 0.5, 0.6, or other values ​​that meet actual needs. Memory with a boot probability greater than the preset threshold is selected as the target memory.

[0085] During the boot process of the board management controller, the third firmware in the target memory is copied to the board management controller's preset memory. The third firmware, for example, is the u-boot-spl firmware, and the preset memory is, for example, the board management controller's SRAM. The third firmware in the preset memory is then booted. After the third firmware runs normally, the target memory is determined based on the target memory number. According to a pre-set boot strategy, the third firmware loads components from the target memory used to boot the board management controller, such as the u-boot bootloader and operating system kernel. u-boot is responsible for further hardware initialization, device driver loading, and finally, booting the operating system.

[0086] The above process is as follows Figure 5 As shown, the optimal boot switch and automatic boot switching are selected; bootRom is powered on; flash data number 1 is read into SRAM or flash data number 2 is read into SRAM; bootRom is configured to boot from the flash number; u-boot-spl boots from SRAM and starts uboot, kernel, etc.

[0087] In this embodiment, an optimal algorithm is added to identify memory with a startup probability greater than a preset threshold. This memory is then used as the target memory for optimal startup, which improves the flexible startup capability and startup reliability of the board-level management controller, and also increases the startup efficiency of the board-level management controller.

[0088] As an optional embodiment, the second preset number of memories includes the first memory and the second memory. Step C1, "obtaining the startup probability of the memory-based startup board-level management controller and using the memory with a startup probability greater than a preset threshold as the target memory", includes steps D1 to D4.

[0089] Step D1: Obtain the number of boots and the number of successful boots using the first memory to start the board-level management controller.

[0090] Step D2: The ratio of the number of successful boots to the number of boots is taken as the boot probability of the first memory.

[0091] Step D3: If the startup probability is greater than a preset threshold, the first memory is selected as the target memory.

[0092] Step D4: If the startup probability is less than or equal to a preset threshold, the second memory is selected as the target memory.

[0093] Specifically, the second preset number of memories includes a first memory and a second memory. The first memory is, for example, flash memory 1, and the second memory is, for example, flash memory 2. Optimal boot is achieved by first determining the number of times the board-level management controller (BMD) has been successfully booted using flash memory based on the historical boot records of the two memories, and then using a weighted average algorithm to calculate the flash memory with the highest probability of successfully booting the BMD.

[0094] Obtain the boot count record of the board-level management controller. Add up the boot records and successful boot records for all flash memory entries with flash memory number 1 to obtain the boot count and successful boot count of the first memory's board-level management controller. Use the ratio of successful boot count to total boot count as the boot probability of the first memory.

[0095] Preset thresholds include, for example, 0.5, 0.6, or other values ​​that meet actual needs. If the boot probability is greater than the preset threshold, the first memory is used as the target memory, and the board-level management controller is launched using the first memory by default. If the boot probability is less than or equal to the preset threshold, the second memory is used as the target memory, and the board-level management controller is launched using the second memory by default.

[0096] The above process is as follows Figure 5 As shown, the bootROM is powered on; the boot count f1 and the number of successful boots n1 of the first flash are read from the first flash; the boot count f2 and the number of successful boots n2 of the second flash are read from the second flash; the probability result (result) = n1 / f1; it is determined whether the result is greater than 0.5. If the result is greater than 0.5, the flash memory numbered 1, i.e., the first memory, is used as the target memory; if the result is less than or equal to 0.5, the flash memory numbered 2, i.e., the second memory, is used as the target memory.

[0097] As an optional embodiment, after step S203 "starting the board-level management controller", the method further includes steps E1 to E4.

[0098] Step E1: If the board-level management controller fails to start and the third preset switch is turned on, determine the target startup strategy as the fourth startup strategy.

[0099] Step E2: After a preset time period, identify the unactivated memory from the second preset number of memory locations, and use the unactivated memory as intermediate memory.

[0100] Step E3: Copy the fourth firmware from the intermediate memory to the preset memory of the board management controller.

[0101] Step E4: Start the board-level management controller based on the fourth firmware in the preset memory and the data in the intermediate memory.

[0102] Specifically, in combination Figure 6 This embodiment will be described in detail. The third preset switch is, for example, a start switch. Users can configure the third preset switch to select whether to enable or disable the automatic start-up switching function. In the event that the board-level management controller fails to start and the third preset switch is enabled, for example: Figure 6 As shown, the board-level management controller (BMS) fails to start under the following conditions: power-on failure, power-off failure, soft reset-specified startup failure, and optimal startup failure. This means that if one or more of the first, second, and third startup strategies fail, the target startup strategy is determined to be the fourth startup strategy. For example, the fourth startup strategy might involve automatically switching to the target flash memory and then starting the BMS based on that flash memory.

[0103] This embodiment uses a watchdog timer (WDT) to determine whether a preset time period has elapsed. The preset time period can be, for example, 10 seconds, 20 seconds, or other durations that meet actual needs. If the watchdog timer detects a timeout, it determines that the system may be deadlocked or crashing, and automatically triggers a reset to restore system operation.

[0104] If the watchdog timer detects a timeout, and a preset time period has elapsed, the system identifies unused memory from a second preset number of memory locations. For example, if the second preset number of memory locations includes Flash 1 and Flash 2, the system reads the flash memory number register to see if it matches the number of the first flash memory (i.e., Flash 1). If it does, Flash 2 is identified as an unused memory; otherwise, Flash 1 is identified as an unused memory. This unused memory is then used as intermediate memory. The above process is as follows: Figure 6 As shown, WDT detects a timeout in the dog feed; bootRom runs; reads the number of the flash memory that has been booted, and determines whether the number is the number of the first flash. If it is, the first flash is used as the intermediate memory; otherwise, the second flash is used as the intermediate memory.

[0105] During the boot process of the board-level management controller, the fourth firmware in the intermediate memory is copied to the board-level management controller's preset memory. The fourth firmware, for example, is the u-boot-spl firmware, and the preset memory is, for example, the board-level management controller's SRAM. The fourth firmware in the preset memory is then booted. After the fourth firmware runs normally, the intermediate memory is determined based on its intermediate memory number. According to a pre-set boot strategy, the fourth firmware loads components from the intermediate memory used to boot the board-level management controller, such as the u-boot bootloader and operating system kernel. u-boot is responsible for further hardware initialization, device driver loading, and finally, booting the operating system. The above process is as follows: Figure 6 As shown, it reads data from the first flash memory into SRAM or reads data from the second flash memory into SRAM; modifies the flash memory number for booting; boots the u-boot-spl firmware image from SRAM; and boots uboot, kernel, etc. from the u-boot-spl firmware.

[0106] In this embodiment, if other startup strategies fail to start the board-level management controller and the third preset switch is turned on, a fourth startup strategy is adopted to start the board-level management controller, increasing the flexibility of starting the board-level management controller and improving the success rate and stability of the board-level management controller startup.

[0107] This embodiment provides a board-level management controller (BMS) startup method. Based on user configuration information, BMS startup status-related parameters, and the current startup state of the BMS, a target startup strategy is determined from multiple startup strategies. A target memory is then determined based on the target startup strategy, and the BMS is started based on the data in the target memory. This method supports multiple BMS startup strategies, meeting user needs for startup methods in specific usage scenarios. It also enriches the startup scenarios and methods for BMS, enabling flexible startup and improving the success rate and efficiency of the BMS. This solves the problem of limited startup methods for BMS, which cannot meet the diverse needs of users in different usage scenarios.

[0108] As an optional embodiment, after step S103 "start the board-level management controller according to the data in the target memory", the method further includes steps F1 to F5.

[0109] Step F1: Use flash memory other than the target memory as backup memory.

[0110] Step F2: In response to the uboot and kernel during the startup process of the board-level management controller, the watchdog timer of the board-level management controller is fed periodically and the corresponding timeout is set to detect whether the startup of uboot or kernel has timed out.

[0111] Step F3: If the boot process of uboot and kernel does not time out, start a new timed dog feed operation and set a new timeout to detect whether the boot process of the specified board-level management controller service has timed out.

[0112] Step F4: If the boot timeout of uboot and kernel, or the boot timeout of the specified board management controller service, boot the board management controller based on the backup storage.

[0113] Step F5 restores the read / write partition of the target memory to the corresponding partition of the spare chip, and switches the default boot chip of the board management controller from the target memory to the spare memory.

[0114] In this embodiment, the complete startup cycle of the board-level management controller is tracked, and abnormal monitoring of the board-level management controller at all stages is implemented. When the board-level management controller malfunctions, it can be booted from backup storage, and data recovery can be achieved. After booting from backup storage, data recovery is performed, and the default board-level management controller boot chip partition selection is reset to avoid user data loss and operational abnormalities caused by multiple restarts and boot sequence migrations.

[0115] This embodiment also provides a board-level management controller startup device, which is used 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 devices described in the following embodiments are preferably implemented in software, hardware implementations, or a combination of software and hardware, are also possible and contemplated.

[0116] This embodiment provides a board-level management controller startup device, such as Figure 7 As shown, it includes:

[0117] The information determination module 701 is used to determine user configuration information upon receiving an instruction from the launch board-level management controller.

[0118] The strategy determination module 702 is used to determine the target startup strategy from a first preset number of startup strategies based on user configuration information, startup status associated parameters of the board-level management controller, and the current startup status of the board-level management controller.

[0119] The startup module 703 is used to determine the target memory from a second preset number of memories according to the target startup strategy, and to start the board-level management controller according to the data in the target memory.

[0120] In some alternative implementations, the startup module 703 includes:

[0121] The first determining unit is used to determine the target memory number based on user configuration information and determine the target memory based on the target memory number when the target boot strategy is the first boot strategy.

[0122] The storage unit is used to retrieve the first firmware from the target memory and store the first firmware in the preset memory of the board-level management controller;

[0123] The configuration unit is used to configure the preset memory according to the preset configuration information and disable the reset function of the preset memory.

[0124] The first startup unit is used to start the first firmware in the preset memory during the startup of the board-level management controller.

[0125] The second boot unit is used to boot the board-level management controller based on the first firmware and the components in the target memory.

[0126] In some alternative implementations, the first startup unit includes:

[0127] The judgment submodule is used to determine whether the data at a preset address in the preset memory is a preset value;

[0128] The first boot submodule is used to boot the first firmware in the preset memory when the data at the preset address is a preset value;

[0129] The second boot submodule is used to copy the first firmware in the target memory to the preset memory and start the first firmware in the preset memory when the data at the preset address is not the preset value.

[0130] In some alternative implementations, the startup module 703 includes:

[0131] The second determining unit is used to determine the target startup strategy as the second startup strategy when the first preset switch is turned on.

[0132] The third determining unit is used to determine the target memory number by means of the second preset switch when the target boot strategy is the second boot strategy, and to determine the target memory according to the target memory number.

[0133] The first copying unit is used to copy the second firmware in the target memory to the preset memory of the board-level management controller during the startup process of the board-level management controller.

[0134] The third startup unit is used to start the board-level management controller based on the second firmware in the preset memory and the data in the target memory.

[0135] In some alternative implementations, the startup module 703 includes:

[0136] The acquisition unit is used to acquire the boot probability of the memory-based boot board level management controller when the target boot strategy is the third boot strategy, and to select the memory with the boot probability greater than a preset threshold as the target memory.

[0137] The second copying unit is used to copy the third firmware in the target memory to the preset memory of the board-level management controller during the startup process of the board-level management controller.

[0138] The fourth startup unit is used to start the board-level management controller based on the third firmware in the preset memory and the data in the target memory.

[0139] In some optional implementations, the second preset number of memories includes a first memory and a second memory, and the acquisition unit includes:

[0140] The acquisition submodule is used to acquire the number of times the board-level management controller was started using the first memory and the number of times it was successfully started.

[0141] The first setting submodule is used to use the ratio of the number of successful startups to the number of startups as the startup probability of the first memory;

[0142] The second setting submodule is used to select the first memory as the target memory when the startup probability is greater than a preset threshold.

[0143] The third setting submodule is used to select the second memory as the target memory when the startup probability is less than or equal to a preset threshold.

[0144] In some alternative embodiments, the device further includes:

[0145] The first determination module is used to determine the target startup strategy as the fourth startup strategy when the board-level management controller fails to start and the third preset switch is turned on.

[0146] The second determining module is used to determine, after a preset time period, an unactivated memory from a second preset number of memories, and use the unactivated memory as an intermediate memory.

[0147] The copy module is used to copy the fourth firmware in the intermediate memory to the preset memory of the board-level management controller;

[0148] The restart module is used to start the board-level management controller based on the fourth firmware in the preset memory and the data in the intermediate memory.

[0149] Further functional descriptions of the above modules and units are the same as those in the corresponding embodiments described above, and will not be repeated here.

[0150] In this embodiment, the board-level management controller startup device is presented in the form of a functional unit. Here, a unit refers to an ASIC (Application Specific Integrated Circuit) circuit, a processor and memory that execute one or more software or fixed programs, and / or other devices that can provide the above functions.

[0151] This invention also provides a computer device having the above-described features. Figure 7 The board-level management controller startup device is shown.

[0152] Please see Figure 8 , Figure 8 This is a schematic diagram of the structure of a computer device provided in an optional embodiment of the present invention, such as... Figure 8 As shown, the computer device includes one or more processors 10, memory 20, and interfaces for connecting the components, including high-speed interfaces and low-speed interfaces. The components communicate with each other via different buses and can be mounted on a common motherboard or otherwise installed as needed. The processors can process instructions executed within the computer device, including instructions stored in or on memory to display graphical information of a GUI on external input / output devices (such as display devices coupled to the interfaces). In some alternative implementations, multiple processors and / or multiple buses can be used with multiple memories and multiple memory modules, if desired. Similarly, multiple computer devices can be connected, each providing some of the necessary operations (e.g., as a server array, a group of blade servers, or a multiprocessor system). Figure 8 Take a processor 10 as an example.

[0153] Processor 10 may be a central processing unit, a network processor, or a combination thereof. Processor 10 may further include an integrated circuit, a programmable logic device, or a combination thereof. The programmable logic device may be a complex programmable logic device, a field-programmable gate array (FPGA), a general-purpose array logic (GPA), or any combination thereof.

[0154] The memory 20 stores instructions executable by at least one processor 10 to cause at least one processor 10 to perform the method shown in the above embodiments.

[0155] The memory 20 may include a program storage area and a data storage area. The program storage area may store the operating system and applications required for at least one function; the data storage area may store data created based on the use of the computer device. Furthermore, the memory 20 may include high-speed random access memory and may also include non-transitory memory, such as at least one disk storage device, flash memory device, or other non-transitory solid-state storage device. In some alternative embodiments, the memory 20 may optionally include memory remotely located relative to the processor 10, and these remote memories may be connected to the computer device via a network. Examples of such networks include, but are not limited to, the Internet, intranets, local area networks, mobile communication networks, and combinations thereof.

[0156] The memory 20 may include volatile memory, such as random access memory; the memory may also include non-volatile memory, such as flash memory, hard disk or solid-state drive; the memory 20 may also include a combination of the above types of memory.

[0157] The computer device also includes a communication interface 30 for communicating with other devices or communication networks.

[0158] This invention also provides a computer-readable storage medium. The methods described above according to embodiments of the invention can be implemented in hardware or firmware, or implemented as computer code that can be recorded on a storage medium, or implemented as computer code downloaded via a network and originally stored on a remote storage medium or a non-transitory machine-readable storage medium and then stored on a local storage medium. Thus, the methods described herein can be processed by software stored on a storage medium using a general-purpose computer, a dedicated processor, or programmable or dedicated hardware. The storage medium can be a magnetic disk, optical disk, read-only memory, random access memory, flash memory, hard disk, or solid-state drive, etc.; further, the storage medium can also include combinations of the above types of memory. It is understood that computers, processors, microprocessor controllers, or programmable hardware include storage components capable of storing or receiving software or computer code, which, when accessed and executed by the computer, processor, or hardware, implements the methods shown in the above embodiments.

[0159] A portion of this invention can be applied as a computer program product, such as computer program instructions, which, when executed by a computer, can invoke or provide the methods and / or technical solutions according to the invention through the operation of the computer. Those skilled in the art will understand that the forms in which computer program instructions exist in a computer-readable medium include, but are not limited to, source files, executable files, installation package files, etc. Correspondingly, the ways in which computer program instructions are executed by a computer include, but are not limited to: the computer directly executing the instructions, or the computer compiling the instructions and then executing the corresponding compiled program, or the computer reading and executing the instructions, or the computer reading and installing the instructions and then executing the corresponding installed program. Here, the computer-readable medium can be any available computer-readable storage medium or communication medium accessible to a computer.

[0160] Although embodiments of the invention have been described in conjunction with the accompanying drawings, those skilled in the art can make various modifications and variations without departing from the spirit and scope of the invention, and such modifications and variations all fall within the scope defined in this application.

Claims

1. A method for starting a board-level management controller, characterized in that, The method includes: Upon receiving instructions from the launch board-level management controller, determine the user configuration information; Based on the user configuration information, the startup status associated parameters of the board-level management controller, and the current startup status of the board-level management controller, a target startup strategy is determined from a first preset number of startup strategies. According to the target startup strategy, a target memory is determined from a second preset number of memories, and the board-level management controller is started based on the data in the target memory.

2. The method according to claim 1, characterized in that, The step of determining a target memory from a second preset number of memories according to the target boot strategy, and starting the board-level management controller according to the data in the target memory, includes: When the target boot policy is the first boot policy, the target memory number is determined according to the user configuration information, and the target memory is determined according to the target memory number; The first firmware is retrieved from the target memory and stored in the preset memory of the board-level management controller; Configure the preset memory according to the preset configuration information, and disable the reset function of the preset memory; During the startup of the board-level management controller, the first firmware stored in the preset memory is started; The board management controller is started based on the first firmware and the components in the target memory.

3. The method according to claim 2, characterized in that, The step of starting the first firmware in the preset memory includes: Determine whether the data at the preset address in the preset memory is a preset value; If the data at the preset address is the preset value, the first firmware in the preset memory will be started; If the data at the preset address is not the preset value, the first firmware in the target memory is copied to the preset memory, and the first firmware in the preset memory is started.

4. The method according to claim 1, characterized in that, The step of determining a target memory from a second preset number of memories according to the target boot strategy, and starting the board-level management controller according to the data in the target memory, includes: When the first preset switch is turned on, the target startup strategy is determined to be the second startup strategy; When the target boot strategy is the second boot strategy, the target memory number is determined by the second preset switch, and the target memory is determined according to the target memory number; During the startup of the board-level management controller, the second firmware in the target memory is copied to the preset memory of the board-level management controller; The board-level management controller is started based on the second firmware in the preset memory and the data in the target memory.

5. The method according to claim 1, characterized in that, The step of determining a target memory from a second preset number of memories according to the target boot strategy, and starting the board-level management controller according to the data in the target memory, includes: When the target boot strategy is the third boot strategy, the boot probability of using the memory to boot the board-level management controller is obtained, and the memory with a boot probability greater than a preset threshold is taken as the target memory. During the startup of the board-level management controller, the third firmware in the target memory is copied to the preset memory of the board-level management controller; The board-level management controller is started based on the third firmware in the preset memory and the data in the target memory.

6. The method according to claim 5, characterized in that, The second preset number of memories includes a first memory and a second memory. The step of obtaining the boot probability of using the memory to boot the board-level management controller, and selecting memories with boot probabilities greater than a preset threshold as the target memories, includes: Obtain the number of times the board-level management controller is started using the first memory and the number of times it is successfully started; The ratio of the number of successful boots to the number of boots is taken as the boot probability of the first memory; If the startup probability is greater than the preset threshold, the first memory is used as the target memory; If the startup probability is less than or equal to the preset threshold, the second memory is used as the target memory.

7. The method according to any one of claims 1-6, characterized in that, The method further includes: If the board-level management controller fails to start and the third preset switch is turned on, the target startup strategy is determined to be the fourth startup strategy. After a preset time period, a memory that has not been started is identified from a second preset number of the memory sets, and the memory that has not been started is used as an intermediate memory. Copy the fourth firmware from the intermediate memory to the preset memory of the board-level management controller; The board-level management controller is started based on the fourth firmware in the preset memory and the data in the intermediate memory.

8. A board-level management controller start-up device, characterized in that, The device includes: The information determination module is used to determine user configuration information upon receiving instructions from the launch board-level management controller. The strategy determination module is used to determine a target startup strategy from a first preset number of startup strategies based on the user configuration information, the startup status associated parameters of the board-level management controller, and the current startup status of the board-level management controller. The startup module is used to determine the target memory from a second preset number of memories according to the target startup strategy, and to start the board-level management controller according to the data in the target memory.

9. A computer device, characterized in that, include: A memory and a processor are communicatively connected, the memory stores computer instructions, and the processor executes the computer instructions to perform the board management controller startup method according to any one of claims 1 to 7.

10. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores computer instructions for causing a computer to execute the board management controller startup method according to any one of claims 1 to 7.