Add optional mtd configuration (experimental - only available for Atmel targets)
authorUlf Samuelsson <ulf.samuelsson@atmel.com>
Fri, 20 Jul 2007 08:00:19 +0000 (08:00 -0000)
committerUlf Samuelsson <ulf.samuelsson@atmel.com>
Fri, 20 Jul 2007 08:00:19 +0000 (08:00 -0000)
package/mtd/20050122/mtd.mk [new file with mode: 0644]
package/mtd/20050122/mtd.patch [new file with mode: 0644]
package/mtd/20061007/mtd-20061007-mkfs.jffs2.patch [new file with mode: 0644]
package/mtd/20061007/mtd.mk [new file with mode: 0644]
package/mtd/20061007/mtd_20061007.patch [new file with mode: 0644]
package/mtd/20061007/mtd_acl.patch [new file with mode: 0644]
package/mtd/Config.in
package/mtd/mtd.mk

diff --git a/package/mtd/20050122/mtd.mk b/package/mtd/20050122/mtd.mk
new file mode 100644 (file)
index 0000000..0a94deb
--- /dev/null
@@ -0,0 +1,163 @@
+#############################################################
+#
+# mtd provides jffs2 utilities
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_MTD_SNAPSHOT)),y)
+# Be aware that this changes daily....
+
+MTD_DL_SOURCE:=mtd-snapshot-$(DATE).tar.bz2
+MTD_CAT:=$(BZCAT)
+MTD_SOURCE:=mtd-snapshot.tar.bz2
+MTD_SITE:=ftp://ftp.uk.linux.org/pub/people/dwmw2/mtd/cvs
+MTD_HOST_DIR := $(TOOL_BUILD_DIR)/mtd_snapshot
+MTD_DIR:=$(BUILD_DIR)/mtd_snapshot
+else
+MTD_SOURCE:=$(strip $(subst ",, $(BR2_PACKAGE_MTD_ORIG_STRING)))
+#"))
+MTD_SITE:=http://ftp.debian.org/debian/pool/main/m/mtd
+MTD_HOST_DIR := $(TOOL_BUILD_DIR)/mtd_orig
+MTD_DIR:=$(BUILD_DIR)/mtd_orig
+MTD_CAT:=$(ZCAT)
+endif
+
+
+
+#############################################################
+#
+# Build mkfs.jffs2 for use on the local host system if
+# needed by target/jffs2root.
+#
+#############################################################
+MKFS_JFFS2 := $(MTD_HOST_DIR)/util/mkfs.jffs2
+
+ifeq ($(strip $(BR2_PACKAGE_MTD_SNAPSHOT)),y)
+$(DL_DIR)/$(MTD_SOURCE):
+       $(WGET) -P $(DL_DIR) $(MTD_SITE)/$(MTD_DL_SOURCE)
+       mv $(DL_DIR)/$(MTD_DL_SOURCE) $(DL_DIR)/$(MTD_SOURCE)
+
+$(MTD_HOST_DIR)/.unpacked: $(DL_DIR)/$(MTD_SOURCE_GENERIC)
+       $(MTD_CAT) $(DL_DIR)/$(MTD_SOURCE) | tar -C $(TOOL_BUILD_DIR) $(TAR_OPTIONS) -
+       mv $(TOOL_BUILD_DIR)/$(shell tar tjf $(DL_DIR)/$(MTD_SOURCE) \
+               | head -n 1 | xargs basename) $(MTD_HOST_DIR)
+       touch $@
+else
+ifneq ($(MTD_SOURCE),)
+$(DL_DIR)/$(MTD_SOURCE):
+       $(WGET) -P $(DL_DIR) $(MTD_SITE)/$(MTD_SOURCE)
+endif
+
+$(MTD_HOST_DIR)/.unpacked: $(DL_DIR)/$(MTD_SOURCE)
+       $(MTD_CAT) $(DL_DIR)/$(MTD_SOURCE) | tar -C $(TOOL_BUILD_DIR) $(TAR_OPTIONS) -
+       mv $(TOOL_BUILD_DIR)/$(shell tar tzf $(DL_DIR)/$(MTD_SOURCE) | head -n 1 \
+               | xargs basename) $(MTD_HOST_DIR)
+       toolchain/patch-kernel.sh $(MTD_HOST_DIR) package/mtd \*.patch
+       touch $@
+endif
+
+$(MTD_HOST_DIR)/util/mkfs.jffs2: $(MTD_HOST_DIR)/.unpacked
+       CFLAGS=-I$(LINUX_HEADERS_DIR)/include $(MAKE) CC="$(HOSTCC)" CROSS= \
+               LINUXDIR=$(LINUX_DIR) -C $(MTD_HOST_DIR)/util mkfs.jffs2
+
+mtd-host: $(MKFS_JFFS2)
+
+mtd-host-source: $(DL_DIR)/$(MTD_SOURCE)
+
+mtd-host-clean:
+       -$(MAKE) -C $(MTD_HOST_DIR) clean
+
+mtd-host-dirclean:
+       rm -rf $(MTD_HOST_DIR)
+
+#############################################################
+#
+# build mtd for use on the target system
+#
+#############################################################
+$(MTD_DIR)/.unpacked: $(DL_DIR)/$(MTD_SOURCE)
+       $(MTD_CAT) $(DL_DIR)/$(MTD_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+ifeq ($(strip $(BR2_PACKAGE_MTD_SNAPSHOT)),y)
+       mv $(BUILD_DIR)/$(shell tar tjf $(DL_DIR)/$(MTD_SOURCE) \
+               | head -n 1 | xargs basename) $(MTD_DIR)
+       touch $@
+else
+       mv $(BUILD_DIR)/$(shell tar tzf $(DL_DIR)/$(MTD_SOURCE) \
+               | head -n 1 | xargs basename) $(MTD_DIR)
+       toolchain/patch-kernel.sh $(MTD_DIR) \
+               package/mtd \*.patch
+       touch $@
+endif
+
+MTD_TARGETS_n :=
+MTD_TARGETS_y :=
+
+MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_ERASE)             += flash_erase
+MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_ERASEALL)          += flash_eraseall
+MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_INFO)              += flash_info
+MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_LOCK)              += flash_lock
+MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_UNLOCK)            += flash_unlock
+MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASHCP)                 += flashcp
+MTD_TARGETS_$(BR2_PACKAGE_MTD_MKFSJFFS2)               += mkfs.jffs2
+MTD_TARGETS_$(BR2_PACKAGE_MTD_MKFSJFFS)                        += mkfs.jffs
+MTD_TARGETS_$(BR2_PACKAGE_MTD_JFFS2DUMP)               += jffs2dump
+MTD_TARGETS_$(BR2_PACKAGE_MTD_JFFS3DUMP)               += jffs3dump
+MTD_TARGETS_$(BR2_PACKAGE_MTD_SUMTOOL)                 += sumtool
+MTD_TARGETS_$(BR2_PACKAGE_MTD_FTL_CHECK)               += ftl_check
+MTD_TARGETS_$(BR2_PACKAGE_MTD_FTL_FORMAT)              += ftl_format
+MTD_TARGETS_$(BR2_PACKAGE_MTD_NFTLDUMP)                        += nftldump
+MTD_TARGETS_$(BR2_PACKAGE_MTD_NFTL_FORMAT)             += nftl_format
+MTD_TARGETS_$(BR2_PACKAGE_MTD_NANDDUMP)                        += nanddump
+MTD_TARGETS_$(BR2_PACKAGE_MTD_NANDWRITE)               += nandwrite
+MTD_TARGETS_$(BR2_PACKAGE_MTD_MTD_DEBUG)               += mtd_debug
+MTD_TARGETS_$(BR2_PACKAGE_MTD_DOCFDISK)                        += docfdisk
+MTD_TARGETS_$(BR2_PACKAGE_MTD_DOC_LOADBIOS)            += doc_loadbios
+
+MTD_BUILD_TARGETS := $(addprefix $(MTD_DIR)/util/, $(MTD_TARGETS_y))
+
+$(MTD_BUILD_TARGETS): $(MTD_DIR)/.unpacked
+       $(MAKE) $(TARGET_CONFIGURE_OPTS) \
+               CFLAGS+="-I$(MTD_DIR)/include" \
+               CFLAGS+="-I$(LINUX_HEADERS_DIR)/include" \
+               LDFLAGS="$(TARGET_LDFLAGS)" \
+               LINUXDIR=$(LINUX_DIR) -C $(MTD_DIR)/util
+
+MTD_TARGETS := $(addprefix $(TARGET_DIR)/usr/sbin/, $(MTD_TARGETS_y))
+
+$(MTD_TARGETS): $(TARGET_DIR)/usr/sbin/% : $(MTD_DIR)/util/%
+       mkdir -p $(TARGET_DIR)/usr/sbin
+       cp -f $< $@
+       $(STRIP) $@
+ifneq ($(BR2_PACKAGE_MTD_FLASHCP),)
+       -ln -sf flashcp $(TARGET_DIR)/usr/sbin/fcp
+endif
+ifneq ($(BR2_PACKAGE_MTD_ERASE),)
+       -ln -sf flash_erase $(TARGET_DIR)/usr/sbin/erase
+       -ln -sf flash_eraseall $(TARGET_DIR)/usr/sbin/eraseall
+endif
+
+mtd: zlib $(MTD_TARGETS)
+
+mtd-source: $(DL_DIR)/$(MTD_SOURCE)
+
+mtd-clean:
+       -$(MAKE) -C $(MTD_DIR) clean
+ifneq ($(BR2_PACKAGE_MTD_FLASHCP),)
+       -rm -f $(MTD_TARGETS) $(TARGET_DIR)/usr/sbin/fcp
+endif
+ifneq ($(BR2_PACKAGE_MTD_ERASE),)
+       -rm -f $(MTD_TARGETS) $(TARGET_DIR)/usr/sbin/erase
+       -rm -f $(MTD_TARGETS) $(TARGET_DIR)/usr/sbin/eraseall
+endif
+
+mtd-dirclean:
+       rm -rf $(MTD_DIR)
+
+
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_MTD)),y)
+TARGETS+=mtd
+endif
diff --git a/package/mtd/20050122/mtd.patch b/package/mtd/20050122/mtd.patch
new file mode 100644 (file)
index 0000000..40d6865
--- /dev/null
@@ -0,0 +1,45 @@
+diff -ur mtd-20050122.orig/util/flash_eraseall.c mtd-20050122.orig-patched/util/flash_eraseall.c
+--- mtd-20050122.orig/util/flash_eraseall.c    2004-12-09 17:00:52.000000000 -0600
++++ mtd-20050122.orig-patched/util/flash_eraseall.c    2007-01-13 22:56:51.864233154 -0600
+@@ -54,7 +54,7 @@
+ static void display_help (void);
+ static void display_version (void);
+ static struct jffs2_unknown_node cleanmarker;
+-static int target_endian = __BYTE_ORDER;
++int target_endian = __BYTE_ORDER;
+ int main (int argc, char *argv[])
+ {
+@@ -134,7 +134,7 @@
+                               if (!quiet)
+                                       printf ("\nSkipping bad block at 0x%08x\n", erase.start);
+                               continue;
+-                      } else if (ret == -EOPNOTSUPP) {
++                      } else if (errno == EOPNOTSUPP) {
+                               fprintf(stderr, "%s: %s: Bad block check not available\n", exe_name, mtd_device);
+                               bbtest = 0;
+                       } else if (ret < 0) {
+diff -ur mtd-20050122.orig/util/mkfs.jffs2.c mtd-20050122.orig-patched/util/mkfs.jffs2.c
+--- mtd-20050122.orig/util/mkfs.jffs2.c        2004-11-26 17:00:13.000000000 -0600
++++ mtd-20050122.orig-patched/util/mkfs.jffs2.c        2007-01-13 22:55:53.627687214 -0600
+@@ -101,7 +101,7 @@
+ static int squash_uids = 0;
+ static int squash_perms = 0;
+ static int fake_times = 0;
+-static int target_endian = __BYTE_ORDER;
++int target_endian = __BYTE_ORDER;
+ static const char *const app_name = "mkfs.jffs2";
+ static const char *const memory_exhausted = "memory exhausted";
+diff -ur mtd-20050122.orig/util/sumtool.c mtd-20050122.orig-patched/util/sumtool.c
+--- mtd-20050122.orig/util/sumtool.c   2005-01-05 17:00:16.000000000 -0600
++++ mtd-20050122.orig-patched/util/sumtool.c   2007-01-13 22:56:05.528616125 -0600
+@@ -68,7 +68,7 @@
+ static int cleanmarker_size = sizeof(cleanmarker);
+ static const char *short_options = "o:i:e:hvVblnc:p";
+ static int erase_block_size = 65536;
+-static int target_endian = __BYTE_ORDER;
++int target_endian = __BYTE_ORDER;
+ static int out_fd = -1;
+ static int in_fd = -1;
diff --git a/package/mtd/20061007/mtd-20061007-mkfs.jffs2.patch b/package/mtd/20061007/mtd-20061007-mkfs.jffs2.patch
new file mode 100644 (file)
index 0000000..3c4d6ba
--- /dev/null
@@ -0,0 +1,19 @@
+diff -urN mtd-20061007.orig-0rig/mkfs.jffs2.c mtd-20061007.orig/mkfs.jffs2.c
+--- mtd-20061007.orig-0rig/mkfs.jffs2.c        2006-10-07 17:33:37.000000000 +0200
++++ mtd-20061007.orig/mkfs.jffs2.c     2007-04-09 02:16:06.000000000 +0200
+@@ -240,6 +242,15 @@
+ {
+       struct filesystem_entry *e = dir;
++      if((strlen(fullname) == 1) && (fullname[0] == '/')) {
++              /* Looking for "root" */
++              if(e != NULL) {
++                      if((strlen(e->fullname) == 1) && (e->fullname[0] == '/')) {
++                              return (e);
++                      }
++              } 
++      }
++
+       if (S_ISDIR(dir->sb.st_mode)) {
+               e = dir->files;
+       }
diff --git a/package/mtd/20061007/mtd.mk b/package/mtd/20061007/mtd.mk
new file mode 100644 (file)
index 0000000..006bfeb
--- /dev/null
@@ -0,0 +1,114 @@
+#############################################################
+#
+# mtd provides jffs2 utilities
+#
+#############################################################
+MTD_SOURCE=mtd_20061007.orig.tar.gz
+MTD_SITE=http://ftp.debian.org/debian/pool/main/m/mtd
+MTD_HOST_DIR := $(TOOL_BUILD_DIR)/mtd_orig
+MTD_DIR:=$(BUILD_DIR)/mtd_orig
+MTD_CAT:=zcat
+MTD_DATE:=20061007
+
+#############################################################
+#
+# Build mkfs.jffs2 for use on the local host system if
+# needed by target/jffs2root.
+#
+#############################################################
+MKFS_JFFS2 := $(MTD_HOST_DIR)/mkfs.jffs2
+
+$(DL_DIR)/$(MTD_SOURCE):
+       $(WGET) -P $(DL_DIR) $(MTD_SITE)/$(MTD_SOURCE)
+
+$(MTD_HOST_DIR)/.unpacked: $(DL_DIR)/$(MTD_SOURCE)
+       $(ZCAT) $(DL_DIR)/$(MTD_SOURCE) | tar -C $(TOOL_BUILD_DIR) $(TAR_OPTIONS) -
+       mv $(TOOL_BUILD_DIR)/$(shell tar tzf $(DL_DIR)/$(MTD_SOURCE) | head -n 1 \
+               | xargs basename) $(MTD_HOST_DIR)
+       toolchain/patch-kernel.sh $(MTD_HOST_DIR) \
+               package/mtd/$(MTD_DATE) \*.patch
+       touch $@
+
+$(MTD_HOST_DIR)/mkfs.jffs2: $(MTD_HOST_DIR)/.unpacked
+       CC="$(HOSTCC)" CROSS= CFLAGS=-I$(LINUX_HEADERS_DIR)/include \
+               $(MAKE) LINUXDIR=$(LINUX_DIR) -C $(MTD_HOST_DIR) mkfs.jffs2
+
+mtd-host: $(MKFS_JFFS2)
+
+mtd-host-source: $(DL_DIR)/$(MTD_SOURCE)
+
+mtd-host-clean:
+       -$(MAKE) -C $(MTD_HOST_DIR) clean
+
+mtd-host-dirclean:
+       rm -rf $(MTD_HOST_DIR)
+
+#############################################################
+#
+# build mtd for use on the target system
+#
+#############################################################
+$(MTD_DIR)/.unpacked: $(DL_DIR)/$(MTD_SOURCE)
+       $(ZCAT) $(DL_DIR)/$(MTD_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+       mv $(BUILD_DIR)/$(shell tar tzf $(DL_DIR)/$(MTD_SOURCE) \
+               | head -n 1 | xargs basename) $(MTD_DIR)
+       toolchain/patch-kernel.sh $(MTD_DIR) \
+               package/mtd/$(MTD_DATE) \*.patch
+       touch $@
+
+MTD_TARGETS_n :=
+MTD_TARGETS_y :=
+
+MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_ERASE)             += flash_erase
+MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_ERASEALL)          += flash_eraseall
+MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_INFO)              += flash_info
+MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_LOCK)              += flash_lock
+MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_UNLOCK)            += flash_unlock
+MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASHCP)                 += flashcp
+MTD_TARGETS_$(BR2_PACKAGE_MTD_MKFSJFFS2)               += mkfs.jffs2
+MTD_TARGETS_$(BR2_PACKAGE_MTD_MKFSJFFS)                        += mkfs.jffs
+MTD_TARGETS_$(BR2_PACKAGE_MTD_JFFS2DUMP)               += jffs2dump
+#MTD_TARGETS_$(BR2_PACKAGE_MTD_JFFS3DUMP)              += jffs3dump
+MTD_TARGETS_$(BR2_PACKAGE_MTD_SUMTOOL)                 += sumtool
+MTD_TARGETS_$(BR2_PACKAGE_MTD_FTL_CHECK)               += ftl_check
+MTD_TARGETS_$(BR2_PACKAGE_MTD_FTL_FORMAT)              += ftl_format
+MTD_TARGETS_$(BR2_PACKAGE_MTD_NFTLDUMP)                        += nftldump
+MTD_TARGETS_$(BR2_PACKAGE_MTD_NFTL_FORMAT)             += nftl_format
+MTD_TARGETS_$(BR2_PACKAGE_MTD_NANDDUMP)                        += nanddump
+MTD_TARGETS_$(BR2_PACKAGE_MTD_NANDWRITE)               += nandwrite
+MTD_TARGETS_$(BR2_PACKAGE_MTD_MTD_DEBUG)               += mtd_debug
+MTD_TARGETS_$(BR2_PACKAGE_MTD_DOCFDISK)                        += docfdisk
+MTD_TARGETS_$(BR2_PACKAGE_MTD_DOC_LOADBIOS)            += doc_loadbios
+
+MTD_BUILD_TARGETS := $(addprefix $(MTD_DIR)/, $(MTD_TARGETS_y))
+
+$(MTD_BUILD_TARGETS): $(MTD_DIR)/.unpacked
+       mkdir -p $(TARGET_DIR)/usr/sbin
+       $(MAKE) CFLAGS="-I. -I./include -I$(LINUX_HEADERS_DIR)/include -I$(STAGING_DIR)/include $(TARGET_CFLAGS)" \
+               CROSS= CC=$(TARGET_CC) LINUXDIR=$(LINUX_DIR) WITHOUT_XATTR=1 -C $(MTD_DIR)
+
+MTD_TARGETS := $(addprefix $(TARGET_DIR)/usr/sbin/, $(MTD_TARGETS_y))
+
+$(MTD_TARGETS): $(TARGET_DIR)/usr/sbin/% : $(MTD_DIR)/%
+       cp -f $< $@
+       $(STRIP) $@
+
+mtd: zlib $(MTD_TARGETS)
+
+mtd-source: $(DL_DIR)/$(MTD_SOURCE)
+
+mtd-clean:
+       -$(MAKE) -C $(MTD_DIR) clean
+
+mtd-dirclean:
+       rm -rf $(MTD_DIR)
+
+
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_MTD)),y)
+TARGETS+=mtd
+endif
diff --git a/package/mtd/20061007/mtd_20061007.patch b/package/mtd/20061007/mtd_20061007.patch
new file mode 100644 (file)
index 0000000..23654fe
--- /dev/null
@@ -0,0 +1,93 @@
+diff -urN mtd-20061007.orig/Makefile mtd-20061007.orig.patch/Makefile
+--- mtd-20061007.orig/Makefile 2006-10-07 16:33:37.000000000 +0100
++++ mtd-20061007.orig.patch/Makefile   2007-01-09 14:06:22.000000000 +0000
+@@ -9,12 +9,10 @@
+ #CROSS=arm-linux-
+ CC := $(CROSS)gcc
+ CFLAGS := -I./include -O2 -Wall
++BUILDDIR := .
+-ifeq ($(origin CROSS),undefined)
+-  BUILDDIR := .
+-else
+-# Remove the trailing slash to make the directory name
+-  BUILDDIR := $(CROSS:-=)
++ifeq ($(WITHOUT_XATTR), 1)
++  CFLAGS += -DWITHOUT_XATTR
+ endif
+ RAWTARGETS = ftl_format flash_erase flash_eraseall nanddump doc_loadbios \
+diff -urN mtd-20061007.orig/mkfs.jffs2.c mtd-20061007.orig.patch/mkfs.jffs2.c
+--- mtd-20061007.orig/mkfs.jffs2.c     2006-10-07 16:33:37.000000000 +0100
++++ mtd-20061007.orig.patch/mkfs.jffs2.c       2007-01-09 11:18:33.000000000 +0000
+@@ -64,8 +64,10 @@
+ #include <ctype.h>
+ #include <time.h>
+ #include <getopt.h>
+-#include <sys/xattr.h>
+-#include <sys/acl.h>
++#ifndef WITHOUT_XATTR
++  #include <sys/xattr.h>
++  #include <sys/acl.h>
++#endif
+ #include <byteswap.h>
+ #define crc32 __complete_crap
+ #include <zlib.h>
+@@ -1030,6 +1032,7 @@
+       padword();
+ }
++#ifndef WITHOUT_XATTR
+ typedef struct xattr_entry {
+       struct xattr_entry *next;
+       uint32_t xid;
+@@ -1258,6 +1261,9 @@
+               padword();
+       }
+ }
++#else /* WITHOUT_XATTR */
++#define write_xattr_entry(x)
++#endif
+ static void recursive_populate_directory(struct filesystem_entry *dir)
+ {
+@@ -1416,9 +1422,11 @@
+       {"test-compression", 0, NULL, 't'},
+       {"compressor-priority", 1, NULL, 'y'},
+       {"incremental", 1, NULL, 'i'},
++#ifndef WITHOUT_XATTR
+       {"with-xattr", 0, NULL, 1000 },
+       {"with-selinux", 0, NULL, 1001 },
+       {"with-posix-acl", 0, NULL, 1002 },
++#endif
+       {NULL, 0, NULL, 0}
+ };
+@@ -1451,9 +1459,11 @@
+       "  -q, --squash            Squash permissions and owners making all files be owned by root\n"
+       "  -U, --squash-uids       Squash owners making all files be owned by root\n"
+       "  -P, --squash-perms      Squash permissions on all files\n"
++#ifndef WITHOUT_XATTR
+       "      --with-xattr        stuff all xattr entries into image\n"
+       "      --with-selinux      stuff only SELinux Labels into jffs2 image\n"
+       "      --with-posix-acl    stuff only POSIX ACL entries into jffs2 image\n"
++#endif
+       "  -h, --help              Display this help text\n"
+       "  -v, --verbose           Verbose operation\n"
+       "  -V, --version           Display version information\n"
+@@ -1772,6 +1782,7 @@
+                                       perror_msg_and_die("cannot open (incremental) file");
+                               }
+                               break;
++#ifndef WITHOUT_XATTR
+                       case 1000:      /* --with-xattr  */
+                               enable_xattr |= (1 << JFFS2_XPREFIX_USER)
+                                               | (1 << JFFS2_XPREFIX_SECURITY)
+@@ -1786,6 +1797,7 @@
+                               enable_xattr |= (1 << JFFS2_XPREFIX_ACL_ACCESS)
+                                               | (1 << JFFS2_XPREFIX_ACL_DEFAULT);
+                               break;
++#endif
+               }
+       }
+       if (out_fd == -1) {
diff --git a/package/mtd/20061007/mtd_acl.patch b/package/mtd/20061007/mtd_acl.patch
new file mode 100644 (file)
index 0000000..953786e
--- /dev/null
@@ -0,0 +1,48 @@
+Author:        Ulf Samuelsson
+Date:  2007-01-25
+
+Log:
+Patch adding "sys/acl.h" needed to compile mtd.
+
+Modified:
+       package/mtd/mtd_acl.patch
+
+Changeset
+       package/mtd/mtd_acl.patch
+
+diff -urN mtd_orig-0rig/include/sys/acl.h mtd_orig/include/sys/acl.h
+--- mtd_orig-0rig/include/sys/acl.h    1970-01-01 01:00:00.000000000 +0100
++++ mtd_orig/include/sys/acl.h 2007-01-17 20:11:22.000000000 +0100
+@@ -0,0 +1,32 @@
++/*
++  File: linux/posix_acl.h
++
++  (C) 2002 Andreas Gruenbacher, <a.gruenbacher@computer.org>
++*/
++
++
++#ifndef __LINUX_POSIX_ACL_H
++#define __LINUX_POSIX_ACL_H
++
++#define ACL_UNDEFINED_ID      (-1)
++
++/* a_type field in acl_user_posix_entry_t */
++#define ACL_TYPE_ACCESS               (0x8000)
++#define ACL_TYPE_DEFAULT      (0x4000)
++
++/* e_tag entry in struct posix_acl_entry */
++#define ACL_USER_OBJ          (0x01)
++#define ACL_USER              (0x02)
++#define ACL_GROUP_OBJ         (0x04)
++#define ACL_GROUP             (0x08)
++#define ACL_MASK              (0x10)
++#define ACL_OTHER             (0x20)
++
++/* permissions in the e_perm field */
++#define ACL_READ              (0x04)
++#define ACL_WRITE             (0x02)
++#define ACL_EXECUTE           (0x01)
++//#define ACL_ADD             (0x08)
++//#define ACL_DELETE          (0x10)
++
++#endif  /* __LINUX_POSIX_ACL_H */
index 582082d4bdc17392270bd43008be2a4a8b94c3d7..fa87ada8c559187368fd83e9caf873320c619ec7 100644 (file)
@@ -5,15 +5,23 @@ config BR2_PACKAGE_MTD
        help
          Build mtd/jffs utilities
 
-menu "MTD package selection"
+config BR2_PACKAGE_MTD_EXPERIMENTAL
+       bool "Use experimental MTD (20061007)"
        depends on BR2_PACKAGE_MTD
+       depends on BR2_TARGET_ATMEL
+       default n
+       help
+         Build mtd/jffs utilities with Dataflash support
+
 
+menu "MTD package selection"
+       depends on BR2_PACKAGE_MTD
+       depends on !BR2_PACKAGE_MTD_EXPERIMENTAL
 choice
        prompt "Source package selection"
        depends on BR2_PACKAGE_MTD
        default BR2_PACKAGE_MTD_ORIG
 
-
 config BR2_PACKAGE_MTD_ORIG
        bool "Default source"
        help
@@ -28,7 +36,7 @@ config BR2_PACKAGE_MTD_SNAPSHOT
 endchoice
 
 config BR2_PACKAGE_MTD_ORIG_STRING
-       string "MTD package name"
+       string "MTD package"
        depends on BR2_PACKAGE_MTD_ORIG
        default "mtd_20050122.orig.tar.gz"
        help
@@ -38,6 +46,13 @@ config BR2_PACKAGE_MTD_ORIG_STRING
 
 endmenu
 
+config BR2_PACKAGE_MTD_ORIG_STRING
+       string
+       depends on BR2_PACKAGE_MTD_EXPERIMENTAL
+       default "mtd_20061007.orig.tar.gz"
+       help
+         Default is mtd_20061007.orig.tar.gz
+
 menu "MTD tools selection"
        depends BR2_PACKAGE_MTD
 
@@ -85,6 +100,13 @@ config BR2_PACKAGE_MTD_JFFS3DUMP
        bool "jffs3dump"
        default y
        depends on BR2_PACKAGE_MTD
+       depends on !BR2_PACKAGE_MTD_EXPERIMENTAL
+
+config BR2_PACKAGE_MTD_JFFS3DUMP
+       bool "jffs3dump (Don't check this since it is broken)"
+       default n
+       depends on BR2_PACKAGE_MTD
+       depends on !BR2_PACKAGE_MTD_EXPERIMENTAL
 
 config BR2_PACKAGE_MTD_SUMTOOL
        bool "sumtool"
@@ -147,3 +169,4 @@ config BR2_PACKAGE_MTD_DOC_LOADBIOS
        depends on BR2_PACKAGE_MTD
 
 endmenu
+
index 0a94deb667b7a2185218453e2b96833124a274d8..468d42dee5475c91e4094484a8b601bc9c72d43f 100644 (file)
@@ -1,163 +1,5 @@
-#############################################################
-#
-# mtd provides jffs2 utilities
-#
-#############################################################
-ifeq ($(strip $(BR2_PACKAGE_MTD_SNAPSHOT)),y)
-# Be aware that this changes daily....
-
-MTD_DL_SOURCE:=mtd-snapshot-$(DATE).tar.bz2
-MTD_CAT:=$(BZCAT)
-MTD_SOURCE:=mtd-snapshot.tar.bz2
-MTD_SITE:=ftp://ftp.uk.linux.org/pub/people/dwmw2/mtd/cvs
-MTD_HOST_DIR := $(TOOL_BUILD_DIR)/mtd_snapshot
-MTD_DIR:=$(BUILD_DIR)/mtd_snapshot
+ifeq ($(strip $(BR2_PACKAGE_MTD_EXPERIMENTAL)),y)
+include package/mtd/20061007/mtd.mk
 else
-MTD_SOURCE:=$(strip $(subst ",, $(BR2_PACKAGE_MTD_ORIG_STRING)))
-#"))
-MTD_SITE:=http://ftp.debian.org/debian/pool/main/m/mtd
-MTD_HOST_DIR := $(TOOL_BUILD_DIR)/mtd_orig
-MTD_DIR:=$(BUILD_DIR)/mtd_orig
-MTD_CAT:=$(ZCAT)
-endif
-
-
-
-#############################################################
-#
-# Build mkfs.jffs2 for use on the local host system if
-# needed by target/jffs2root.
-#
-#############################################################
-MKFS_JFFS2 := $(MTD_HOST_DIR)/util/mkfs.jffs2
-
-ifeq ($(strip $(BR2_PACKAGE_MTD_SNAPSHOT)),y)
-$(DL_DIR)/$(MTD_SOURCE):
-       $(WGET) -P $(DL_DIR) $(MTD_SITE)/$(MTD_DL_SOURCE)
-       mv $(DL_DIR)/$(MTD_DL_SOURCE) $(DL_DIR)/$(MTD_SOURCE)
-
-$(MTD_HOST_DIR)/.unpacked: $(DL_DIR)/$(MTD_SOURCE_GENERIC)
-       $(MTD_CAT) $(DL_DIR)/$(MTD_SOURCE) | tar -C $(TOOL_BUILD_DIR) $(TAR_OPTIONS) -
-       mv $(TOOL_BUILD_DIR)/$(shell tar tjf $(DL_DIR)/$(MTD_SOURCE) \
-               | head -n 1 | xargs basename) $(MTD_HOST_DIR)
-       touch $@
-else
-ifneq ($(MTD_SOURCE),)
-$(DL_DIR)/$(MTD_SOURCE):
-       $(WGET) -P $(DL_DIR) $(MTD_SITE)/$(MTD_SOURCE)
-endif
-
-$(MTD_HOST_DIR)/.unpacked: $(DL_DIR)/$(MTD_SOURCE)
-       $(MTD_CAT) $(DL_DIR)/$(MTD_SOURCE) | tar -C $(TOOL_BUILD_DIR) $(TAR_OPTIONS) -
-       mv $(TOOL_BUILD_DIR)/$(shell tar tzf $(DL_DIR)/$(MTD_SOURCE) | head -n 1 \
-               | xargs basename) $(MTD_HOST_DIR)
-       toolchain/patch-kernel.sh $(MTD_HOST_DIR) package/mtd \*.patch
-       touch $@
-endif
-
-$(MTD_HOST_DIR)/util/mkfs.jffs2: $(MTD_HOST_DIR)/.unpacked
-       CFLAGS=-I$(LINUX_HEADERS_DIR)/include $(MAKE) CC="$(HOSTCC)" CROSS= \
-               LINUXDIR=$(LINUX_DIR) -C $(MTD_HOST_DIR)/util mkfs.jffs2
-
-mtd-host: $(MKFS_JFFS2)
-
-mtd-host-source: $(DL_DIR)/$(MTD_SOURCE)
-
-mtd-host-clean:
-       -$(MAKE) -C $(MTD_HOST_DIR) clean
-
-mtd-host-dirclean:
-       rm -rf $(MTD_HOST_DIR)
-
-#############################################################
-#
-# build mtd for use on the target system
-#
-#############################################################
-$(MTD_DIR)/.unpacked: $(DL_DIR)/$(MTD_SOURCE)
-       $(MTD_CAT) $(DL_DIR)/$(MTD_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
-ifeq ($(strip $(BR2_PACKAGE_MTD_SNAPSHOT)),y)
-       mv $(BUILD_DIR)/$(shell tar tjf $(DL_DIR)/$(MTD_SOURCE) \
-               | head -n 1 | xargs basename) $(MTD_DIR)
-       touch $@
-else
-       mv $(BUILD_DIR)/$(shell tar tzf $(DL_DIR)/$(MTD_SOURCE) \
-               | head -n 1 | xargs basename) $(MTD_DIR)
-       toolchain/patch-kernel.sh $(MTD_DIR) \
-               package/mtd \*.patch
-       touch $@
-endif
-
-MTD_TARGETS_n :=
-MTD_TARGETS_y :=
-
-MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_ERASE)             += flash_erase
-MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_ERASEALL)          += flash_eraseall
-MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_INFO)              += flash_info
-MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_LOCK)              += flash_lock
-MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASH_UNLOCK)            += flash_unlock
-MTD_TARGETS_$(BR2_PACKAGE_MTD_FLASHCP)                 += flashcp
-MTD_TARGETS_$(BR2_PACKAGE_MTD_MKFSJFFS2)               += mkfs.jffs2
-MTD_TARGETS_$(BR2_PACKAGE_MTD_MKFSJFFS)                        += mkfs.jffs
-MTD_TARGETS_$(BR2_PACKAGE_MTD_JFFS2DUMP)               += jffs2dump
-MTD_TARGETS_$(BR2_PACKAGE_MTD_JFFS3DUMP)               += jffs3dump
-MTD_TARGETS_$(BR2_PACKAGE_MTD_SUMTOOL)                 += sumtool
-MTD_TARGETS_$(BR2_PACKAGE_MTD_FTL_CHECK)               += ftl_check
-MTD_TARGETS_$(BR2_PACKAGE_MTD_FTL_FORMAT)              += ftl_format
-MTD_TARGETS_$(BR2_PACKAGE_MTD_NFTLDUMP)                        += nftldump
-MTD_TARGETS_$(BR2_PACKAGE_MTD_NFTL_FORMAT)             += nftl_format
-MTD_TARGETS_$(BR2_PACKAGE_MTD_NANDDUMP)                        += nanddump
-MTD_TARGETS_$(BR2_PACKAGE_MTD_NANDWRITE)               += nandwrite
-MTD_TARGETS_$(BR2_PACKAGE_MTD_MTD_DEBUG)               += mtd_debug
-MTD_TARGETS_$(BR2_PACKAGE_MTD_DOCFDISK)                        += docfdisk
-MTD_TARGETS_$(BR2_PACKAGE_MTD_DOC_LOADBIOS)            += doc_loadbios
-
-MTD_BUILD_TARGETS := $(addprefix $(MTD_DIR)/util/, $(MTD_TARGETS_y))
-
-$(MTD_BUILD_TARGETS): $(MTD_DIR)/.unpacked
-       $(MAKE) $(TARGET_CONFIGURE_OPTS) \
-               CFLAGS+="-I$(MTD_DIR)/include" \
-               CFLAGS+="-I$(LINUX_HEADERS_DIR)/include" \
-               LDFLAGS="$(TARGET_LDFLAGS)" \
-               LINUXDIR=$(LINUX_DIR) -C $(MTD_DIR)/util
-
-MTD_TARGETS := $(addprefix $(TARGET_DIR)/usr/sbin/, $(MTD_TARGETS_y))
-
-$(MTD_TARGETS): $(TARGET_DIR)/usr/sbin/% : $(MTD_DIR)/util/%
-       mkdir -p $(TARGET_DIR)/usr/sbin
-       cp -f $< $@
-       $(STRIP) $@
-ifneq ($(BR2_PACKAGE_MTD_FLASHCP),)
-       -ln -sf flashcp $(TARGET_DIR)/usr/sbin/fcp
-endif
-ifneq ($(BR2_PACKAGE_MTD_ERASE),)
-       -ln -sf flash_erase $(TARGET_DIR)/usr/sbin/erase
-       -ln -sf flash_eraseall $(TARGET_DIR)/usr/sbin/eraseall
-endif
-
-mtd: zlib $(MTD_TARGETS)
-
-mtd-source: $(DL_DIR)/$(MTD_SOURCE)
-
-mtd-clean:
-       -$(MAKE) -C $(MTD_DIR) clean
-ifneq ($(BR2_PACKAGE_MTD_FLASHCP),)
-       -rm -f $(MTD_TARGETS) $(TARGET_DIR)/usr/sbin/fcp
-endif
-ifneq ($(BR2_PACKAGE_MTD_ERASE),)
-       -rm -f $(MTD_TARGETS) $(TARGET_DIR)/usr/sbin/erase
-       -rm -f $(MTD_TARGETS) $(TARGET_DIR)/usr/sbin/eraseall
-endif
-
-mtd-dirclean:
-       rm -rf $(MTD_DIR)
-
-
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(strip $(BR2_PACKAGE_MTD)),y)
-TARGETS+=mtd
+include package/mtd/20050122/mtd.mk
 endif