From 9f7ef8d5f0199f12abfd4b1c50d0bfe8484471d7 Mon Sep 17 00:00:00 2001 From: Jonas Gorski Date: Wed, 5 Jun 2013 20:58:03 +0000 Subject: [PATCH] target: split jffs2 NAND out of jffs2 Make jffs2_nand a separate option so this can be triggered without forcing jffs2 images for nor targets. Adds a new NAND_BLOCKSIZE variable that allows setting the generated layout in : pairs. Signed-off-by: Jonas Gorski SVN-Revision: 36860 --- Config.in | 7 +++++++ include/image.mk | 26 +++++++++++++++++++------- scripts/metadata.pl | 3 ++- target/Config.in | 3 +++ 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