1. Field of the Invention
The disclosure relates generally to firmware update method and system using the same, and, more particularly to a firmware update method and a system using the same for automatically updating firmware via a network.
2. Description of the Related Art
Currently, many devices are special-purpose computers, executing specific firmware for functionality thereof. The firmware is a computer program or a binary image file embedded in a device, stored in a storage unit such as flash ROM of the device itself.
Firmware updates are required to fix bugs in the firmware, addressing functionality issues, and/or improving the performance and reliability of a device after the device is shipped. Conventionally, firmware updates must be manually performed using a software tool by users under an OS (Operating System) environment. In this method, users must understand software tools, and have related update technical knowledge. For general users, however, conventional firmware updates are complicated and inconvenient.
A firmware update method and a system using the same are provided.
In an embodiment of a firmware update method for use in a system comprising a network interface controller and a device, the network interface controller connects to a server via a network. At least one firmware is downloaded from the server. The firmware is updated to the device.
An embodiment of a firmware update system comprises a network interface controller and a device. The network interface controller connects to a server via a network, and then downloads at least one firmware from the server. The device receives the firmware, and updates accordingly.
Another embodiment of a firmware update system comprises a network interface controller and a device. The device comprises a storage unit comprising at least one boot block code. The device executes the boot clock code, and determines whether an update alert exists. The network interface controller connects to a server via a network, downloads at least one firmware from the server, and then generates the update alert after the firmware is downloaded. The device, in response to the update alert, selects the firmware to be updated as an active code to the storage unit. The system reboots after the firmware is updated to the device.
Firmware update methods and systems may take the form of a program code embodied in a tangible media. When the program code is loaded into and executed by a machine, the machine becomes an apparatus for practicing the disclosed method.
The invention will become more fully understood by referring to the following detailed description with reference to the accompanying drawings, wherein:
A firmware update method and a system using the same are provided.
As shown in
The firmware update system 200 comprises a network interface controller/chip/circuit (NIC) 210 and a device 220. The network interface controller 210 comprises an identification (NIC ID) 211. The NIC ID 211 may be a MAC address or an IP address of the network interface controller 210. The device 220 comprises a storage unit 221, a device identification 222, and a processing unit 223.
In step S402, it is determined whether the firmware update system boots. If not (No in step S402), the procedure remains at step S402. If so (Yes in step S402), in step S404, a network interface controller initiates itself, and in step S406, obtains the device identification of a device. It is noted that the device identification may be a slave address or name of the device. In step S408, it is determined whether the device conforms to a predefined device according to the device identification. If not (No in step S408), in step S420, the network interface controller acts as a general network adapter, and performs general processes of network transmission. It is understood that if no device identification can be obtained, the procedure goes to step S420. If so (Yes in step S408), in step S410, the network interface controller, via a network, connects to a server according to a network address of the server. It is noted that the network address of the server can be recorded in the network interface controller in advance. Additionally, the device identification or the identification of the network interface controller (NIC ID) can be transmitted to the server during the connection. In step S412, the server performs an authentication according to the device identification or the identification of the network interface controller (NIC ID) to identify the firmware update system and determine whether the firmware update system has authentication to access the server. If the authentication fails (No in step S414), in step S420, the network interface controller acts as a general network adapter, and performs general processes of network transmission. If the authentication passes (Yes in step S414), in step S416, firmware is automatically selected according to the device identification or the identification of the network interface controller (NIC ID), and downloaded from the server to the firmware update system via the network. It is noted that the downloaded firmware can be stored in the storage unit or other memory in the device of the firmware update system, and not immediately updated to the device. After the firmware is downloaded, in step S418, an update alert is generated, and in step S420, the network interface controller performs general processes of network transmission. The usage of the update alert is discussed later.
In step S502, it is determined whether the firmware update system boots. If not (No in step S502), the procedure remains at step S502. If so (Yes in step S502), in step S504, a device executes firmware boot block codes in a storage unit. In step S506, it is determined whether any firmware active code exists in the storage unit. If so (Yes in step S506), in step S508, the firmware active code is executed. In step S510, it is determined whether any update alert exists. It is noted that the update alert may be generated by the network interface controller in
Firmware update methods and systems, or certain aspects or portions thereof, may take the form of a program code (i.e., executable instructions) embodied in tangible media, such as products, floppy diskettes, CD-ROMS, hard drives, or any other machine-readable storage medium, wherein, when the program code is loaded into and executed by a machine, such as a computer, the machine thereby becomes an apparatus for practicing the methods. The methods may also be embodied in the form of a program code transmitted over some transmission medium, such as electrical wiring or cabling, through fiber optics, or via any other form of transmission, wherein, when the program code is received and loaded into and executed by a machine, such as a computer, the machine becomes an apparatus for practicing the disclosed methods. When implemented on a general-purpose processor, the program code combines with the processor to provide a unique apparatus that operates analogously to application specific logic circuits.
While the invention has been described by way of example and in terms of preferred embodiment, it is to be understood that the invention is not limited thereto. Those who are skilled in this technology can still make various alterations and modifications without departing from the scope and spirit of this invention. Therefore, the scope of the present invention shall be defined and protected by the following claims and their equivalents.