Memory Embedded Device Drivers
Submitted by vinayakpatil on Sun, 01/07/2007 - 08:05
Memory Embedded Device Drivers This concept looks into new emerging possibility of embedding device driver into hardware device itself. Disclaimer: This article is not intended to provide information about device drivers. Instead it goes into advanced concept of embedding device drivers into hardware device itself. For those who are unfamiliar with device drivers following is a simple information. You can google for more details of device drivers. Device driver is a software program which is meant to help operating system to communicate with piece of hardware device. Without device driver, operating system cannot use hardware device. Every piece of hardware installed into your computer system has driver associated with it. This includes any graphic cards, keyboard, mouse etc. Few operating systems are shipped with set of device drivers supplied by hardware vendors into it. If you are familiar with Windows operating system, you may have observed that when you connect a new device, operating system recognises it automatically and sometime installs device driver automatically. This becomes possible because operating system contains device driver of that device inside it or can locate it on CD or internet location and install it. In many non-plug-play operating systems, you have to install driver manually. Also similar to any program, device driver is specific to operating system, so you need a different device driver for different operating systems. So driver written for Windows does not work on Linux and vice-versa. Disadvantage of current system:
- If operating system does not contain suitable driver embedded, device driver should be supplied separately.
- Sometime operating system installs wrong driver for the device and device cannot function properly.
- How many times you get a hardware device and it contains warning to install supplied CD before connecting device.
- Sometime supplied device driver does not work, because its corrupted and its unusable. You cannot locate device driver anywhere on internet. You are left no choice but throw away device.
Solution: Advances into flash memory are making it possible to have cheap memory available in tiny size. For example MMC, SD, flash, and so on... What if vendor embed a small flash memory into device itself. Then store main device driver files for all operating systems into it. When device is connected, operating system will detect device with flash memory on it. It will find suitable device driver from embedded memory and install it automatically. If device driver contains many interactive files which use rich interfaces which might be expensive to embed into memory, then embed minimum basic required device drivers and then supply rest utilities on CD. This way, operating systems don't need to ship with thousands of vendor device drivers. Also it will ensure that correct device driver for device is installed. There is no need to supply separate device drivers for the device. Wherever device is sent, it will work properly due to inbuilt device driver. What do you think about this idea? I would like to hear from you...



Wishful thinking
As you have rightly pointed out, device drivers are OS-specific. So, each OS has its own implementation of device drivers.
So you have iterated the problem in your own solution, wherein you mention that the device drivers for ALL OSes has to be present in the on-board memory device.
There are more than 10-20 "major" OS vendors. Arguably, even more. So, the device manufacturer will have to port his drivers to at least 10 different OSes. I don't think OEM/ODMs spend that much on device software.
Today, the state of affairs is such that the manufacturers don't even let out hardware specifications so that embedded engineers of non-MS OSes can write the device driver for whichever OS they want. Most manufacturer will only release a Windoze driver in the installation CD.
Thanks, to the thousands of Free Software enthusiasts the world over who take the time out to "reverse-engineer" the device software and thus has made Linux compatible with so many devices without the manufacturers co-operating.
Also, MTD devices are not THAT cheap that they can come mounted on every device. For example, if a normal networking card (say, a relatek 8139) costing less than Rs.500/- today came with a Flash memory, it would not cost less than Rs.1000/-
However, from what I could grasp of your idea, you basically want an even more intelligent firmware,..... OS-independant and resident on on-chip flash memory. Well, dude , dream on!!
I sincerely hope such a day comes :-D
true
Hi Raseel,
I am aware of two problems you specified here...
1. non cooperation of manufacturers to release specifications
2. cost of memory
A movement against non cooperating manufacturers is increasing. A whole lobby of free software foundation is working towards it. But this matter is severe and complicated. It will take initiative from powerful magnets in the industry and political people to get rid of this monopoly. Remember this monopoly is not imposed by manufacturers but by Microsoft. Eliminating this will lead to fair ground for all operating systems in the market. One day it will happen. However concept I am talking here is not meant to tackle this problem. Its up to manufacturer to ship in drivers for particular operating system in memory. If that driver is not available in memory, you can always install from CD or other means.
Second problem of cost is a very important, but memory embedded into device does not cost that much. If you buy flash memory in the market, it has many other costs included into it (brand, packaging, marketing, vendor profits etc). Typically memory comes in minimum 64MB configuration. For device drivers you dont need that much. Flash memory is just one more component into device. When they embed chip and other components, memory can also be embedded into it without much effort. As prices of memory are falling rapidly, it wont add any cost to device in nearer future.
Third point I would like to make here: about intelligent firmware. This memory will not contain any firmware. Once standard protocol is defined, operating systems will be able to locate memory in device and get files from there. Of course there are hurdles in achieving this, but its not impossible.
Vinayak
I agree that the initiative
I agree that the initiative has to be taken from the top brass in the industry. But it is also the responsibility of the average device user to urge the manufacturers to release either the hardware specs or the device drivers for their preferred OS.
A simple case in example is that of the ICICIdirect.com website being incompatible with the Firefox browser. One gentleman from the Banglore LUG (or was it the Mumbai LUG), emailed, phoned, threatened to close down the account and in general ept harassing the customer service at ICICI. After about 2-3 months his request was heeded and the rest, as they say, was history.
Also you mentioned : "If that driver is not available in memory, you can always install from CD or other means"
But this driver has to be written sometime to be present in the CD in the first place , right ? So a Linux driver in the installation CD will be the end-result as a result of an initiative from all us Software enthusiasts.
And can you give me an example of a Flash memory less than 64MB that actually comes cheap ?
The concept you are talking about is good. In fact, as I previously mentioned, it;ll be a dream come true. But I'm still not convinced how it is practicalky possible in today's scenario.
Post new comment