All Topics  
Firmware

 

   Email Print
   Bookmark   Link






 

Firmware



 
 
Firmware is a term sometimes used to denote the fixed, usually rather small, programs that internally control various electronic devices. Typical examples range from end user products such as remote control
Remote control

A remote control is an Electronics device used for the remote operation of a machine.The term remote control can be contracted to remote or controller....
s or calculator
Calculator

A calculator is a device for performing mathematical calculations, distinguished from a computer by having a limited problem solving ability and an interface optimized for interactive calculation rather than programming....
s, via computer parts and devices like harddisks, keyboard
Keyboard (computing)

In computing, a keyboard is an input device, partially modeled after the Typewriter#Keyboard layout, which uses an arrangement of buttons or Push-button, which act as mechanical levers or electronic switches....
s, TFT screens or memory card
Memory card

A memory card or flash memory card is a solid-state electronic flash memory data storage device used with digital cameras, Personal Digital Assistant and Mobile computers, telephones, music players, video game consoles, and other electronics....
s, all the way to scientific instrument
Scientific instrument

A scientific instrument is an apparatus or equipment used to collect datas in a sciences domain.The scientific instruments are part of a laboratory equipment, but are considered larger or more sophisticated than other measuring instruments....
ation and industrial robot
Industrial robot

An industrial robot is officially defined by International Organization for Standardization as an automatically controlled, reprogrammable, multipurpose manipulator programmable in three or more axes....
ics.






Discussion
Ask a question about 'Firmware'
Start a new discussion about 'Firmware'
Answer questions from other users
Full Discussion Forum



Encyclopedia


Television Remote Control
Firmware is a term sometimes used to denote the fixed, usually rather small, programs that internally control various electronic devices. Typical examples range from end user products such as remote control
Remote control

A remote control is an Electronics device used for the remote operation of a machine.The term remote control can be contracted to remote or controller....
s or calculator
Calculator

A calculator is a device for performing mathematical calculations, distinguished from a computer by having a limited problem solving ability and an interface optimized for interactive calculation rather than programming....
s, via computer parts and devices like harddisks, keyboard
Keyboard (computing)

In computing, a keyboard is an input device, partially modeled after the Typewriter#Keyboard layout, which uses an arrangement of buttons or Push-button, which act as mechanical levers or electronic switches....
s, TFT screens or memory card
Memory card

A memory card or flash memory card is a solid-state electronic flash memory data storage device used with digital cameras, Personal Digital Assistant and Mobile computers, telephones, music players, video game consoles, and other electronics....
s, all the way to scientific instrument
Scientific instrument

A scientific instrument is an apparatus or equipment used to collect datas in a sciences domain.The scientific instruments are part of a laboratory equipment, but are considered larger or more sophisticated than other measuring instruments....
ation and industrial robot
Industrial robot

An industrial robot is officially defined by International Organization for Standardization 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 long-range, electronic device used for mobile voice or data communication over a network of specialized base stations known as cell sites....
s, digital camera
Digital camera

A digital camera is a camera that takes video or still photographs, or both, digitally by recording digital image via an electronics .Many compact digital still cameras can record sound and moving video as well as still photographs....
s, synthesisers, etc., contain firmware to enable the device's basic operation as well as implementing higher level functions.

Naturally, there are no strict, or well defined, boundaries between firmware and software, both are quite loose descriptive terms. However, firmware is always involved with very basic low-level operations in a device, without which the device would be completely non-functional.

Simple firmware typically reside in ROM or OTP/PROM
Programmable read-only memory

A programmable read-only memory or field programmable read-only memory is a form of digital memory where the setting of each bit is locked by a Fuse or antifuse....
, while more complex firmware often employ flash memory
Flash memory

Flash memory is a non-volatile memory computer storage that can be electrically erased and reprogrammed. It is a technology that is primarily used in memory cards and USB flash drives for general storage and transfer of data between computers and other digital products....
 to allow for updates. 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

Origin of the term

The term "firmware" was coined by Ascher Opler in a 1967 Datamation article. Originally it meant the microcode
Microcode

Microcode is a layer of lowest-level instructions involved in the implementation of machine code instructions in many computers and other processors; it resides in a special high-speed memory and translates machine instructions into sequences of detailed circuit-level operations....
 contents of a writable control store (a specialized small area of RAM
Ram

Ram, ram, or RAM as a non-acronymic wordAs a non-acronymic word Ram, ram, or RAM may refer to:...
 memory), which defined and implemented the machine instruction set
Instruction set

An instruction set is a list of all the instruction , and all their variations, that a processor can execute.Instructions include:* Arithmetic such as add and subtract...
 of a computer's CPU. The firmware could be reloaded if needed to specialize or modify the computer's instruction set. As originally used firmware was contrasted with hardware (the CPU itself) and software (programs which ran on the CPU). It was not composed of CPU machine instructions, but of lower-level microcode
Microcode

Microcode is a layer of lowest-level instructions involved in the implementation of machine code instructions in many computers and other processors; it resides in a special high-speed memory and translates machine instructions into sequences of detailed circuit-level operations....
 involved in the implementation of machine instructions. It existed on the boundary of hardware and software, thus the term firmware.

Later the term was broadened to include any microcode, whether in RAM or ROM
Read-only memory

Read-only memory is a class of computer storage media used in computers and other electronic devices. Because data stored in ROM cannot be modified , it is mainly used to distribute firmware ....
.

Still later, the term was again broadened in popular usage to denote anything ROM-resident, including processor machine instructions for BIOS
BIOS

In computing, the Basic Input/Output System , also known as the System BIOS, is a de facto standard defining a firmware interface for IBM PC Compatible computers....
, bootstrap loaders
Booting

In computing, booting is a Bootstrapping process that starts operating systems when the user turns on a computer system. A boot sequence is the initial set of operations that the computer performs when it is switched on....
, or specialized applications.

Firmware today

Firmware has evolved to mean almost any programmable content of a hardware device, not only machine code
Machine code

Machine code or machine language is a system of instructions and data executed directly by a computer's central processing unit. Machine code may be regarded as a primitive programming language or as the lowest-level representation of a compiled and/or assembly language computer program....
 for a microprocessor
Microprocessor

A microprocessor incorporates most or all of the functions of a central processing unit on a single integrated circuit . The first microprocessors emerged in the early 1970s and were used for electronic calculators, using Binary-coded decimal arithmetic on 4-bit Word ....
, but also configurations and data for 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....
s, programmable logic device
Programmable logic device

A programmable logic device or PLD is an electronics component used to build Reconfigurable Computing digital circuits. Unlike a logic gate, which has a fixed function, a PLD has an undefined function at the time of manufacture....
s, etc. Although modern devices that can be updated with new firmware typically employ semi-automatic methods, sometimes a storage medium, such as a socketed ROM
Read-only memory

Read-only memory is a class of computer storage media used in computers and other electronic devices. Because data stored in ROM cannot be modified , it is mainly used to distribute firmware ....
, must be replaced (which was a typical procedure until the mid 1990s).

Computer peripherals

Most computer peripherals are indeed special-purpose computers. While external devices have firmware stored internally, modern computer peripheral cards typically have large parts of the firmware loaded by the host system at start-up, as this is more flexible. Such hardware may therefore be unable to function fully until the host computer has fed it the requisite firmware, often via the card's 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....
 (or, more exactly, a subsystem within a device driver package). Modern device drivers may also expose a direct user interface for configuration in addition to the fundamental operating system calls/interfaces and/or application program interfaces at the programming-level.

Firmware challenges in PCs
In some respects, the various firmware components are as important as the operating system in a working computer. However, unlike most modern operating systems, firmware rarely has a well evolved mechanism for updating itself to fix functionality issues that are detected after the unit is shipped.

The BIOS is fairly easy to update in a modern PC; devices like video cards or modems often rely on firmware dynamically loaded by a device driver and may thus be transparently updated through the operating system
Operating system

An operating system is an interface between hardware and applications; it is responsible for the management and coordination of activities and the sharing of the limited resources of the computer....
 update mechanisms. In contrast, firmware in storage devices is rarely updated; mechanisms for detecting firmware versions and updating them are not standardized. These devices therefore tend to have a higher rate of functionality issues, compared to other parts of a modern computer system.

Examples

Examples of firmware include:
  • Timing and control systems for washing machine
    Washing machine

    A washing machine, or washer, is a machine designed to clean laundry, such as clothing, towels and Bed sheets. The term is mostly applied only to machines that use water as the primary cleaning solution, as opposed to dry cleaning or even ultrasonic cleaners....
    s
  • The BIOS
    BIOS

    In computing, the Basic Input/Output System , also known as the System BIOS, is a de facto standard defining a firmware interface for IBM PC Compatible computers....
     found in IBM-compatible Personal Computers;
  • The platform code found on Itanium
    Itanium

    Itanium is the brand name for 64-bit Intel microprocessors that implement the Intel Itanium architecture . Intel has released two processor families using the brand: the original Itanium and the Itanium 2....
     systems, Intel-based Mac OS X
    Mac OS X

    Mac OS X is a line of computer operating systems developed, marketed, and sold by Apple Inc., and since 2002 has been included with all new Macintosh computer systems....
     machines, and many Intel desktop boards is EFI
    Extensible Firmware Interface

    The Extensible Firmware Interface is a specification that defines a software interface between an operating system and platform firmware. EFI is intended as a significantly improved replacement of the old legacy BIOS firmware interface historically used by all IBM PC compatible personal computers....
     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....
    , used in computers from Sun Microsystems
    Sun Microsystems

    Sun Microsystems, Inc. is a multinational corporation vendor of computers, computer components, computer software, and information technology services, founded on February 24, 1982....
     and Apple Computer
    Apple Computer

    Apple Inc., formerly Apple Computer Inc., is an United States multinational corporation which designs and manufactures consumer electronics and software products....
    ;
  • ARCS
    ARCS

    ARCS is a firmware bootloader used in most computers produced by Silicon Graphics since the beginning of the 1990s.The ARCS system is loosely compliant with the Advanced RISC Computing standard, promulgated by the Advanced Computing Environment consortium in the early 1990s....
    , used in computers from Silicon Graphics
    Silicon Graphics

    Silicon Graphics, Inc. is a company manufacturer high-performance computing solutions, including computer hardware and computer software. SGI was founded by James H....
    ;
  • RTAS
    RTAS

    RTAS, or Run-Time Abstraction Services, is run-time firmware that provides abstractions to the operating systems running on IBM System i and IBM System p computers....
     (Run-Time Abstraction Services), used in computers from IBM
    IBM

    International Business Machines Corporation, abbreviated IBM and nicknamed "Big Blue" , is a multinational corporation computer technology and consulting corporation headquartered in Armonk, New York, New York, United States....
    ;
  • EPROM
    EPROM

    An EPROM, or Erasable Programmable Read Only Memory, is a type of memory integrated circuit that retains its data when its power supply is switched off....
     chips used in the Eventide H-3000 series of digital music processors.
  • The Common Firmware Environment (CFE)


Firmware "hacking"

Sometimes an unofficial new or modified version of firmware is created by third parties to provide new features or unlock hidden functionality. Examples include Rockbox
Rockbox

Rockbox is a free software replacement for the firmware held on various forms of digital audio players . Rockbox offers an alternative to the host device's operating system firmware which provides a plug-in architecture for adding various enhancements and functionality to DAPs which are not present in the original OS....
 for digital audio player
Digital audio player

A digital audio player, more commonly referred to as an MP3 player, is a consumer electronics device that stores, organizes and plays audio file formats....
s, CHDK for Canon digital cameras, and OpenWRT
OpenWrt

OpenWrt is a Linux-based firmware program for Embedded system such as residential gateways. Support was originally limited to the Linksys WRT54G series, but has since been expanded to include other chipsets and manufacturers, including Netgear, D-Link, Asus and many others....
 for wireless router
Wireless router

A wireless router is a network device that performs the functions of a router but also includes the functions of a wireless access point. It is commonly used to allow access to the Internet or a computer network without the need for a cabled connection....
s, as well as many homebrew
Homebrew (video games)

Homebrew is a term frequently applied to video games produced by consumers to target proprietary hardware platforms not typically user-programmable or that use proprietary storage methods....
 projects for gaming consoles. These can often unlock general purpose computing functionality in previously limited devices (e.g., running Doom on iPod
IPod

iPod is a brand of portable media players designed and marketed by Apple Inc. and launched on . The product line-up includes the hard drive-based iPod Classic, the touchscreen iPod Touch, the video-capable iPod Nano, and the compact iPod Shuffle....
s). Most firmware hacks are free
Free software

Free Software or software libre 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 minimal restrictions only to ensure that further recipients can also do these things and to prevent consumer-facing hardware...
 and open source
Open source

Open source is an approach to design, development, and distribution offering practical accessibility to a product's source . Some consider open source as one of various possible design approaches, while others consider it a critical Strategy element of their business operations....
 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 take advantage of a software 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 Key required for it to load on a Handheld game 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....
.

See also

  • ROM image
    ROM image

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

    In computing, the Basic Input/Output System , also known as the System BIOS, is a de facto standard defining a firmware interface for IBM PC Compatible computers....
  • Coreboot
  • Microcode
    Microcode

    Microcode is a layer of lowest-level instructions involved in the implementation of machine code instructions in many computers and other processors; it resides in a special high-speed memory and translates machine instructions into sequences of detailed circuit-level operations....
  • Binary blob
    Binary blob

    In Free software community, binary blob is a pejorative term for an Objective Code Linker into the Kernel of a free software or open-source software operating system without publicly available source code....