NOMMU: Make it possible for RomFS to use MTD devices directly
authorDavid Howells <dhowells@redhat.com>
Thu, 12 Feb 2009 10:40:10 +0000 (10:40 +0000)
committerDavid Woodhouse <David.Woodhouse@intel.com>
Tue, 24 Mar 2009 09:01:32 +0000 (09:01 +0000)
commitda4458bda237aa0cb1688f6c359477f203788f6a
tree9b76cb1ecb462cccc8412eef2af5f18dcee77b51
parent6e232cfce35a20a8702d9ac7709d35030c1b3271
NOMMU: Make it possible for RomFS to use MTD devices directly

Change RomFS so that it can use MTD devices directly - without the intercession
of the block layer - as well as using block devices.

This permits RomFS:

 (1) to use the MTD direct mapping facility available under NOMMU conditions if
     the underlying device is directly accessible by the CPU (including XIP);

 (2) and thus to be used when the block layer is disabled.

RomFS can be configured with support just for MTD devices, just for Block
devices or for both.  If RomFS is configured for both, then it will treat
mtdblock device files as MTD backing stores, not block layer backing stores.

I tested this using a CONFIG_MMU=n CONFIG_BLOCK=n kernel running on my FRV
board with a RomFS image installed on the mtdram test device.  I see my test
program being run XIP:

# cat /proc/maps
...
c0c000b0-c0c01f8c r-xs 00000000 1f:00 144        /mnt/doshm
...

GDB on the kernel can be used to show that these addresses are within the
set-aside RAM space.

Signed-off-by: David Howells <dhowells@redhat.com>
Tested-by: Bernd Schmidt <bernd.schmidt@analog.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
fs/romfs/Kconfig
fs/romfs/Makefile
fs/romfs/inode.c [deleted file]
fs/romfs/internal.h [new file with mode: 0644]
fs/romfs/mmap-nommu.c [new file with mode: 0644]
fs/romfs/storage.c [new file with mode: 0644]
fs/romfs/super.c [new file with mode: 0644]