[U-Boot] [PATCH 42/47] fs: Kconfig: Add a separate option for FS_JFFS2

Simon Glass
2017-05-15T10:57:57Z

Rather than using CMD_JFFS2 for both the filesystem and its command, we
should have a separate option for each. This allows us to enable JFFS2
support without the command, if desired, which reduces U-Boot's size
slightly.

Signed-off-by: Simon Glass <sjg@chromium.org>
---

cmd/Kconfig | 1 +
cmd/cramfs.c | 4 ++--
doc/README.JFFS2 | 3 +++
fs/Makefile | 2 +-
fs/jffs2/Kconfig | 7 +++++++
5 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/cmd/Kconfig b/cmd/Kconfig
index e4cb6c92b0..be6b314c26 100644
--- a/cmd/Kconfig
+++ b/cmd/Kconfig
@@ -1147,6 +1147,7 @@ config CMD_FS_UUID

config CMD_JFFS2
bool "jffs2 command"
+ select FS_JFFS2
help
Enables commands to support the JFFS2 (Journalling Flash File System
version 2) filesystem. This enables fsload, ls and fsinfo which
diff --git a/cmd/cramfs.c b/cmd/cramfs.c
index 4e75de8f29..49ee36c74a 100644
--- a/cmd/cramfs.c
+++ b/cmd/cramfs.c
@@ -39,7 +39,7 @@
# define OFFSET_ADJUSTMENT (flash_info[id.num].start[0])
#endif

-#ifndef CONFIG_CMD_JFFS2
+#ifndef CONFIG_FS_JFFS2
#include <linux/stat.h>
char *mkmodestr(unsigned long mode, char *str)
{
@@ -70,7 +70,7 @@ char *mkmodestr(unsigned long mode, char *str)
str[10] = '\0';
return str;
}
-#endif /* CONFIG_CMD_JFFS2 */
+#endif /* CONFIG_FS_JFFS2 */

extern int cramfs_check (struct part_info *info);
extern int cramfs_load (char *loadoffset, struct part_info *info, char *filename);
diff --git a/doc/README.JFFS2 b/doc/README.JFFS2
index 604e5b9686..0245da0488 100644
--- a/doc/README.JFFS2
+++ b/doc/README.JFFS2
@@ -10,6 +10,9 @@ fsinfo - print information about file systems
ls - list files in a directory
chpart - change active partition

+If you do now need the commands, you can enable the filesystem separately
+with CONFIG_FS_JFFS2 and call the jffs2 functions yourself.
+
If you boot from a partition which is mounted writable, and you
update your boot environment by replacing single files on that
partition, you should also define CONFIG_SYS_JFFS2_SORT_FRAGMENTS. Scanning
diff --git a/fs/Makefile b/fs/Makefile
index 5c90656ba1..5770f41c0b 100644
--- a/fs/Makefile
+++ b/fs/Makefile
@@ -16,7 +16,7 @@ obj-$(CONFIG_FS_CBFS) += cbfs/
obj-$(CONFIG_CMD_CRAMFS) += cramfs/
obj-$(CONFIG_FS_EXT4) += ext4/
obj-y += fat/
-obj-$(CONFIG_CMD_JFFS2) += jffs2/
+obj-$(CONFIG_FS_JFFS2) += jffs2/
obj-$(CONFIG_CMD_REISER) += reiserfs/
obj-$(CONFIG_SANDBOX) += sandbox/
obj-$(CONFIG_CMD_UBIFS) += ubifs/
diff --git a/fs/jffs2/Kconfig b/fs/jffs2/Kconfig
index e69de29bb2..1b9ecdd8cc 100644
--- a/fs/jffs2/Kconfig
+++ b/fs/jffs2/Kconfig
@@ -0,0 +1,7 @@
+config FS_JFFS2
+ bool "Enable JFFS2 filesystem support"
+ help
+ This provides support for reading images from JFFS2 (Journalling
+ Flash File System version 2). JFFS2 is a log-structured file system
+ for use with flash memory devices. It supports raw NAND devices,
+ hard links and compression.
--
2.13.0.rc2.291.g57267f2277-goog