summaryrefslogtreecommitdiff
path: root/package/mtd/20061007
diff options
context:
space:
mode:
authorUlf Samuelsson <ulf.samuelsson@atmel.com>2007-07-20 08:00:19 +0000
committerUlf Samuelsson <ulf.samuelsson@atmel.com>2007-07-20 08:00:19 +0000
commit58ae45f345826e27b17ad16c8d8a5699ec006a1f (patch)
tree9f9cef80d41d20686fdccbe7ec01c31bc83abc4a /package/mtd/20061007
parent3c9ebe81c2a8d0d855e6e62b663da57f2198033a (diff)
Add optional mtd configuration (experimental - only available for Atmel targets)
Diffstat (limited to 'package/mtd/20061007')
-rw-r--r--package/mtd/20061007/mtd-20061007-mkfs.jffs2.patch19
-rw-r--r--package/mtd/20061007/mtd.mk114
-rw-r--r--package/mtd/20061007/mtd_20061007.patch93
-rw-r--r--package/mtd/20061007/mtd_acl.patch48
4 files changed, 274 insertions, 0 deletions
diff --git a/package/mtd/20061007/mtd-20061007-mkfs.jffs2.patch b/package/mtd/20061007/mtd-20061007-mkfs.jffs2.patch
new file mode 100644
index 000000000..3c4d6bad6
--- /dev/null
+++ b/package/mtd/20061007/mtd-20061007-mkfs.jffs2.patch
@@ -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
index 000000000..006bfeb9c
--- /dev/null
+++ b/package/mtd/20061007/mtd.mk
@@ -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
index 000000000..23654fea6
--- /dev/null
+++ b/package/mtd/20061007/mtd_20061007.patch
@@ -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
index 000000000..953786eb1
--- /dev/null
+++ b/package/mtd/20061007/mtd_acl.patch
@@ -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 */