Firmware option search method, apparatus and device, and program product

By responding to search instructions in the BIOS setting interface and searching for matching target options in the first file, outputting target options and their path information, the problem that customers find it difficult to quickly find the required configuration items when configuring function items, and efficient function search and positioning are achieved.

CN119938152APending Publication Date: 2025-05-06LENOVO (BEIJING) LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411959606.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-12-27
Publication Date
2025-05-06

AI Technical Summary

Technical Problem

The existing BIOS options are complex and different models, making it difficult for customers to quickly and efficiently find the required functional configuration items when configuring them.

Method used

By responding to the search command in the setting interface of the firmware, the target information to be searched is obtained, and the target option matching the target information is searched in the first file, and the target option and its corresponding path information are output. The first file records the identification information of each option and the affiliation between the options, and establishes and loads into memory during the boot boot stage of the electronic device.

Benefits of technology

It realizes the fast and efficient search and positioning of functional configuration items required by customers in the BIOS setting page, improving the efficiency and convenience of user operations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119938152A_ABST
    Figure CN119938152A_ABST
Patent Text Reader

Abstract

The invention discloses a firmware option searching method and device, equipment and a program product, and the method comprises the steps: entering a firmware setting interface, and obtaining to-be-searched target information in response to a searching instruction; at least one target option matched with the target information is searched in a first file on the basis of the target information, the first file is used for recording identification information of each option and the subordination relation between the options, and the first file is established in the starting guide stage of the electronic equipment where the firmware is installed. Loading the data to a memory of the electronic equipment; and outputting at least one target option and path information corresponding to each target option.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The embodiments of the present application relate to the field of electronic technology, and relate to but are not limited to a firmware option search method, device, equipment, and program product. Background Art

[0002] The current Basic Input / Output System (BIOS) options are complex and numerous, and there may be differences between models, which makes it difficult for customers to find functions. Currently, when customers need to configure function items, they can only manually check the Basic Input / Output System settings page, or check the product manual, and then find the corresponding function items. This operation is time-consuming and inconvenient. How to quickly and efficiently find the location of the function configuration items required by customers on the configuration page has become a technical problem that needs to be solved urgently. Summary of the invention

[0003] In view of this, embodiments of the present application provide a firmware option search method, apparatus, device, and program product.

[0004] The technical solution of the embodiment of the present application is implemented as follows:

[0005] In a first aspect, an embodiment of the present application provides a method for searching for firmware options, comprising:

[0006] Enter the firmware setting interface, and obtain the target information to be searched in response to the search instruction;

[0007] Based on the target information, searching the first file for at least one target option matching the target information, wherein the first file is used to record identification information of each option and a subordinate relationship between the options, and the first file is established during the booting phase of the electronic device installing the firmware, and loaded into the memory of the electronic device;

[0008] Output at least one target option and path information corresponding to each target option.

[0009] In a second aspect, an embodiment of the present application provides a firmware option search device, including:

[0010] An acquisition module, used for entering the setting interface of the firmware and acquiring target information to be searched in response to a search instruction;

[0011] A matching module, used for searching at least one target option matching the target information in a first file based on the target information, wherein the first file is used for recording identification information of each option and a subordinate relationship between the options, and the first file is established during a booting phase of an electronic device installing firmware, and loaded into a memory of the electronic device;

[0012] The first output module is used to output at least one target option and path information corresponding to each target option.

[0013] In a third aspect, an embodiment of the present application provides an electronic device, comprising a memory and a processor, the memory storing a computer program that can be run on the processor, and the processor entering the firmware setting interface when executing the program, and obtaining the target information to be searched in response to the search instruction; based on the target information, searching for at least one target option matching the target information in a first file, wherein the first file is used to record the identification information of each option and the subordinate relationship between the options, and the first file is established during the startup boot phase of the electronic device where the firmware is installed, and loaded into the memory of the electronic device; outputting at least one target option and the corresponding path information of each target option.

[0014] In a fourth aspect, an embodiment of the present application provides a storage medium storing executable instructions, which are used for entering a firmware setting interface when a processor executes the instructions, and obtaining target information to be searched in response to a search instruction; searching a first file for at least one target option that matches the target information based on the target information, wherein the first file is used to record identification information of each option and a subordinate relationship between options, and the first file is established during the boot phase of an electronic device that installs firmware, and loaded into the memory of the electronic device; and outputting at least one target option and path information corresponding to each target option.

[0015] In a fifth aspect, a computer program product includes a computer program or instructions. When the computer program or instructions are executed by a processor, it realizes entering the setting interface of the firmware, and obtains the target information to be searched in response to the search instruction; based on the target information, searches for at least one target option matching the target information in a first file, wherein the first file is used to record the identification information of each option and the subordinate relationship between the options, and the first file is established during the startup boot phase of the electronic device where the firmware is installed, and loaded into the memory of the electronic device; outputs at least one target option and the corresponding path information of each target option. BRIEF DESCRIPTION OF THE DRAWINGS

[0016] Figure 1A A schematic diagram of an implementation flow of a firmware option search method provided in an embodiment of the present application;

[0017] Figure 1B A schematic diagram of a firmware setting interface provided in an embodiment of the present application;

[0018] Figure 1C A schematic diagram of an output target option provided in an embodiment of the present application;

[0019] Figure 1D A schematic diagram of a paginated output target option provided in an embodiment of the present application;

[0020] Figure 2 A schematic diagram of an implementation flow of installing a first file provided in an embodiment of the present application;

[0021] Figure 3 A schematic diagram of an implementation flow of a firmware option search method provided in an embodiment of the present application;

[0022] Figure 4A A schematic diagram of an implementation flow of a function search method provided in an embodiment of the present application;

[0023] Figure 4B A schematic diagram of the structure of a linked list N-ary tree structure provided in an embodiment of the present application;

[0024] Figure 5 A schematic diagram of the structure of a firmware option search device provided in an embodiment of the present application;

[0025] Figure 6 A hardware entity schematic diagram of an electronic device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0026] In order to make the purpose, technical solution and advantages of the embodiments of the present application clearer, the specific technical solution of the embodiments of the present application will be further described in detail below in conjunction with the drawings in the embodiments of the present application. The following embodiments are used to illustrate the present application, but are not used to limit the scope of the present application.

[0027] In the following description, reference is made to “some embodiments”, which describe a subset of all possible embodiments, but it will be understood that “some embodiments” may be the same subset or different subsets of all possible embodiments and may be combined with each other without conflict.

[0028] In the following description, the terms "first\second\third" involved are merely used to distinguish similar objects and do not represent a specific ordering of the objects. It can be understood that "first\second\third" can be interchanged with a specific order or sequence where permitted, so that the embodiments of the present application described herein can be implemented in an order other than that illustrated or described herein.

[0029] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as those commonly understood by those skilled in the art to which this application belongs. The terms used herein are only for the purpose of describing the embodiments of this application and are not intended to limit this application.

[0030] The embodiment of the present application provides a method for searching for firmware options, such as Figure 1A As shown, the method includes:

[0031] Step S110, entering the setting interface of the firmware, and obtaining the target information to be searched in response to the search instruction;

[0032] Here, the firmware setting interface is the setting interface for users to configure and optimize hardware devices, also known as the Basic Input Output System (BIOS) or Unified Extensible Firmware Interface (UEFI) setting interface, which is a configuration interface provided by computers or other hardware electronic devices when they are started. Through this interface, various parameters of the hardware device can be configured to ensure that the device can run normally and efficiently.

[0033] During the startup process of the electronic device, in response to triggering a specific key (such as Del, F2, F10 or F12, etc.), the firmware setting interface can be entered.

[0034] The search instruction may be a search instruction generated based on one or more keywords entered by a user in a search box of a search engine.

[0035] During implementation, when the user triggers the generation of a search instruction, the target information to be searched can be obtained based on the search instruction. For example, it can be a keyword input by the user, which describes the firmware setting information that the user wants to find or match based on the keyword.

[0036] For example, Figure 1B A schematic diagram of a firmware setting interface provided in an embodiment of the present application, such as Figure 1B As shown, the schematic diagram includes a search box 11. In the implementation process, the user can input the target information to be searched, such as "MMIOH", in the search box 11, so that the electronic device obtains the target information to be searched in response to the search instruction.

[0037] Step S120: searching a first file for at least one target option matching the target information based on the target information, wherein the first file is used to record identification information of each option and a subordinate relationship between the options, and the first file is established during a booting phase of the electronic device on which the firmware is installed, and loaded into a memory of the electronic device;

[0038] Here, the first file may be a pre-set file, and the first file may be used to describe and manage the options and the subordinate relationships between them. The first file may record the identification information (such as ID, name, etc.) of each option and the hierarchy or logical relationship between these options.

[0039] In some embodiments, the first file can be designed as a file of a linked list N-ary tree structure. Among them, the N-ary tree (N-aryTree) is a tree data structure, in which each node can have at most N child nodes. The N-ary tree can be represented by a variety of methods, including linked list representation, array representation, etc. Among them, the linked list representation is a commonly used method. Each node of the linked list representation contains a data field and a pointer array (or linked list) pointing to its child nodes. The data field stores the value of the node. The pointer array (or linked list) stores pointers to the child nodes.

[0040] During the startup process of electronic devices (such as computers, smartphones, tablets, etc.), the firmware (also known as BIOS or UEFI) is responsible for initializing hardware devices, loading the operating system, and other tasks. The boot phase refers to the entire process from the time the electronic device is powered on to the time the operating system starts running.

[0041] During the implementation process, the first file is established during the booting phase of the electronic device where the firmware is installed, and loaded into the memory of the electronic device. That is, when the electronic device enters the self-test phase of the booting phase, also known as the Power-On Self-Test (POST) phase, the establishment of the first file is completed, and the first file is loaded into the memory of the electronic device. The access speed of the memory (such as RAM) is fast. Loading the first file into the memory can significantly improve the speed and responsiveness of the electronic device to match at least one target option for the target information.

[0042] Step S130: output at least one of the target options and path information corresponding to each of the target options.

[0043] During implementation, the searched target options and corresponding path information can be displayed on the firmware setting interface. For example, Figure 1C A schematic diagram of an output target option provided in an embodiment of the present application, such as Figure 1C As shown, the schematic diagram includes a path information box 12 for outputting target options, in which two matching target options are displayed, corresponding to the path information "System Settings->Devices and I / O Ports->MMIOH Base" and "SystemSettings->Devices and I / O Ports->MMIOH Granularity Size" respectively.

[0044] In an embodiment of the present application, first, in the setting interface of the firmware, it is possible to obtain the target information to be searched by the user. Then, based on the target information, at least one target option matching the target information is searched in the first file, and finally at least one target option and the corresponding path information of each target option are output. Among them, the first file is created during the booting phase of the electronic device that installs the firmware, and loaded into the memory of the electronic device. In this way, since the first file is loaded into the memory during the booting phase of the electronic device, the efficiency of reading the first file can be effectively improved, and the target option matching the target information can be efficiently searched.

[0045] In some embodiments, the above step S130 "outputting at least one of the target options and the path information corresponding to each of the target options" can be implemented by the following steps:

[0046] Step 131: Determine whether the number of the target options is greater than a number threshold;

[0047] In the implementation process, the quantity threshold may be determined based on the ability to output matching items, or may be determined based on user needs. For example, if the user needs to display one target option each time, the quantity threshold may be set to 1.

[0048] Step 132: Output at least one of the target options and path information corresponding to each of the target options in pages based on the quantity threshold.

[0049] During implementation, if there are multiple target options matching the target information, the multiple target options may be displayed in pages.

[0050] For example, Figure 1D A schematic diagram of a paging output target option provided in an embodiment of the present application, such as Figure 1D As shown, the schematic diagram includes a path information box 13 output in pages, in which a matching target option corresponding path information is displayed as follows:

[0051] “-> / ->System Information->System

[0052] Summary->Global MMIO Low Base”

[0053] At the same time, a "Next" button is also set in the path information box. When the user triggers the "Next" button, the path information corresponding to the next matching target option can be displayed. A "Cancel" button is also set in the path information box. When the user triggers the "Cancel" button, the previous operation or selection can be canceled.

[0054] In the embodiment of the present application, at least one target option and the path information corresponding to each target option can be output in pages. In this way, when the number of matched target options is greater than the quantity threshold, different target options can be flexibly presented to the user on each page.

[0055] In some embodiments, in the above step S120, “the first file is created during the booting phase of the electronic device installing the firmware” Figure 2 As shown, this can be achieved by following the steps below:

[0056] Step S210: reading a second file from a flash memory of the electronic device during a self-checking phase of booting the electronic device, wherein the second file is used to record identification information of each of the options and a subordinate relationship between the options in a lightweight data exchange format;

[0057] Here, lightweight data exchange formats simplify the transmission and processing of data between different systems and programming languages, including JavaScript Object Notation (JSON), eXtensible Markup Language (XML), Comma-Separated Values ​​(CSV), YAML Ain't Markup Language (YAML), etc.

[0058] For example, the second file can be pre-set as a JSON file, which includes BIOS setting items (function names) and their corresponding setting values, and the JSON file is pre-stored in the flash memory (Flash ROM) of the electronic device.

[0059] Here, the BIOS program and some other option ROMs can be stored in the flash memory of the BIOS, and there is some free space in the flash memory. In the implementation process, an area can be demarcated in the flash memory to store the second file, i.e., the BIOS SETUP function names and the subordinate relationships between the functions.

[0060] For example, it has been determined that if all the currently displayable settings are stored in the format of JSON files, the space occupied is less than 100 kilobytes (KB), and the Flash ROM has enough space to store these data. The above data are stored in JSON format files, which occupy little space and are suitable for expressing the tree structure of BIOS SETUP options.

[0061] In the implementation, the POST phase reads the JSON file from the Flash ROM.

[0062] Here is an example of function item storage:

[0063] "name":"FRB-2Timer Policy",

[0064] "options": ["Do Nothing", "Reset", "Power Down", "Power Cycle"]

[0065] The Name field is the name of the function item, and options is the optional value of the function item. There are multiple values, and writing them together can save Flash space. The name field is usually used to store the name or identifier of the entity. In a database table, the name field may represent the unique name or descriptive name of a record. The options field is used to store optional configurations or settings related to the entity. In a database table, the options field may be a JSON object or string to store complex configuration information.

[0066] Step S220: parse the second file to create the first file of the linked list N-ary tree structure in the memory based on the subordinate relationship.

[0067] During the implementation process, the second file (JSON format file) stored in the flash memory can be parsed, a section of memory can be opened up, and a linked list N-ary tree structure can be established in the memory for the BIOS setting items. Among them, the N-ary tree (N-ary Tree) is a tree data structure, in which each node can have at most N child nodes. The N-ary tree can be represented in a variety of ways, including linked list representation, array representation, etc. Among them, the linked list representation is a commonly used method. Each node in the linked list representation contains a data field and a pointer array (or linked list) pointing to its child nodes. The data field stores the value of the node. The pointer array (or linked list) stores pointers to child nodes.

[0068] Here, the loading of BIOS setup items is implemented during the power-on self-test phase. Since there are many BIOS SETUP callback functions, the JSON file can be loaded into the memory during the power-on self-test phase and organized into an N-ary tree linked list tree structure for storage.

[0069] In an embodiment of the present application, a second file is read from the flash memory of the electronic device during the self-test phase of the electronic device booting, wherein the second file is used to record the identification information of each option and the subordinate relationship between the options in a lightweight data exchange format; the second file is parsed to establish a first file of a linked list N-ary tree structure in the memory based on the subordinate relationship. In this way, the second file is loaded into the memory during the power-on self-test phase and organized into an N-ary tree linked list tree structure for storage. Due to the characteristics of the N-ary tree linked list tree structure being flexible, memory efficient, easy to operate, and supporting multiple traversal methods, establishing a first file of a linked list N-ary tree structure in the memory can further improve the efficiency of reading the first file and reduce the delay during the power-on self-test phase.

[0070] In some embodiments, the above firmware option search method, such as Figure 3 As shown, it can also be achieved by the following steps:

[0071] Step S310, parsing the firmware information in the newly added firmware corresponding information storage chip on the plug-in card and / or the system board to obtain the dynamic function item corresponding to the newly added firmware and the path information of the dynamic function item;

[0072] Here, plug-in card and system board are two components of electronic equipment hardware. Among them, plug-in card, also known as expansion card or adapter card, is a hardware device that can be inserted into the slot on the motherboard of an electronic device. The main function is to expand the function of the computer or improve the performance of the computer. Plug-in cards include: graphics card, network card, sound card, storage controller card, etc. The system board, also known as the motherboard or motherboard, connects all the main components of the electronic device, including the processor (CPU), memory (RAM), storage device, input / output device, etc. The system board provides a unified platform so that these components can work together. The main functions of the system board include: processor slot, which is used to install the processor, responsible for executing program instructions and processing data. Memory slot, which is used to install memory sticks, storing data and instructions that the processor needs to access when executing programs. Expansion slots, such as PCI, PCIe, USB, etc., are used to insert various plug-in cards to expand the function of the computer. Plug-in cards are connected to the system board by inserting them into the expansion slots on the system board, thereby expanding the function of the electronic device or improving the performance. The system board provides a unified platform so that these plug-in cards can work together with other components.

[0073] During the implementation process, the firmware information of the newly added firmware on the plug-in card and / or system board is stored in the corresponding information storage chip (such as PCIE OPTION ROM). The dynamic function items and path information of the dynamic function items corresponding to the newly added firmware can be obtained by parsing the firmware information in the information storage chip.

[0074] For example, the options dynamically generated by the PCIE OPTION ROM in the BIOS can be parsed, that is, the options dynamically generated according to the different external cards plugged into the system. Among them, the PCIE OPTION ROM, also known as the PCI Option ROM or PCI Expansion ROM, is a read-only memory located on the PCI or PCIE device, which is used for device initialization and system startup. The read-only memory is used to store data and code for initializing the device, and these codes are called by the BIOS or UEFI when the system starts. PCIE OPTION ROM is widely used in various PCI or PCIE devices, such as graphics cards, network cards, disk arrays (Redundant Arrays of Independent Disks, RAID) controllers, etc. These devices are usually initialized at system startup to ensure their normal operation.

[0075] Step S320: determining a target dynamic function item that matches the target information;

[0076] During the implementation process, when it is determined that there is no target option matching the target information in the first file, it can be determined whether the target information matches the dynamic function item corresponding to the dynamically generated new firmware and the path information of the dynamic function item, so as to determine the target dynamic function item matching the target information.

[0077] Step S330: output at least one of the target dynamic function items and path information of each of the target dynamic function items.

[0078] During the implementation process, the target dynamic function item and the corresponding path information can be displayed on the firmware setting interface.

[0079] In the embodiment of the present application, the firmware information in the newly added firmware corresponding information storage chip on the plug-in card and / or the system board can be parsed to obtain the dynamic function items and path information of the dynamic function items corresponding to the newly added firmware; to further determine the target dynamic function items that match the target information; and to output at least one target dynamic function item and path information of each target dynamic function item. In this way, the dynamically generated items can also be parsed and matched during the search, and the matching items can be output, which effectively increases the search range and improves the accuracy of the search.

[0080] In some embodiments, the target information includes function item information or any setting information corresponding to the function item, and the first file is further used to record all setting information corresponding to each of the options;

[0081] In the above step S120, “searching the first file for at least one target option matching the target information based on the target information” can be implemented by one of the following steps:

[0082] Step 121: Based on the function item information, search the first file for at least one target option that matches the function item information;

[0083] Here, the function item information refers to the name of the function to be set, that is, "name". For example, "Powermode", that is, power mode, is the name of the function, and the function item can be set to 5 setting values, namely "Performance", "Efficiency-Favor Performance", "Efficiency-Favor Power", "Saving" and "Custom".

[0084] In the implementation process, at least one target option may be searched based on function item information similar to "Power mode". That is, if the user searches for the keyword "Power mode", the search result may be returned, and the returned result is the path of the "Power mode" function item.

[0085] or,

[0086] Step 122: Based on any setting information corresponding to the function item, search the first file for at least one target option that matches any setting information corresponding to the function item.

[0087] Here, the setting information is the information that can be set for the function item, that is, "options". For example, based on "Power mode", the corresponding five setting values ​​"Performance", "Efficiency-Favor Performance", "Efficiency-Favor Power", "Saving" and "Custom", at least one target option can be searched.

[0088] If the user searches for the keyword "Performance", the search results can also be returned, and the path returned is the path of the "Powermode" function item.

[0089] In the implementation process, the above step 121 and step 122 are two directions of the search. If there is a step that completes the match, the complete path of the node can be returned and displayed in the setting interface to provide a reference for the user.

[0090] In the embodiment of the present application, based on the function item information, at least one target option matching the function item information is searched in the first file; or, based on any setting information corresponding to the function item, at least one target option matching any setting information corresponding to the function item is searched in the first file. In this way, it is possible to search not only the function item but also the setting value of the function item during the search process, providing a larger search range and effectively improving the probability and accuracy of search matching.

[0091] In some embodiments, the above firmware option search further includes the following steps:

[0092] Step S140, pre-setting a search hot key;

[0093] Correspondingly, the above step S110 "obtaining the target information to be searched in response to the search instruction" can be implemented by the following steps:

[0094] Step 111: In response to the user triggering the search hotkey, a search input window is displayed on the setting interface;

[0095] During implementation, no matter which BIOS stage setting page is currently in, a hot key, such as CTRL+F3, can be used to trigger the display of a search input window, in which the user can enter a string or part of a string to be searched.

[0096] Step 112: Determine the information input by the user in the search input window as the target information to be searched.

[0097] In the embodiment of the present application, in response to the user triggering the search hotkey, a search input window is displayed in the setting interface; the information input by the user in the search input window is determined as the target information to be searched. In this way, triggering the search hotkey provides the user with a more convenient way to trigger the search.

[0098] In some embodiments, the above firmware option search further includes the following steps:

[0099] Step S150: In response to clicking on the path information corresponding to the target option, jump to the setting interface corresponding to the target option.

[0100] During implementation, a hyperlink may be provided for the path information so that the user can click on the path information to jump to the setting interface of the target option.

[0101] In the embodiment of the present application, in response to clicking on the path information corresponding to the target option, the user is redirected to the setting interface corresponding to the target option. In this way, a more efficient method for providing a user with access to the setting interface can be provided.

[0102] Figure 4AA flowchart of a function search method is provided for an embodiment of the present application, such as Figure 4A As shown, this can be achieved by following the steps below:

[0103] Step S401, adding a JSON file including BIOS setup options to a flash memory;

[0104] Here, the BIOS program and some other option ROMs can be stored in the flash memory (Flash ROM) of the BIOS, and there is some free space in the flash memory. In the implementation process, an area can be demarcated in the flash memory to store the function names of the BIOS setting items and the subordinate relationships between the functions.

[0105] Option ROM (OpROM) is the firmware that is run by the BIOS of an electronic device during the platform initialization of the electronic device. It is a read-only memory (ROM) chip that is fixed to the motherboard of the electronic device. The chip stores the information and drivers of each hardware device set in the electronic device. At startup, the electronic device detects all the hardware devices set in the electronic device and then runs the corresponding OpROM. It ensures that all the hardware in the computer system can operate normally.

[0106] During the implementation process, a JSON file may be pre-set, wherein the JSON file includes BIOS setting items (function names) and their corresponding setting values, and the JSON file may be pre-stored in a flash memory of the electronic device.

[0107] For example, it has been determined that if all the currently displayable settings are stored in the format of JSON files, the space occupied is less than 100 kilobytes (KB), and the Flash ROM has enough space to store these data. The above data is stored in JSON format files, which takes up little space and is suitable for expressing the tree structure of BIOS setting options.

[0108] Step S402, the system is turned on;

[0109] Here, the electronic device can obtain the power-on command triggered by the user and enter the self-test phase of the boot boot, also known as the Power-On Self-Test (POST) phase. In this phase, the basic input and output system boot code begins to perform self-tests to detect whether some key components set on the electronic device exist and whether they can work normally, such as memory, graphics card, and processor.

[0110] Step S403: Read the JSON file from the flash memory;

[0111] In the implementation, the POST phase reads the JSON file from the Flash ROM.

[0112] Here is an example of function item storage:

[0113] "name":"FRB-2Timer Policy",

[0114] "options": ["Do Nothing", "Reset", "Power Down", "Power Cycle"]

[0115] The Name field is the name of the function item, and options is the optional value of the function item. There are multiple values, and writing them together can save Flash space. The name field is usually used to store the name or identifier of the entity. In a database table, the name field may represent the unique name or descriptive name of a record. The options field is used to store optional configurations or settings related to the entity. In a database table, the options field may be a JSON object or string to store complex configuration information.

[0116] Step S404, establishing an N-ary tree structure of data in the memory;

[0117] During the implementation process, the JSON format file stored in the flash memory can be parsed, a section of memory can be allocated, and a linked list N-ary tree structure can be established in the memory for the BIOS setting items. Among them, the N-ary tree is a tree data structure, in which each node can have up to N child nodes. The N-ary tree can be represented in a variety of ways, including linked list representation, array representation, etc. Among them, the linked list representation is a commonly used method. Each node in the linked list representation contains a data field and a pointer array (or linked list) pointing to its child nodes. The data field stores the value of the node. The pointer array (or linked list) stores pointers to child nodes.

[0118] Here, the loading of BIOS setup items is implemented during the power-on self-test phase. Since there are many BIOS SETUP callback functions, you can choose to load the JSON file into the memory during the power-on self-test phase and organize it into an N-tree linked list tree structure for storage. In this way, the BIOS SETUP will not cause slow response, and the impact on the power-on self-test phase delay can be ignored. Among them, BIOS SETUP refers to the BIOS setup interface. Users can enter this interface by pressing specific keys (such as Del, F2, Esc, etc.) when the computer starts to adjust various hardware settings and system configurations. Callback functions are usually used for functions that are called after an event or operation is completed.

[0119] For example, Figure 4B A schematic diagram of a linked list N-ary tree structure provided in an embodiment of the present application is shown in FIG. Figure 4B As shown, the structural diagram includes:

[0120] The first level node (root node) 41, System Configuration and Boot Management, is an important part of the basic input and output system, allowing users to configure and manage the boot settings of electronic devices, including system configuration and boot management.

[0121] Among them, system configuration includes a series of settings that are used to define the behavior of electronic devices when they are started and running. These settings can include: Hardware settings: for example, configuring the parameters of hardware devices such as memory, hard disk, graphics card, etc. Security settings: such as setting passwords, enabling or disabling specific security features (such as Secure Boot). Power management: configuring power management options for electronic devices, such as wake-up timers, energy-saving modes, etc. Other settings: may include network configuration, date and time settings, etc.

[0122] Boot management is a key part of system configuration, allowing users to configure the boot order and boot options of electronic devices, including: Boot order: You can set the boot order of electronic devices, for example, boot from a hard disk, CD / DVD drive, USB device, or other bootable device. Boot options: You can add, delete, or modify boot options to select a specific operating system or recovery environment at boot time. UEFI / BIOS mode: You can choose to use the Unified Extensible Firmware Interface (UEFI) or the traditional BIOS mode to boot the computer (electronic device). UEFI is a modern boot interface that provides faster boot speeds, better security, and support for 64-bit operating systems. Boot manager: In some cases, electronic devices may contain multiple operating systems or different boot environments. The boot manager allows users to select the operating system or environment they want to boot at boot time.

[0123] The second level node 42 of the first level node 41 includes system information 421, system settings 422, etc. Among them,

[0124] System information 421 provides detailed information about the computer's hardware and software configuration. This information can be crucial to understanding the current status of the system, troubleshooting, and optimizing system performance. The following are some key information that may be included in the system information: System model and name: Displays the specific model and name of the computer, which helps identify hardware and software compatibility. BIOS version: Displays the version number of the Basic Input Output System (BIOS) installed on the computer, which is important for understanding the system's firmware version and possible updates. Processor information: Includes the processor model, speed, number of cores and threads, etc. This information is crucial for evaluating the system's processing power. Memory information: Displays the computer's memory size, type and speed, etc., which helps understand the system's memory configuration and performance. Storage device information: Lists detailed information about storage devices such as hard drives, solid-state drives (SSDs), optical drives, etc. on the computer. Other hardware information: May include detailed information about other hardware devices such as graphics cards, network cards, and sound cards.

[0125] System settings 422 allow users to customize and adjust the operation and functions of the computer according to their needs and preferences. These settings cover many aspects of the computer, including but not limited to display settings, sound settings, network connections, device managers, security settings, etc. The following are some key settings that may be included in the system settings: Boot options: allow users to configure the computer's boot order and boot method, such as booting from a hard disk, optical disk, USB device, etc. Device configuration: allows users to enable or disable hardware devices on the computer, such as USB devices, network interface cards, etc. Security settings: provide password protection, encryption and other security features to protect the computer's data and privacy. Power management: allows users to configure the computer's power settings, such as standby, hibernation, and shutdown. System recovery: provides system recovery options, allowing users to restore the system to a previous state when a problem occurs.

[0126] The third level node 43 of the second level node 42 includes a system summary (System Summary) 431 and product data (Product Data) 432, wherein:

[0127] System Summary 431 provides a basic overview and key information of the computer system. This information includes at least: System identification data: such as machine type, model, serial number, Universally Unique Identifier (UUID), and asset tag number. This information helps to identify a specific computer system and perform troubleshooting or support when necessary. Processor information: including the number of installed CPU packages, processor speed, and Unified Parallel Interface (UPI) link speed. This information is critical for evaluating the processing power of the system. Memory information: such as memory mode, memory speed, and total memory and available memory capacity detected. Memory is an important component of a computer system and is critical for running applications and storing data. Etc.

[0128] Product data 432 provides detailed product information about the computer system and its components. This information includes at least: Host firmware information: such as build ID, version, and build date. This information helps to understand the firmware version and possible updates of the system. Baseboard Management Controller (BMC) firmware information: also includes build ID, version, and build date. BMC is a hardware component embedded in the server, responsible for monitoring the server's physical status, power management, alarms, and logging functions.

[0129] Product data 432 may also include other product information related to the computer system, such as warranty period, manufacturer contact information, etc. This information is essential for understanding the detailed information of the product, obtaining technical support, and ensuring the normal operation of the system.

[0130] The fourth level node 44 of the third level node 43 includes product data (Product Name) 441, etc. Among them, the product data 441 refers to the brand of the computer system or the name assigned by the manufacturer to its product. This name helps users identify a specific computer system and make troubleshooting, technical support or upgrade decisions when necessary. It may directly display the brand and model of the computer, or it may be a more general name, or a name customized by the manufacturer.

[0131] Step S405: Enter the setting interface and obtain the instruction for triggering the search hot key;

[0132] During the implementation process, no matter which BIOS stage setting page is currently in, a hot key, such as CTRL+F3, can be used to trigger the display of a search input window, in which the user can enter the string or part of the string to be searched. Among them, entering the setting page of the BIOS stage is a common method for users to perform operations such as system settings, hardware configuration, and fault diagnosis. For example, when some electronic devices are turned on, "Press F2 to enter BIOS" or similar prompts are displayed. At this time, the user presses the F2 key to enter the BIOS SETUP page. For some desktop computers, especially computers using traditional BIOS, pressing the Del key (abbreviation of the Delete key) during the boot process can enter the BIOS SETUP page. For some electronic devices, pressing the Del key after the power-on self-test is completed may be effective, and for some electronic devices, the Del key can be pressed continuously after the boot to enter the SETUP page.

[0133] For example, Figure 1B A schematic diagram of a firmware setting interface provided in an embodiment of the present application, such as Figure 1B As shown, the schematic diagram includes a search box 11.

[0134] Step S406: Obtain the character string to be searched;

[0135] Here, you can set up support for fuzzy search and keyword search, where fuzzy search allows for a certain difference between the information being searched and the search question (the string to be searched). It helps users get more flexible search results by identifying words or phrases similar to the query. Keyword search means that the user enters one or more specific keywords, and the system performs an exact match in the database or text based on these keywords, and returns search results containing these keywords.

[0136] During the implementation process, Figure 1B The user can enter the target information to be searched, such as "MMIOH", in the search box 11, so that the electronic device obtains the target information to be searched in response to the search instruction.

[0137] Step S407, searching the N-ary tree structure in the memory and / or parsing the OPTION ROM to find the dynamic function items and paths;

[0138] In some embodiments, a matching character string may be searched in an N-ary tree structure file stored in a memory based on the character string input by the user.

[0139] In some embodiments, the options dynamically generated by the PCIE OPTION ROM in the BIOS can be parsed, that is, the options dynamically generated according to the different external cards plugged into the system can be searched for matching strings. Among them, the PCIE OPTION ROM, also known as the PCI Option ROM or PCI Expansion ROM, is a read-only memory located on the PCI or PCIE device, which is used for device initialization and system startup. The read-only memory is used to store data and code for initializing the device, and these codes are called by the BIOS or UEFI when the system starts. PCIE OPTION ROM is widely used in various PCI or PCIE devices, such as graphics cards, network cards, RAID controllers, etc. These devices are usually initialized at system startup to ensure their normal operation.

[0140] Step S408, matching character string;

[0141] If it is determined that there is a matching string, step S409 is executed; if it is determined that there is no matching string, step S411 is executed.

[0142] Step S409, display all matching items that match the character string;

[0143] For example, Figure 1C A schematic diagram of an output target option provided in an embodiment of the present application, such as Figure 1C As shown, the schematic diagram includes a path information box 12 for outputting target options, in which two matching target options are displayed, corresponding to the path information "System Settings->Devices and I / O Ports->MMIOH Base" and "System Settings->Devices and I / O Ports->MMIOH Granularity Size" respectively.

[0144] Step S410: Click on the search result to directly enter the corresponding function item page;

[0145] During implementation, a hyperlink may be provided for the path information so that the user clicks on the search result (path information) to jump to the corresponding function item page.

[0146] Step S411: Display options that do not match the character string.

[0147] During implementation, a prompt message may be output to inform the user that there is no option matching the string.

[0148] In the embodiment of the present application, keyword search and fuzzy search of BIOS function items and similar items are implemented to quickly locate function items. When entering SETUP, a search window can be called up by providing a hot key, and the function options or option values ​​to be searched can be entered. After confirmation, BIOS can display the relevant search items, including dynamically generated items, which contain the path to the corresponding function options. In this way, the user can find the corresponding function item according to the provided path. Or by clicking the searched result item, it automatically jumps to the page where the function item is located, which greatly improves the search efficiency.

[0149] Based on the foregoing embodiments, an embodiment of the present application provides a firmware option search device, which includes various modules included, each module includes various sub-modules, and can be implemented by a processor in an electronic device; of course, it can also be implemented by a specific logic circuit; in the implementation process, the processor can be a central processing unit (CPU), a microprocessor (MPU), a digital signal processor (DSP) or a field programmable gate array (FPGA), etc.

[0150] Figure 5 A schematic diagram of the structure of the firmware option search device provided in the embodiment of the present application is shown in FIG. Figure 5 As shown, the device 500 includes:

[0151] The acquisition module 510 enters the setting interface of the firmware and acquires the target information to be searched in response to the search instruction;

[0152] A matching module 520, configured to search a first file for at least one target option matching the target information based on the target information, wherein the first file is used to record identification information of each option and a subordinate relationship between the options, and the first file is established during a booting phase of the electronic device on which the firmware is installed, and loaded into a memory of the electronic device;

[0153] The first output module 530 is configured to output at least one of the target options and path information corresponding to each of the target options.

[0154] In some embodiments, the device also includes a reading module and a first parsing module, wherein the reading module is used to read a second file from the flash memory of the electronic device during the self-test phase of booting the electronic device, wherein the second file is used to record the identification information of each of the options and the subordinate relationship between the options in a lightweight data exchange format; the first parsing module is used to parse the second file to establish the first file of a linked list N-ary tree structure in the memory based on the subordinate relationship.

[0155] In some embodiments, the device also includes a second parsing module, a determination module and a second output module, wherein the second parsing module is used to parse the firmware information in the information storage chip corresponding to the newly added firmware on the plug-in card and / or the system board to obtain the dynamic function items corresponding to the newly added firmware and the path information of the dynamic function items; the determination module is used to determine the target dynamic function items that match the target information; and the second output module is used to output at least one of the target dynamic function items and the path information of each of the target dynamic function items.

[0156] In some embodiments, the target information includes function item information or any setting information corresponding to the function item, and the first file is also used to record all setting information corresponding to each of the options; the matching module 520 includes a first matching sub-module or a second matching sub-module, wherein the first matching sub-module is used to search the first file for at least one target option that matches the function item information based on the function item information; the second matching sub-module is used to search the first file for at least one target option that matches any setting information corresponding to the function item based on any setting information corresponding to the function item.

[0157] In some embodiments, the output module 530 includes a first determination submodule and an output submodule, wherein the first determination submodule is used to determine that the number of the target options is greater than a quantity threshold; and the output submodule is used to page and output at least one of the target options and the path information corresponding to each of the target options based on the quantity threshold.

[0158] In some embodiments, the device also includes a setting module for pre-setting a search hot key; correspondingly, the acquisition module 510 includes a display submodule and a second determination submodule, wherein the display submodule is used to display a search input window in the setting interface in response to the user triggering the search hot key; the second determination submodule is used to determine the information entered by the user in the search input window as the target information to be searched.

[0159] In some embodiments, the device further includes a jump module for jumping to a setting interface corresponding to the target option in response to clicking on the path information corresponding to the target option.

[0160] The description of the above device embodiment is similar to the description of the above method embodiment, and has similar beneficial effects as the method embodiment. For technical details not disclosed in the device embodiment of the present application, please refer to the description of the method embodiment of the present application for understanding.

[0161] It should be noted that in the embodiment of the present application, if the above method is implemented in the form of a software function module and sold or used as an independent product, it can also be stored in a computer-readable storage medium. Based on such an understanding, the technical solution of the embodiment of the present application is essentially or the part that contributes to the relevant technology can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including a number of instructions to enable an electronic device (which can be a mobile phone, a tablet computer, a laptop computer, a desktop computer, etc.) to execute all or part of the methods described in each embodiment of the present application. The aforementioned storage medium includes: various media that can store program codes, such as a U disk, a mobile hard disk, a read-only memory (ROM), a disk or an optical disk. In this way, the embodiment of the present application is not limited to any specific combination of hardware and software.

[0162] Correspondingly, an embodiment of the present application provides a storage medium on which a computer program is stored. When the computer program is executed by a processor, the steps in the firmware option search method provided in the above embodiment are implemented.

[0163] Correspondingly, an embodiment of the present application provides an electronic device, Figure 6 A hardware entity diagram of an electronic device provided in an embodiment of the present application, such as Figure 6 As shown, the hardware entity of the device 600 includes: a memory 601 and a processor 602, wherein the memory 601 stores a computer program that can be run on the processor 602, and the processor 602 implements the steps in the firmware option search method provided in the above embodiment when executing the program.

[0164] The memory 601 is configured to store instructions and applications executable by the processor 602, and can also cache data to be processed or processed by the processor 602 and various modules in the electronic device 600 (for example, image data, audio data, voice communication data, and video communication data), which can be implemented through flash memory (FLASH) or random access memory (Random Access Memory, RAM).

[0165] It should be noted here that the description of the above storage medium and device embodiments is similar to the description of the above method embodiments, and has similar beneficial effects as the method embodiments. For technical details not disclosed in the storage medium and device embodiments of this application, please refer to the description of the method embodiments of this application for understanding.

[0166] It should be understood that "one embodiment" or "an embodiment" mentioned throughout the specification means that specific features, structures or characteristics related to the embodiment are included in at least one embodiment of the present application. Therefore, "in one embodiment" or "in an embodiment" appearing throughout the specification does not necessarily refer to the same embodiment. In addition, these specific features, structures or characteristics can be combined in one or more embodiments in any suitable manner. It should be understood that in various embodiments of the present application, the size of the sequence number of the above-mentioned processes does not mean the order of execution, and the execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present application. The above-mentioned sequence numbers of the embodiments of the present application are only for description and do not represent the advantages and disadvantages of the embodiments.

[0167] It should be noted that, in this article, the terms "include", "comprises" or any other variations thereof are intended to cover non-exclusive inclusion, so that a process, method, article or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, an element defined by the sentence "comprises a ..." does not exclude the existence of other identical elements in the process, method, article or device including the element.

[0168] In the several embodiments provided in the present application, it should be understood that the disclosed devices and methods can be implemented in other ways. The device embodiments described above are only schematic. For example, the division of the units is only a logical function division. There may be other division methods in actual implementation, such as: multiple units or components can be combined, or can be integrated into another system, or some features can be ignored or not executed. In addition, the coupling, direct coupling, or communication connection between the components shown or discussed can be through some interfaces, and the indirect coupling or communication connection of the devices or units can be electrical, mechanical or other forms.

[0169] The units described above as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units; they may be located in one place or distributed on multiple network units; some or all of the units may be selected according to actual needs to achieve the purpose of the present embodiment.

[0170] In addition, all functional units in the embodiments of the present application may be integrated into one processing unit, or each unit may be a separate unit, or two or more units may be integrated into one unit; the above-mentioned integrated units may be implemented in the form of hardware or in the form of hardware plus software functional units.

[0171] A person skilled in the art can understand that all or part of the steps of implementing the above method embodiment can be completed by hardware related to program instructions, and the aforementioned program can be stored in a computer-readable storage medium. When the program is executed, it executes the steps of the above method embodiment; and the aforementioned storage medium includes: mobile storage devices, read-only memories (ROM), magnetic disks or optical disks, etc., various media that can store program codes.

[0172] Alternatively, if the above-mentioned integrated unit of the present application is implemented in the form of a software function module and sold or used as an independent product, it can also be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the embodiment of the present application can be essentially or partly reflected in the form of a software product that contributes to the relevant technology. The computer software product is stored in a storage medium, including several instructions to enable an electronic device (which can be a mobile phone, a tablet computer, a laptop computer, a desktop computer, etc.) to execute all or part of the methods described in each embodiment of the present application. The aforementioned storage medium includes: various media that can store program codes, such as mobile storage devices, ROMs, magnetic disks, or optical disks.

[0173] The methods disclosed in several method embodiments provided in this application can be arbitrarily combined without conflict to obtain new method embodiments.

[0174] The features disclosed in several product embodiments provided in this application can be arbitrarily combined without conflict to obtain new product embodiments.

[0175] The features disclosed in several method or device embodiments provided in this application can be arbitrarily combined without conflict to obtain new method embodiments or device embodiments.

[0176] The above is only an implementation method of the present application, but the protection scope of the present application is not limited thereto. Any person skilled in the art who is familiar with the present technical field can easily think of changes or substitutions within the technical scope disclosed in the present application, which should be included in the protection scope of the present application. Therefore, the protection scope of the present application should be based on the protection scope of the claims.

Claims

1. A method for searching for firmware options, the method comprising: Entering the setting interface of the firmware, and acquiring target information to be searched in response to a search instruction; Based on the target information, searching a first file for at least one target option matching the target information, wherein the first file is used to record identification information of each option and a subordinate relationship between the options, and the first file is established during a booting phase of an electronic device that installs the firmware, and loaded into a memory of the electronic device; At least one of the target options and path information corresponding to each of the target options are output.

2. The method according to claim 1, wherein the first file is created during the booting phase of the electronic device in which the firmware is installed, comprising: Reading a second file from a flash memory of the electronic device during a self-checking phase of booting the electronic device, wherein the second file is used to record identification information of each of the options and a subordinate relationship between the options in a lightweight data exchange format; The second file is parsed to establish the first file of a linked list N-ary tree structure in a memory based on the subordinate relationship.

3. The method of claim 1, further comprising: Parsing the firmware information in the newly added firmware corresponding information storage chip on the plug-in card and / or the system board to obtain the dynamic function item corresponding to the newly added firmware and the path information of the dynamic function item; Determining a target dynamic function item that matches the target information; Output at least one of the target dynamic function items and path information of each of the target dynamic function items.

4. The method according to any one of claims 1 to 3, wherein the target information includes function item information or any setting information corresponding to the function item, and the first file is further used to record all setting information corresponding to each of the options; The step of searching the first file for at least one target option matching the target information based on the target information comprises: Based on the function item information, searching the first file for at least one target option matching the function item information; or, Based on any setting information corresponding to the function item, the first file is searched for at least one target option that matches any setting information corresponding to the function item.

5. The method according to any one of claims 1 to 3, wherein the outputting of at least one of the target options and the path information corresponding to each of the target options comprises: Determining that the number of the target options is greater than a number threshold; At least one of the target options and path information corresponding to each of the target options are output in pages based on the quantity threshold.

6. The method according to any one of claims 1 to 3, further comprising: Pre-set search hotkeys; Correspondingly, the step of obtaining the target information to be searched in response to the search instruction includes: In response to the user triggering the search hot key, displaying a search input window on the setting interface; The information input by the user in the search input window is determined as the target information to be searched.

7. The method according to any one of claims 1 to 3, further comprising: In response to clicking on the path information corresponding to the target option, jump to the setting interface corresponding to the target option.

8. A firmware option search device, the device comprising: An acquisition module, used for entering the setting interface of the firmware and acquiring target information to be searched in response to a search instruction; A matching module, configured to search a first file for at least one target option matching the target information based on the target information, wherein the first file is used to record identification information of each option and a subordinate relationship between the options, and the first file is established during a booting phase of an electronic device that installs the firmware, and loaded into a memory of the electronic device; The first output module is used to output at least one of the target options and path information corresponding to each of the target options.

9. An electronic device, comprising a memory and a processor, wherein the memory stores a computer program that can be run on the processor, and when the processor executes the program, it enters the setting interface of the firmware and obtains target information to be searched in response to a search instruction; Based on the target information, searching the first file for at least one target option matching the target information, wherein: The first file is used to record the identification information of each option and the subordinate relationship between the options. The first file is created during the booting phase of the electronic device that installs the firmware and loaded into the memory of the electronic device. At least one of the target options and path information corresponding to each of the target options are output.

10. A computer program product, comprising a computer program or an instruction, wherein when the computer program or the instruction is executed by a processor, the setting interface of the firmware is entered, and target information to be searched is obtained in response to a search instruction; Based on the target information, searching the first file for at least one target option matching the target information, wherein: The first file is used to record the identification information of each option and the subordinate relationship between the options. The first file is created during the booting phase of the electronic device that installs the firmware and loaded into the memory of the electronic device. At least one of the target options and path information corresponding to each of the target options are output.