162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ciconfig JFFS2_FS
362306a36Sopenharmony_ci	tristate "Journalling Flash File System v2 (JFFS2) support"
462306a36Sopenharmony_ci	select CRC32
562306a36Sopenharmony_ci	depends on MTD
662306a36Sopenharmony_ci	help
762306a36Sopenharmony_ci	  JFFS2 is the second generation of the Journalling Flash File System
862306a36Sopenharmony_ci	  for use on diskless embedded devices. It provides improved wear
962306a36Sopenharmony_ci	  levelling, compression and support for hard links. You cannot use
1062306a36Sopenharmony_ci	  this on normal block devices, only on 'MTD' devices.
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ci	  Further information on the design and implementation of JFFS2 is
1362306a36Sopenharmony_ci	  available at <http://sources.redhat.com/jffs2/>.
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ciconfig JFFS2_FS_DEBUG
1662306a36Sopenharmony_ci	int "JFFS2 debugging verbosity (0 = quiet, 2 = noisy)"
1762306a36Sopenharmony_ci	depends on JFFS2_FS
1862306a36Sopenharmony_ci	default "0"
1962306a36Sopenharmony_ci	help
2062306a36Sopenharmony_ci	  This controls the amount of debugging messages produced by the JFFS2
2162306a36Sopenharmony_ci	  code. Set it to zero for use in production systems. For evaluation,
2262306a36Sopenharmony_ci	  testing and debugging, it's advisable to set it to one. This will
2362306a36Sopenharmony_ci	  enable a few assertions and will print debugging messages at the
2462306a36Sopenharmony_ci	  KERN_DEBUG loglevel, where they won't normally be visible. Level 2
2562306a36Sopenharmony_ci	  is unlikely to be useful - it enables extra debugging in certain
2662306a36Sopenharmony_ci	  areas which at one point needed debugging, but when the bugs were
2762306a36Sopenharmony_ci	  located and fixed, the detailed messages were relegated to level 2.
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci	  If reporting bugs, please try to have available a full dump of the
3062306a36Sopenharmony_ci	  messages at debug level 1 while the misbehaviour was occurring.
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ciconfig JFFS2_FS_WRITEBUFFER
3362306a36Sopenharmony_ci	bool "JFFS2 write-buffering support"
3462306a36Sopenharmony_ci	depends on JFFS2_FS
3562306a36Sopenharmony_ci	default y
3662306a36Sopenharmony_ci	help
3762306a36Sopenharmony_ci	  This enables the write-buffering support in JFFS2.
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ci	  This functionality is required to support JFFS2 on the following
4062306a36Sopenharmony_ci	  types of flash devices:
4162306a36Sopenharmony_ci	    - NAND flash
4262306a36Sopenharmony_ci	    - NOR flash with transparent ECC
4362306a36Sopenharmony_ci	    - DataFlash
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ciconfig JFFS2_FS_WBUF_VERIFY
4662306a36Sopenharmony_ci	bool "Verify JFFS2 write-buffer reads"
4762306a36Sopenharmony_ci	depends on JFFS2_FS_WRITEBUFFER
4862306a36Sopenharmony_ci	default n
4962306a36Sopenharmony_ci	help
5062306a36Sopenharmony_ci	  This causes JFFS2 to read back every page written through the
5162306a36Sopenharmony_ci	  write-buffer, and check for errors.
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ciconfig JFFS2_SUMMARY
5462306a36Sopenharmony_ci	bool "JFFS2 summary support"
5562306a36Sopenharmony_ci	depends on JFFS2_FS
5662306a36Sopenharmony_ci	default n
5762306a36Sopenharmony_ci	help
5862306a36Sopenharmony_ci	  This feature makes it possible to use summary information
5962306a36Sopenharmony_ci	  for faster filesystem mount.
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_ci	  The summary information can be inserted into a filesystem image
6262306a36Sopenharmony_ci	  by the utility 'sumtool'.
6362306a36Sopenharmony_ci
6462306a36Sopenharmony_ci	  If unsure, say 'N'.
6562306a36Sopenharmony_ci
6662306a36Sopenharmony_ciconfig JFFS2_FS_XATTR
6762306a36Sopenharmony_ci	bool "JFFS2 XATTR support"
6862306a36Sopenharmony_ci	depends on JFFS2_FS
6962306a36Sopenharmony_ci	default n
7062306a36Sopenharmony_ci	help
7162306a36Sopenharmony_ci	  Extended attributes are name:value pairs associated with inodes by
7262306a36Sopenharmony_ci	  the kernel or by users (see the attr(5) manual page for details).
7362306a36Sopenharmony_ci
7462306a36Sopenharmony_ci	  If unsure, say N.
7562306a36Sopenharmony_ci
7662306a36Sopenharmony_ciconfig JFFS2_FS_POSIX_ACL
7762306a36Sopenharmony_ci	bool "JFFS2 POSIX Access Control Lists"
7862306a36Sopenharmony_ci	depends on JFFS2_FS_XATTR
7962306a36Sopenharmony_ci	default y
8062306a36Sopenharmony_ci	select FS_POSIX_ACL
8162306a36Sopenharmony_ci	help
8262306a36Sopenharmony_ci	  Posix Access Control Lists (ACLs) support permissions for users and
8362306a36Sopenharmony_ci	  groups beyond the owner/group/world scheme.
8462306a36Sopenharmony_ci
8562306a36Sopenharmony_ci	  If you don't know what Access Control Lists are, say N
8662306a36Sopenharmony_ci
8762306a36Sopenharmony_ciconfig JFFS2_FS_SECURITY
8862306a36Sopenharmony_ci	bool "JFFS2 Security Labels"
8962306a36Sopenharmony_ci	depends on JFFS2_FS_XATTR
9062306a36Sopenharmony_ci	default y
9162306a36Sopenharmony_ci	help
9262306a36Sopenharmony_ci	  Security labels support alternative access control models
9362306a36Sopenharmony_ci	  implemented by security modules like SELinux.  This option
9462306a36Sopenharmony_ci	  enables an extended attribute handler for file security
9562306a36Sopenharmony_ci	  labels in the jffs2 filesystem.
9662306a36Sopenharmony_ci
9762306a36Sopenharmony_ci	  If you are not using a security module that requires using
9862306a36Sopenharmony_ci	  extended attributes for file security labels, say N.
9962306a36Sopenharmony_ci
10062306a36Sopenharmony_ciconfig JFFS2_COMPRESSION_OPTIONS
10162306a36Sopenharmony_ci	bool "Advanced compression options for JFFS2"
10262306a36Sopenharmony_ci	depends on JFFS2_FS
10362306a36Sopenharmony_ci	default n
10462306a36Sopenharmony_ci	help
10562306a36Sopenharmony_ci	  Enabling this option allows you to explicitly choose which
10662306a36Sopenharmony_ci	  compression modules, if any, are enabled in JFFS2. Removing
10762306a36Sopenharmony_ci	  compressors can mean you cannot read existing file systems,
10862306a36Sopenharmony_ci	  and enabling experimental compressors can mean that you
10962306a36Sopenharmony_ci	  write a file system which cannot be read by a standard kernel.
11062306a36Sopenharmony_ci
11162306a36Sopenharmony_ci	  If unsure, you should _definitely_ say 'N'.
11262306a36Sopenharmony_ci
11362306a36Sopenharmony_ciconfig JFFS2_ZLIB
11462306a36Sopenharmony_ci	bool "JFFS2 ZLIB compression support" if JFFS2_COMPRESSION_OPTIONS
11562306a36Sopenharmony_ci	select ZLIB_INFLATE
11662306a36Sopenharmony_ci	select ZLIB_DEFLATE
11762306a36Sopenharmony_ci	depends on JFFS2_FS
11862306a36Sopenharmony_ci	default y
11962306a36Sopenharmony_ci	help
12062306a36Sopenharmony_ci	  Zlib is designed to be a free, general-purpose, legally unencumbered,
12162306a36Sopenharmony_ci	  lossless data-compression library for use on virtually any computer
12262306a36Sopenharmony_ci	  hardware and operating system. See <http://www.gzip.org/zlib/> for
12362306a36Sopenharmony_ci	  further information.
12462306a36Sopenharmony_ci
12562306a36Sopenharmony_ci	  Say 'Y' if unsure.
12662306a36Sopenharmony_ci
12762306a36Sopenharmony_ciconfig JFFS2_LZO
12862306a36Sopenharmony_ci	bool "JFFS2 LZO compression support" if JFFS2_COMPRESSION_OPTIONS
12962306a36Sopenharmony_ci	select LZO_COMPRESS
13062306a36Sopenharmony_ci	select LZO_DECOMPRESS
13162306a36Sopenharmony_ci	depends on JFFS2_FS
13262306a36Sopenharmony_ci	default n
13362306a36Sopenharmony_ci	help
13462306a36Sopenharmony_ci	  minilzo-based compression. Generally works better than Zlib.
13562306a36Sopenharmony_ci
13662306a36Sopenharmony_ci	  This feature was added in July, 2007. Say 'N' if you need
13762306a36Sopenharmony_ci	  compatibility with older bootloaders or kernels.
13862306a36Sopenharmony_ci
13962306a36Sopenharmony_ciconfig JFFS2_RTIME
14062306a36Sopenharmony_ci	bool "JFFS2 RTIME compression support" if JFFS2_COMPRESSION_OPTIONS
14162306a36Sopenharmony_ci	depends on JFFS2_FS
14262306a36Sopenharmony_ci	default y
14362306a36Sopenharmony_ci	help
14462306a36Sopenharmony_ci	  Rtime does manage to recompress already-compressed data. Say 'Y' if unsure.
14562306a36Sopenharmony_ci
14662306a36Sopenharmony_ciconfig JFFS2_RUBIN
14762306a36Sopenharmony_ci	bool "JFFS2 RUBIN compression support" if JFFS2_COMPRESSION_OPTIONS
14862306a36Sopenharmony_ci	depends on JFFS2_FS
14962306a36Sopenharmony_ci	default n
15062306a36Sopenharmony_ci	help
15162306a36Sopenharmony_ci	  RUBINMIPS and DYNRUBIN compressors. Say 'N' if unsure.
15262306a36Sopenharmony_ci
15362306a36Sopenharmony_cichoice
15462306a36Sopenharmony_ci	prompt "JFFS2 default compression mode" if JFFS2_COMPRESSION_OPTIONS
15562306a36Sopenharmony_ci	default JFFS2_CMODE_PRIORITY
15662306a36Sopenharmony_ci	depends on JFFS2_FS
15762306a36Sopenharmony_ci	help
15862306a36Sopenharmony_ci	  You can set here the default compression mode of JFFS2 from
15962306a36Sopenharmony_ci	  the available compression modes. Don't touch if unsure.
16062306a36Sopenharmony_ci
16162306a36Sopenharmony_ciconfig JFFS2_CMODE_NONE
16262306a36Sopenharmony_ci	bool "no compression"
16362306a36Sopenharmony_ci	help
16462306a36Sopenharmony_ci	  Uses no compression.
16562306a36Sopenharmony_ci
16662306a36Sopenharmony_ciconfig JFFS2_CMODE_PRIORITY
16762306a36Sopenharmony_ci	bool "priority"
16862306a36Sopenharmony_ci	help
16962306a36Sopenharmony_ci	  Tries the compressors in a predefined order and chooses the first
17062306a36Sopenharmony_ci	  successful one.
17162306a36Sopenharmony_ci
17262306a36Sopenharmony_ciconfig JFFS2_CMODE_SIZE
17362306a36Sopenharmony_ci	bool "size"
17462306a36Sopenharmony_ci	help
17562306a36Sopenharmony_ci	  Tries all compressors and chooses the one which has the smallest
17662306a36Sopenharmony_ci	  result.
17762306a36Sopenharmony_ci
17862306a36Sopenharmony_ciconfig JFFS2_CMODE_FAVOURLZO
17962306a36Sopenharmony_ci	bool "Favour LZO"
18062306a36Sopenharmony_ci	help
18162306a36Sopenharmony_ci	  Tries all compressors and chooses the one which has the smallest
18262306a36Sopenharmony_ci	  result but gives some preference to LZO (which has faster
18362306a36Sopenharmony_ci	  decompression) at the expense of size.
18462306a36Sopenharmony_ci
18562306a36Sopenharmony_ciendchoice
186