A package configuration method, device, equipment and storage medium

By collaborating with the BIOS and BMC, and dynamically matching BIOS packages using FRU information and IPMI commands, the problems of high maintenance costs for multiple versions and the impact of restarts on business operations have been solved. This enables support for multiple package configurations on a single BIOS version, improving user experience and product competitiveness.

CN119739431BActive Publication Date: 2026-04-21INSPUR SUZHOU INTELLIGENT TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
INSPUR SUZHOU INTELLIGENT TECH CO LTD
Filing Date
2024-11-07
Publication Date
2026-04-21

AI Technical Summary

Technical Problem

Existing BIOS packages have high maintenance costs due to multiple versions, and restarting the machine under the operating system can affect the operation of customer business.

Method used

By obtaining multiple candidate package identifiers for a single BIOS version, the target package is dynamically matched using the BMC's FRU information and IPMI commands. With the cooperation of the BIOS and BMC, the package configuration that has been modified by the user is loaded, avoiding a restart of the operating system.

Benefits of technology

This enables support for multiple package configurations on a single BIOS version, reducing maintenance workload, avoiding operating system restarts, and improving user experience and product competitiveness.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119739431B_ABST
    Figure CN119739431B_ABST
Patent Text Reader

Abstract

This application provides a method, apparatus, device, and storage medium for configuring BIOS packages, relating to the field of computer technology. It aims to solve the problems in related technologies where adjusting BIOS versions involves high maintenance costs and the impact of machine restarts on business operations. The method includes: obtaining identifiers of multiple candidate BIOS packages for a single BIOS version, each candidate BIOS package being a set of BIOS option values ​​based on the single BIOS version; comparing the identifiers of the multiple candidate BIOS packages with the identifier of a target package to determine a first BIOS package to be used that matches the identifier of the target package; reading a first identifier value of the first BIOS package to be used; and, if the first identifier value indicates that the first BIOS package to be used has been modified by the user, loading the BIOS package that has been modified by the user.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of computer technology, and more specifically, to a package configuration method, apparatus, device, and storage medium. Background Technology

[0002] In server design, BIOS (Basic Output and Input) option settings vary significantly depending on the customer's application scenario. For specific needs such as high performance or low power consumption, customers need to adjust the BIOS to achieve these requirements. Therefore, customers often customize the BIOS to support multiple configuration settings, i.e., BIOS packages.

[0003] The existing technologies, such as each BIOS package corresponding to a BIOS version and adjusting the BIOS by using a customized BIOS version plus scripts, have shortcomings. For example, the maintenance cost of multiple versions is high, and script flashing requires execution under the operating system and restarting the machine, which will affect the operation of customer business. Summary of the Invention

[0004] This application provides a package configuration method, apparatus, device, and storage medium, aiming to solve the problems in related technologies where adjusting BIOS involves high maintenance costs for multiple versions and the impact of restarting the machine under the operating system on customer business operations.

[0005] The first aspect of this application provides a method for configuring a service package, including:

[0006] Obtain the identifiers of multiple candidate basic input / output system packages for a single basic input / output system version, where each candidate basic input / output system package is a set of basic input / output system option values ​​based on the single basic input / output system version;

[0007] The identifiers of multiple candidate basic input / output system packages are compared with the identifier of the target package, and a first basic input / output system package to be used that matches the identifier of the target package is determined from the multiple candidate basic input / output system packages;

[0008] Read the first identifier value of the first basic input / output system package to be used;

[0009] If the first identifier value indicates that the first basic input / output system package to be used has been modified by the user, load the basic input / output system package that has been modified by the user.

[0010] In an optional implementation, the method further includes:

[0011] If the first identifier value indicates that the first basic input / output system package to be used has not been modified by the user, then read the second identifier value of the first basic input / output system package to be used.

[0012] If the second identifier value indicates that the user has set a reserved configuration refresh for the first basic input / output system package to be used, then load the basic input / output system package that has been modified by the user.

[0013] If the second identifier value indicates that the user has not refreshed the settings of the first basic input / output system package to be used, then the first basic input / output system package to be used is loaded.

[0014] In an optional implementation, the method further includes:

[0015] The single basic input / output system version stores multiple candidate basic input / output system packages and sets an identifier for each of the multiple candidate basic input / output system packages. The identifiers of the multiple candidate basic input / output system packages correspond to different first parameter values.

[0016] Obtain the item index and group index of the target package;

[0017] Based on the project index and the group index, the basic input / output system sends an intelligent platform management interface command to the baseboard management controller to query the first parameter value in the field replaceable unit information.

[0018] The first function is called based on the first parameter value, and the first parameter value is written into the target storage location for storage.

[0019] In an optional implementation, the method further includes:

[0020] If the intelligent platform management interface command sent by the basic input / output system for the first time does not receive a response from the baseboard management controller, the intelligent platform management interface command is sent a preset number of times to poll the field replaceable unit information until the first parameter value is obtained from the baseboard management controller.

[0021] If the intelligent platform management interface command is sent a preset number of times and the first parameter value is not obtained, the default configuration is loaded.

[0022] In one optional implementation, comparing the identifiers of a plurality of candidate basic input / output (BIOS) packages with the identifier of a target candidate package, and determining a first BIOS package to be used from the plurality of candidate BIOS packages that matches the identifier of the target candidate package, includes:

[0023] The basic input / output system reads the value of the first parameter from the target storage location through a second function;

[0024] The third function compares and matches the first parameter value with the identifiers of multiple candidate basic input / output system packages.

[0025] If the first parameter value matches the identifier of the current candidate basic input / output system package, the first basic input / output system package to be used corresponding to the first parameter value is obtained;

[0026] If the first parameter value does not match the identifier of the current candidate basic input / output system package, the identifier of the next candidate basic input / output system package is compared in a round-robin fashion until the first basic input / output system package to be used corresponding to the first parameter value is obtained.

[0027] In an optional implementation, the method further includes:

[0028] The Basic Input / Output System (BIOS) is configured with a first identifier value. The initial value of the first identifier value is 0, which indicates that the BIOS option value in the BIOS package has not been modified by the user.

[0029] Read the first identifier value of the first basic input / output system package to be used, including:

[0030] The Basic Input / Output System reads the first identifier value through the fourth function. If the first identifier value is not 0, the Basic Input / Output System option value in the first Basic Input / Output System package to be used has been modified by the user.

[0031] When the first identifier value is 0, the basic input / output system option value in the first basic input / output system package to be used has not been modified by the user.

[0032] In an optional implementation, the method further includes:

[0033] If the first identifier value indicates that the first basic input / output system package to be used has been modified by the user, a product number with a non-zero value is set for the first basic input / output system package to be used.

[0034] Assign the product number to the first identifier value to indicate that the first available basic input / output system package does not need to be reconfigured when restarting the basic input / output system;

[0035] If the second identifier value indicates that the user has not refreshed the configuration settings for the first to-be-used Basic Input / Output System (BIOS) package, then the first to-be-used BIOS package is loaded, including:

[0036] Based on the product number value, load the basic input / output system option value of the first basic input / output system package to be used, and set the restart flag, which indicates that the basic input / output system needs to be restarted after the configuration is completed;

[0037] Modify the corresponding basic input / output system option based on the basic input / output system option value of the first basic input / output system package to be used;

[0038] The Basic Input / Output System (PIOS) writes the modified PIOS option values ​​to non-volatile memory through the fifth function, and modifies the values ​​of the central processing unit's underlying registers accordingly through the sixth function based on the modified PIOS option values.

[0039] Restart the Basic Input / Output System (PIS) using the seventh function to make the modified PIS options take effect.

[0040] A second aspect of this application provides a package configuration device, including:

[0041] The acquisition module is used to acquire the identifiers of multiple candidate basic input / output system packages for a single basic input / output system version, wherein each candidate basic input / output system package is a set of basic input / output system option values ​​based on the single basic input / output system version;

[0042] The comparison module is used to compare the identifiers of multiple candidate basic input / output system packages with the identifier of the target package, and determine the first basic input / output system package to be used that matches the identifier of the target package from the multiple candidate basic input / output system packages;

[0043] The reading module is used to read the first identifier value of the first basic input / output system package to be used;

[0044] The loading module is used to load the modified basic input / output system package when the first identifier value indicates that the first basic input / output system package to be used has been modified by the user.

[0045] A third aspect of this application provides an electronic device, including: a processor, a memory, and a computer program stored in the memory and executable on the processor, wherein the processor executes the computer program to implement the package configuration method of the first aspect of this application.

[0046] A fourth aspect of this application provides a computer-readable storage medium storing a computer program, which, when executed by a processor, implements the package configuration method of the first aspect of this application.

[0047] In this embodiment, by obtaining the identifiers of multiple candidate basic input / output (BIOS) packages for a single BIOS version, each candidate BIOS package being a set of BIOS option values ​​based on the single BIOS version; comparing the identifiers of the multiple candidate BIOS packages with the identifier of the target package, determining a first BIOS package to be used that matches the identifier of the target package from the multiple candidate BIOS packages; reading the first identifier value of the first BIOS package to be used; and if the first identifier value indicates that the first BIOS package to be used has been modified by the user, loading the user-modified BIOS package. This allows for the selection of different BIOS packages on a single version and the loading of user-modified packages based on the priority of user operations according to the first identifier value, meeting different customer needs and improving the user experience. Attached Figure Description

[0048] To more clearly illustrate the technical solutions of the embodiments of this application, the drawings used in the description of the embodiments of this application will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0049] Figure 1 This is a flowchart illustrating the steps of a package configuration method proposed in an embodiment of this application;

[0050] Figure 2 This is a flowchart of the configuration steps of a package configuration method proposed in an embodiment of this application;

[0051] Figure 3 This is a schematic diagram of the package configuration device proposed in one embodiment of this application;

[0052] Figure 4 This is a schematic diagram of an electronic device according to an embodiment of this application. Detailed Implementation

[0053] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.

[0054] BIOS (Basic Output and Input) is a set of programs embedded in a read-only memory on the motherboard of a computer. It stores the computer's most important basic input and output programs, system settings information, power-on self-test programs, and system startup programs, and contains specific information on reading and writing system settings.

[0055] IPMI (Intelligent Platform Management Interface) can operate across different operating systems, firmware, and hardware platforms, intelligently monitoring, controlling, and automatically reporting the operational status of a large number of servers to reduce server system costs.

[0056] The BMC (Baseboard Management Controller) is a core component of the server management system defined by the IPMI protocol. It is a microcontroller independent of the main processor used to manage and monitor system hardware.

[0057] FRU (Field Replaceable Unit) refers to a component or hardware part in a server that can be replaced by a user or technician, such as a central processing unit, memory, hard drive, power supply, etc. Server FRU information records detailed information about these replaceable units, including model number, serial number, manufacturer, etc.

[0058] In server design, BIOS settings vary significantly depending on the customer's application scenario. For example, when a customer uses the machine for both data storage and computation, their requirements for CPU performance, power consumption, and stability differ. Data storage requires higher CPU stability, while computation requires higher CPU performance. Only in this way can the CPU play a greater role in the customer's different scenarios.

[0059] When designing servers, there's a default mode: performance mode or power mode. Most manufacturers, to enhance the competitiveness of their general-purpose products and meet the needs of ordinary customers, set this mode to a balance between performance and power consumption. This ensures moderate performance and power consumption while improving stability. However, when shipping machines and needing to meet customer demands for high performance or low power consumption, this can only be achieved by adjusting the BIOS. Hardware adjustments are too costly and unacceptable; adjusting the voltage regulator (VR) would also affect power-on stability. Only by adjusting the BIOS can customer needs be met with minimal impact and cost. Therefore, to meet their specific needs, customers often request BIOS configurations that support multiple settings during customization, leading to the concept of BIOS packages.

[0060] For BIOS package development, server manufacturers provide customers with one BIOS version per package, maintain the corresponding code for each version, and maintain detailed usage rules when releasing a version. Customers can choose different versions to flash and boot for different application scenarios. While this approach can meet customers' multi-configuration needs and achieve configuration retention and flashing functionality, it requires maintaining multiple BIOS versions and expending significant effort to maintain usage rules. If the usage rules are not clearly maintained when a version is released, it can lead to misunderstandings and the risk of misuse of the BIOS version. Furthermore, maintaining too many BIOS versions represents a substantial manpower cost.

[0061] For BIOS package development, we customize versions for commonly used customer configurations, and then customize scripts for other customer package requirements. This version-plus-script approach achieves the customer's BIOS package needs. This approach reduces BIOS maintenance workload, as script development is a one-time task requiring minimal time investment, significantly improving labor costs. However, script updates require execution within the OS (Operating System), necessitating a machine reboot for the changes to take effect. This is unacceptable for customer operations. Furthermore, maintaining the usage rules for multiple scripts requires substantial manpower and carries the risk of misuse, hindering BIOS version control. It also fails to dynamically and intelligently adapt to customer packages on a general version, thus not meeting customers' demands for single-version compatibility with multiple packages and failing to demonstrate a competitive advantage.

[0062] Therefore, a solution is needed that allows a single BIOS version to freely switch between multiple BIOS packages. However, as customer application scenarios increase, some customers will sell their configured environments to third parties. When using these third parties, they sometimes consider modifying the supported packages and ensuring that the configuration is preserved during updates and the modifications are not erased. Thus, prioritizing the use cases becomes paramount.

[0063] Reference Figure 1 , Figure 1 This is a flowchart illustrating the steps involved in configuring a service package according to an embodiment of this application. Figure 1 As shown, the method includes the following steps S11 to S14:

[0064] Step S11: Obtain the identifiers of multiple candidate basic input / output system packages for a single basic input / output system version, where each candidate basic input / output system package is a set of basic input / output system option values ​​based on the single basic input / output system version.

[0065] A specific single BIOS version is defined, while multiple candidate BIOS packages refer to a set of BIOS option values ​​configured with different values ​​based on that single BIOS version. Each candidate package represents a set of BIOS option values, which are configurable settings in the BIOS, including boot order, memory configuration, power management, security settings, etc., which affect system performance, functionality, and compatibility. For each candidate BIOS package, the system assigns a unique identifier to identify it within the system.

[0066] Furthermore, the method also includes:

[0067] The single basic input / output system version stores multiple candidate basic input / output system packages and sets identifiers for multiple candidate basic input / output system packages. The identifiers of multiple candidate basic input / output system packages correspond to different first parameter values.

[0068] Obtain the item index and group index of the target package;

[0069] Based on the project index and the group index, the basic input / output system sends an intelligent platform management interface command to the baseboard management controller to query the first parameter value in the field replaceable unit information.

[0070] The first function is called based on the first parameter value, and the first parameter value is written into the target storage location for storage.

[0071] A single BIOS version stores multiple candidate BIOS packages and sets identifiers for each candidate BIOS package. These identifiers correspond to different first parameter values. When a customer requests multiple packages, the BIOS, the customer, and the BMC agree to use the first parameter (Product Extra, PE) in the BMC's FRU information to identify the package. The BMC will group and number the FRUs according to the customer's required format, first using the GroupIndex for grouping and then using the ItemIndex for numbering. This allows the BIOS to uniquely distinguish each parameter of the FRU information using both the group index and the item index. The agreed-upon different values ​​of the first parameter are used to identify different packages, and these first parameter values ​​can be modified using out-of-band IPMI standard commands.

[0072] When the BIOS enters the driver execution environment stage, it performs hardware initialization and driver loading. Based on the target package identifier, the BIOS retrieves the corresponding item index and group index from the configuration database or mapping table. Then, based on these indexes, it sends a corresponding IPMI command to the BMC to query the first parameter value in the FRU information, thus obtaining the first parameter value. After obtaining the first parameter value, the BIOS calls the first function (Pcd write function) to write the value into the target storage location (platform configuration database). Through the collaboration between the BIOS and BMC, utilizing parameters from the BMC's FRU information to identify different customer packages, multi-package support for BIOS settings is achieved, providing customers with more flexible and convenient BIOS configuration options to meet their needs.

[0073] Furthermore, the method also includes:

[0074] If the intelligent platform management interface command sent by the basic input / output system for the first time does not receive a response from the baseboard management controller, the intelligent platform management interface command is sent a preset number of times to poll the field replaceable unit information until the first parameter value is obtained from the baseboard management controller.

[0075] If the intelligent platform management interface command is sent a preset number of times and the first parameter value is not obtained, the default configuration is loaded.

[0076] The BIOS sends a corresponding IPMI command to the BMC to query the first parameter value in the FRU information based on the item index and group index of the target package identifier. If no response is received from the BMC on the first IPMI command, the BIOS will continuously send IPMI commands a preset number of times (e.g., 10 times) to poll the FRU information until the corresponding first parameter value is obtained from the BMC. If the first parameter value is not obtained even after the preset number of times, the BIOS will assume that the BMC is hanging, skip the function execution, and load the default configuration. By setting a preset number of times, it ensures that the system can take appropriate measures when the BMC fails to respond in a timely manner for various reasons, thereby avoiding the system getting stuck in an infinite loop or failing to boot due to waiting for a BMC response.

[0077] Step S12: Compare the identifiers of multiple candidate basic input / output system packages with the identifier of the target package, and determine the first basic input / output system package to be used that matches the identifier of the target package from the multiple candidate basic input / output system packages.

[0078] The identifier of the target BIOS package to be matched is determined. This identifier is usually user-specified or generated by the system based on specific conditions. Multiple candidate BIOS package identifiers are compared with the target package identifier, and the first BIOS package to be used that matches the target package identifier is selected from the candidate BIOS packages.

[0079] Further, the step of comparing the identifiers of multiple candidate basic input / output system packages with the identifier of the target candidate package, and determining the first basic input / output system package to be used that matches the identifier of the target candidate package from the multiple candidate basic input / output system packages, includes:

[0080] The basic input / output system reads the value of the first parameter from the target storage location through a second function;

[0081] The third function compares and matches the first parameter value with the identifiers of multiple candidate basic input / output system packages.

[0082] If the first parameter value matches the identifier of the current candidate basic input / output system package, the first basic input / output system package to be used corresponding to the first parameter value is obtained;

[0083] If the first parameter value does not match the identifier of the current candidate basic input / output system package, the identifier of the next candidate basic input / output system package is compared in a round-robin fashion until the first basic input / output system package to be used corresponding to the first parameter value is obtained.

[0084] The BIOS reads the first parameter value from the target storage location using a second function (Pcd read function) and then compares it with the identifiers of multiple candidate BIOS packages using a third function (MemCmp function). When the first parameter value matches the identifier of the current candidate BIOS package, the first BIOS package to be used corresponding to the first parameter value is obtained, meaning the package corresponding to the identifier of the target BIOS package has been found. If the current package cannot be matched, the BIOS will continue to poll and compare the identifiers of the next candidate BIOS package until the corresponding first BIOS package to be used is found.

[0085] Step S13: Read the first identifier value of the first basic input / output system package to be used.

[0086] Read the first identifier value of the first BIOS package to be used. The first identifier value is used to identify whether the first BIOS package to be used has been modified by the user, that is, to confirm whether the option values ​​in the first BIOS package to be used have been modified by the user.

[0087] Furthermore, the method also includes:

[0088] The Basic Input / Output System (BIOS) is configured with a first identifier value. The initial value of the first identifier value is 0, which indicates that the BIOS option value in the BIOS package has not been modified by the user.

[0089] Read the first identifier value of the first basic input / output system package to be used, including:

[0090] The Basic Input / Output System reads the first identifier value through the fourth function. If the first identifier value is not 0, the Basic Input / Output System option value in the first Basic Input / Output System package to be used has been modified by the user.

[0091] When the first identifier value is 0, the basic input / output system option value in the first basic input / output system package to be used has not been modified by the user.

[0092] In the later stages of the driver execution environment phase, the BIOS configures a first flag (ReConfigflag) to indicate whether the BIOS option values ​​in the BIOS package have been modified by the user. The initial value of the first flag is 0, indicating that the BIOS option values ​​in the BIOS package have not been modified by the user. After determining the first BIOS package to be used, the BIOS reads the current first flag value through the fourth function (GetVariable function). If it is not 0, it means that the BIOS option values ​​in the first BIOS package to be used have been manually modified by the user. If it is 0, it means that the BIOS option values ​​in the first BIOS package to be used have not been manually modified by the user. By configuring the first flag value, it is helpful to prioritize the specific needs of the customer when configuring the BIOS package and loading the BIOS option values ​​requested by the customer, thereby improving the user experience.

[0093] Step S14: If the first identifier value indicates that the first basic input / output system package to be used has been modified by the user, load the basic input / output system package that has been modified by the user.

[0094] When the first identifier value indicates that the first BIOS package to be used has been modified by the user, the first identifier value read is not 0. Then, there is no need to configure the package. Just run the code according to the current configuration, that is, load the BIOS package that has been modified by the user and configure the package according to the customer's needs.

[0095] Furthermore, the method also includes:

[0096] If the first identifier value indicates that the first basic input / output system package to be used has not been modified by the user, then read the second identifier value of the first basic input / output system package to be used.

[0097] If the second identifier value indicates that the user has set a reserved configuration refresh for the first basic input / output system package to be used, then load the basic input / output system package that has been modified by the user.

[0098] If the second identifier value indicates that the user has not refreshed the settings of the first basic input / output system package to be used, then the first basic input / output system package to be used is loaded.

[0099] When the first identifier value indicates that the first BIOS package to be used has not been modified by the user, the first identifier value is read as 0. Then, the second identifier value of the first BIOS package to be used is read. The BIOS sets a second identifier (KeepBiosSettingFlag) to indicate whether the BIOS package is set to retain configuration refresh. Retaining configuration refresh means that after updating the BIOS version, the default value of the BIOS options remains unchanged. The default value of the second identifier value is 0. When the user has set retaining configuration refresh, the second identifier value is set to 1; otherwise, it is set to 0. When the second identifier value indicates that the user has set retaining configuration refresh for the first BIOS package to be used, i.e., the second identifier value is set to 1, and the BIOS package that has been modified by the user is loaded; when the second identifier value indicates that the user has not set retaining configuration refresh for the first BIOS package to be used, i.e., the second identifier value is set to 0, and the first BIOS package to be used is loaded.

[0100] When the second flag value is 1, the BIOS considers the current operation to be a configuration refresh that retains the existing configuration. This retains the existing configuration and prioritizes it over the current BIOS plan. Therefore, no further configuration of the BIOS plan is required; instead, the user-modified BIOS plan is loaded based on their manual changes. Configuring the second flag value helps prioritize the BIOS plan configuration according to the customer's specific needs, loading the requested BIOS options and thus improving the user experience.

[0101] Furthermore, the method further includes: when the first identifier value indicates that the first basic input / output system package to be used has been modified by the user, setting a product number with a non-zero value for the first basic input / output system package to be used;

[0102] Assign the product number to the first identifier value to indicate that the first available basic input / output system package does not need to be reconfigured when restarting the basic input / output system;

[0103] If the second identifier value indicates that the user has not refreshed the configuration settings for the first to-be-used Basic Input / Output System (BIOS) package, then the first to-be-used BIOS package is loaded, including:

[0104] Based on the product number value, load the basic input / output system option value of the first basic input / output system package to be used, and set the restart flag, which indicates that the basic input / output system needs to be restarted after the configuration is completed;

[0105] Modify the corresponding basic input / output system option based on the basic input / output system option value of the first basic input / output system package to be used;

[0106] The Basic Input / Output System (PIOS) writes the modified PIOS option values ​​to non-volatile memory through the fifth function, and modifies the values ​​of the central processing unit's underlying registers accordingly through the sixth function based on the modified PIOS option values.

[0107] Restart the Basic Input / Output System (PIS) using the seventh function to make the modified PIS options take effect.

[0108] When the first identifier value indicates that the first BIOS package to be used has not been modified by the user, a non-zero product number (ProduceID) is assigned to the first BIOS package to be used. The product number is assigned to the first identifier value to indicate that the machine cannot be reconfigured on the next restart, avoiding unnecessary configuration processes. When the second identifier value indicates that the user has not retained the configuration refresh for the first BIOS package to be used, i.e., the second identifier value is set to 0, the first BIOS package to be used is loaded. Specifically, based on the product number, a switch loop loads the BIOS option values ​​of the first BIOS package to be used, and sets the reset flag, indicating that a restart is required after configuration for these changes to take effect. The BIOS modifies all relevant BIOS options according to the loaded settings, which may include adjusting the system clock, memory settings, boot order, etc. After all options have been modified, the BIOS calls the fifth function (SetVariable function) to write the modified BIOS option values ​​to non-volatile memory so that these settings are retained after a restart. Based on the modified BIOS option values, the values ​​of the central processing unit's underlying registers are modified through the sixth function (APCB write function), and then the seventh function (ResetSystem function) is called to restart the BIOS to make the option modifications take effect. This does not involve a restart at the operating system level, thus avoiding impacting customer business operations.

[0109] When loading a user-modified BIOS package, the BIOS options are modified according to the user's changes, and the reset flag is set. The BIOS writes the modified BIOS option values ​​to non-volatile memory and modifies the corresponding values ​​in the CPU's underlying registers. Finally, the BIOS is restarted to make the modifications take effect.

[0110] This application, while retaining configuration updates, can adapt to multiple BIOS packages. It leverages the principle that BMC FRU information can be modified via IPMI commands and sets identifiers (such as the first identifier value) at each stage to distinguish different situations, achieving dynamic compatibility of a single BIOS version with different BIOS configurations. This satisfies the need for dynamic adaptation to multiple BIOS packages while retaining configuration updates, enhancing product competitiveness. It solves the problem of the enormous maintenance workload associated with a single BIOS version for a single package, avoiding wasted manpower and significant cost savings. It also resolves the dilemma of requiring a restart under the operating system when using a universal version with scripts, meeting customers' needs for avoiding unnecessary operating system restarts. Furthermore, it greatly reduces the workload of version release package maintenance, avoiding human error during package transmission. It is applicable to all AMD x86 architecture server products.

[0111] Reference Figure 2 , Figure 2 This is a flowchart illustrating the configuration steps of a package configuration method proposed in one embodiment of this application. Figure 2 As shown, the configuration process is as follows:

[0112] The system agrees to use the first parameter identifier package from the field replaceable unit information; it sends intelligent platform management interface commands based on the group index and project index to obtain the first parameter value; it loops 10 times to obtain the first parameter value from the field replaceable unit information of the baseboard management controller; if the first parameter value is not obtained, the baseboard management controller hangs and skips the function's continuation; if the first parameter value is obtained, it polls and compares the first parameter value with the customer package number (identifier of multiple candidate BIOS packages) to confirm the corresponding customer package (the first BIOS package to be used); if the corresponding customer package cannot be found, it skips the function's continuation; if the corresponding customer package is confirmed, the first parameter value and the customer package number are compared. In terms of package matching, the first identifier value is obtained to confirm whether the customer's package has been manually modified. If the first identifier value is not 0, the customer's package has been manually modified, and the function execution is skipped. If the first identifier value is 0, the customer's package has not been manually modified. A product number is set and assigned a non-zero value to represent this package. The product number value is assigned to the first identifier value, and a second identifier value is set to indicate whether the configuration refresh is retained. If the second identifier value is 1, the customer has set the configuration refresh to be retained, and the function execution is skipped. If the second identifier value is 0, the customer has not set the configuration refresh to be retained. Different basic input / output system option values ​​are loaded according to the product number, the corresponding function is called, and the machine is restarted to make the corresponding option modifications take effect.

[0113] Based on the same inventive concept, one embodiment of this application provides a package configuration device. Figure 3 This is a schematic diagram of the structure of a package configuration device provided in an embodiment of this application, as shown below. Figure 3 As shown, the device includes:

[0114] The acquisition module is used to acquire the identifiers of multiple candidate basic input / output system packages for a single basic input / output system version, wherein each candidate basic input / output system package is a set of basic input / output system option values ​​based on the single basic input / output system version;

[0115] The comparison module is used to compare the identifiers of multiple candidate basic input / output system packages with the identifier of the target package, and determine the first basic input / output system package to be used that matches the identifier of the target package from the multiple candidate basic input / output system packages;

[0116] The reading module is used to read the first identifier value of the first basic input / output system package to be used;

[0117] The loading module is used to load the modified basic input / output system package when the first identifier value indicates that the first basic input / output system package to be used has been modified by the user.

[0118] In one alternative embodiment, the device further includes:

[0119] The first processing module is configured to read the second identifier value of the first basic input / output system package to be used when the first identifier value indicates that the first basic input / output system package to be used has not been modified by the user;

[0120] If the second identifier value indicates that the user has set a reserved configuration refresh for the first basic input / output system package to be used, then load the basic input / output system package that has been modified by the user.

[0121] If the second identifier value indicates that the user has not refreshed the settings of the first basic input / output system package to be used, then the first basic input / output system package to be used is loaded.

[0122] In one alternative embodiment, the device further includes:

[0123] The second processing module is used to store multiple candidate basic input / output system packages in the single basic input / output system version, and to set the identifiers of the multiple candidate basic input / output system packages, wherein the identifiers of the multiple candidate basic input / output system packages correspond to different first parameter values;

[0124] Obtain the item index and group index of the target package;

[0125] Based on the project index and the group index, the basic input / output system sends an intelligent platform management interface command to the baseboard management controller to query the first parameter value in the field replaceable unit information.

[0126] The first function is called based on the first parameter value, and the first parameter value is written into the target storage location for storage.

[0127] In one alternative embodiment, the device further includes:

[0128] The third processing module is used to send the intelligent platform management interface command a preset number of times to poll the field replaceable unit information when the intelligent platform management interface command sent by the basic input / output system for the first time does not receive a response from the baseboard management controller, until the first parameter value is obtained from the baseboard management controller.

[0129] If the intelligent platform management interface command is sent a preset number of times and the first parameter value is not obtained, the default configuration is loaded.

[0130] In one optional implementation, the comparison module is specifically used for:

[0131] The basic input / output system reads the value of the first parameter from the target storage location through a second function;

[0132] The third function compares and matches the first parameter value with the identifiers of multiple candidate basic input / output system packages.

[0133] If the first parameter value matches the identifier of the current candidate basic input / output system package, the first basic input / output system package to be used corresponding to the first parameter value is obtained;

[0134] If the first parameter value does not match the identifier of the current candidate basic input / output system package, the identifier of the next candidate basic input / output system package is compared in a round-robin fashion until the first basic input / output system package to be used corresponding to the first parameter value is obtained.

[0135] In one alternative embodiment, the device further includes:

[0136] The fourth processing module is used to configure the first identifier value of the basic input / output system. The initial value of the first identifier value is 0, which indicates that the basic input / output system option value in the basic input / output system package has not been modified by the user.

[0137] Read the first identifier value of the first basic input / output system package to be used, including:

[0138] The Basic Input / Output System reads the first identifier value through the fourth function. If the first identifier value is not 0, the Basic Input / Output System option value in the first Basic Input / Output System package to be used has been modified by the user.

[0139] When the first identifier value is 0, the basic input / output system option value in the first basic input / output system package to be used has not been modified by the user.

[0140] In one alternative embodiment, the device further includes:

[0141] The fifth processing module is used to set a product number that is not 0 for the first basic input / output system package to be used when the first identifier value indicates that the first basic input / output system package to be used has been modified by the user.

[0142] Assign the product number to the first identifier value to indicate that the first available basic input / output system package does not need to be reconfigured when restarting the basic input / output system;

[0143] If the second identifier value indicates that the user has not refreshed the configuration settings for the first to-be-used Basic Input / Output System (BIOS) package, then the first to-be-used BIOS package is loaded, including:

[0144] Based on the product number value, load the basic input / output system option value of the first basic input / output system package to be used, and set the restart flag, which indicates that the basic input / output system needs to be restarted after the configuration is completed;

[0145] Modify the corresponding basic input / output system option based on the basic input / output system option value of the first basic input / output system package to be used;

[0146] The Basic Input / Output System (PIOS) writes the modified PIOS option values ​​to non-volatile memory through the fifth function, and modifies the values ​​of the central processing unit's underlying registers accordingly through the sixth function based on the modified PIOS option values.

[0147] Restart the Basic Input / Output System (PIS) using the seventh function to make the modified PIS options take effect.

[0148] Based on the same inventive concept, one embodiment of this application provides an electronic device, referring to... Figure 4 , Figure 4 This is a schematic diagram illustrating an electronic device according to an embodiment of this application. For example... Figure 4 As shown, the electronic device 100 includes a memory 110 and a processor 120. The memory 110 and the processor 120 are connected via a bus for communication. The memory 110 stores a computer program that can run on the processor 120 to implement the steps in the package configuration method of this disclosure embodiment.

[0149] Based on the same inventive concept, this disclosure also provides a computer-readable storage medium, which, when the instructions in the computer-readable storage medium are executed by the processor of a computer device, enables the computer device to perform the steps in the package configuration method described in any of the above embodiments of this application.

[0150] The various embodiments in this specification are described in a progressive manner, with each embodiment focusing on the differences from other embodiments. The same or similar parts between the various embodiments can be referred to each other.

[0151] Those skilled in the art will understand that embodiments of this application can be provided as methods, apparatus, or computer program products. Therefore, embodiments of this application can take the form of entirely hardware embodiments, entirely software embodiments, or embodiments combining software and hardware aspects. Furthermore, embodiments of this application can take the form of computer program products implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.

[0152] This application describes embodiments with reference to flowchart illustrations and / or block diagrams of methods, terminal devices (systems), and computer program products according to embodiments of this application. It should be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing terminal device to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing terminal device, generate instructions for implementing the flowchart illustrations. Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.

[0153] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing terminal device to operate in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more processes and / or boxes Figure 1 The function specified in one or more boxes.

[0154] These computer program instructions can also be loaded onto a computer or other programmable data processing terminal equipment, causing a series of operational steps to be performed on the computer or other programmable terminal equipment to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable terminal equipment for implementing the process. Figure 1One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.

[0155] Although preferred embodiments of the present application have been described, those skilled in the art, upon learning the basic inventive concept, can make other changes and modifications to these embodiments. Therefore, the appended claims are intended to be interpreted as including the preferred embodiments as well as all changes and modifications falling within the scope of the embodiments of the present application.

[0156] Finally, it should be noted that in this document, relational terms such as "first" and "second" are used only to distinguish one entity or operation from another, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Furthermore, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or terminal device that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or terminal device. Without further limitations, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or terminal device that includes said element.

[0157] The above provides a detailed description of a package configuration method, apparatus, device, and storage medium provided in this application. Specific examples have been used to illustrate the principles and implementation methods of this application. The description of the above embodiments is only for the purpose of helping to understand the method and core ideas of this application. At the same time, for those skilled in the art, there will be changes in the specific implementation methods and application scope based on the ideas of this application. Therefore, the content of this specification should not be construed as a limitation of this application.

Claims

1. A method for configuring a service package, characterized in that, include: Obtain the identifiers of multiple candidate basic input / output system packages for a single basic input / output system version, where each candidate basic input / output system package is a set of basic input / output system option values ​​based on the single basic input / output system version; The identifiers of multiple candidate basic input / output system packages are compared with the identifier of the target package, and a first basic input / output system package to be used that matches the identifier of the target package is determined from the multiple candidate basic input / output system packages; Read the first identifier value of the first basic input / output system package to be used; If the first identifier value indicates that the first basic input / output system package to be used has been modified by the user, load the basic input / output system package that has been modified by the user. If the first identifier value indicates that the first basic input / output system package to be used has not been modified by the user, then read the second identifier value of the first basic input / output system package to be used. If the second identifier value indicates that the user has set a reserved configuration refresh for the first basic input / output system package to be used, then load the basic input / output system package that has been modified by the user. If the second identifier value indicates that the user has not refreshed the settings of the first basic input / output system package to be used, then the first basic input / output system package to be used is loaded.

2. The package configuration method according to claim 1, characterized in that, Also includes: The single basic input / output system version stores multiple candidate basic input / output system packages and sets an identifier for each of the multiple candidate basic input / output system packages. The identifiers of the multiple candidate basic input / output system packages correspond to different first parameter values. Obtain the item index and group index of the target package; Based on the project index and the group index, the basic input / output system sends an intelligent platform management interface command to the baseboard management controller to query the first parameter value in the field replaceable unit information. The first function is called based on the first parameter value, and the first parameter value is written into the target storage location for storage.

3. The package configuration method according to claim 2, characterized in that, Also includes: If the intelligent platform management interface command sent by the basic input / output system for the first time does not receive a response from the baseboard management controller, the intelligent platform management interface command is sent a preset number of times to poll the field replaceable unit information until the first parameter value is obtained from the baseboard management controller. If the intelligent platform management interface command is sent a preset number of times and the first parameter value is not obtained, the default configuration is loaded.

4. The package configuration method according to claim 2, characterized in that, The step of comparing the identifiers of multiple candidate basic input / output system packages with the identifier of a target candidate package, and determining the first basic input / output system package to be used that matches the identifier of the target candidate package from the multiple candidate basic input / output system packages, includes: The basic input / output system reads the value of the first parameter from the target storage location through a second function; The third function compares and matches the first parameter value with the identifiers of multiple candidate basic input / output system packages. If the first parameter value matches the identifier of the current candidate basic input / output system package, the first basic input / output system package to be used corresponding to the first parameter value is obtained; If the first parameter value does not match the identifier of the current candidate basic input / output system package, the identifier of the next candidate basic input / output system package is compared in a round-robin fashion until the first basic input / output system package to be used corresponding to the first parameter value is obtained.

5. The package configuration method according to claim 1, characterized in that, Also includes: The Basic Input / Output System (BIOS) is configured with a first identifier value. The initial value of the first identifier value is 0, which indicates that the BIOS option value in the BIOS package has not been modified by the user. Read the first identifier value of the first basic input / output system package to be used, including: The Basic Input / Output System reads the first identifier value through the fourth function. If the first identifier value is not 0, the Basic Input / Output System option value in the first Basic Input / Output System package to be used has been modified by the user. When the first identifier value is 0, the basic input / output system option value in the first basic input / output system package to be used has not been modified by the user.

6. The package configuration method according to claim 1, characterized in that, Also includes: If the first identifier value indicates that the first basic input / output system package to be used has been modified by the user, a product number with a non-zero value is set for the first basic input / output system package to be used. Assign the product number to the first identifier value to indicate that the first available basic input / output system package does not need to be reconfigured when restarting the basic input / output system; If the second identifier value indicates that the user has not refreshed the configuration settings for the first to-be-used Basic Input / Output System (BIOS) package, then the first to-be-used BIOS package is loaded, including: Based on the product number value, load the basic input / output system option value of the first basic input / output system package to be used, and set the restart flag, which indicates that the basic input / output system needs to be restarted after the configuration is completed; Modify the corresponding basic input / output system option based on the basic input / output system option value of the first basic input / output system package to be used; The Basic Input / Output System (PIOS) writes the modified PIOS option values ​​to non-volatile memory through the fifth function, and modifies the values ​​of the central processing unit's underlying registers accordingly through the sixth function based on the modified PIOS option values. Restart the Basic Input / Output System (PIS) using the seventh function to make the modified PIS options take effect.

7. A package configuration device, characterized in that, include: The acquisition module is used to acquire the identifiers of multiple candidate basic input / output system packages for a single basic input / output system version, wherein each candidate basic input / output system package is a set of basic input / output system option values ​​based on the single basic input / output system version; The comparison module is used to compare the identifiers of multiple candidate basic input / output system packages with the identifier of the target package, and determine the first basic input / output system package to be used that matches the identifier of the target package from the multiple candidate basic input / output system packages; The reading module is used to read the first identifier value of the first basic input / output system package to be used; The loading module is used to load the modified basic input / output system package when the first identifier value indicates that the first basic input / output system package to be used has been modified by the user. The first processing module is configured to read the second identifier value of the first basic input / output system package to be used when the first identifier value indicates that the first basic input / output system package to be used has not been modified by the user; If the second identifier value indicates that the user has set a reserved configuration refresh for the first basic input / output system package to be used, then load the basic input / output system package that has been modified by the user. If the second identifier value indicates that the user has not refreshed the settings of the first basic input / output system package to be used, then the first basic input / output system package to be used is loaded.

8. An electronic device, characterized in that, include: A processor, a memory, and a computer program stored in the memory and executable on the processor, wherein the processor, when executing the computer program, implements the package configuration method of any one of claims 1 to 6.

9. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program that, when executed by a processor, implements the package configuration method according to any one of claims 1 to 6.

Citation Information

Patent Citations

  • Basic input / output system (BIOS) option modification effective method and device and storage medium

    CN115495161A

  • Parameter configuration method and apparatus for basic input output system, and device and medium

    WO2023093146A1