Add optional mtd configuration (experimental - only available for Atmel targets)

This commit is contained in:
Ulf Samuelsson 2007-07-20 08:00:19 +00:00
parent 3c9ebe81c2
commit 58ae45f345
8 changed files with 511 additions and 164 deletions

163
package/mtd/20050122/mtd.mk Normal file
View File

@ -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

View File

@ -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;

View File

@ -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;
}

114
package/mtd/20061007/mtd.mk Normal file
View File

@ -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

View File

@ -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) {

View File

@ -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 */

View File

@ -5,15 +5,23 @@ config BR2_PACKAGE_MTD
help
Build mtd/jffs utilities
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

View 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