Hanh Nguyen FIRMWARE
What is it? • Firmware is a software program or set of instructions programmed on a hardware device. • Layer between hardware and software • Also call “embeded software” • Non-volatile, installed on ROM chips (ROM, PROM, EPROM) or flash chips
Examples • The BIOS found in IBM-compatible Personal Computers • The operating system on a router • The iPod's control menus • The Xbox 360 Dashboard Firmware is in every electronic device you can think of!
What does it do? • Enables the device to render its capabilities functional. • Coordinates the activities of the hardware during normal operation and contains programming constructs used to perform those operations. Example: in a typical modem, the firmware will be a factor in establishing the modem's data rate, command set recognition, and special feature implementation
How was it developed? • Developed using low-level programming languages or machine language • The development cycles is as complicated as regular software development. • Developers must have deep understanding of the hardware of the product as well as the programming skills. • Must be well-tested.
Firmware trends • Upgradable • Portable • Open source and close source
Upgradeable • In the past, firmware chips could not be rewritten. When the BIOS became outdated, the only option was to buy a new motherboard. • Nowadays, most firmware can be updated because it is stored in flash memory. Flashing firmware is also risky, as the device will not boot if the flashing process is interrupted or becomes corrupted
Upgradeable • One of the most common devices to have regular firmware updates are recording devices such as optical media writers (DVD, CD, HD DVD, Blu-ray)
Portable • In the past, most devices run their own firmware. • Over the years, manufacturers have found that loading the firmware from the host system is both cheaper and more flexible. As a result, much current hardware is unable to function in any useful way until the host computer has fed it the requisite firmware. This firmware load is handled by the device driver.
Portable • Devices like the wireless card Intel Pro Wireless 2200bg, the driver is in the Linux kernel, but you have to put the firmware into /lib/firmware before you can use the device • In Linux, there is a folder for firmware: /lib/firmware
Open source and Closed source • Firmware goes open source! Example: firmware for Linksys router LinuxBIOS OpenBIOS
BIOS • Basic Input/Output System,firmware code run by an IBM compatible PC • Runs when the computer is powered on. It initializes several motherboard components and peripherals, including: processors and caches, chipset, memory, graphics controller, mass storage controllers, various I/O controllers . • Finally, it loads the boot loader for the operating system, and transfers control to it.
BIOS • Recently, the BIOS has taken on more complex functions such as power management, hot swapping and thermal management • Extensible Firmware Interface (EFI)was invented to extends BIOS functionality while reducing the complexity • Open source efforts: LinuxBIOS, OpenBIOS
Conclusion • Firmware is very important because it is the link between hardware and software • Firmware is getting more and more important because of the growth of embed computer/system. • The development of firmware is very much like software