staging: android: persistent_ram: Make it possible to use memory outside of bootmem
authorAnton Vorontsov <anton.vorontsov@linaro.org>
Sat, 12 May 2012 00:17:54 +0000 (17:17 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 14 May 2012 15:56:05 +0000 (08:56 -0700)
commit24c3d2f342edbc10fee9f8ab9e0a033393686543
tree793b36b3249ef7d352b938163aa74d43025410e5
parent2b1321e4714cc03d298e1b06c1457f8786c083ed
staging: android: persistent_ram: Make it possible to use memory outside of bootmem

This includes devices' memory (e.g. framebuffers or memory mapped
EEPROMs on a local bus), as well as the normal RAM that we don't use
for the main memory.

For the normal (but unused) ram we could use kmaps, but this assumes
highmem support, so we don't bother and just use the memory via
ioremap.

As a side effect, the following hack is possible: when used together
with pstore_ram (new ramoops) module, we can limit the normal RAM region
with mem= and then point ramoops to use the rest of the memory, e.g.

mem=128M ramoops.mem_address=0x8000000

Sure, we could just reserve the region with memblock_reserve() early in
the arch/ code, and then register a pstore_ram platform device pointing
to the reserved region. It's still a viable option if platform wants
to do so.

Also, we might want to use IO accessors in case of a real device,
but for now we don't bother (the old ramoops wasn't using it either, so
at least we don't make things worse).

Signed-off-by: Anton Vorontsov <anton.vorontsov@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/android/persistent_ram.c