config CRAMFS
	tristate "Compressed ROM file system support (cramfs)"
	select ZLIB_INFLATE
	help
	  Saying Y here includes support for CramFs (Compressed ROM File
	  System).  CramFs is designed to be a simple, small, and compressed
	  file system for ROM based embedded systems.  CramFs is read-only,
	  limited to 256MB file systems (with 16MB files), and doesn't support
	  16/32 bits uid/gid, hard links and timestamps.

	  See <file:Documentation/filesystems/cramfs.txt> and
	  <file:fs/cramfs/README> for further information.

	  To compile this as a module, choose M here: the module will be called
	  cramfs.  Note that the root file system (the one containing the
	  directory /) cannot be compiled as a module.

	  This filesystem is limited in capabilities and performance on
	  purpose to remain small and low on RAM usage. It is most suitable
	  for small embedded systems. If you have ample RAM to spare, you may
	  consider a more capable compressed filesystem such as SquashFS
	  which is much better in terms of performance and features.

	  If unsure, say N.

config CRAMFS_BLOCKDEV
	bool "Support CramFs image over a regular block device" if EXPERT
	depends on CRAMFS && BLOCK
	default y
	help
	  This option allows the CramFs driver to load data from a regular
	  block device such a disk partition or a ramdisk.

config CRAMFS_MTD
	bool "Support CramFs image directly mapped in physical memory"
	depends on CRAMFS && CRAMFS <= MTD
	default y if !CRAMFS_BLOCKDEV
	help
	  This option allows the CramFs driver to load data directly from
	  a linear adressed memory range (usually non volatile memory
	  like flash) instead of going through the block device layer.
	  This saves some memory since no intermediate buffering is
	  necessary.

	  The location of the CramFs image is determined by a
	  MTD device capable of direct memory mapping e.g. from
	  the 'physmap' map driver or a resulting MTD partition.
	  For example, this would mount the cramfs image stored in
	  the MTD partition named "xip_fs" on the /mnt mountpoint:

	  mount -t cramfs mtd:xip_fs /mnt

	  If unsure, say N.
