aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Config.in7
-rw-r--r--include/image.mk26
-rwxr-xr-xscripts/metadata.pl3
-rw-r--r--target/Config.in3
4 files changed, 31 insertions, 8 deletions
diff --git a/Config.in b/Config.in
index b79a26e871..8dd73cc258 100644
--- a/Config.in
+++ b/Config.in
@@ -97,6 +97,13 @@ menu "Target Images"
help
Build a jffs2 root filesystem
+ config TARGET_ROOTFS_JFFS2_NAND
+ bool "jffs2 for NAND"
+ default y if USES_JFFS2_NAND
+ depends on !TARGET_ROOTFS_INITRAMFS && USES_JFFS2_NAND
+ help
+ Build a jffs2 root filesystem for NAND flash
+
config TARGET_ROOTFS_SQUASHFS
bool "squashfs"
default y if USES_SQUASHFS
diff --git a/include/image.mk b/include/image.mk
index 302228816e..60cde014de 100644
--- a/include/image.mk
+++ b/include/image.mk
@@ -77,15 +77,25 @@ ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),)
else
- ifneq ($(CONFIG_TARGET_ROOTFS_JFFS2),)
- define Image/mkfs/jffs2/sub
+ define Image/mkfs/jffs2/sub
# FIXME: removing this line will cause strange behaviour in the foreach loop below
- $(STAGING_DIR_HOST)/bin/mkfs.jffs2 $(JFFS2OPTS) -e $(patsubst %k,%KiB,$(1)) -o $(KDIR)/root.jffs2-$(1) -d $(TARGET_DIR) -v 2>&1 1>/dev/null | awk '/^.+$$$$/'
- $(call add_jffs2_mark,$(KDIR)/root.jffs2-$(1))
- $(call Image/Build,jffs2-$(1))
- endef
+ $(STAGING_DIR_HOST)/bin/mkfs.jffs2 $(3) -e $(patsubst %k,%KiB,$(1)) -o $(KDIR)/root.jffs2-$(2) -d $(TARGET_DIR) -v 2>&1 1>/dev/null | awk '/^.+$$$$/'
+ $(call add_jffs2_mark,$(KDIR)/root.jffs2-$(2))
+ $(call Image/Build,jffs2-$(2))
+ endef
+
+ ifneq ($(CONFIG_TARGET_ROOTFS_JFFS2),)
define Image/mkfs/jffs2
- $(foreach SZ,$(JFFS2_BLOCKSIZE),$(call Image/mkfs/jffs2/sub,$(SZ)))
+ $(foreach SZ,$(JFFS2_BLOCKSIZE),$(call Image/mkfs/jffs2/sub,$(SZ),$(SZ),$(JFFS2OPS)))
+ endef
+ endif
+
+ ifneq ($(CONFIG_TARGET_ROOTFS_JFFS2_NAND),)
+ define Image/mkfs/jffs2_nand
+ $(foreach SZ,$(NAND_BLOCKSIZE), $(call Image/mkfs/jffs2/sub, \
+ $(word 2,$(subst :, ,$(SZ))),nand-$(subst :,-,$(SZ)), \
+ $(JFFS2OPTS) --no-cleanmarkers --pagesize=$(word 1,$(subst :, ,$(SZ)))) \
+ )
endef
endif
@@ -188,6 +198,7 @@ define BuildImage
$(call Image/mkfs/ext4)
$(call Image/mkfs/iso)
$(call Image/mkfs/jffs2)
+ $(call Image/mkfs/jffs2_nand)
$(call Image/mkfs/squashfs)
$(call Image/mkfs/ubifs)
$(call Image/Checksum)
@@ -199,6 +210,7 @@ define BuildImage
$(call Image/mkfs/ext4)
$(call Image/mkfs/iso)
$(call Image/mkfs/jffs2)
+ $(call Image/mkfs/jffs2_nand)
$(call Image/mkfs/squashfs)
$(call Image/mkfs/ubifs)
$(call Image/Checksum)
diff --git a/scripts/metadata.pl b/scripts/metadata.pl
index 13abcb2937..ade86c867c 100755
--- a/scripts/metadata.pl
+++ b/scripts/metadata.pl
@@ -165,7 +165,8 @@ sub target_config_features(@) {
/pcmcia/ and $ret .= "\tselect PCMCIA_SUPPORT\n";
/rtc/ and $ret .= "\tselect RTC_SUPPORT\n";
/squashfs/ and $ret .= "\tselect USES_SQUASHFS\n";
- /jffs2/ and $ret .= "\tselect USES_JFFS2\n";
+ /jffs2$/ and $ret .= "\tselect USES_JFFS2\n";
+ /jffs2_nand/ and $ret .= "\tselect USES_JFFS2_NAND\n";
/ext4/ and $ret .= "\tselect USES_EXT4\n";
/targz/ and $ret .= "\tselect USES_TARGZ\n";
/cpiogz/ and $ret .= "\tselect USES_CPIOGZ\n";
diff --git a/target/Config.in b/target/Config.in
index 947e80ca4a..a7951aaf3b 100644
--- a/target/Config.in
+++ b/target/Config.in
@@ -48,6 +48,9 @@ config USES_SQUASHFS
config USES_JFFS2
bool
+config USES_JFFS2_NAND
+ bool
+
config USES_EXT4
bool