^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 JFFS2_FS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) tristate "Journalling Flash File System v2 (JFFS2) support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) select CRC32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) depends on MTD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) JFFS2 is the second generation of the Journalling Flash File System
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) for use on diskless embedded devices. It provides improved wear
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) levelling, compression and support for hard links. You cannot use
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) this on normal block devices, only on 'MTD' devices.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) Further information on the design and implementation of JFFS2 is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) available at <http://sources.redhat.com/jffs2/>.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) config JFFS2_FS_DEBUG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) int "JFFS2 debugging verbosity (0 = quiet, 2 = noisy)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) depends on JFFS2_FS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) default "0"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) This controls the amount of debugging messages produced by the JFFS2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) code. Set it to zero for use in production systems. For evaluation,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) testing and debugging, it's advisable to set it to one. This will
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) enable a few assertions and will print debugging messages at the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) KERN_DEBUG loglevel, where they won't normally be visible. Level 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) is unlikely to be useful - it enables extra debugging in certain
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) areas which at one point needed debugging, but when the bugs were
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) located and fixed, the detailed messages were relegated to level 2.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) If reporting bugs, please try to have available a full dump of the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) messages at debug level 1 while the misbehaviour was occurring.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) config JFFS2_FS_WRITEBUFFER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) bool "JFFS2 write-buffering support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) depends on JFFS2_FS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) This enables the write-buffering support in JFFS2.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) This functionality is required to support JFFS2 on the following
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) types of flash devices:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) - NAND flash
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) - NOR flash with transparent ECC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) - DataFlash
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) config JFFS2_FS_WBUF_VERIFY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) bool "Verify JFFS2 write-buffer reads"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) depends on JFFS2_FS_WRITEBUFFER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) default n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) This causes JFFS2 to read back every page written through the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) write-buffer, and check for errors.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) config JFFS2_SUMMARY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) bool "JFFS2 summary support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) depends on JFFS2_FS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) default n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) This feature makes it possible to use summary information
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) for faster filesystem mount.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) The summary information can be inserted into a filesystem image
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) by the utility 'sumtool'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) If unsure, say 'N'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) config JFFS2_FS_XATTR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) bool "JFFS2 XATTR support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) depends on JFFS2_FS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) default n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) Extended attributes are name:value pairs associated with inodes by
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) the kernel or by users (see the attr(5) manual page for details).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) config JFFS2_FS_POSIX_ACL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) bool "JFFS2 POSIX Access Control Lists"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) depends on JFFS2_FS_XATTR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) select FS_POSIX_ACL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) Posix Access Control Lists (ACLs) support permissions for users and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) groups beyond the owner/group/world scheme.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) If you don't know what Access Control Lists are, say N
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) config JFFS2_FS_SECURITY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) bool "JFFS2 Security Labels"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) depends on JFFS2_FS_XATTR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) Security labels support alternative access control models
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) implemented by security modules like SELinux. This option
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) enables an extended attribute handler for file security
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) labels in the jffs2 filesystem.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) If you are not using a security module that requires using
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) extended attributes for file security labels, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) config JFFS2_COMPRESSION_OPTIONS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) bool "Advanced compression options for JFFS2"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) depends on JFFS2_FS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) default n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) Enabling this option allows you to explicitly choose which
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) compression modules, if any, are enabled in JFFS2. Removing
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) compressors can mean you cannot read existing file systems,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) and enabling experimental compressors can mean that you
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) write a file system which cannot be read by a standard kernel.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) If unsure, you should _definitely_ say 'N'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) config JFFS2_ZLIB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) bool "JFFS2 ZLIB compression support" if JFFS2_COMPRESSION_OPTIONS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) select ZLIB_INFLATE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) select ZLIB_DEFLATE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) depends on JFFS2_FS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) Zlib is designed to be a free, general-purpose, legally unencumbered,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) lossless data-compression library for use on virtually any computer
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) hardware and operating system. See <http://www.gzip.org/zlib/> for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) further information.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) Say 'Y' if unsure.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) config JFFS2_LZO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) bool "JFFS2 LZO compression support" if JFFS2_COMPRESSION_OPTIONS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) select LZO_COMPRESS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) select LZO_DECOMPRESS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) depends on JFFS2_FS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) default n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) minilzo-based compression. Generally works better than Zlib.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) This feature was added in July, 2007. Say 'N' if you need
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) compatibility with older bootloaders or kernels.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) config JFFS2_RTIME
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) bool "JFFS2 RTIME compression support" if JFFS2_COMPRESSION_OPTIONS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) depends on JFFS2_FS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) Rtime does manage to recompress already-compressed data. Say 'Y' if unsure.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) config JFFS2_RUBIN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) bool "JFFS2 RUBIN compression support" if JFFS2_COMPRESSION_OPTIONS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) depends on JFFS2_FS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) default n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) RUBINMIPS and DYNRUBIN compressors. Say 'N' if unsure.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) choice
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) prompt "JFFS2 default compression mode" if JFFS2_COMPRESSION_OPTIONS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) default JFFS2_CMODE_PRIORITY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) depends on JFFS2_FS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) You can set here the default compression mode of JFFS2 from
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) the available compression modes. Don't touch if unsure.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) config JFFS2_CMODE_NONE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) bool "no compression"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) Uses no compression.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) config JFFS2_CMODE_PRIORITY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) bool "priority"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) Tries the compressors in a predefined order and chooses the first
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) successful one.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) config JFFS2_CMODE_SIZE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) bool "size"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) Tries all compressors and chooses the one which has the smallest
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) result.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) config JFFS2_CMODE_FAVOURLZO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) bool "Favour LZO"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) Tries all compressors and chooses the one which has the smallest
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) result but gives some preference to LZO (which has faster
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) decompression) at the expense of size.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) endchoice