Firmware

Firmware

Discussion
Ask a question about 'Firmware'
Start a new discussion about 'Firmware'
Answer questions from other users
Full Discussion Forum
 
Encyclopedia
In electronic system
Electronic System
Electronic System is a Belgian synthesizer group .Disco Machine is an album of seven original compositions from Dan Lacksman, who’s better known as being part of the group, TELEX. This material was first recorded in 1977.- External links :*...

s and computing
Computing
Computing is usually defined as the activity of using and improving computer hardware and software. It is the computer-specific part of information technology...

, firmware is a term often used to denote the fixed, usually rather small, programs and/or data structures that internally control various electronic devices. Typical examples of devices containing firmware range from end-user products such as remote control
Remote control
A remote control is a component of an electronics device, most commonly a television set, used for operating the television device wirelessly from a short line-of-sight distance.The remote control is usually contracted to remote...

s or calculator
Calculator
An electronic calculator is a small, portable, usually inexpensive electronic device used to perform the basic operations of arithmetic. Modern calculators are more portable than most computers, though most PDAs are comparable in size to handheld calculators.The first solid-state electronic...

s, through computer parts and devices like hard disk
Hard disk
A hard disk drive is a non-volatile, random access digital magnetic data storage device. It features rotating rigid platters on a motor-driven spindle within a protective enclosure. Data is magnetically read from and written to the platter by read/write heads that float on a film of air above the...

s, keyboard
Keyboard (computing)
In computing, a keyboard is a typewriter-style keyboard, which uses an arrangement of buttons or keys, to act as mechanical levers or electronic switches...

s, TFT screens or memory card
Memory card
A memory card or flash card is an electronic flash memory data storage device used for storing digital information. They are commonly used in many electronic devices, including digital cameras, mobile phones, laptop computers, MP3 players, and video game consoles...

s, all the way to scientific instrument
Scientific instrument
A scientific instrument can be any type of equipment, machine, apparatus or device as is specifically designed, constructed and often, through trial and error, ingeniously refined to apply utmost efficiency in the utilization of well proven physical principle, relationship or technology to...

ation and industrial robot
Industrial robot
An industrial robot is defined by ISO as an automatically controlled, reprogrammable, multipurpose manipulator programmable in three or more axes...

ics. Also more complex consumer devices, such as mobile phone
Mobile phone
A mobile phone is a device which can make and receive telephone calls over a radio link whilst moving around a wide geographic area. It does so by connecting to a cellular network provided by a mobile network operator...

s, digital camera
Digital camera
A digital camera is a camera that takes video or still photographs, or both, digitally by recording images via an electronic image sensor. It is the main device used in the field of digital photography...

s, synthesizer
Synthesizer
A synthesizer is an electronic instrument capable of producing sounds by generating electrical signals of different frequencies. These electrical signals are played through a loudspeaker or set of headphones...

s, etc., contain firmware to enable the device's basic operation as well as implementing higher-level functions.

There are no strict boundaries between firmware and software, as both are quite loose descriptive terms. However, the term firmware was originally coined in order to contrast to higher level software which could be changed without replacing a hardware
Hardware
Hardware is a general term for equipment such as keys, locks, hinges, latches, handles, wire, chains, plumbing supplies, tools, utensils, cutlery and machine parts. Household hardware is typically sold in hardware stores....

 component, and firmware is typically involved with very basic low-level operations without which a device would be completely non-functional. Firmware is also a relative term, as most embedded devices contain firmware at more than one level. Subsystems such as CPUs, flash chips, communication controllers, LCD modules, and so on, have their own (usually fixed) program code and/or microcode
Microcode
Microcode is a layer of hardware-level instructions and/or data structures involved in the implementation of higher level machine code instructions in many computers and other processors; it resides in special high-speed memory and translates machine instructions into sequences of detailed...

, regarded as "part of the hardware" by the higher-level(s) firmware.

Low-level firmware typically resides in a PLA
Programmable logic array
A programmable logic array is a kind of programmable logic device used to implement combinational logic circuits. The PLA has a set of programmable AND gate planes, which link to a set of programmable OR gate planes, which can then be conditionally complemented to produce an output...

 structure or in a ROM (or OTP/PROM
Programmable read-only memory
A programmable read-only memory or field programmable read-only memory or one-time programmable non-volatile memory is a form of digital memory where the setting of each bit is locked by a fuse or antifuse. Such PROMs are used to store programs permanently...

), while higher level firmware (often on the border to software) typically employs flash memory
Flash memory
Flash memory is a non-volatile computer storage chip that can be electrically erased and reprogrammed. It was developed from EEPROM and must be erased in fairly large blocks before these can be rewritten with new data...

 to allow for updates, at least in modern devices. (Common reasons for updating firmware include fixing bugs or adding features to the device. Doing so usually involves loading a binary image file provided by the manufacturer into the device, according to a specific procedure; this is sometimes intended to be done by the end user.)

Thus, while high-level firmware (or software) typically is stored as a configuration of charges, low-level firmware may instead often be regarded as actual hardware in itself. For instance, older firmware was often implemented as a discrete semiconductor diode matrix
Diode matrix
A diode matrix is a two-dimensional grid of wires, where each "intersection" where one row crosses over another either has a diode connecting them, or the wires are isolated from each other....

. The modern equivalent is an integrated matrix of field effect transistors where 0's and 1's are represented by whether a particular component in the ROM and/or PLA
Programmable logic array
A programmable logic array is a kind of programmable logic device used to implement combinational logic circuits. The PLA has a set of programmable AND gate planes, which link to a set of programmable OR gate planes, which can then be conditionally complemented to produce an output...

 matrices is present or not.

Origin of the term


Ascher Opler coined the term "firmware" in a 1967 Datamation
Datamation
Datamation was a print computer magazine published in the United States between 1957 and 1998. When first published it wasn't clear there would be a significant market for a computer magazine given how few computers there were...

article. Originally, it meant the contents of a writable control store
Control store
A control store is the part of a CPU's control unit that stores the CPU's microprogram. It is usually accessed by a microsequencer. Early control stores were implemented as a diode-array accessed via address decoders, a form of read-only memory. This tradition dates back to the program timing...

 (a small specialized high speed memory), containing microcode
Microcode
Microcode is a layer of hardware-level instructions and/or data structures involved in the implementation of higher level machine code instructions in many computers and other processors; it resides in special high-speed memory and translates machine instructions into sequences of detailed...

 that defined and implemented the computer's instruction set
Instruction set
An instruction set, or instruction set architecture , is the part of the computer architecture related to programming, including the native data types, instructions, registers, addressing modes, memory architecture, interrupt and exception handling, and external I/O...

, and that could be reloaded to specialize or modify the instructions that the central processing unit
Central processing unit
The central processing unit is the portion of a computer system that carries out the instructions of a computer program, to perform the basic arithmetical, logical, and input/output operations of the system. The CPU plays a role somewhat analogous to the brain in the computer. The term has been in...

 (CPU) could execute. As originally used, firmware contrasted with hardware (the CPU itself) and software (normal instructions executing on a CPU). It was not composed of CPU machine instructions, but of lower-level microcode involved in the implementation of machine instructions. It existed on the boundary between hardware and software; thus the name "firmware".

Later application of the term broadened to include any type of microcode, whether in writable control store or read-only control store.

Still later, popular usage extended the word "firmware" to denote anything ROM-resident, including processor machine-instructions for BIOS
BIOS
In IBM PC compatible computers, the basic input/output system , also known as the System BIOS or ROM BIOS , is a de facto standard defining a firmware interface....

, bootstrap loaders
Booting
In computing, booting is a process that begins when a user turns on a computer system and prepares the computer to perform its normal operations. On modern computers, this typically involves loading and starting an operating system. The boot sequence is the initial set of operations that the...

, or specialized applications.

Until the mid 1990s, updating firmware to a new version typically involved replacing a storage medium containing firmware, usually a socketed ROM. firmware upgraders have largely abandoned this approach in favor of using firmware's capability to overwrite itself in a convenient, purely electronic operation.

Firmware


Today, in some circles, the word firmware has evolved to sometimes even denote application-level programs stored in NAND flash or NOR flash memory (such as in mobile phones and similar products). However, a more fundamental definition would still be fixed or semi-fixed data in a hardware device. This may include ROM and/or PLA structures for microcode
Microcode
Microcode is a layer of hardware-level instructions and/or data structures involved in the implementation of higher level machine code instructions in many computers and other processors; it resides in special high-speed memory and translates machine instructions into sequences of detailed...

 and other data in a processor implementation as well as the low level machine code
Machine code
Machine code or machine language is a system of impartible instructions executed directly by a computer's central processing unit. Each instruction performs a very specific task, typically either an operation on a unit of data Machine code or machine language is a system of impartible instructions...

 stored in ROM or flash memory running on that processor (i.e. many products use several levels of firmware). Microcode and other data in an application-specific integrated circuit
Application-specific integrated circuit
An application-specific integrated circuit is an integrated circuit customized for a particular use, rather than intended for general-purpose use. For example, a chip designed solely to run a cell phone is an ASIC...

 (ASICs) would also fit that definition very well. The same could be said about programmable logic device
Programmable logic device
A programmable logic device or PLD is an electronic component used to build reconfigurable digital circuits. Unlike a logic gate, which has a fixed function, a PLD has an undefined function at the time of manufacture...

s which may have configuration data stored either as internal fuses, in a ROM, or in a flash memory (used much the same way as a ROM or EPROM
EPROM
An EPROM , or erasable programmable read only memory, is a type of memory chip that retains its data when its power supply is switched off. In other words, it is non-volatile. It is an array of floating-gate transistors individually programmed by an electronic device that supplies higher voltages...

).

Personal computers



In some respects, the various firmware components are as important as the operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...

 in a working computer. However, unlike most modern operating systems, firmware rarely has a well-evolved automatic mechanism of updating itself to fix any functionality issues detected after shipping the unit.

Currently, devices like video cards, sound cards or modems in a modern PC often rely on firmware dynamically loaded by a device driver and may thus get transparently updated through the operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...

 update mechanisms. The BIOS may be "manually" updated fairly easily by an educated user, using a small utility program. In contrast, firmware in storage devices (harddisks, DVD-drives, flash-storage) rarely gets updated, even when flash (rather than ROM) storage is used for the firmware; there are no standardized mechanisms for detecting or updating firmware versions. However, in practice, such devices have a low rate of functionality issues compared to parts where the firmware may be updated. This is because, in most cases, only small incremental changes to the code are needed for new product generations. The bulk of the code is therefore typically well proven and tested compared to completely new, or less critical, products. The amount of in depth design analysis and serious testing also varies heavily among different product groups in general, according to market demands, corporate culture and other factors.

Computer peripherals


Most computer peripherals are themselves special-purpose computers. While external devices (printers, scanners, cameras, USB drives
USB flash drive
A flash drive is a data storage device that consists of flash memory with an integrated Universal Serial Bus interface. flash drives are typically removable and rewritable, and physically much smaller than a floppy disk. Most weigh less than 30 g...

,...) have firmware stored internally, modern graphics cards and peripheral expansion card
Expansion card
The expansion card in computing is a printed circuit board that can be inserted into an expansion slot of a computer motherboard or backplane to add functionality to a computer system via the expansion bus.One edge of the expansion card holds the contacts that fit exactly into the slot...

s often have parts of the firmware loaded by the host system at start-up, as this provides greater flexibility. Such hardware may therefore fail to function fully until the host computer has "fed" it the requisite firmware, typically via a specific device driver
Device driver
In computing, a device driver or software driver is a computer program allowing higher-level computer programs to interact with a hardware device....

 (more exactly: via a start-up subsystem within a device driver package). Modern device drivers, whether for internal or external "peripheral" devices, may also expose a direct graphical user-interface for configuration, often using parts of a normal application programming interface
Application programming interface
An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...

 in addition to lower level operating system calls, hooks, and/or other interfaces designed for device drivers.

Consumer products


most modern portable music players support firmware upgrades. Some companies use firmware updates to add new playable file formats (encodings); iriver
Iriver
iriver is a consumer electronics company headquartered in South Korea and widely known for its digital audio players and other portable media devices....

 added the Vorbis
Vorbis
Vorbis is a free software / open source project headed by the Xiph.Org Foundation . The project produces an audio format specification and software implementation for lossy audio compression...

 format this way, for instance. Other features that may change with firmware updates include the GUI or even the battery life. Most mobile phone
Mobile phone
A mobile phone is a device which can make and receive telephone calls over a radio link whilst moving around a wide geographic area. It does so by connecting to a cellular network provided by a mobile network operator...

s have a Firmware Over The Air firmware upgrade capability for much the same reasons; some may even be upgraded to enhance reception or sound quality, illustrating the fact that firmware is used at more than one level in complex products (in a CPU-like microcontroller
Microcontroller
A microcontroller is a small computer on a single integrated circuit containing a processor core, memory, and programmable input/output peripherals. Program memory in the form of NOR flash or OTP ROM is also often included on chip, as well as a typically small amount of RAM...

 versus in a digital signal processor
Digital signal processor
A digital signal processor is a specialized microprocessor with an architecture optimized for the fast operational needs of digital signal processing.-Typical characteristics:...

 in this particular case).

Automobiles


Since 1996 most automobile
Automobile
An automobile, autocar, motor car or car is a wheeled motor vehicle used for transporting passengers, which also carries its own engine or motor...

s have employed an on-board computer and various sensors to detect mechanical problems. modern vehicles also employ computer-controlled ABS systems and computer-operated Transmission Control Unit
Transmission Control Unit
A transmission control unit or TCU is a device that controls modern electronic automatic transmissions. A TCU generally uses sensors from the vehicle as well as data provided by the Engine Control Unit to calculate how and when to change gears in the vehicle for optimum performance, fuel economy...

s (TCU). The driver can also get in-dash information while driving in this manner, such as real-time fuel-economy and tire-pressure readings. Local dealers can update most vehicle firmware.

IEEE Definition


Institute of Electrical and Electronics Engineers
Institute of Electrical and Electronics Engineers
The Institute of Electrical and Electronics Engineers is a non-profit professional association headquartered in New York City that is dedicated to advancing technological innovation and excellence...

 (IEEE) Standard Glossary of Software Engineering Terminology, Std 610.12-1990, defines firmware as follows:
"The combination of a hardware device and computer instructions and data that reside as read-only software on that device.

Notes: (1) This term is sometimes used to refer only to the hardware device or only to the computer instructions or data, but these meanings are deprecated. (2) The confusion surrounding this term has led some to suggest that it be avoided altogether."

Examples


Examples of firmware include:
  • Consumer products:
    • Timing and control systems for washing machine
      Washing machine
      A washing machine is a machine designed to wash laundry, such as clothing, towels and sheets...

      s
    • Controlling sound and video attributes as well as the channel list in modern TVs
    • EPROM
      EPROM
      An EPROM , or erasable programmable read only memory, is a type of memory chip that retains its data when its power supply is switched off. In other words, it is non-volatile. It is an array of floating-gate transistors individually programmed by an electronic device that supplies higher voltages...

       chips used in the Eventide H-3000 series of digital music processors
  • In computers
    • The BIOS
      BIOS
      In IBM PC compatible computers, the basic input/output system , also known as the System BIOS or ROM BIOS , is a de facto standard defining a firmware interface....

       found in IBM-compatible personal computers
    • The platform code found on Itanium
      Itanium
      Itanium is a family of 64-bit Intel microprocessors that implement the Intel Itanium architecture . Intel markets the processors for enterprise servers and high-performance computing systems...

       systems, Intel-based Mac OS X
      Mac OS X
      Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...

       machines, and many Intel desktop boards is EFI
      Extensible Firmware Interface
      The Unified Extensible Firmware Interface is a specification that defines a software interface between an operating system and platform firmware...

       compliant firmware
    • Open Firmware
      Open Firmware
      Open Firmware, or OpenBoot in Sun Microsystems parlance, is a standard defining the interfaces of a computer firmware system, formerly endorsed by the Institute of Electrical and Electronics Engineers . It originated at Sun, and has been used by Sun, Apple, IBM, and most other non-x86 PCI chipset...

      , used in computers from Sun Microsystems
      Sun Microsystems
      Sun Microsystems, Inc. was a company that sold :computers, computer components, :computer software, and :information technology services. Sun was founded on February 24, 1982...

      , Apple, and Genesi
      Genesi
      Genesi is computer company focused on building Power Architecture and ARM architecture computers. The organization is split into two units, Genesi USA, Inc. working out of Texas operating as the primary front-end for sales, customers and developers, and bplan GmbH based in Germany as the primary...

    • ARCS (computing), used in computers from Silicon Graphics
      Silicon Graphics
      Silicon Graphics, Inc. was a manufacturer of high-performance computing solutions, including computer hardware and software, founded in 1981 by Jim Clark...

    • Kickstart
      Kickstart (Amiga)
      Kickstart is a commonly used term for the bootstrap firmware of the Amiga computers developed by Commodore.Most Amiga models were shipped with the Kickstart firmware stored on ROM chips...

       used in Amiga
      Amiga
      The Amiga is a family of personal computers that was sold by Commodore in the 1980s and 1990s. The first model was launched in 1985 as a high-end home computer and became popular for its graphical, audio and multi-tasking abilities...

       line of computers (POST
      Power-on self-test
      Power-On Self-Test refers to routines run immediately after power is applied, by nearly all electronic devices. Perhaps the most widely-known usage pertains to computing devices...

      , hardware init + Plug and Play auto-configuration
      Autoconfig
      Autoconfig is an auto-configuration protocol of Amiga computers which is intended to automatically assign resources to expansion devices without the need for jumper settings...

       of peripherals, etc.), the Kernel
      Kernel (computing)
      In computing, the kernel is the main component of most computer operating systems; it is a bridge between applications and the actual data processing done at the hardware level. The kernel's responsibilities include managing the system's resources...

       itself of the AmigaOS.
    • RTAS (Run-Time Abstraction Services), used in computers from IBM
      IBM
      International Business Machines Corporation or IBM is an American multinational technology and consulting corporation headquartered in Armonk, New York, United States. IBM manufactures and sells computer hardware and software, and it offers infrastructure, hosting and consulting services in areas...

    • The Common Firmware Environment
      Common Firmware Environment
      Common Firmware Environment is a firmware interface and bootloader developed by Broadcom for 32-bit and 64-bit system-on-a-chip systems...

       (CFE)

Firmware hacking


Sometimes third parties create an unofficial new or modified version of firmware to provide new features or to unlock hidden functionality. Examples include:
  • Rockbox
    Rockbox
    Rockbox is a replacement for the standard firmware in various forms of digital audio players . It offers an alternative to the player's operating system, in many cases without removing the original firmware, which provides a plug-in architecture for adding various enhancements and functions...

     for digital audio players.
  • CHDK and Magic Lantern for Canon digital cameras.
  • Many third-party firmware projects for wireless routers, including:
  • OpenWrt
    OpenWrt
    OpenWrt is a Linux distribution primarily targeted at routing on embedded devices. It comprises a set of about 2000 software packages, installed and uninstalled via the opkg package management system. OpenWrt can be configured using the command-line interface of BusyBox ash, or the web interface...

     for wireless router
    Wireless router
    A Wireless router is a device that performs the functions of a router but also includes the functions of a wireless access point and a network switch. They are commonly used to allow access to the Internet or a computer network without the need for a cabled connection. It can function in a wired...

    s.
  • RouterTech – for ADSL modem/routers based on the Texas Instruments AR7
    TI-AR7
    The Texas Instruments AR7 is a fully integrated single-chip ADSL CPE access router solution. The AR7 combines a MIPS32 processor, a DSP-based digital transceiver, and an ADSL analog front end.- Ownership history :...

     chipset (with the Pspboot or Adam2
    ADAM2
    Disintegrin and metalloproteinase domain-containing protein 2 is an enzyme that in humans is encoded by the ADAM2 gene.-External links:* The MEROPS online database for peptidases and their inhibitors:...

     bootloader).
  • Region free
    DVD region code
    DVD region codes are a digital-rights management technique designed to allow film distributors to control aspects of a release, including content, release date, and price, according to the region...

     firmware for DVD-drives, which are not region free with the official firmware.
  • SamyGO
    SamyGO
    SamyGO is a community of developers and end-users that started in the summer of 2009 and has grown to be a major source of modified firmware and software for newer Samsung televisions that have internet features, so called convergence devices...

    , modified firmware for Samsung
    Samsung
    The Samsung Group is a South Korean multinational conglomerate corporation headquartered in Samsung Town, Seoul, South Korea...

     televisions.
  • Many homebrew
    Homebrew (video games)
    Homebrew is a term frequently applied to video games or other software produced by consumers to target proprietary hardware platforms not typically user-programmable or that use proprietary storage methods...

     projects for gaming consoles. These often unlock general purpose computing functionality in previously limited devices (e.g., running Doom on iPod
    IPod
    iPod is a line of portable media players created and marketed by Apple Inc. The product line-up currently consists of the hard drive-based iPod Classic, the touchscreen iPod Touch, the compact iPod Nano, and the ultra-compact iPod Shuffle...

    s).


Most firmware hacks are free
Free software
Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...

 and open source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...

 software as well.

These hacks usually take advantage of the firmware update facility on many devices to install or run themselves. Some, however, must resort to exploit
Exploit (computer security)
An exploit is a piece of software, a chunk of data, or sequence of commands that takes advantage of a bug, glitch or vulnerability in order to cause unintended or unanticipated behavior to occur on computer software, hardware, or something electronic...

s in order to run, because the manufacturer has attempted to lock the hardware to stop it from running unlicensed code
Unsigned code
Unsigned code refers to an application which has not been signed with the secret key required for it to load on a console.In the video game console business, most console games have to be signed with a secret key designed by the console maker or the game will not load on the console...

.

Newer custom firmware hacks have also focused on injecting malware
Malware
Malware, short for malicious software, consists of programming that is designed to disrupt or deny operation, gather information that leads to loss of privacy or exploitation, or gain unauthorized access to system resources, or that otherwise exhibits abusive behavior...

 in devices such as smartphones. Example of one such is of Symbian OS, which was recently demonstrated at MalCon
Malcon
MALCON is an annual information security conference focusing exclusively on malware. It aims in bringing together Malware and Information Security Researchers from across the globe to share key research insights into building and containment of the next generation malwares. Unlike most hacker...

, a hacker convention.

See also

  • ROM image
    ROM image
    A ROM image, or ROM file, is a computer file which contains a copy of the data from a read-only memory chip, often from a video game cartridge, a computer's firmware, or from an arcade game's main board...

  • BIOS
    BIOS
    In IBM PC compatible computers, the basic input/output system , also known as the System BIOS or ROM BIOS , is a de facto standard defining a firmware interface....

  • Coreboot
  • Microcode
    Microcode
    Microcode is a layer of hardware-level instructions and/or data structures involved in the implementation of higher level machine code instructions in many computers and other processors; it resides in special high-speed memory and translates machine instructions into sequences of detailed...

  • Binary blob
    Binary blob
    In the free software community, binary blob is a pejorative term for an object file loaded into the kernel of a open source operating system without publicly available source code...

  • Software
  • Hardware
    Hardware
    Hardware is a general term for equipment such as keys, locks, hinges, latches, handles, wire, chains, plumbing supplies, tools, utensils, cutlery and machine parts. Household hardware is typically sold in hardware stores....

  • The Adam2 bootloader
  • The Pspboot bootloader