Kevin
The uTasker project allows internal Flash, SPI based Flash and EEPROM to be used "seemlessly" by allocating it to a virtual memory mapped space (usually SPI Flash follows onto the address space of the interal Flash).
Eg. Internal Flash from 0x00000000 .. 0x0003ffff (256k)
SPI based 0x00040000 .. 0x0103ffff (16 M)
Write and reads can then be performed across the boundary (eg. a 1k write from 0x3ff00..0x402ff)
However the physical rules for write/erase for the individual types of components still need to be respected (some restictions on what is possible - eg. smallest erase size is usually different in the various mediums).
Also, if the usage is not linear but formatted (eg. FAT) or if there are high endurance requirements then whatever the medium (serially addressed or parallel) there will still be block management and wear leveling involved.
If your requirement is to be able to run code directly from the external Flash then serial based (including NAND) is not suitable and then only parallel NOR Flash is an option (or more exotic things like MRAM etc.).
Therefore for some "linear" applications with no high endurancy (write/erase < 50k in lifetime) seemless Flash/SPI Flash is possible. For applications requiring high endurance and block management serial and parallel can be used but in this case it can't be "seemless" with internal Flash and its memory mapping.
Only when running code directly from external Flash does it need to be parallel, whereby no block management layer (not high endurance) is possible.
Regards
Mark
Kinetis: µTasker Kinetis support
Flash/SPI Based file/parameter system: http://www.utasker.com/docs/uTasker/uTaskerFileSystem_3.PDF / http://www.utasker.com/docs/uTasker/uTaskerFileSystemSPI_FLASH_003.PDF
For the complete "out-of-the-box" Kinetis experience and faster time to market