If you're on LinkedIn, check out the Realtime Embedded Engineering Group for an interesting and often lively discussion of the issues facing our community. We particularly enjoyed reading the recent thread about the drivers included by hardware vendors being less than optimal for most flash parts. The consensus can be summed up in one blogger's statement;
"What many silicon vendors refer to as a 'driver' is nothing more than the code left over by their inhouse hardware development team. This code typically exercises just a small subset of the device capabilities (or whatever they were working on last) and doesn't even come close to meeting the definition (or spirit) of a general purpose device driver."
We couldn't have said it better ourselves. A lot of our time in developing our FlashFX family of flash memory drivers is spent ensuring completeness, reliability and portability to a wide variety of CPUs and operating systems.