2019-05-19 05:07:45 -07:00
|
|
|
# SPDX-License-Identifier: GPL-2.0-only
|
2008-08-28 20:19:50 -07:00
|
|
|
config JFFS2_FS
|
|
|
|
tristate "Journalling Flash File System v2 (JFFS2) support"
|
|
|
|
select CRC32
|
|
|
|
depends on MTD
|
|
|
|
help
|
|
|
|
JFFS2 is the second generation of the Journalling Flash File System
|
|
|
|
for use on diskless embedded devices. It provides improved wear
|
|
|
|
levelling, compression and support for hard links. You cannot use
|
|
|
|
this on normal block devices, only on 'MTD' devices.
|
|
|
|
|
|
|
|
Further information on the design and implementation of JFFS2 is
|
|
|
|
available at <http://sources.redhat.com/jffs2/>.
|
|
|
|
|
|
|
|
config JFFS2_FS_DEBUG
|
|
|
|
int "JFFS2 debugging verbosity (0 = quiet, 2 = noisy)"
|
|
|
|
depends on JFFS2_FS
|
|
|
|
default "0"
|
|
|
|
help
|
|
|
|
This controls the amount of debugging messages produced by the JFFS2
|
|
|
|
code. Set it to zero for use in production systems. For evaluation,
|
|
|
|
testing and debugging, it's advisable to set it to one. This will
|
|
|
|
enable a few assertions and will print debugging messages at the
|
|
|
|
KERN_DEBUG loglevel, where they won't normally be visible. Level 2
|
|
|
|
is unlikely to be useful - it enables extra debugging in certain
|
|
|
|
areas which at one point needed debugging, but when the bugs were
|
|
|
|
located and fixed, the detailed messages were relegated to level 2.
|
|
|
|
|
|
|
|
If reporting bugs, please try to have available a full dump of the
|
|
|
|
messages at debug level 1 while the misbehaviour was occurring.
|
|
|
|
|
|
|
|
config JFFS2_FS_WRITEBUFFER
|
|
|
|
bool "JFFS2 write-buffering support"
|
|
|
|
depends on JFFS2_FS
|
|
|
|
default y
|
|
|
|
help
|
|
|
|
This enables the write-buffering support in JFFS2.
|
|
|
|
|
|
|
|
This functionality is required to support JFFS2 on the following
|
|
|
|
types of flash devices:
|
|
|
|
- NAND flash
|
|
|
|
- NOR flash with transparent ECC
|
|
|
|
- DataFlash
|
|
|
|
|
|
|
|
config JFFS2_FS_WBUF_VERIFY
|
|
|
|
bool "Verify JFFS2 write-buffer reads"
|
|
|
|
depends on JFFS2_FS_WRITEBUFFER
|
|
|
|
default n
|
|
|
|
help
|
|
|
|
This causes JFFS2 to read back every page written through the
|
|
|
|
write-buffer, and check for errors.
|
|
|
|
|
|
|
|
config JFFS2_SUMMARY
|
2013-01-16 19:54:12 -07:00
|
|
|
bool "JFFS2 summary support"
|
|
|
|
depends on JFFS2_FS
|
2008-08-28 20:19:50 -07:00
|
|
|
default n
|
|
|
|
help
|
|
|
|
This feature makes it possible to use summary information
|
|
|
|
for faster filesystem mount.
|
|
|
|
|
|
|
|
The summary information can be inserted into a filesystem image
|
|
|
|
by the utility 'sumtool'.
|
|
|
|
|
|
|
|
If unsure, say 'N'.
|
|
|
|
|
|
|
|
config JFFS2_FS_XATTR
|
2013-01-16 19:54:12 -07:00
|
|
|
bool "JFFS2 XATTR support"
|
|
|
|
depends on JFFS2_FS
|
2008-08-28 20:19:50 -07:00
|
|
|
default n
|
|
|
|
help
|
|
|
|
Extended attributes are name:value pairs associated with inodes by
|
2017-12-20 06:58:52 -07:00
|
|
|
the kernel or by users (see the attr(5) manual page for details).
|
2008-08-28 20:19:50 -07:00
|
|
|
|
|
|
|
If unsure, say N.
|
|
|
|
|
|
|
|
config JFFS2_FS_POSIX_ACL
|
|
|
|
bool "JFFS2 POSIX Access Control Lists"
|
|
|
|
depends on JFFS2_FS_XATTR
|
|
|
|
default y
|
|
|
|
select FS_POSIX_ACL
|
|
|
|
help
|
|
|
|
Posix Access Control Lists (ACLs) support permissions for users and
|
|
|
|
groups beyond the owner/group/world scheme.
|
|
|
|
|
|
|
|
If you don't know what Access Control Lists are, say N
|
|
|
|
|
|
|
|
config JFFS2_FS_SECURITY
|
|
|
|
bool "JFFS2 Security Labels"
|
|
|
|
depends on JFFS2_FS_XATTR
|
|
|
|
default y
|
|
|
|
help
|
|
|
|
Security labels support alternative access control models
|
|
|
|
implemented by security modules like SELinux. This option
|
|
|
|
enables an extended attribute handler for file security
|
|
|
|
labels in the jffs2 filesystem.
|
|
|
|
|
|
|
|
If you are not using a security module that requires using
|
|
|
|
extended attributes for file security labels, say N.
|
|
|
|
|
|
|
|
config JFFS2_COMPRESSION_OPTIONS
|
|
|
|
bool "Advanced compression options for JFFS2"
|
|
|
|
depends on JFFS2_FS
|
|
|
|
default n
|
|
|
|
help
|
|
|
|
Enabling this option allows you to explicitly choose which
|
|
|
|
compression modules, if any, are enabled in JFFS2. Removing
|
|
|
|
compressors can mean you cannot read existing file systems,
|
|
|
|
and enabling experimental compressors can mean that you
|
|
|
|
write a file system which cannot be read by a standard kernel.
|
|
|
|
|
|
|
|
If unsure, you should _definitely_ say 'N'.
|
|
|
|
|
|
|
|
config JFFS2_ZLIB
|
|
|
|
bool "JFFS2 ZLIB compression support" if JFFS2_COMPRESSION_OPTIONS
|
|
|
|
select ZLIB_INFLATE
|
|
|
|
select ZLIB_DEFLATE
|
|
|
|
depends on JFFS2_FS
|
|
|
|
default y
|
|
|
|
help
|
|
|
|
Zlib is designed to be a free, general-purpose, legally unencumbered,
|
|
|
|
lossless data-compression library for use on virtually any computer
|
|
|
|
hardware and operating system. See <http://www.gzip.org/zlib/> for
|
|
|
|
further information.
|
|
|
|
|
|
|
|
Say 'Y' if unsure.
|
|
|
|
|
|
|
|
config JFFS2_LZO
|
|
|
|
bool "JFFS2 LZO compression support" if JFFS2_COMPRESSION_OPTIONS
|
|
|
|
select LZO_COMPRESS
|
|
|
|
select LZO_DECOMPRESS
|
|
|
|
depends on JFFS2_FS
|
|
|
|
default n
|
|
|
|
help
|
|
|
|
minilzo-based compression. Generally works better than Zlib.
|
|
|
|
|
|
|
|
This feature was added in July, 2007. Say 'N' if you need
|
|
|
|
compatibility with older bootloaders or kernels.
|
|
|
|
|
|
|
|
config JFFS2_RTIME
|
|
|
|
bool "JFFS2 RTIME compression support" if JFFS2_COMPRESSION_OPTIONS
|
|
|
|
depends on JFFS2_FS
|
|
|
|
default y
|
|
|
|
help
|
|
|
|
Rtime does manage to recompress already-compressed data. Say 'Y' if unsure.
|
|
|
|
|
|
|
|
config JFFS2_RUBIN
|
|
|
|
bool "JFFS2 RUBIN compression support" if JFFS2_COMPRESSION_OPTIONS
|
|
|
|
depends on JFFS2_FS
|
|
|
|
default n
|
|
|
|
help
|
|
|
|
RUBINMIPS and DYNRUBIN compressors. Say 'N' if unsure.
|
|
|
|
|
|
|
|
choice
|
treewide: change conditional prompt for choices to 'depends on'
While Documentation/kbuild/kconfig-language.rst provides a brief
explanation, there are recurring confusions regarding the usage of a
prompt followed by 'if <expr>'. This conditional controls _only_ the
prompt.
A typical usage is as follows:
menuconfig BLOCK
bool "Enable the block layer" if EXPERT
default y
When EXPERT=n, the prompt is hidden, but this config entry is still
active, and BLOCK is set to its default value 'y'. This is reasonable
because you are likely want to enable the block device support. When
EXPERT=y, the prompt is shown, allowing you to toggle BLOCK.
Please note that it is different from 'depends on EXPERT', which would
enable and disable the entire config entry.
However, this conditional prompt has never worked in a choice block.
The following two work in the same way: when EXPERT is disabled, the
choice block is entirely disabled.
[Test Code 1]
choice
prompt "choose" if EXPERT
config A
bool "A"
config B
bool "B"
endchoice
[Test Code 2]
choice
prompt "choose"
depends on EXPERT
config A
bool "A"
config B
bool "B"
endchoice
I believe the first case should hide only the prompt, producing the
default:
CONFIG_A=y
# CONFIG_B is not set
The next commit will change (fix) the behavior of the conditional prompt
in choice blocks.
I see several choice blocks wrongly using a conditional prompt, where
'depends on' makes more sense.
To preserve the current behavior, this commit converts such misuses.
I did not touch the following entry in arch/x86/Kconfig:
choice
prompt "Memory split" if EXPERT
default VMSPLIT_3G
This is truly the correct use of the conditional prompt; when EXPERT=n,
this choice block should silently select the reasonable VMSPLIT_3G,
although the resulting PAGE_OFFSET will not be affected anyway.
Presumably, the one in fs/jffs2/Kconfig is also correct, but I converted
it to 'depends on' to avoid any potential behavioral change.
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
2024-06-26 11:22:00 -07:00
|
|
|
prompt "JFFS2 default compression mode"
|
2008-08-28 20:19:50 -07:00
|
|
|
default JFFS2_CMODE_PRIORITY
|
treewide: change conditional prompt for choices to 'depends on'
While Documentation/kbuild/kconfig-language.rst provides a brief
explanation, there are recurring confusions regarding the usage of a
prompt followed by 'if <expr>'. This conditional controls _only_ the
prompt.
A typical usage is as follows:
menuconfig BLOCK
bool "Enable the block layer" if EXPERT
default y
When EXPERT=n, the prompt is hidden, but this config entry is still
active, and BLOCK is set to its default value 'y'. This is reasonable
because you are likely want to enable the block device support. When
EXPERT=y, the prompt is shown, allowing you to toggle BLOCK.
Please note that it is different from 'depends on EXPERT', which would
enable and disable the entire config entry.
However, this conditional prompt has never worked in a choice block.
The following two work in the same way: when EXPERT is disabled, the
choice block is entirely disabled.
[Test Code 1]
choice
prompt "choose" if EXPERT
config A
bool "A"
config B
bool "B"
endchoice
[Test Code 2]
choice
prompt "choose"
depends on EXPERT
config A
bool "A"
config B
bool "B"
endchoice
I believe the first case should hide only the prompt, producing the
default:
CONFIG_A=y
# CONFIG_B is not set
The next commit will change (fix) the behavior of the conditional prompt
in choice blocks.
I see several choice blocks wrongly using a conditional prompt, where
'depends on' makes more sense.
To preserve the current behavior, this commit converts such misuses.
I did not touch the following entry in arch/x86/Kconfig:
choice
prompt "Memory split" if EXPERT
default VMSPLIT_3G
This is truly the correct use of the conditional prompt; when EXPERT=n,
this choice block should silently select the reasonable VMSPLIT_3G,
although the resulting PAGE_OFFSET will not be affected anyway.
Presumably, the one in fs/jffs2/Kconfig is also correct, but I converted
it to 'depends on' to avoid any potential behavioral change.
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
2024-06-26 11:22:00 -07:00
|
|
|
depends on JFFS2_COMPRESSION_OPTIONS
|
2008-08-28 20:19:50 -07:00
|
|
|
depends on JFFS2_FS
|
|
|
|
help
|
|
|
|
You can set here the default compression mode of JFFS2 from
|
|
|
|
the available compression modes. Don't touch if unsure.
|
|
|
|
|
|
|
|
config JFFS2_CMODE_NONE
|
|
|
|
bool "no compression"
|
|
|
|
help
|
|
|
|
Uses no compression.
|
|
|
|
|
|
|
|
config JFFS2_CMODE_PRIORITY
|
|
|
|
bool "priority"
|
|
|
|
help
|
|
|
|
Tries the compressors in a predefined order and chooses the first
|
|
|
|
successful one.
|
|
|
|
|
|
|
|
config JFFS2_CMODE_SIZE
|
2013-01-16 19:54:12 -07:00
|
|
|
bool "size"
|
2008-08-28 20:19:50 -07:00
|
|
|
help
|
|
|
|
Tries all compressors and chooses the one which has the smallest
|
|
|
|
result.
|
|
|
|
|
|
|
|
config JFFS2_CMODE_FAVOURLZO
|
|
|
|
bool "Favour LZO"
|
|
|
|
help
|
|
|
|
Tries all compressors and chooses the one which has the smallest
|
|
|
|
result but gives some preference to LZO (which has faster
|
|
|
|
decompression) at the expense of size.
|
|
|
|
|
|
|
|
endchoice
|