ec8f24b7faaf3 (Thomas Gleixner 2019-05-19 13:07:45 +0100 1) # SPDX-License-Identifier: GPL-2.0-only
2a22783be0fbb (Alexey Dobriyan 2009-01-22 10:56:54 +0300 2) config CRAMFS
8d59598c35dc1 (Nicolas Pitre 2017-10-12 02:16:13 -0400 3) tristate "Compressed ROM file system support (cramfs)"
2a22783be0fbb (Alexey Dobriyan 2009-01-22 10:56:54 +0300 4) select ZLIB_INFLATE
2a22783be0fbb (Alexey Dobriyan 2009-01-22 10:56:54 +0300 5) help
2a22783be0fbb (Alexey Dobriyan 2009-01-22 10:56:54 +0300 6) Saying Y here includes support for CramFs (Compressed ROM File
2a22783be0fbb (Alexey Dobriyan 2009-01-22 10:56:54 +0300 7) System). CramFs is designed to be a simple, small, and compressed
2a22783be0fbb (Alexey Dobriyan 2009-01-22 10:56:54 +0300 8) file system for ROM based embedded systems. CramFs is read-only,
2a22783be0fbb (Alexey Dobriyan 2009-01-22 10:56:54 +0300 9) limited to 256MB file systems (with 16MB files), and doesn't support
2a22783be0fbb (Alexey Dobriyan 2009-01-22 10:56:54 +0300 10) 16/32 bits uid/gid, hard links and timestamps.
2a22783be0fbb (Alexey Dobriyan 2009-01-22 10:56:54 +0300 11)
0c1bc6b84525b (Mauro Carvalho Chehab 2020-04-14 18:48:37 +0200 12) See <file:Documentation/filesystems/cramfs.rst> and
2a22783be0fbb (Alexey Dobriyan 2009-01-22 10:56:54 +0300 13) <file:fs/cramfs/README> for further information.
2a22783be0fbb (Alexey Dobriyan 2009-01-22 10:56:54 +0300 14)
2a22783be0fbb (Alexey Dobriyan 2009-01-22 10:56:54 +0300 15) To compile this as a module, choose M here: the module will be called
2a22783be0fbb (Alexey Dobriyan 2009-01-22 10:56:54 +0300 16) cramfs. Note that the root file system (the one containing the
2a22783be0fbb (Alexey Dobriyan 2009-01-22 10:56:54 +0300 17) directory /) cannot be compiled as a module.
2a22783be0fbb (Alexey Dobriyan 2009-01-22 10:56:54 +0300 18)
8d59598c35dc1 (Nicolas Pitre 2017-10-12 02:16:13 -0400 19) This filesystem is limited in capabilities and performance on
8d59598c35dc1 (Nicolas Pitre 2017-10-12 02:16:13 -0400 20) purpose to remain small and low on RAM usage. It is most suitable
8d59598c35dc1 (Nicolas Pitre 2017-10-12 02:16:13 -0400 21) for small embedded systems. If you have ample RAM to spare, you may
8d59598c35dc1 (Nicolas Pitre 2017-10-12 02:16:13 -0400 22) consider a more capable compressed filesystem such as SquashFS
8d59598c35dc1 (Nicolas Pitre 2017-10-12 02:16:13 -0400 23) which is much better in terms of performance and features.
54886a7153353 (Michael Opdenacker 2013-11-12 15:08:35 -0800 24)
2a22783be0fbb (Alexey Dobriyan 2009-01-22 10:56:54 +0300 25) If unsure, say N.
99c18ce580c6c (Nicolas Pitre 2017-10-13 16:09:23 -0400 26)
99c18ce580c6c (Nicolas Pitre 2017-10-13 16:09:23 -0400 27) config CRAMFS_BLOCKDEV
99c18ce580c6c (Nicolas Pitre 2017-10-13 16:09:23 -0400 28) bool "Support CramFs image over a regular block device" if EXPERT
99c18ce580c6c (Nicolas Pitre 2017-10-13 16:09:23 -0400 29) depends on CRAMFS && BLOCK
99c18ce580c6c (Nicolas Pitre 2017-10-13 16:09:23 -0400 30) default y
99c18ce580c6c (Nicolas Pitre 2017-10-13 16:09:23 -0400 31) help
99c18ce580c6c (Nicolas Pitre 2017-10-13 16:09:23 -0400 32) This option allows the CramFs driver to load data from a regular
99c18ce580c6c (Nicolas Pitre 2017-10-13 16:09:23 -0400 33) block device such a disk partition or a ramdisk.
99c18ce580c6c (Nicolas Pitre 2017-10-13 16:09:23 -0400 34)
99c18ce580c6c (Nicolas Pitre 2017-10-13 16:09:23 -0400 35) config CRAMFS_MTD
99c18ce580c6c (Nicolas Pitre 2017-10-13 16:09:23 -0400 36) bool "Support CramFs image directly mapped in physical memory"
a8c6db00bff2b (Nicolas Pitre 2018-02-07 22:08:08 -0500 37) depends on CRAMFS && CRAMFS <= MTD
99c18ce580c6c (Nicolas Pitre 2017-10-13 16:09:23 -0400 38) default y if !CRAMFS_BLOCKDEV
99c18ce580c6c (Nicolas Pitre 2017-10-13 16:09:23 -0400 39) help
99c18ce580c6c (Nicolas Pitre 2017-10-13 16:09:23 -0400 40) This option allows the CramFs driver to load data directly from
99c18ce580c6c (Nicolas Pitre 2017-10-13 16:09:23 -0400 41) a linear adressed memory range (usually non volatile memory
99c18ce580c6c (Nicolas Pitre 2017-10-13 16:09:23 -0400 42) like flash) instead of going through the block device layer.
99c18ce580c6c (Nicolas Pitre 2017-10-13 16:09:23 -0400 43) This saves some memory since no intermediate buffering is
99c18ce580c6c (Nicolas Pitre 2017-10-13 16:09:23 -0400 44) necessary.
99c18ce580c6c (Nicolas Pitre 2017-10-13 16:09:23 -0400 45)
99c18ce580c6c (Nicolas Pitre 2017-10-13 16:09:23 -0400 46) The location of the CramFs image is determined by a
99c18ce580c6c (Nicolas Pitre 2017-10-13 16:09:23 -0400 47) MTD device capable of direct memory mapping e.g. from
99c18ce580c6c (Nicolas Pitre 2017-10-13 16:09:23 -0400 48) the 'physmap' map driver or a resulting MTD partition.
99c18ce580c6c (Nicolas Pitre 2017-10-13 16:09:23 -0400 49) For example, this would mount the cramfs image stored in
99c18ce580c6c (Nicolas Pitre 2017-10-13 16:09:23 -0400 50) the MTD partition named "xip_fs" on the /mnt mountpoint:
99c18ce580c6c (Nicolas Pitre 2017-10-13 16:09:23 -0400 51)
99c18ce580c6c (Nicolas Pitre 2017-10-13 16:09:23 -0400 52) mount -t cramfs mtd:xip_fs /mnt
99c18ce580c6c (Nicolas Pitre 2017-10-13 16:09:23 -0400 53)
99c18ce580c6c (Nicolas Pitre 2017-10-13 16:09:23 -0400 54) If unsure, say N.