In electronic systems and computing, firmware is a term often used to denote the fixed, usually rather small, programs and/or data structures that internally control various electronic devices.
In general, the difference between software and firmware is the level at which it interacts with the hardware. Firmware interacts at the very low level of the hardware while software interacts at high levels. Firmware generally controls the basic timing, controls and functionality of hardware. source
Typical example of firmware are the BIOS, coreboot and EFI programs in a motherboard.