A small piece of Software that resides in a piece of Hardware to implement low-level functions.
This is often stored on the hardware permanently, either in ROM (which can't be changed) or in NVRAM which can be "flashed" and replaced with a newer firmware.
Many cheaper hardware peripherals (such as the wireless chip used in many Centrino-based laptops) don't store the firmware at all, and require the OperatingSystem's Driver to load the firmware onto the card before use.
The LinuxKernel hackers have had a policy of not including drivers that require ClosedSource firmware to make the hardware work, although many Linux distributions include such drivers (and firmware, where they are allowed to distribute it) in their kernel images. More recently the LinuxKernel has had accepted a number of network Drivers with ClosedSource firmware.