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