diff options
author | Ulf Samuelsson <ulf.samuelsson@atmel.com> | 2007-07-20 08:00:19 +0000 |
---|---|---|
committer | Ulf Samuelsson <ulf.samuelsson@atmel.com> | 2007-07-20 08:00:19 +0000 |
commit | 58ae45f345826e27b17ad16c8d8a5699ec006a1f (patch) | |
tree | 9f9cef80d41d20686fdccbe7ec01c31bc83abc4a /package/mtd/20050122 | |
parent | 3c9ebe81c2a8d0d855e6e62b663da57f2198033a (diff) |
Add optional mtd configuration (experimental - only available for Atmel targets)
Diffstat (limited to 'package/mtd/20050122')
-rw-r--r-- | package/mtd/20050122/mtd.mk | 163 | ||||
-rw-r--r-- | package/mtd/20050122/mtd.patch | 45 |
2 files changed, 208 insertions, 0 deletions
diff --git a/package/mtd/20050122/mtd.mk b/package/mtd/20050122/mtd.mk new file mode 100644 index 000000000..0a94deb66 --- /dev/null +++ b/package/mtd/20050122/mtd.mk @@ -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 index 000000000..40d6865cc --- /dev/null +++ b/package/mtd/20050122/mtd.patch @@ -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; + |