We need to move away from the per-platform drivers. We want generic cross-platform device drivers with the platform providing necessary specifics - flash base, count, configuration, platform-specific RW control, cache magic. Already made a (incomplete) start with Intel bootblock parts and AMD 29F040 parts. The IO driver needs some changes to support mutiple flash regions of different types.
Note that the AMD (generic) code uses some run-time loops to handle interleaved parts. We probably have to abandon that in favor of compile-time magic to handle various bus widths (using macros). Problem with the existing code is that it may not work on all architectures if they do reads before partial writes (i.e., read 32 bits, update byte of that, write out 32 bits).
See this thread: CC: ecc-dev-drivers Subject: Attempt at generalizing the AMD AM29F040B flash driver
See also this thread: Cc: eCos Engineering <ecc-eng.uk> Subject: OMAP uses intel flash driver
This bug has moved to http://bugs.ecos.sourceware.org/show_bug.cgi?id=23392