EmbeddedRelated.com
Forums
The 2024 Embedded Online Conference

Firmware and device drivers

Started by kmeson September 26, 2007
Hi,
I would like to request some help in understanding the relationship
beween firmware and device drivers.
My understanding of firmware is software that is generally stored on
the ROM/EEPROM/flash of a device controller and performs specific
functions pertaining to that device.
But a device driver also helps the user in interacting with the
device. So how does the functionality of the device driver differ from
that of the firmware ? Does the device driver communicate with the
firmware to control the device or are these two mutually exclusive ?
I am newbie to this concept and would request someone to clarify the
above or provide links which clearly explain the distinction.

Thanks
-kmeson

On Sep 26, 8:24 am, kmeson <kmeson...@gmail.com> wrote:

> My understanding of firmware is software that is generally stored on > the ROM/EEPROM/flash of a device controller and performs specific > functions pertaining to that device.
If you're talking about a device that attaches to a PC, this isn't necessarily true. An increasing number of peripherals have only a very small bootloader built into ROM/EEPROM/FLASH. The firmware is resident in the device driver, which uploads it to the peripheral at boot time. Anyway, the short answer to your question is that if it runs in the device, it's firmware - if it runs on the PC, it's a driver.
On 2007-09-26, kmeson <kmeson333@gmail.com> wrote:

> I would like to request some help in understanding the > relationship beween firmware and device drivers. My > understanding of firmware is software that is generally stored > on the ROM/EEPROM/flash of a device controller and performs > specific functions pertaining to that device.
Firmware is software stoered in non-volatile memory in an embedded system.
> But a device driver also helps the user in interacting with > the device. So how does the functionality of the device driver > differ from that of the firmware?
You're comparing apples and oranges. Firmware might actually contain a device drivers.
> Does the device driver communicate with the firmware
Maybe, if the board containing the firmware on a board that is part of a larger host system which uses a device driver to interface with the board containing the firmware.
> to control the device or are these two mutually exclusive?
The two are orthogonal. Firmware refers to where the software is stored. Device driver refers to the purpose of a particular chunk of software.
> I am newbie to this concept and would request someone to > clarify the above or provide links which clearly explain the > distinction.
-- Grant Edwards grante Yow! Are we THERE yet? at My MIND is a SUBMARINE!! visi.com
On 2007-09-26, larwe <zwsdotcom@gmail.com> wrote:
> On Sep 26, 8:24 am, kmeson <kmeson...@gmail.com> wrote: > >> My understanding of firmware is software that is generally stored on >> the ROM/EEPROM/flash of a device controller and performs specific >> functions pertaining to that device. > > If you're talking about a device that attaches to a PC, this isn't > necessarily true. An increasing number of peripherals have only a very > small bootloader built into ROM/EEPROM/FLASH. The firmware is resident > in the device driver, which uploads it to the peripheral at boot time.
Which is sort of bending the original meaning of "firmware" a bit past the breaking point, but that's the way natural languages work.
> Anyway, the short answer to your question is that if it runs in the > device, it's firmware - if it runs on the PC, it's a driver.
Unless it's a device driver within some firmware. There are "firmwares" that are quite large (e.g. embedded Linux systems) and manage a diverse set of peripherals on their own. Those firmwares contain device drivers for the various peripherals on the board where the firmware is running. -- Grant Edwards grante Yow! Will this never-ending at series of PLEASURABLE visi.com EVENTS never cease?
In article <13fksf01mt4uaf7@corp.supernews.com>, Grant Edwards says...
> Unless it's a device driver within some firmware. There are > "firmwares" that are quite large (e.g. embedded Linux systems) > and manage a diverse set of peripherals on their own. Those > firmwares contain device drivers for the various peripherals on > the board where the firmware is running.
Of course you don't need a particularly large (a la Linux) firmware image to use device drivers. They can be useful for smaller applications. Asyncronous serial, SPI and IIC in particular. Robert -- Posted via a free Usenet account from http://www.teranews.com
> My understanding of firmware is software that is generally stored on > the ROM/EEPROM/flash of a device controller and performs specific > functions pertaining to that device. > But a device driver also helps the user in interacting with the > device. So how does the functionality of the device driver differ from > that of the firmware ?
Firmware is software which executes on its own in some MCU or whatever system a device has. Device drivers are pieces of software which belong to an OS; they are used by the OS device independent I/O functions (filesystem etc.) to access various hardware, i.e. they provide a standard software interface between the OS and various hardware which it has to access (like an ATA disk, a SCSI disk, some USB thing, you name it). Thus if the firmware of some gizmo includes an OS, it is likely it will contain its own inherent device drivers... :-). Dimiter ------------------------------------------------------ Dimiter Popoff Transgalactic Instruments http://www.tgi-sci.com ------------------------------------------------------ On Sep 26, 3:24 pm, kmeson <kmeson...@gmail.com> wrote:
> Hi, > I would like to request some help in understanding the relationship > beween firmware and device drivers. > My understanding of firmware is software that is generally stored on > the ROM/EEPROM/flash of a device controller and performs specific > functions pertaining to that device. > But a device driver also helps the user in interacting with the > device. So how does the functionality of the device driver differ from > that of the firmware ? Does the device driver communicate with the > firmware to control the device or are these two mutually exclusive ? > I am newbie to this concept and would request someone to clarify the > above or provide links which clearly explain the distinction. > > Thanks > -kmeson
kmeson wrote:
> Hi, > I would like to request some help in understanding the relationship > beween firmware and device drivers. > My understanding of firmware is software that is generally stored on > the ROM/EEPROM/flash of a device controller and performs specific > functions pertaining to that device. > But a device driver also helps the user in interacting with the > device. So how does the functionality of the device driver differ from > that of the firmware ? Does the device driver communicate with the > firmware to control the device or are these two mutually exclusive ? > I am newbie to this concept and would request someone to clarify the > above or provide links which clearly explain the distinction. >
The system's firmware generally provides the required environment for a device's firmware to exercise the device. Similarly OS provides the environment for a device driver to make use of the device. Although it gets interesting when you are referring an external device with a controller e.g. external USB storage device. In this case the device would carry it's own firmware and the system OS (USB storage) driver would talk to the device via USB stack implemented in the OS. The USB responses from the external device would mainly be driven by the firmware running on it. Regards, Anand.
On Sep 27, 3:30 pm, Anand Misra <Anand.Mi...@Sun.COM> wrote:
> kmeson wrote: > > Hi, > > I would like to request some help in understanding the relationship > > beween firmware and device drivers. > > My understanding of firmware is software that is generally stored on > > the ROM/EEPROM/flash of a device controller and performs specific > > functions pertaining to that device. > > But a device driver also helps the user in interacting with the > > device. So how does the functionality of the device driver differ from > > that of the firmware ? Does the device driver communicate with the > > firmware to control the device or are these two mutually exclusive ? > > I am newbie to this concept and would request someone to clarify the > > above or provide links which clearly explain the distinction. > > The system's firmware generally provides the required environment > for a device's firmware to exercise the device. Similarly OS > provides the environment for a device driver to make use of the > device. Although it gets interesting when you are referring an > external device with a controller e.g. external USB storage > device. In this case the device would carry it's own firmware and > the system OS (USB storage) driver would talk to the device via > USB stack implemented in the OS. The USB responses from the > external device would mainly be driven by the firmware running on it. > > Regards, > Anand.
I have a question: Is there a place on the PC where drivers are stored? Once they are installed; is there a particular location/path/ folder this device driver can be located? Can it be copied and pasted into a new system, and provide functionality on the new system? Thanks
On 2007-10-01, dougmerriman@gmail.com <dougmerriman@gmail.com> wrote:

> I have a question: Is there a place on the PC where drivers > are stored?
Yes. Usually in files on the hard drive.
> Once they are installed; is there a particular location/path/ > folder this device driver can be located?
Usually yes.
> Can it be copied and pasted into a new system, and provide > functionality on the new system? Thanks
Maybe. It depends on the OS. You might have to configure the OS to use the driver. The driver may only work with particular versions of the OS. -- Grant

The 2024 Embedded Online Conference