NOR Flash regions mapped to non contiguous physical memory

Rams Subramanian rams.rsu at gmail.com
Thu Sep 25 10:51:37 PDT 2014


Hi,

We have a special case where the chip selects for external memory
interface has the addressing range of 32MB per chip select.  We have
interfaced 128MB NOR flash and our addressable regions are
non-contiguous.

 E.g Flash Map

       * CS0 : 0x30000000 - 0x32000000 : (32MB)

       * CS1 : 0x34000000 - 0x36000000 : (32MB)

       * CS2 : 0x38000000 - 0x3A000000 : (32MB)

       * CS3 : 0x3C000000 - 0x3E000000 : (32MB)



We tried to define mtd map to force it to detect 4 physical chips so
that mtdconcat can handle the rest.  But mtdconcat does not work well
for this case as we dont have 4 physical chips.  The mtd driver does
parallel accesses assuming 4 physical chips.  So we could not have
flash file system spanning over 4 regions.  It is fine to work with
single region at a time.

What we actually want is to define a flash which has 4 non contiguous
regions.  Can this be done with existing mtd drivers?

Is that possible to get contiguous virtual memory from non contiguous
physical memory?



Thanks in advance
Rams



More information about the linux-mtd mailing list