Re: of-flash: Unable to ioremap() both 128MB NOR flashes on 32-bit system with 2GB+ RAM

From: Kyle Moffett
Date: Fri Jun 25 2010 - 00:02:31 EST

Oops... put the old linuxppc list on the CC, sorry!

On Thu, Jun 24, 2010 at 23:45, Kyle Moffett <kyle@xxxxxxxxxxxxxxx> wrote:
> Hello,
> I've got a new P2020 (32bit mpc85xx family) board I'm working on a
> port for that includes 2 NOR flashes (128MB each) and a removable
> SO-RDIMM of 2GB or 4GB. ÂUnfortunately when I configure both flashes
> in the device-tree off my elbc, Linux is completely unable to access
> the second one because it attempts to ioremap() the entire virtual
> address space of both FLASH chips.
> Even with only one flash chip enabled, there's a bit of a noticeable
> performance degradation because the mapping consumes almost all of my
> available vmalloc space and forces bounce-buffering for all my
> It looks like the "of-flash" driver currently requires that the whole
> chip be mapped in the kernel at once. ÂI would much rather have a 50%
> performance penalty on flash accesses (which are already very slow)
> and regain most of the vmap space.
> So the question is, is there a way to convince the MTD layer to
> iomap() only what it needs to access to do reads and writes? ÂIf not,
> what changes would need to be made to MTD and/or "of-flash" to create
> such functionality?
> Cheers,
> Kyle Moffett
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at