Skip to content

Commit

Permalink
NOMMU: Make it possible for RomFS to use MTD devices directly
Browse files Browse the repository at this point in the history
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 <[email protected]>
Tested-by: Bernd Schmidt <[email protected]>
Signed-off-by: David Woodhouse <[email protected]>
  • Loading branch information
dhowells authored and David Woodhouse committed Mar 24, 2009
1 parent 6e232cf commit da4458b
Show file tree
Hide file tree
Showing 7 changed files with 1,062 additions and 667 deletions.
24 changes: 24 additions & 0 deletions fs/romfs/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,27 @@ config ROMFS_FS

If you don't know whether you need it, then you don't need it:
answer N.

config ROMFS_ON_BLOCK
bool "Block device-backed ROM file system support" if (ROMFS_ON_MTD && EMBEDDED)
depends on ROMFS_FS && BLOCK
help
This permits ROMFS to use block devices buffered through the page
cache as the medium from which to retrieve data. It does not allow
direct mapping of the medium.

If unsure, answer Y.

config ROMFS_ON_MTD
bool "MTD-backed ROM file system support"
depends on ROMFS_FS
depends on MTD=y || (ROMFS_FS=m && MTD)
help
This permits ROMFS to use MTD based devices directly, without the
intercession of the block layer (which may have been disabled). It
also allows direct mapping of MTD devices through romfs files under
NOMMU conditions if the underlying device is directly addressable by
the CPU.

If unsure, answer Y.

9 changes: 7 additions & 2 deletions fs/romfs/Makefile
Original file line number Diff line number Diff line change
@@ -1,7 +1,12 @@
#
# Makefile for the linux romfs filesystem routines.
# Makefile for the linux RomFS filesystem routines.
#

obj-$(CONFIG_ROMFS_FS) += romfs.o

romfs-objs := inode.o
romfs-y := storage.o super.o

ifneq ($(CONFIG_MMU),y)
romfs-$(CONFIG_ROMFS_ON_MTD) += mmap-nommu.o
endif

Loading

0 comments on commit da4458b

Please sign in to comment.