The present invention relates to firmware update, and in particular, to a computer network and a method of automatic updating firmware to peripheral devices of a computer system in the computer network using a unified extensible firmware interface.
A server is a computer system for handling a large amount of data and traffic. Users may access resources such as applications, files, databases, and emails on the server via an intranet or the Internet. The functionality of the server may be expanded by connecting to external peripheral devices. For example, a file server may increase the storage capacity by connecting to an external hard drive via an input/output controller (IOC). The peripheral devices may need firmware update to increase or enhance the functionalities.
In the related art, a user needs to use an unified extensible firmware interface (UEFI) to manually update the firmware. Nevertheless, the firmware updating process is complex, degrading the user experience. First, the user needs to pay attention to the timing of manually switching to the basic input/output system (BIOS). For example, the user needs to hold down the “Delete” key for a predetermined period of time after a reboot in order to enter the BIOS menu. Secondly, after entering the BIOS menu, the user needs to manually enter the UEFI, yet finding the UEFI option is not intuitive. For an unfamiliar user, it might take some time to find the UEFI option from the BIOS menu. Finally, even if the firmware update process is known, an unexpected error might still occur and requires technical personnel to troubleshoot problems remotely, e.g., using a specific toolbox or a specific instruction to troubleshoot the user input error.
In other related art, the user may update the firmware from the operating system without going through the UEFI, known as “in-band update”. However, the in-band update is unavailable for updating to a different firmware version, since the instruction addresses of different versions of the firmware will change accordingly. In such a case, manually entering the UEFI to update the firmware is still necessary, at the cost of degrading the user experience.
According to an embodiment of the invention, a computer system includes a host, a system on chip (SoC), and a basic input/output system (BIOS), the host being coupled to the SoC, the SoC being coupled to the BIOS, the BIOS being coupled to a peripheral device. A method for updating firmware of the peripheral device of the computer system in a computer network includes an operating system (OS) running on the host controlling the SoC to initiate a firmware update of the peripheral device, in response to the firmware update of the peripheral device, the SoC enabling the BIOS to enter a unified extensible firmware interface (UEFI), the UEFI executing an update script to update a peripheral firmware to the peripheral device, and performing a reboot to complete the firmware update of the peripheral device.
According to another embodiment of the invention, a computer network includes a computer system, the computer system including a host, a system on chip (SoC), and a basic input/output system (BIOS). The host includes an operating system (OS). The system on chip (SoC) is coupled to the host. The basic input/output system (BIOS) is coupled to the host, the SoC, and a peripheral device. The operating system is used to run on the host to control the SoC to initiate a firmware update of the peripheral device. In response to the firmware update of the peripheral device, the SoC is used to enable the BIOS to enter a unified extensible firmware interface (UEFI). The UFI is used to execute an update script to update a peripheral firmware to the peripheral device. The computer system is used to perform a reboot to complete the firmware update of the peripheral device.
These and other objectives of the present invention will no doubt become obvious to those of ordinary skill in the art after reading the following detailed description of the preferred embodiment that is illustrated in the various figures and drawings.
The computer system k1 may include a host k10, a system on chip (SoC) k12 and a basic input/output system (BIOS) k14. The SoC k12 is coupled to the host k10, and the BIOS k14 is coupled to the host k10, the SoC k12 and the peripheral device k16. While in
The host k10 may store an operating system (OS) k102, a peripheral firmware k104 and an update script k106. In some embodiments, the peripheral firmware k104 may be stored in the peripheral device k16. In some embodiments, the OS k102 may be Microsoft Windows, linux, or macOS. The peripheral firmware k104 and the update script k106 may be pre-stored in the host k10 locally or remotely. The update script k106 may include a plurality of instructions, when being executed, the firmware of the peripheral device k16 may be updated or restored. The BIOS k14 may access the peripheral firmware k104 of the host k10 via the UEFI k142. However, the host k10 must enter and control the BIOS k14 and the UEFI k142 via the SoC k12. During a reboot, the UEFI k142 may load minimum drivers and firmware required to perform a reboot test on the computer system k1, so as to quickly ensure normal operations of the computer system k1 while achieving fast startup. The BIOS k14 provides standard hardware and firmware operations via the UEFI k142, supporting a fast reboot and large hard disk capacity. In this embodiment, the UEFI k142 may access the host k10 to load the update script k106 and the peripheral firmware k104, and execute the update script k106.
The SoC k12 may be a baseboard management controller (BMC) for monitoring and controlling components of the computer system k1 such as a power supply, a fan, a temperature sensor and a storage device. In addition, the SoC k12 may further provide a remote management function, allowing a system administrator to remotely monitor and control the computer system k1.
The computer system k1 may integrate the host k10, the SoC k12 and the BIOS k14, and executes the update script k106 to update or restore the firmware of the peripheral device k16.
In Step S202, the firmware update of the peripheral device k16 is triggered upon the host k10 receives a firmware update instruction. Since the firmware update may only be performed after entering the BIOS k14 and the UEFI k142, a user may manually reboot the computer system k1. After rebooting, since the host computer k10 may not directly control the BIOS k14 and UEFI k142 but must use the SoC k12 to control the BIOS k14 and UEFI k142, the OS k102 sends a set of instructions to the SoC k12 to initialize the firmware update of the peripheral device k16. The set of instructions may include a first instruction for the SoC k12 to instruct the BIOS k14 to enter the UEFI k142 (Step S204). The set of instructions may further include a second instruction for the SoC k12 to instruct the peripheral device k16 to perform the firmware update. Since the computer system k1 may include one or a plurality of peripheral devices k16, the SoC k12 may instruct the peripheral device k16 to perform the firmware update on selected peripheral devices k16 according to the second instruction. In some embodiments, the computer system k1 may only include one peripheral device k16, and the SoC k12 may instruct the UEFI k142 to perform the firmware update on the peripheral device k16 according to the second instruction. In other embodiments, the computer system k1 may only include two peripheral devices k16, and the SoC k12 may instruct the UEFI k142 to perform the firmware update on the two peripheral devices k16 according to the second instruction. In other embodiments, the computer system k1 may only include two peripheral devices k16, and the SoC k12 may instruct the UEFI k142 to perform firmware update on one of the two peripheral devices k16 according to the second instruction. In other embodiments, the computer system k1 may include more than two peripheral devices k16, and the SoC k12 may instruct the UEFI k142 to perform the firmware update on all peripheral devices k16 or a portion of all peripheral devices k16 according to the second instruction. For example, the computer system k1 may only include two I/O controllers, and the SoC k12 may instruct the UEFI k142 to perform the firmware update on the two I/O controllers according to the second instruction.
In Step S206, the UEFI k142 may load the update script k106 from the host k10, and execute the update script k106 to update the firmware of the selected peripheral device k16. In some embodiments, when the update script k106 is executed, the UEFI k142 obtains the peripheral firmware k104 from the host k10, and programs the peripheral firmware k104 to predetermined addresses of the memory in the selected peripheral device k16. The memory of the selected peripheral device k16 may be a flash memory or other non-volatile memory. Then in Step S208, the computer system k1 may be rebooted to complete the firmware update of the selected peripheral device k16.
The method 400 for updating firmware will be described below with reference to the computer network 3 including the computer systems 11 and 21, and the computer systems 11 and 21 are respectively coupled to two peripheral devices.
In Step S402, the central control computer 30 sends a firmware update instruction to the computer systems 11 and 21 to respectively trigger the computer systems 11 and 21 to start firmware updates of the respective peripheral devices. Other than that Steps S404 to S410 are performed by the computer systems 11 and 21, respectively, and Steps S202 to S208 are performed by a single computer system k1, Steps S404, S406 and S410 are similar to Steps S202, S204 and S208 respectively, and the explanation therefor will not be repeated here for brevity.
In Step S408, the OS 1102 of the computer system 11 sends a set of instructions to the SoC 112 to initiate the firmware update of the two peripheral devices 116, and the OS 2102 of the computer system 21 sends a set of instructions to the SoC 212 to initiate the firmware update of the two peripheral devices 216. The set of instructions sent by OS 1102 may include a first instruction for SoC 112 to instruct BIOS 114 to enter the UEFI 1142, and the set of instructions sent by OS 2102 may include a first instruction for SoC 212 to instruct BIOS 214 to enter the UEFI 2142. Further, the set of instructions sent by the OS 1102 may include a second instruction to enable the SoC 112 to instruct the peripheral device 116 to perform the firmware update, and the set of instructions sent by the OS 2102 may include a second instruction to enable the SoC 212 to instruct the peripheral device 216 to perform the firmware update. If the respective two peripheral devices of the computer systems 11 and 21 need to update the firmware, the SoC 112 may instruct the UEFI 1142 to perform the firmware update on the two peripheral devices 116 according to the second instruction, and the SoC 212 may instruct the UEFI 2142 to perform the firmware update on the two peripheral devices 216 according to the second instruction.
Although the method 400 is described with reference to two computer systems in the computer network 3, the present invention is not limited thereto, those skilled in the art may apply the method 400 to update other computer systems based on the principle of the invention.
The embodiments in
Those skilled in the art will readily observe that numerous modifications and alterations of the device and method may be made while retaining the teachings of the invention. Accordingly, the above disclosure should be construed as limited only by the metes and bounds of the appended claims.
Number | Date | Country | Kind |
---|---|---|---|
112112986 | Apr 2023 | TW | national |