This U.S. non-provisional patent application claims priority under 35 U.S.C. § 119 of Korean Patent Application No. 2006-125739 filed on Dec. 11, 2006, the entire content of which is hereby incorporated herein by reference.
The present invention disclosed herein relates to the field of electronics, and more particularly, to electronic devices having firmware.
Firmware means a micro-program stored in a memory such as a read-only memory (ROM), controlling hardware. Being even regarded as same with software in the point that firmware is also a kind of program, it may be said that the firmware has all characteristics of software and hardware, differentiated from general application software, since it is closely relevant to hardware.
In constructing hardware for a specific function, a full hardware structure for all circuits may cause increased complexity in architecture and may even call for parts that are hard to be represented in logical patterns.
In this case, by organizing a storage unit, which contains software, as the core in control circuits of hardware while replacing considerable parts with the software, it is possible to address the above problems while also maintaining a low cost. Such hardware software made thereby is referred to as firmware.
Usually, electronic devices, such as MP3, memory stick, MultiMedia card (MMC), digital versatile disc (DVD) player, mobile phone, and so forth, are manufactured by including basic firmware by makers. Upgrading firmware may be used to add new functions to an electronic device, to fix a firmware bug, or to alter or enhance existing functions.
As is well known, in order to upgrade firmware, it needs to connect an electronic device with a host such as computer system in a wired or wireless mode, and download new firmware. However, if a network connecting the host to the electronic device is unstable or errors are otherwise introduced into the firmware due to malfunctions of the host system, erroneous firmware may be downloaded into the electronic device which may damage or otherwise affect the operation of the electronic device.
An electronic device operating using firmware can include a nonvolatile memory and an interface circuit that is configured to receive a firmware data signal transmission from external to the electronic device, where the firmware data signal includes error correction codes. An error correction circuit is coupled to the interface circuit and to the nonvolatile memory, and is configured to repair errors introduced into the firmware data signal during transmission of the firmware data signal to provide a corrected firmware data signal at the electronic device and to store the corrected firmware data signal in the nonvolatile memory.
In some embodiments according to the invention, an electronic device operating using firmware includes an error correction circuit that is configured to repair errors introduced into a firmware data signal during transmission of the firmware data signal over a network to provide a corrected firmware data signal at the electronic device and to store the corrected firmware data signal in the nonvolatile memory, where the firmware data signal includes both error correction code bits and cyclic redundancy check bits.
In some embodiments according to the invention, the error correction code bits and cyclic redundancy check bits are both included in packets according to which the firmware data signal is received. In some embodiments according to the invention, the error correction circuit further includes a syndrome generator circuit, a key equation solver circuit coupled to the syndrome generator circuit, a Chien search error evaluator circuit coupled to the key equation solver circuit, and an error corrector circuit coupled to the Chien search error evaluator circuit.
In some embodiments according to the invention, a method of updating firmware stored in a nonvolatile memory of an electronic device includes receiving a firmware data signal including error correction check code bits, determining that the firmware data signal includes a correctable error, correcting the correctable error included in the firmware data signal to provide a corrected firmware data signal, and storing the corrected firmware data signal in the nonvolatile memory.
In some embodiments according to the invention, the firmware data signal includes both error correction code bits and cyclic redundancy check bits. In some embodiments according to the invention, data and the error correction code bits included in the corrected firmware data signal fit within one sector sized amount of data used to program the non-volatile memory.
In some embodiments according to the invention, a firmware downloading system includes a host system that is configured to transfer a firmware data signal that includes an error correction code and an electronic device that is configured to receive the firmware data signal from the host system. The electronic device can includes a nonvolatile memory and an interface circuit that is configured to receive a firmware data signal transmission from external to the electronic device, where the firmware data signal includes error correction codes. An error correction circuit is coupled to the interface circuit and to the nonvolatile memory, and is configured to repair errors introduced into the firmware data signal during transmission of the firmware data signal to provide a corrected firmware data signal at the electronic device and to store the corrected firmware data signal in the nonvolatile memory.
Non-limiting and non-exhaustive embodiments of the present invention will be described with reference to the following figures, wherein like reference numerals refer to like parts throughout the various figures unless otherwise specified. In the figures:
Embodiments of the present invention now will be described more fully hereinafter with reference to the accompanying drawings, in which embodiments of the invention are shown. This invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. Like numbers refer to like elements throughout.
It will be understood that, although the terms first, second, etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first element could be termed a second element, and, similarly, a second element could be termed a first element, without departing from the scope of the present invention. As used herein, the term “and/or” includes any and all combinations of one or more of the associated listed items.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” “comprising,” “includes” and/or “including” when used herein, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. It will be further understood that terms used herein should be interpreted as having a meaning that is consistent with their meaning in the context of this specification and the relevant art and will not be interpreted in an idealized or overly formal sense unless expressly so defined herein.
The host 100 can be connected with the electronic device 200 via communications network 110 through a connector, in a wired mode via, for example, to the Internet or other network. In some embodiments according to the present invention, host 100 can be connected with the electronic device 200 wirelessly.
The host 100, according to some embodiments of the present invention, transfers a firmware data signal, which contains an error correction code (ECC), to the electronic device 200. After receiving a firmware data signal containing an ECC, the electronic device 200 can repair errors included in or introduced into the firmware data signal and stores the corrected firmware data signal in a nonvolatile memory (not shown).
In some embodiments according to the invention, the host 100 transfers a firmware data signal containing an ECC that can be used for repairing an error. The electronic device 100 can use the CRC bits to detect an error in the firmware data signal and then decode the ECC bits to correct the detected error(s).
The interface 210 is connected to the host shown in
The buffer memory 220 includes a plurality of sectors (not shown). The firmware data signals input from the interface 210 are stored in the buffer memory 220 in one sector sized units. The CPU 240 reads out the firmware data signals from the buffer memory 220 and provides the read firmware data signals to the ECC unit 250.
The ECC unit 250 is comprised of a syndrome generator 251, key equation solver (KES) 252, the Chien search error evaluator (CSEE) 253, and an error corrector 254. The syndrome generator 251 calculates syndromes of the firmware data signals using, for example, a Horner algorithm. The calculated syndromes are provided to the KES 252. The KES 252 obtains coefficients of error location and magnitude polynomials from the received syndromes. As well known, the KES 252 calculates the coefficients by means of the Berlekamp-Massey algorithm or the Euclid algorithm. The calculated coefficients are provided to the CSEE 253. The CSEE 253 evaluates an error position and value on basis of the error position and magnitude polynomials. The error position and value is transferred to the error corrector 254 and used for correction of the encoded firmware data signal.
A data signal output from the error corrector 254 is an error-corrected firmware data signal, including 505-byte data transferred from the host 100 and 7-byte null data. The null data may be set on ‘FFFFFFF’ or ‘0000000’ as an example. The firmware data signal with 512 bytes output from the error corrector 254 is stored in the nonvolatile memory 260. In some embodiments credit to the invention, the nonvolatile memory 260 is a kind of flash memory. Then, the CPU 240 can identify and utilize the non-null data included in the 512 bytes (i.e., the 505 bytes in the 1-sector) provided by the firmware data signal stored in the nonvolatile memory 260.
The ROM 230 stores the firmware used to operate the electronic device 200. The firmware for various applications of the electronic device 200 is stored in the nonvolatile memory 260. The firmware stored in the nonvolatile memory 260 may be upgraded in accordance with convenience of a user and new firmware is downloaded from the host 100.
In some embodiments according to the invention, the host 100 provides the electronic device 200 with packets of the firmware data signals including ECCs. The electronic device 200 detects an error in the firmware data signal packets by analyzing the ECCs, and can then correct the detected error, thereby allowing enhanced integrity of the firmware downloaded into the electronic device 200.
Referring to
The above-disclosed subject matter is to be considered illustrative, and not restrictive, and the appended claims are intended to cover all such modifications, enhancements, and other embodiments, which fall within the true spirit and scope of the present invention. Thus, to the maximum extent allowed by law, the scope of the present invention is to be determined by the broadest permissible interpretation of the following claims and their equivalents, and shall not be restricted or limited by the foregoing detailed description.
Number | Date | Country | Kind |
---|---|---|---|
2006-125739 | Dec 2006 | KR | national |