162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ciconfig UBIFS_FS
362306a36Sopenharmony_ci	tristate "UBIFS file system support"
462306a36Sopenharmony_ci	select CRC16
562306a36Sopenharmony_ci	select CRC32
662306a36Sopenharmony_ci	select CRYPTO if UBIFS_FS_ADVANCED_COMPR
762306a36Sopenharmony_ci	select CRYPTO if UBIFS_FS_LZO
862306a36Sopenharmony_ci	select CRYPTO if UBIFS_FS_ZLIB
962306a36Sopenharmony_ci	select CRYPTO if UBIFS_FS_ZSTD
1062306a36Sopenharmony_ci	select CRYPTO_LZO if UBIFS_FS_LZO
1162306a36Sopenharmony_ci	select CRYPTO_DEFLATE if UBIFS_FS_ZLIB
1262306a36Sopenharmony_ci	select CRYPTO_ZSTD if UBIFS_FS_ZSTD
1362306a36Sopenharmony_ci	select CRYPTO_HASH_INFO
1462306a36Sopenharmony_ci	select UBIFS_FS_XATTR if FS_ENCRYPTION
1562306a36Sopenharmony_ci	select FS_ENCRYPTION_ALGS if FS_ENCRYPTION
1662306a36Sopenharmony_ci	depends on MTD_UBI
1762306a36Sopenharmony_ci	help
1862306a36Sopenharmony_ci	  UBIFS is a file system for flash devices which works on top of UBI.
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ciif UBIFS_FS
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ciconfig UBIFS_FS_ADVANCED_COMPR
2362306a36Sopenharmony_ci	bool "Advanced compression options"
2462306a36Sopenharmony_ci	help
2562306a36Sopenharmony_ci	  This option allows to explicitly choose which compressions, if any,
2662306a36Sopenharmony_ci	  are enabled in UBIFS. Removing compressors means inability to read
2762306a36Sopenharmony_ci	  existing file systems.
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci	  If unsure, say 'N'.
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ciconfig UBIFS_FS_LZO
3262306a36Sopenharmony_ci	bool "LZO compression support" if UBIFS_FS_ADVANCED_COMPR
3362306a36Sopenharmony_ci	default y
3462306a36Sopenharmony_ci	help
3562306a36Sopenharmony_ci	   LZO compressor is generally faster than zlib but compresses worse.
3662306a36Sopenharmony_ci	   Say 'Y' if unsure.
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ciconfig UBIFS_FS_ZLIB
3962306a36Sopenharmony_ci	bool "ZLIB compression support" if UBIFS_FS_ADVANCED_COMPR
4062306a36Sopenharmony_ci	default y
4162306a36Sopenharmony_ci	help
4262306a36Sopenharmony_ci	  Zlib compresses better than LZO but it is slower. Say 'Y' if unsure.
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_ciconfig UBIFS_FS_ZSTD
4562306a36Sopenharmony_ci	bool "ZSTD compression support" if UBIFS_FS_ADVANCED_COMPR
4662306a36Sopenharmony_ci	depends on UBIFS_FS
4762306a36Sopenharmony_ci	default y
4862306a36Sopenharmony_ci	help
4962306a36Sopenharmony_ci	  ZSTD compresses is a big win in speed over Zlib and
5062306a36Sopenharmony_ci	  in compression ratio over LZO. Say 'Y' if unsure.
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ciconfig UBIFS_ATIME_SUPPORT
5362306a36Sopenharmony_ci	bool "Access time support"
5462306a36Sopenharmony_ci	default n
5562306a36Sopenharmony_ci	help
5662306a36Sopenharmony_ci	  Originally UBIFS did not support atime, because it looked like a bad idea due
5762306a36Sopenharmony_ci	  increased flash wear. This option adds atime support and it is disabled by default
5862306a36Sopenharmony_ci	  to preserve the old behavior. If you enable this option, UBIFS starts updating atime,
5962306a36Sopenharmony_ci	  which means that file-system read operations will cause writes (inode atime
6062306a36Sopenharmony_ci	  updates). This may affect file-system performance and increase flash device wear,
6162306a36Sopenharmony_ci	  so be careful. How often atime is updated depends on the selected strategy:
6262306a36Sopenharmony_ci	  strictatime is the "heavy", relatime is "lighter", etc.
6362306a36Sopenharmony_ci
6462306a36Sopenharmony_ci	  If unsure, say 'N'
6562306a36Sopenharmony_ci
6662306a36Sopenharmony_ciconfig UBIFS_FS_XATTR
6762306a36Sopenharmony_ci	bool "UBIFS XATTR support"
6862306a36Sopenharmony_ci	default y
6962306a36Sopenharmony_ci	help
7062306a36Sopenharmony_ci	  Saying Y here includes support for extended attributes (xattrs).
7162306a36Sopenharmony_ci	  Xattrs are name:value pairs associated with inodes by
7262306a36Sopenharmony_ci	  the kernel or by users (see the attr(5) manual page).
7362306a36Sopenharmony_ci
7462306a36Sopenharmony_ci	  If unsure, say Y.
7562306a36Sopenharmony_ci
7662306a36Sopenharmony_ciconfig UBIFS_FS_SECURITY
7762306a36Sopenharmony_ci	bool "UBIFS Security Labels"
7862306a36Sopenharmony_ci	depends on UBIFS_FS_XATTR
7962306a36Sopenharmony_ci	default y
8062306a36Sopenharmony_ci	help
8162306a36Sopenharmony_ci	  Security labels provide an access control facility to support Linux
8262306a36Sopenharmony_ci	  Security Models (LSMs) accepted by AppArmor, SELinux, Smack and TOMOYO
8362306a36Sopenharmony_ci	  Linux. This option enables an extended attribute handler for file
8462306a36Sopenharmony_ci	  security labels in the ubifs filesystem, so that it requires enabling
8562306a36Sopenharmony_ci	  the extended attribute support in advance.
8662306a36Sopenharmony_ci
8762306a36Sopenharmony_ci	  If you are not using a security module, say N.
8862306a36Sopenharmony_ci
8962306a36Sopenharmony_ciconfig UBIFS_FS_AUTHENTICATION
9062306a36Sopenharmony_ci	bool "UBIFS authentication support"
9162306a36Sopenharmony_ci	select KEYS
9262306a36Sopenharmony_ci	select CRYPTO_HMAC
9362306a36Sopenharmony_ci	select SYSTEM_DATA_VERIFICATION
9462306a36Sopenharmony_ci	help
9562306a36Sopenharmony_ci	  Enable authentication support for UBIFS. This feature offers protection
9662306a36Sopenharmony_ci	  against offline changes for both data and metadata of the filesystem.
9762306a36Sopenharmony_ci	  If you say yes here you should also select a hashing algorithm such as
9862306a36Sopenharmony_ci	  sha256, these are not selected automatically since there are many
9962306a36Sopenharmony_ci	  different options.
10062306a36Sopenharmony_ci
10162306a36Sopenharmony_ciendif # UBIFS_FS
102