Unusual flash configurations

As a first step, you should determine whether your board has an unusual flash configuration. In a standard flash configuration, the flash should be located at a contiguous physical memory address that can be directly mapped, read, and written to by software. Usually, the chips are allowed to be interleaved for performance/bus-width reasons.

Here are some examples of nonstandard flash configurations:

Special alignment restrictions
Some CPUs and/or boards require that the memory be read or written to at certain sizes and alignments. These boards cause unpredictable behavior (corruption, SIGBUS or SIGSEGV) if the default memcpy()-based MTD read function is used.
Miswired endian
Some boards have improperly wired flash that cause bytes to be in the wrong endian. This require significant custom modifications to many MTD callouts in order to write commands and read CFI data in the right endian.
PCMCIA
Under rare situations, some NOR flash-based PC Card storage devices are supported. These require special interactions with the PCMCIA driver.
SDRAM controller based
Most Micron flash chips use an interface based on SDRAM bus commands. While they can be made to work, special code must be written to access the board's memory controller.
NAND flash
CompactFlash, SD Card, SmartMedia, Sony MemoryStick, etc. These devices use NAND flash and are not supported by the devf-* flash drivers. NAND flash is totally different from NOR flash, but is often confused with the NOR flash.
SRAM
The devf-ram driver may work with some battery-backed SRAM. They are to be assessed on a case-by-case basis. Keep reading if you want to give it a try, but we can't guarantee the driver's resilience to power failure. This is because SRAM has a completely different "failure mode" from that of NOR flash.

If your board has any such unusual configuration, don't hesitate to consult your QNX Software Systems representative.