0001 # SPDX-License-Identifier: GPL-2.0-only
0002 config CRAMFS
0003 tristate "Compressed ROM file system support (cramfs)"
0004 select ZLIB_INFLATE
0005 help
0006 Saying Y here includes support for CramFs (Compressed ROM File
0007 System). CramFs is designed to be a simple, small, and compressed
0008 file system for ROM based embedded systems. CramFs is read-only,
0009 limited to 256MB file systems (with 16MB files), and doesn't support
0010 16/32 bits uid/gid, hard links and timestamps.
0011
0012 See <file:Documentation/filesystems/cramfs.rst> and
0013 <file:fs/cramfs/README> for further information.
0014
0015 To compile this as a module, choose M here: the module will be called
0016 cramfs. Note that the root file system (the one containing the
0017 directory /) cannot be compiled as a module.
0018
0019 This filesystem is limited in capabilities and performance on
0020 purpose to remain small and low on RAM usage. It is most suitable
0021 for small embedded systems. If you have ample RAM to spare, you may
0022 consider a more capable compressed filesystem such as SquashFS
0023 which is much better in terms of performance and features.
0024
0025 If unsure, say N.
0026
0027 config CRAMFS_BLOCKDEV
0028 bool "Support CramFs image over a regular block device" if EXPERT
0029 depends on CRAMFS && BLOCK
0030 default y
0031 help
0032 This option allows the CramFs driver to load data from a regular
0033 block device such a disk partition or a ramdisk.
0034
0035 config CRAMFS_MTD
0036 bool "Support CramFs image directly mapped in physical memory"
0037 depends on CRAMFS && CRAMFS <= MTD
0038 default y if !CRAMFS_BLOCKDEV
0039 help
0040 This option allows the CramFs driver to load data directly from
0041 a linear adressed memory range (usually non volatile memory
0042 like flash) instead of going through the block device layer.
0043 This saves some memory since no intermediate buffering is
0044 necessary.
0045
0046 The location of the CramFs image is determined by a
0047 MTD device capable of direct memory mapping e.g. from
0048 the 'physmap' map driver or a resulting MTD partition.
0049 For example, this would mount the cramfs image stored in
0050 the MTD partition named "xip_fs" on the /mnt mountpoint:
0051
0052 mount -t cramfs mtd:xip_fs /mnt
0053
0054 If unsure, say N.